Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[mylyn-dev] Re: Representation of tasks in trac connector


I am starting to wonder if connector should be using RepositoryTaskData for internal stuff instead of maintaining 3rd structure.

 regards,
 Eugene


Steffen Pingel wrote:
Hi,

you are right that there are three different ways a Trac task is
represented:

- TracTicket: this is the representations retrieved from the Trac
repository. It is either created from the data received through XML-RPC or
from the web interface. This is part of a generic API for accessing Trac
repositories that does not depend on Mylyn (except for
org.eclipse.mylyn.web.core).

- TracTask: represents the task information in the task list. This is kept
in memory at all times and contains information needed by Mylyn to
represent the task in the UI. TracTasks are updated from TracTickets or
from RepositoryTaskData (see TracRepositoryConnector.updateFrom*()).

- RepositoryTaskData: used for offline editing and offline storage. Task
data stores all information about a task in RepositoryTaskAttribute
objects. These are used by the editor to create widgets for editing,
determine incoming changes etc. RepositoryTaskData is created in
TracTaskDataHandler from TracTickets.

AttributeFactory is used to map Mylyn's data model to a repository connector
specific model. For example Mylyn uses the
RepositoryTaskAttribute.USER_REPORTER key as the id for the attribute that
specifies the reporter of a task which is mapped to the Trac specific key
TracTicket.Key.REPORTER by TracAttributeFactory.

If you do not need rich editor support you can start out by extending
AbstractTask first and open a web browser for editing tasks. In a second
step you can implement an attribute factory, a task data handler and an
editor factory which will add rich offline editing.

Hope this helps.
Steffen


Hi everyone,

I'm implementing a connector for the origo project (origo.ethz.ch). So I
had a look at the trac connector which is mentioned several times on the
  integrator wiki, but I'm confused with the represenation of tasks. To
me it appears that there are 3 different representations: First there is
TracTicket, then TaskData and at last TracTask - Can someone please
explain the rationale behind this? E.g. why is not always TracTask used
- is it only for UI purposes?

Another question related to this: What is the AttributeFactory good for?

Thanks for any help!

Dennis




Back to the top