Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [mylyn-integrators] Startup help for writing new connector

Schenkenfelder Robert wrote on Friday, July 11, 2008 8:33 AM:

> Thank you for publishing your notes. However, it is hard to follow
> them due to very rough explanations. 

Understood.  This second half is definitely not complete.

The explanation also wasn't intended to replace what is already in the
integrator reference at
http://wiki.eclipse.org/index.php/Mylyn_Integrator_Reference.  That
material may provide some more details.  

> Until today I wasn't able to retrieve a task list from the server, 
> even with using code out of the Trac connector.

I also read through a lot of code from the Trac connector, but for
figuring out what needed to be done, Dennis Rietmann's Origo connector
was definitely much easier to follow.
 
> For example, following problem crosses my way to a successful
> implementation of my connector:
> 
> I can create a new query with my connector, but after the creation
> there is no action at all. Where can I see my created query and how
> do I manage to retrieve the task list?

If you create a query correctly, it should show up in Mylyn's Task List
view as a folder or container for tasks.  Basically, if you're providing
a wizard for your users to create a query, you need to do something like
this to add it to the Task List and synchronize the query results:

@Override
public boolean performFinish () {
	AbstractRepositoryQuery query = myQueryPage.getQuery();
	if (query != null) {
	
TasksUiPlugin.getTaskListManager().getTaskList().addQuery(query);
		AbstractRepositoryConnector connector = 
	
TasksUiPlugin.getRepositoryManager().getRepositoryConnector(
				myRepository.getConnectorKind());
		if (connector != null) {
	
TasksUiPlugin.getSynchronizationManager().synchronize(
				connector, query, null, true);
		}
	}
	return true;
}


For the synchronization to work, your
MytrackerRepositoryConnector.performQuery should do whatever it needs to
do to call the task repository, get results, transform them into
MytrackerTasks (where MytrackerTask extends AbstractTask), and adds them
to the collector.  That is, you should be calling
resultCollector.accept(currentTask) in your performQuery somewhere.
Usually, performQuery hands most of the work off to some sort of
MytrackerClient class that you've written.  

Hope that helps!

-- 
Tom Bryan <tombry@xxxxxxxxx>
Software Engineering Solutions (SES)
Cisco Systems
RTP, NC, USA


Back to the top