SOFA 2.0 Editor - GUI Repository Designer for Eclipse



SOFA 2.0 repository editor v. 1.3.0 released. Changes »


SOFA 2.0 repository editor v. 1.0.149 released.


Work on the plug-in is started. History »


Compiling and installation

User's manual

Usage scenarios

Developer's manual

UML diagrams

Java docs

Author MaViNes (c)


OSGI Framework

Eclipse plugin basics

RCP basics

SWT draw basics

jFace tips

SWT Linux/Windows differences

Author MaViNes (c)

21.10.2006 The work is started, created stubs for main classes, frame for the future plugin is created.

18.11.2006 Till this time the first attempt to draw graphic entities occured. The Ecllipse internal draw engine is explored. Features of SWT's canva and composite entities are compared. The Canvas is choosen for drawing panel. Also the MultyPage editor is used to display options for each Repository Entity. Multi page editor includes draw page, XML view page and java code page. No code is beeing generated. All RepositoryEntities are shown like different shapes without pain fill-in. Primitive moving is possible. Also XML preview is available. All drawing pane keeps blinking when repainting. This should be considered for future improvements.

18.12.2006 Till that time the proper view of the repository entities is discussed. Draw pane is corrected according to the new requirements. All UML like shapes are changed to shapes which corresponds with orignal developers' ideas. Added linking between shapes. Now link looks like a line with arrowed end. The polar-decart transoformation is used to keep arrow moving when a linked shape is being draged/dropped. Now the plug-in is capable to read all objects from the Repository Server and present logical Repository Tree. The draw pane does not blink now. The properties of Canvas are explored and corredct SWT style is selected to eliminate blinking. Also for better displaying the Graphics2D<->GC rendering is included. The work on valid coordinates calculation is started. Subcomponents and interfaces which are placed inside or on borders of Architecture/Frame are being prepared for proper moving. Subcomponents are moving inside Architectures properly.

18.01.2007 The drawing panel is totally prepared according to developers' requirements. All shapes are correspond to meta model view and all logic is verified. The plug-in is able to read-write all opbject to repository server properly. Interfaces on borders of frames/architectures/subcomponents are calculated properly and are moved properly. Architectures and frames can be resized. Tool bar for adding new entities is added. Tool bar includes buttons for adding subcomponent, provided/required interface, frame, architecture, link. All links now treeted as connectors, to add subsumption or delegation developer should choose proper kind of link and connect interfaces on proper eges. Validation for wrong linking is added. Repository tree includes frame centric and architecture centric views. Switchng between views shows architectures which implement frames or frames which are implemented by architectures accordingly. Editing and adding new architectures/frames is possible in both modes. XML and java tabs are removed from the Multi page editor due to useless. All new entities are added using SWT popup windows. SWT popup is created using SWT shell object. Properties view is started to be developing. Properties are displayed for each selected Repository Entity. There is a possibility to change some properties like name, version, protocol.

18.02.2007Toolbar is changed and divided into 2 toolbars. 1 toolbar is used for adding subcomponents, interfaces and links and another is used to add frames and architectures. The 1st one is located on top of the drawing area and the 2nd one is located on top of the Repository tree view to make logically correct view for adding new frames/architectures. The property view is totally adopted according to the metamodel requirements. All properties can be viewed/edited/saved. To display properties correctly tables, comboboxes and text fields are used. To edit cell content in the table a custom listener is implemented. The custom layout is developed to make properties view flexible in different corners of the Eclipse's workspace. The SOFA 2.0 perspective is added. This allows to eliminate useles project file and allows to display all Repository entities using Eclipse views without editor. The plug-in is also totally adopted to be compatible with Fedora Core 6.0. The drawing engine is optimized to work fast under Fedora Core. Found some differences in the SWT and JFace implementation under Fedora. This differences are counted and plug-in works fine and fast both under FR 6 and under Windows. All dialogs for new repository entities are changed to wizards. This makes them to look in the same way both under Windows and FC 6. Tool bar on top of the drawing pane is optimized. New links are created and validated automaticaly, developer just choose a link and draws a line between interfaces. Required kind of a link is detected automatically, validation decides if link is alloved and then a link of required kind is created and stored. New possibilities are added. Now it is possible to connect not only to local Repository Server, but to any Repository server, which is deployed on the net. Also it is possible to refresh and reconnect to Repository server. And monitor connection status.

18.03.2007New changes for the plug-in are required. The cushion version of the SOFA meta model is introduced. Cushion allows to manage frames, architectures and interface types locally. The package explorer is added to the SOFA perspective. The package expplorer shows tree of entities created by cushion tool and stored on developer's local HDD. The contribution to the right mouse menu is developed. Using right mouse button on the package explorer it is possible to add new entities to the project using cushion tool. The cushion view and editor are added to allow editiong of entities added by cushion.

Learn More