CDO/Explorer (work in progress)
This bugzilla is used for discussion and to track progress: 258638: CDO Explorer Everybody is invited to participate in whatever form!
The CDO Explorer is a client-side RCP application that demonstrates all the core functionality of CDO. It is expected to provide re-usable user interface components as well as a default distribution in form of an RCP application. CDO users shall be enabled to download a single setup.exe file and install a complete technology stack, including repository server, database, the CDO Explorer client, possibly a CDO Admin client to (re-) configure the repository server.
We'd like to demonstrate the following:
- strict use of data binding
- together with asynchronous node expansion
- drag and drop of objects to create references
- extensible repository browser view
- extensible form editors for single objects
- neat integration of all the optional CDO functionality, like:
- query definition and execution
- import/export of resources
- resource browsing (integrated in the generic repository browser)
- history browsing
- explicit locking and a locks view
- local and remote annotation of CDOModelElements
The following screen stub can be used as a basis for more detailed UI descriptions.
The content of the open editors in the screen stub is irrelevant, it's just to illustrate the general use of the forms toolkit.
The stub project is available via CVS: org.eclipse.emf/org.eclipse.emf.cdo/develop/incubation/CDOExplorer
Repository Browser ViewPart
The root elements of the Repository Browser are CDO Repositories with all the CDO structure elements below them:
- Virtual Packages node: EPackage, EClass, EAttribute, EReference, EEnum, ...
- Virtual Resources node: CDOResourceFolder, CDOResource, CDOObject
Browser would allow to provide some basic actios as:
- Copy & Paste CDOFolders and CDOResources
- Delete CDOFolders and CDOResources
- DnD (default behaviour would be cut & paste, could also be copy & paste by holding CONTROL key)
- Rename CDOFolders & CDOResources
Items in the tree should be decorated, depicting some important aspects of their state. For instance, CDOFolder, CDOResource or CDOObject could have a read/write lock. An overlay icon and colored label should depict this.
Asynchronous refresh is an important requirement. We should make exemplary use of org.eclipse.emf.databinding. Blocking UI thread should never happen.
The properties view should be populated with data from selected items in the browser.
Object Form EditorPart
- Log View: Shows server side events, not fine-grained. Events like folder/resource created, moved, deleted, modified. Lock set/released. Successful commits, conflictive commits. Each action should be logged together with a timestamp, user-name...
- Extensible multi-page editor: User could contribute, through extension points, additional pages to the default editor. We could provide some nice pages too.
The repository elements of the repository browser view are internally CDOViews or CDOAudits (switchable through properties). When they are not audits we enable modification actions for folder, resource and object creation and manipulation. All these commands are executed in background jobs and open a CDOTransaction, modify the object graph and commit.