Child pages
  • Browsing the Source, Where to Start

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Project

...

overview

The following projects are located in the SVN repository: 

Project name

Description

com.servoy.eclipse.appserver

Eclipse plugin to start the application server in developer Servoy Application Server in Servoy Developer

com.servoy.eclipse.core

Core eclipse classes that together make up developer Servoy 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 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 Developer

com.servoy.eclipse.team

The servoy team providerServoy 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 client plugins and beans, shipped in installer

servoy_debug

client side debug classes and connectors

servoy_headless_client

The headless Headless and webclient Web Client code

servoy_smart_client

The Smart client Client (webstart)

servoy_shared

The shared code / libs between web and smart client Web, Headless and Smart Client (and server interfaces)

org.eclipse.dltk.javascript.rhino

The Rhino engine, contains couple of very small modifications for DLTK/Debug hooks

Some entry point hints when looking at the code:

...

and some improvements

High level overview of client code

Tip
titleType Hierarchy view

By selecting a class in the Package Explorer in Eclipse, the Type Hierachy of that class can be shown by pressing F4.

Tip
titleLocating Types

By pressing Control-Shift-T, a dialog pops up that allows quick lookup of classes based on their name

The entry point for the Client code is the ClientState class.

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

...

. It holds many object managers (all implementing the IManager interface ),

...

for example:

  • Foundset manager, FoundsetManager: class managing all IFoundset instances (datahandling layer)which has . IFoundSet has multiple implementations from which Foundset the FoundSet class is the main one, which . It contains records (IRecord .javaclass) and a Record.java contains a Row.java objectFoundSetManager keeps track also records contains rows (Row class). The FoundSetManager also keeps track of the RowManagers for each database table to handle Row objectsPlugin manager .
  • PluginManager: class managing all plugins (a plugin is an external piece of code which has to satisfy to the IPlugin.java interface ) and can be used from in scripting)
  • FormManager: class managing all IFormController FormController instances, subclasses . Subclasses are WebFormManger and SwingFormManager
  • Mode manager ModeManager: class to control the mode the application is in like: , for example edit, find ,and print
  • Bean manager to creanteBeanManager: class to create/control the beans and there live timethen it also holds a their lifecycle
  • A reference to the script engine (rhinoRhino)

The MVC pattern is used for Servoy formsin Servoy when it comes to Forms:

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

Smart Client

The J2DBClient class is the javawebstart Java Webstart client, generates interfaces via . It generates the Swing user interface through the ComponentFactory and ItemFactory classes.

  • contains Contains a java Java main method in the J2DBClient class
  • LAFManager: class mainly used in smart client Smart Client only to control appearance
  • CMD manager CmdManager: class for binding all GUI actions

Headless Client

The SessionClient class is the Headless Client

Web Client

The WebClient class is the apache-wicket browser client, generates interfaces via ComponentFactory/ItemFactory -based client. It extends SessionClient. It generates the user interface through the ComponentFactory and ItemFactory classes, coupled via TemplateGenerator (to produces plain html templates).

  • is Is created via SolutionLoader

...

  • the SolutionLoader class