Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Mylyn/Refactoring"
< Mylyn
(New page: * Persistence * Configuration extraction * Presenation api) |
|||
Line 1: | Line 1: | ||
+ | = Requirements = | ||
+ | |||
* Persistence | * Persistence | ||
+ | ** Provide a generic API for storing task attributes | ||
* Configuration extraction | * Configuration extraction | ||
* Presenation api | * Presenation api | ||
+ | |||
+ | = API = | ||
+ | |||
+ | == Task Attributes == | ||
+ | |||
+ | RepositoryTaskAttribute { | ||
+ | boolean isModified() | ||
+ | boolean hasIncomingChanges() | ||
+ | void write(IMemento) | ||
+ | void read(IMemento) | ||
+ | } | ||
+ | |||
+ | |||
+ | == Mylar Task Model == | ||
+ | |||
+ | Make this model explicit and define it in terms of Java classes. This could be separate from the offline storage so connectors without a TaskDataHandler could provide attachment support. | ||
+ | |||
+ | RepositoryTaskData { | ||
+ | boolean isNew | ||
+ | String description | ||
+ | String summary | ||
+ | String newComment | ||
+ | String[] cc | ||
+ | String[] addCC | ||
+ | String[] removeCC | ||
+ | } | ||
+ | |||
+ | RepositoryTaskComment { | ||
+ | String author | ||
+ | Date created | ||
+ | ... | ||
+ | } | ||
+ | |||
+ | RepositoryTaskAttachment { | ||
+ | String filename | ||
+ | String description | ||
+ | ... | ||
+ | } | ||
+ | |||
+ | RepositoryTaskOperation { | ||
+ | ... | ||
+ | } | ||
+ | |||
+ | == Editor/UI == | ||
+ | |||
+ | Connectors provide a factory for UI representation of attributes: | ||
+ | |||
+ | AbstractConnectorUi { | ||
+ | abstract ITaskUiFactory getTaskUiFactory() | ||
+ | } | ||
+ | |||
+ | ITaskUiFactory { | ||
+ | String getLabel(RepositoryTaskAttribute attr) | ||
+ | Control createEditor(RepositoryTaskAttribute attr, Composite parent) | ||
+ | String getToolTip(RepositoryTaskAttribute attr) | ||
+ | } | ||
+ | |||
+ | Mylar provides default implementations to create an editor for an attribute: | ||
+ | |||
+ | MylarEditorFactory { | ||
+ | Control createComboEditor(RepositoryTaskAttribute attr, Composite parent, String[] options); | ||
+ | } |
Revision as of 01:34, 9 May 2007
Requirements
- Persistence
- Provide a generic API for storing task attributes
- Configuration extraction
- Presenation api
API
Task Attributes
RepositoryTaskAttribute { boolean isModified() boolean hasIncomingChanges() void write(IMemento) void read(IMemento) }
Mylar Task Model
Make this model explicit and define it in terms of Java classes. This could be separate from the offline storage so connectors without a TaskDataHandler could provide attachment support.
RepositoryTaskData { boolean isNew String description String summary String newComment String[] cc String[] addCC String[] removeCC }
RepositoryTaskComment { String author Date created ... }
RepositoryTaskAttachment { String filename String description ... }
RepositoryTaskOperation { ... }
Editor/UI
Connectors provide a factory for UI representation of attributes:
AbstractConnectorUi { abstract ITaskUiFactory getTaskUiFactory() }
ITaskUiFactory { String getLabel(RepositoryTaskAttribute attr) Control createEditor(RepositoryTaskAttribute attr, Composite parent) String getToolTip(RepositoryTaskAttribute attr) }
Mylar provides default implementations to create an editor for an attribute:
MylarEditorFactory { Control createComboEditor(RepositoryTaskAttribute attr, Composite parent, String[] options); }