Skip to main content
Jump to: navigation, search

Difference between revisions of "Mylyn/Refactoring"

(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 00: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);
}

Back to the top