Child pages
  • Browsing the Source, Where to Start
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Project structure:

Project name

Description

com.servoy.eclipse.appserver

Eclipse plugin to start the application server in developer

com.servoy.eclipse.core

Core eclipse classes that make up developer

com.servoy.eclipse.debug

Classes that revolve around debugging, connectors to DLTK

com.servoy.eclipse.designer

All Form designer code

com.servoy.eclipse.feature

Holds the definition to makeup the eclipse Servoy Developer

com.servoy.eclipse.jsunit

JSunit <-> Junit bridge and command line JS unit test/suite runner

com.servoy.eclipse.profiler

The profiler (view) which is present in Servoy developer

com.servoy.eclipse.team

The servoy team provider, used against the server/repository interfaces

com.servoy.eclipse.ui

GUI helper classes, some default dialogs, abstract GUI elements

com.servoy.extensions

Contains the default shipped plugins and beans, shipped in installer

servoy_debug

client side debug classes and connectors

servoy_headless_client

The headless and webclient code

servoy_smart_client

The Smart client (webstart)

servoy_shared

The shared code / libs between web and smart client

Some entry point hints when looking at the code:

ClientState.Java is in fact the most top level class containing logic, from which all other "client" applications are derived (tip view class hierarchy in eclipse)

  • This class holds many object managers (all implementing IManager ), like:
  • Foundset manager, managing all IFoundset instances (datahandling layer)
    • which has multiple implementations from which Foundset.java is the main one, which contains records (IRecord.java) and a Record.java contains a Row.java object
    • FoundSetManager keeps track also track of the RowManagers for each database table to handle Row objects
  • Plugin manager (a plugin is an external piece of code which has to satisfy to the IPlugin.java interface) and can be used from scripting
  • FormManager managing all IFormController instances, subclasses are WebFormManger and SwingFormManager
  • Mode manager to control the mode the application is in like: edit,find,print
  • then it also holds a reference to the script engine (rhino)

The MVC pattern is used for Servoy forms

  • Model: IFoundSet.java (defines the db data in form, by the select SQL it contains)
  • View: SwingForm or WebForm.java (handles the UI)
  • Controller: FormController.java (binds model and view and controls them)

J2DBClient is the webstart client, generates interfaces via ComponentFactory and ItemFactory

  • LAFManager mainly used in smart client only to control appearance
  • CMD manager for binding all GUI actions

WebClient is the apache-wicket browser client, generates interfaces via ComponentFactory/ItemFactory coupled via TemplateGenerator (produces plain html templates)

This is in a nutshell how servoy is structured. 

  • No labels