Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 65991 Details for
Bug 153573
support filtering top level task list elements, e.g. via working sets
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
memento support
clipboard17046.txt (text/plain), 8.27 KB, created by
Eugene Kuleshov
on 2007-05-04 23:50:46 EDT
(
hide
)
Description:
memento support
Filename:
MIME Type:
Creator:
Eugene Kuleshov
Created:
2007-05-04 23:50:46 EDT
Size:
8.27 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.mylar.tasks.ui >Index: src/org/eclipse/mylar/internal/tasks/ui/workingset/TaskWorkingSetUpdater.java >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.mylar/org.eclipse.mylar.tasks.ui/src/org/eclipse/mylar/internal/tasks/ui/workingset/TaskWorkingSetUpdater.java,v >retrieving revision 1.2 >diff -u -r1.2 TaskWorkingSetUpdater.java >--- src/org/eclipse/mylar/internal/tasks/ui/workingset/TaskWorkingSetUpdater.java 5 May 2007 02:05:21 -0000 1.2 >+++ src/org/eclipse/mylar/internal/tasks/ui/workingset/TaskWorkingSetUpdater.java 5 May 2007 03:45:43 -0000 >@@ -16,6 +16,7 @@ > import org.eclipse.mylar.tasks.core.AbstractTaskContainer; > import org.eclipse.mylar.tasks.core.ITask; > import org.eclipse.mylar.tasks.core.ITaskListChangeListener; >+import org.eclipse.mylar.tasks.core.ITaskListElement; > import org.eclipse.mylar.tasks.ui.TasksUiPlugin; > import org.eclipse.ui.IWorkingSet; > import org.eclipse.ui.IWorkingSetUpdater; >@@ -35,12 +36,27 @@ > // IWorkingSetUpdater > > public void add(IWorkingSet workingSet) { >- // checkElementExistence(workingSet); >+ checkElementExistence(workingSet); > synchronized (workingSets) { > workingSets.add(workingSet); > } > } > >+ private void checkElementExistence(IWorkingSet workingSet) { >+ ArrayList<IAdaptable> list = new ArrayList<IAdaptable>(); >+ for (IAdaptable adaptable : workingSet.getElements()) { >+ if (adaptable instanceof AbstractTaskContainer) { >+ String handle = ((AbstractTaskContainer) adaptable).getHandleIdentifier(); >+ for (ITaskListElement element : TasksUiPlugin.getTaskListManager().getTaskList().getRootElements()) { >+ if (element instanceof AbstractTaskContainer && element.getHandleIdentifier().equals(handle)) { >+ list.add(adaptable); >+ } >+ } >+ } >+ } >+ workingSet.setElements(list.toArray(new IAdaptable[list.size()])); >+ } >+ > public boolean contains(IWorkingSet workingSet) { > synchronized(workingSets) { > return workingSets.contains(workingSet); >Index: plugin.xml >=================================================================== >RCS file: /cvsroot/technology/org.eclipse.mylar/org.eclipse.mylar.tasks.ui/plugin.xml,v >retrieving revision 1.210 >diff -u -r1.210 plugin.xml >--- plugin.xml 5 May 2007 02:05:22 -0000 1.210 >+++ plugin.xml 5 May 2007 03:45:43 -0000 >@@ -788,14 +788,31 @@ > <extension > point="org.eclipse.ui.workingSets"> > <workingSet >- elementAdapterClass="org.eclipse.mylar.internal.tasks.ui.workingset.TaskWorkingSetElementAdapter" >+ elementAdapterClass="org.eclipse.mylar.internal.tasks.ui.workingset.TaskWorkingSetElementAdapter" > icon="icons/etool16/open-task.gif" >- id="org.eclipse.mylar.tasks.ui.workingSet" >- name="Tasks" >- pageClass="org.eclipse.mylar.internal.tasks.ui.workingset.TaskWorkingSetPage" >- updaterClass="org.eclipse.mylar.internal.tasks.ui.workingset.TaskWorkingSetUpdater"> >+ id="org.eclipse.mylar.tasks.ui.workingSet" >+ name="Tasks" >+ pageClass="org.eclipse.mylar.internal.tasks.ui.workingset.TaskWorkingSetPage" >+ updaterClass="org.eclipse.mylar.internal.tasks.ui.workingset.TaskWorkingSetUpdater"> > </workingSet> > </extension> >+ <extension >+ point="org.eclipse.core.runtime.adapters"> >+ <factory >+ adaptableType="org.eclipse.mylar.tasks.core.AbstractTaskContainer" >+ class="org.eclipse.mylar.internal.tasks.ui.workingset.TaskAdapterFactory"> >+ <adapter >+ type="org.eclipse.ui.IPersistableElement"> >+ </adapter> >+ </factory> >+ </extension> >+ <extension >+ point="org.eclipse.ui.elementFactories"> >+ <factory >+ class="org.eclipse.mylar.internal.tasks.ui.workingset.TaskElementFactory" >+ id="org.eclipse.mylar.tasks.ui.elementFactory"> >+ </factory> >+ </extension> > > </plugin> > >Index: src/org/eclipse/mylar/internal/tasks/ui/workingset/TaskAdapterFactory.java >=================================================================== >RCS file: src/org/eclipse/mylar/internal/tasks/ui/workingset/TaskAdapterFactory.java >diff -N src/org/eclipse/mylar/internal/tasks/ui/workingset/TaskAdapterFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/mylar/internal/tasks/ui/workingset/TaskAdapterFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,52 @@ >+/******************************************************************************* >+ * Copyright (c) 2004 - 2006 Mylar committers and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ *******************************************************************************/ >+ >+package org.eclipse.mylar.internal.tasks.ui.workingset; >+ >+import org.eclipse.core.runtime.IAdapterFactory; >+import org.eclipse.mylar.tasks.core.AbstractTaskContainer; >+import org.eclipse.ui.IMemento; >+import org.eclipse.ui.IPersistableElement; >+ >+/** >+ * Adapter factory used to adapt AbstractTaskContainer to IPersistableElement >+ * >+ * @author Eugene Kuleshov >+ */ >+public class TaskAdapterFactory implements IAdapterFactory { >+ >+ private static final String TASK_ELEMENT_FACTORY_ID = "org.eclipse.mylar.tasks.ui.elementFactory"; >+ >+ @SuppressWarnings("unchecked") >+ private static final Class[] ADAPTER_TYPES = new Class[] { IPersistableElement.class }; >+ >+ @SuppressWarnings("unchecked") >+ public Class[] getAdapterList() { >+ return ADAPTER_TYPES; >+ } >+ >+ public Object getAdapter(final Object adaptableObject, @SuppressWarnings("unchecked") Class adapterType) { >+ if (adapterType == IPersistableElement.class && adaptableObject instanceof AbstractTaskContainer) { >+ // >+ return new IPersistableElement() { >+ public void saveState(IMemento memento) { >+ AbstractTaskContainer container = (AbstractTaskContainer) adaptableObject; >+ memento.putString(TaskElementFactory.HANDLE_ID, container.getHandleIdentifier()); >+ } >+ >+ public String getFactoryId() { >+ return TASK_ELEMENT_FACTORY_ID; >+ } >+ }; >+ } >+ >+ return null; >+ } >+ >+} >+ >Index: src/org/eclipse/mylar/internal/tasks/ui/workingset/TaskElementFactory.java >=================================================================== >RCS file: src/org/eclipse/mylar/internal/tasks/ui/workingset/TaskElementFactory.java >diff -N src/org/eclipse/mylar/internal/tasks/ui/workingset/TaskElementFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/mylar/internal/tasks/ui/workingset/TaskElementFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,40 @@ >+/******************************************************************************* >+ * Copyright (c) 2004 - 2006 Mylar committers and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ *******************************************************************************/ >+ >+package org.eclipse.mylar.internal.tasks.ui.workingset; >+ >+import org.eclipse.core.runtime.IAdaptable; >+import org.eclipse.mylar.tasks.core.AbstractTaskContainer; >+import org.eclipse.mylar.tasks.core.ITaskListElement; >+import org.eclipse.mylar.tasks.core.TaskList; >+import org.eclipse.mylar.tasks.ui.TasksUiPlugin; >+import org.eclipse.ui.IElementFactory; >+import org.eclipse.ui.IMemento; >+ >+/** >+ * Element factory used to restore task containers for working sets >+ * >+ * @author Eugene Kuleshov >+ */ >+public class TaskElementFactory implements IElementFactory { >+ >+ public static final String HANDLE_ID = "handle"; >+ >+ public IAdaptable createElement(IMemento memento) { >+ TaskList taskList = TasksUiPlugin.getTaskListManager().getTaskList(); >+ >+ String handle = memento.getString(HANDLE_ID); >+ for (ITaskListElement element : taskList.getRootElements()) { >+ if (element instanceof AbstractTaskContainer && element.getHandleIdentifier().equals(handle)) { >+ return (IAdaptable) element; >+ } >+ } >+ return null; >+ } >+ >+}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 153573
:
65721
|
65722
|
65986
| 65991 |
65992