-
Type: Task
-
Status: Resolved
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: 1.3
-
Component/s: None
1. Split studio-ui in multiple projects:
- nuxeo-gwt-ui
containg generic widgets and genric UI logic - nuxeo-studio-core
containing studio server and client model and impl.
No target platforms, features are defined here. This contains only the studio model (projects, resources, feature model etc)
Specific feature implementations should be put in nuxeo-studio-*-features projects.
So you can see this as an empty studio. (with may be only the XML feature inside) - nuxeo-studio-dm-features
containing nuxeo-dm features (target platform definition, builders, feature models etc)
2. Move all generic UI code in nuxeo-gwt-ui.
- UI helpers (classes that genrate commonly used HTML like imageWithText, horziontalLine etc)
- generic widgets (ex combo box, listex, treeex etc)
- application/editor/view/action model
This is the model of the IDE application - and it is generic. We may also simplify it. - dialog / wizard models
- property editor model
This should be reviewed since I think we may have duplicated models
(or incomplete models that was written for a specific task but that can be unified in a single model)
3. Rename model objects.
Extension -> Feature:
ExtensionBuilder -> FeatureBuilder
ExtensionType -> FeatureType
ExtensionModel -> FeatureModel
*.modules package -> *.features
Write a small doc on how to contribute a new target platform and features.
(for future nuxeo-studio-dam-features and other target platforms)
4. Review studio related UI code
Identify all UI widgets/logics that are duplicated and try to unify them in a generic model if possible and then move to nuxeo-gwt-ui if they doesn't depend on studio.
- Some editors are not using the editor model
- It's possible that some UI mechanisms are duplicated or incomplete (see property editor)
- Refactor resource model to allow more than one level in depth
- Refactor object tree model to allow children for Feature objects (see project tree view)
This means to be able to display children objects underneath a feature object.
(for example if we want to display the layouts as sub objects of the document object in the project tree view)