### Eclipse Workspace Patch 1.0
#P org.eclipse.jdt.ui
Index: ui/org/eclipse/jdt/internal/ui/workingsets/ConfigureWorkingSetAction.java
===================================================================
RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/workingsets/ConfigureWorkingSetAction.java,v
retrieving revision 1.9
diff -u -r1.9 ConfigureWorkingSetAction.java
--- ui/org/eclipse/jdt/internal/ui/workingsets/ConfigureWorkingSetAction.java 18 Nov 2005 14:45:35 -0000 1.9
+++ ui/org/eclipse/jdt/internal/ui/workingsets/ConfigureWorkingSetAction.java 8 Feb 2006 00:46:03 -0000
@@ -14,6 +14,8 @@
import java.util.Arrays;
import java.util.List;
+import org.eclipse.swt.widgets.Shell;
+
import org.eclipse.jface.action.Action;
import org.eclipse.jface.dialogs.IDialogConstants;
@@ -21,13 +23,18 @@
import org.eclipse.ui.IWorkingSet;
public class ConfigureWorkingSetAction extends Action {
-
- private final IWorkbenchPartSite fSite;
+
private WorkingSetModel fWorkingSetModel;
+ private Shell fShell;
public ConfigureWorkingSetAction(IWorkbenchPartSite site) {
super(WorkingSetMessages.ConfigureWorkingSetAction_label);
- fSite= site;
+ fShell= site.getShell();
+ }
+
+ public ConfigureWorkingSetAction(Shell shell) {
+ super(WorkingSetMessages.ConfigureWorkingSetAction_label);
+ fShell= shell;
}
public void setWorkingSetModel(WorkingSetModel model) {
@@ -39,9 +46,10 @@
*/
public void run() {
List workingSets= new ArrayList(Arrays.asList(fWorkingSetModel.getAllWorkingSets()));
+
IWorkingSet[] activeWorkingSets= fWorkingSetModel.getActiveWorkingSets();
WorkingSetConfigurationDialog dialog= new WorkingSetConfigurationDialog(
- fSite.getShell(),
+ fShell,
(IWorkingSet[])workingSets.toArray(new IWorkingSet[workingSets.size()]),
activeWorkingSets);
dialog.setSelection(activeWorkingSets);
Index: ui/org/eclipse/jdt/internal/ui/workingsets/ViewActionGroup.java
===================================================================
RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/workingsets/ViewActionGroup.java,v
retrieving revision 1.8
diff -u -r1.8 ViewActionGroup.java
--- ui/org/eclipse/jdt/internal/ui/workingsets/ViewActionGroup.java 13 Apr 2005 17:35:11 -0000 1.8
+++ ui/org/eclipse/jdt/internal/ui/workingsets/ViewActionGroup.java 8 Feb 2006 00:46:03 -0000
@@ -45,7 +45,12 @@
public ViewActionGroup(int mode, IPropertyChangeListener changeListener, IWorkbenchPartSite site) {
fChangeListener= changeListener;
- fFilterActionGroup= new WorkingSetFilterActionGroup(site, changeListener);
+ if(fChangeListener == null) {
+ fChangeListener = new IPropertyChangeListener() {
+ public void propertyChange(PropertyChangeEvent event) {}
+ };
+ }
+ fFilterActionGroup= new WorkingSetFilterActionGroup(site, fChangeListener);
fShowActionGroup= new WorkingSetShowActionGroup(site);
fMode= mode;
if (showWorkingSets())
@@ -70,16 +75,24 @@
*/
public void fillActionBars(IActionBars actionBars) {
super.fillActionBars(actionBars);
- fMenuManager= actionBars.getMenuManager();
- IMenuManager showMenu= new MenuManager(WorkingSetMessages.ViewActionGroup_show_label);
- fillShowMenu(showMenu);
- fMenuManager.add(showMenu);
- fMenuManager.add(new Separator(IWorkingSetActionGroup.ACTION_GROUP));
+ if(fMenuManager == null) {
+ fMenuManager= actionBars.getMenuManager();
+ fillViewMenu(fMenuManager);
+ }
+
if (fActiveActionGroup == null)
fActiveActionGroup= fFilterActionGroup;
((ActionGroup)fActiveActionGroup).fillActionBars(actionBars);
}
+ private void fillViewMenu(IMenuManager menu) {
+
+ IMenuManager showMenu= new MenuManager(WorkingSetMessages.ViewActionGroup_show_label);
+ fillShowMenu(showMenu);
+ menu.add(showMenu);
+ menu.add(new Separator(IWorkingSetActionGroup.ACTION_GROUP));
+ }
+
private void fillShowMenu(IMenuManager menu) {
ViewAction projects= new ViewAction(this, SHOW_PROJECTS);
projects.setText(WorkingSetMessages.ViewActionGroup_projects_label);
@@ -116,7 +129,8 @@
}
fActiveActionGroup.fillViewMenu(fMenuManager);
fMenuManager.updateAll(true);
- fChangeListener.propertyChange(event);
+ if(fChangeListener != null)
+ fChangeListener.propertyChange(event);
}
public WorkingSetFilterActionGroup getFilterGroup() {
Index: ui/org/eclipse/jdt/internal/ui/workingsets/WorkingSetModel.java
===================================================================
RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/workingsets/WorkingSetModel.java,v
retrieving revision 1.14
diff -u -r1.14 WorkingSetModel.java
--- ui/org/eclipse/jdt/internal/ui/workingsets/WorkingSetModel.java 26 Jan 2006 14:54:03 -0000 1.14
+++ ui/org/eclipse/jdt/internal/ui/workingsets/WorkingSetModel.java 8 Feb 2006 00:46:03 -0000
@@ -1,13 +1,11 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
+/***************************************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation 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
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
+ *
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
package org.eclipse.jdt.internal.ui.workingsets;
import java.util.ArrayList;
@@ -36,12 +34,12 @@
import org.eclipse.ui.PlatformUI;
public class WorkingSetModel {
-
+
public static final String CHANGE_WORKING_SET_MODEL_CONTENT= "workingSetModelChanged"; //$NON-NLS-1$
-
+
public static final IElementComparer COMPARER= new WorkingSetComparar();
-
- private static final String TAG_LOCAL_WORKING_SET_MANAGER= "localWorkingSetManager"; //$NON-NLS-1$
+
+ public static final String TAG_LOCAL_WORKING_SET_MANAGER= "localWorkingSetManager"; //$NON-NLS-1$
private static final String TAG_ACTIVE_WORKING_SET= "activeWorkingSet"; //$NON-NLS-1$
private static final String TAG_WORKING_SET_NAME= "workingSetName"; //$NON-NLS-1$
private static final String TAG_CONFIGURED= "configured"; //$NON-NLS-1$
@@ -53,28 +51,29 @@
private OthersWorkingSetUpdater fOthersWorkingSetUpdater;
private ElementMapper fElementMapper= new ElementMapper();
-
+
private boolean fConfigured;
private static class WorkingSetComparar implements IElementComparer {
public boolean equals(Object o1, Object o2) {
- IWorkingSet w1= o1 instanceof IWorkingSet ? (IWorkingSet)o1 : null;
- IWorkingSet w2= o2 instanceof IWorkingSet ? (IWorkingSet)o2 : null;
+ IWorkingSet w1= o1 instanceof IWorkingSet ? (IWorkingSet) o1 : null;
+ IWorkingSet w2= o2 instanceof IWorkingSet ? (IWorkingSet) o2 : null;
if (w1 == null || w2 == null)
return o1.equals(o2);
return w1 == w2;
}
+
public int hashCode(Object element) {
if (element instanceof IWorkingSet)
return System.identityHashCode(element);
return element.hashCode();
}
}
-
+
private static class ElementMapper {
private Map fElementToWorkingSet= new HashMap();
private Map fWorkingSetToElement= new IdentityHashMap();
-
+
private Map fResourceToWorkingSet= new HashMap();
public void clear() {
@@ -82,14 +81,16 @@
fWorkingSetToElement.clear();
fResourceToWorkingSet.clear();
}
+
public void rebuild(IWorkingSet[] workingSets) {
clear();
for (int i= 0; i < workingSets.length; i++) {
put(workingSets[i]);
}
}
+
public IAdaptable[] remove(IWorkingSet ws) {
- IAdaptable[] elements= (IAdaptable[])fWorkingSetToElement.remove(ws);
+ IAdaptable[] elements= (IAdaptable[]) fWorkingSetToElement.remove(ws);
if (elements != null) {
for (int i= 0; i < elements.length; i++) {
removeElement(elements[i], ws);
@@ -97,8 +98,9 @@
}
return elements;
}
+
public IAdaptable[] refresh(IWorkingSet ws) {
- IAdaptable[] oldElements= (IAdaptable[])fWorkingSetToElement.get(ws);
+ IAdaptable[] oldElements= (IAdaptable[]) fWorkingSetToElement.get(ws);
if (oldElements == null)
return null;
IAdaptable[] newElements= ws.getElements();
@@ -106,15 +108,16 @@
List toAdd= new ArrayList(Arrays.asList(newElements));
computeDelta(toRemove, toAdd, oldElements, newElements);
for (Iterator iter= toAdd.iterator(); iter.hasNext();) {
- addElement((IAdaptable)iter.next(), ws);
+ addElement((IAdaptable) iter.next(), ws);
}
for (Iterator iter= toRemove.iterator(); iter.hasNext();) {
- removeElement((IAdaptable)iter.next(), ws);
+ removeElement((IAdaptable) iter.next(), ws);
}
if (toRemove.size() > 0 || toAdd.size() > 0)
fWorkingSetToElement.put(ws, newElements);
return oldElements;
}
+
private void computeDelta(List toRemove, List toAdd, IAdaptable[] oldElements, IAdaptable[] newElements) {
for (int i= 0; i < oldElements.length; i++) {
toAdd.remove(oldElements[i]);
@@ -122,20 +125,25 @@
for (int i= 0; i < newElements.length; i++) {
toRemove.remove(newElements[i]);
}
-
+
}
+
public IWorkingSet getFirstWorkingSet(Object element) {
- return (IWorkingSet)getFirstElement(fElementToWorkingSet, element);
+ return (IWorkingSet) getFirstElement(fElementToWorkingSet, element);
}
+
public List getAllWorkingSets(Object element) {
return getAllElements(fElementToWorkingSet, element);
}
+
public IWorkingSet getFirstWorkingSetForResource(IResource resource) {
- return (IWorkingSet)getFirstElement(fResourceToWorkingSet, resource);
+ return (IWorkingSet) getFirstElement(fResourceToWorkingSet, resource);
}
+
public List getAllWorkingSetsForResource(IResource resource) {
return getAllElements(fResourceToWorkingSet, resource);
}
+
private void put(IWorkingSet ws) {
if (fWorkingSetToElement.containsKey(ws))
return;
@@ -145,20 +153,23 @@
addElement(elements[i], ws);
}
}
+
private void addElement(IAdaptable element, IWorkingSet ws) {
addToMap(fElementToWorkingSet, element, ws);
- IResource resource= (IResource)element.getAdapter(IResource.class);
+ IResource resource= (IResource) element.getAdapter(IResource.class);
if (resource != null) {
addToMap(fResourceToWorkingSet, resource, ws);
}
}
+
private void removeElement(IAdaptable element, IWorkingSet ws) {
removeFromMap(fElementToWorkingSet, element, ws);
- IResource resource= (IResource)element.getAdapter(IResource.class);
+ IResource resource= (IResource) element.getAdapter(IResource.class);
if (resource != null) {
removeFromMap(fResourceToWorkingSet, resource, ws);
}
}
+
private void addToMap(Map map, IAdaptable key, IWorkingSet value) {
Object obj= map.get(key);
if (obj == null) {
@@ -169,21 +180,22 @@
l.add(value);
map.put(key, l);
} else if (obj instanceof List) {
- ((List)obj).add(value);
+ ((List) obj).add(value);
}
}
+
private void removeFromMap(Map map, IAdaptable key, IWorkingSet value) {
Object current= map.get(key);
if (current == null) {
return;
} else if (current instanceof List) {
- List list= (List)current;
+ List list= (List) current;
list.remove(value);
switch (list.size()) {
- case 0:
+ case 0 :
map.remove(key);
break;
- case 1:
+ case 1 :
map.put(key, list.get(0));
break;
}
@@ -191,16 +203,18 @@
map.remove(key);
}
}
+
private Object getFirstElement(Map map, Object key) {
Object obj= map.get(key);
- if (obj instanceof List)
- return ((List)obj).get(0);
+ if (obj instanceof List)
+ return ((List) obj).get(0);
return obj;
}
+
private List getAllElements(Map map, Object key) {
Object obj= map.get(key);
if (obj instanceof List)
- return (List)obj;
+ return (List) obj;
if (obj == null)
return Collections.EMPTY_LIST;
List result= new ArrayList(1);
@@ -208,27 +222,27 @@
return result;
}
}
-
+
public WorkingSetModel() {
fLocalWorkingSetManager= PlatformUI.getWorkbench().createLocalWorkingSetManager();
addListenersToWorkingSetManagers();
- fActiveWorkingSets= new ArrayList(2);
-
- IWorkingSet others= fLocalWorkingSetManager.createWorkingSet(WorkingSetMessages.WorkingSetModel_others_name, new IAdaptable[0]);
- others.setId(OthersWorkingSetUpdater.ID);
- fLocalWorkingSetManager.addWorkingSet(others);
- fActiveWorkingSets.add(others);
-
- fOthersWorkingSetUpdater.init(this);
- fElementMapper.rebuild(getActiveWorkingSets());
+ fActiveWorkingSets= new ArrayList(2);
+
+ IWorkingSet others= fLocalWorkingSetManager.createWorkingSet(WorkingSetMessages.WorkingSetModel_others_name, new IAdaptable[0]);
+ others.setId(OthersWorkingSetUpdater.ID);
+ fLocalWorkingSetManager.addWorkingSet(others);
+ fActiveWorkingSets.add(others);
+
+ fOthersWorkingSetUpdater.init(this);
+ fElementMapper.rebuild(getActiveWorkingSets());
}
-
+
public WorkingSetModel(IMemento memento) {
restoreState(memento);
fOthersWorkingSetUpdater.init(this);
- fElementMapper.rebuild(getActiveWorkingSets());
+ fElementMapper.rebuild(getActiveWorkingSets());
}
-
+
private void addListenersToWorkingSetManagers() {
fListeners= new ListenerList(ListenerList.IDENTITY);
fWorkingSetManagerListener= new IPropertyChangeListener() {
@@ -239,7 +253,7 @@
PlatformUI.getWorkbench().getWorkingSetManager().addPropertyChangeListener(fWorkingSetManagerListener);
fLocalWorkingSetManager.addPropertyChangeListener(fWorkingSetManagerListener);
}
-
+
public void dispose() {
if (fWorkingSetManagerListener != null) {
PlatformUI.getWorkbench().getWorkingSetManager().removePropertyChangeListener(fWorkingSetManagerListener);
@@ -248,118 +262,119 @@
fWorkingSetManagerListener= null;
}
}
-
- //---- model relationships ---------------------------------------
-
+
+ // ---- model relationships ---------------------------------------
+
public IAdaptable[] getChildren(IWorkingSet workingSet) {
- return workingSet.getElements();
- }
-
- public Object getParent(Object element) {
- if (element instanceof IWorkingSet && fActiveWorkingSets.contains(element))
- return this;
- return fElementMapper.getFirstWorkingSet(element);
- }
-
- public Object[] getAllParents(Object element) {
- if (element instanceof IWorkingSet && fActiveWorkingSets.contains(element))
- return new Object[] {this};
- return fElementMapper.getAllWorkingSets(element).toArray();
- }
-
- public Object[] addWorkingSets(Object[] elements) {
- List result= null;
- for (int i= 0; i < elements.length; i++) {
- Object element= elements[i];
- List sets= null;
+ return workingSet.getElements();
+ }
+
+ public Object getParent(Object element) {
+ if (element instanceof IWorkingSet && fActiveWorkingSets.contains(element))
+ return this;
+ return fElementMapper.getFirstWorkingSet(element);
+ }
+
+ public Object[] getAllParents(Object element) {
+ if (element instanceof IWorkingSet && fActiveWorkingSets.contains(element))
+ return new Object[]{this};
+ return fElementMapper.getAllWorkingSets(element).toArray();
+ }
+
+ public Object[] addWorkingSets(Object[] elements) {
+ List result= null;
+ for (int i= 0; i < elements.length; i++) {
+ Object element= elements[i];
+ List sets= null;
if (element instanceof IResource) {
- sets= fElementMapper.getAllWorkingSetsForResource((IResource)element);
- } else {
- sets= fElementMapper.getAllWorkingSets(element);
- }
+ sets= fElementMapper.getAllWorkingSetsForResource((IResource) element);
+ } else {
+ sets= fElementMapper.getAllWorkingSets(element);
+ }
if (sets != null && sets.size() > 0) {
if (result == null)
result= new ArrayList(Arrays.asList(elements));
result.addAll(sets);
}
}
- if (result == null)
- return elements;
- return result.toArray();
- }
-
- public boolean needsConfiguration() {
- return !fConfigured && fActiveWorkingSets.size() == 1 &&
- OthersWorkingSetUpdater.ID.equals(((IWorkingSet)fActiveWorkingSets.get(0)).getId());
- }
-
- public void configured() {
- fConfigured= true;
- }
-
- //---- working set management -----------------------------------
-
+ if (result == null)
+ return elements;
+ return result.toArray();
+ }
+
+ public boolean needsConfiguration() {
+ return !fConfigured && fActiveWorkingSets.size() == 1 && OthersWorkingSetUpdater.ID.equals(((IWorkingSet) fActiveWorkingSets.get(0)).getId());
+ }
+
+ public void configured() {
+ fConfigured= true;
+ }
+
+ // ---- working set management -----------------------------------
+
/**
- * Adds a property change listener.
- *
- * @param listener the property change listener to add
- */
- public void addPropertyChangeListener(IPropertyChangeListener listener) {
- fListeners.add(listener);
- }
-
- /**
- * Removes the property change listener.
- *
- * @param listener the property change listener to remove
- */
- public void removePropertyChangeListener(IPropertyChangeListener listener) {
- fListeners.remove(listener);
- }
-
- public IWorkingSet[] getActiveWorkingSets() {
- return (IWorkingSet[])fActiveWorkingSets.toArray(new IWorkingSet[fActiveWorkingSets.size()]);
- }
-
- public IWorkingSet[] getAllWorkingSets() {
- List result= new ArrayList();
- result.addAll(fActiveWorkingSets);
- IWorkingSet[] locals= fLocalWorkingSetManager.getWorkingSets();
- for (int i= 0; i < locals.length; i++) {
+ * Adds a property change listener.
+ *
+ * @param listener
+ * the property change listener to add
+ */
+ public void addPropertyChangeListener(IPropertyChangeListener listener) {
+ fListeners.add(listener);
+ }
+
+ /**
+ * Removes the property change listener.
+ *
+ * @param listener
+ * the property change listener to remove
+ */
+ public void removePropertyChangeListener(IPropertyChangeListener listener) {
+ fListeners.remove(listener);
+ }
+
+ public IWorkingSet[] getActiveWorkingSets() {
+ return (IWorkingSet[]) fActiveWorkingSets.toArray(new IWorkingSet[fActiveWorkingSets.size()]);
+ }
+
+ public IWorkingSet[] getAllWorkingSets() {
+ List result= new ArrayList();
+ result.addAll(fActiveWorkingSets);
+ IWorkingSet[] locals= fLocalWorkingSetManager.getWorkingSets();
+ for (int i= 0; i < locals.length; i++) {
if (!result.contains(locals[i]))
result.add(locals[i]);
}
- IWorkingSet[] globals= PlatformUI.getWorkbench().getWorkingSetManager().getWorkingSets();
- for (int i= 0; i < globals.length; i++) {
+ IWorkingSet[] globals= PlatformUI.getWorkbench().getWorkingSetManager().getWorkingSets();
+ for (int i= 0; i < globals.length; i++) {
if (!result.contains(globals[i]))
result.add(globals[i]);
}
- return (IWorkingSet[])result.toArray(new IWorkingSet[result.size()]);
- }
-
- public void setActiveWorkingSets(IWorkingSet[] workingSets) {
- fActiveWorkingSets= new ArrayList(Arrays.asList(workingSets));
- fElementMapper.rebuild(getActiveWorkingSets());
- fOthersWorkingSetUpdater.updateElements();
- fireEvent(new PropertyChangeEvent(this, CHANGE_WORKING_SET_MODEL_CONTENT, null, null));
- }
-
+ return (IWorkingSet[]) result.toArray(new IWorkingSet[result.size()]);
+ }
+
+ public void setActiveWorkingSets(IWorkingSet[] workingSets) {
+ fActiveWorkingSets= new ArrayList(Arrays.asList(workingSets));
+ fElementMapper.rebuild(getActiveWorkingSets());
+ fOthersWorkingSetUpdater.updateElements();
+ fireEvent(new PropertyChangeEvent(this, CHANGE_WORKING_SET_MODEL_CONTENT, null, null));
+ }
+
public void saveState(IMemento memento) {
memento.putString(TAG_CONFIGURED, Boolean.toString(fConfigured));
fLocalWorkingSetManager.saveState(memento.createChild(TAG_LOCAL_WORKING_SET_MANAGER));
for (Iterator iter= fActiveWorkingSets.iterator(); iter.hasNext();) {
IMemento active= memento.createChild(TAG_ACTIVE_WORKING_SET);
- IWorkingSet workingSet= (IWorkingSet)iter.next();
+ IWorkingSet workingSet= (IWorkingSet) iter.next();
active.putString(TAG_WORKING_SET_NAME, workingSet.getName());
}
}
-
+
private void restoreState(IMemento memento) {
String configured= memento.getString(TAG_CONFIGURED);
if (configured != null)
fConfigured= Boolean.valueOf(configured).booleanValue();
fLocalWorkingSetManager= PlatformUI.getWorkbench().createLocalWorkingSetManager();
- addListenersToWorkingSetManagers();
+ addListenersToWorkingSetManagers();
fLocalWorkingSetManager.restoreState(memento.getChild(TAG_LOCAL_WORKING_SET_MANAGER));
IWorkingSet history= getHistoryWorkingSet();
if (history != null) {
@@ -380,54 +395,54 @@
}
}
}
- private void workingSetManagerChanged(PropertyChangeEvent event) {
+
+ private void workingSetManagerChanged(PropertyChangeEvent event) {
String property= event.getProperty();
- if (IWorkingSetManager.CHANGE_WORKING_SET_UPDATER_INSTALLED.equals(property) && event.getSource() == fLocalWorkingSetManager) {
- IWorkingSetUpdater updater= (IWorkingSetUpdater)event.getNewValue();
+ if (IWorkingSetManager.CHANGE_WORKING_SET_UPDATER_INSTALLED.equals(property) && event.getSource() == fLocalWorkingSetManager) {
+ IWorkingSetUpdater updater= (IWorkingSetUpdater) event.getNewValue();
if (updater instanceof OthersWorkingSetUpdater) {
- fOthersWorkingSetUpdater= (OthersWorkingSetUpdater)updater;
+ fOthersWorkingSetUpdater= (OthersWorkingSetUpdater) updater;
}
return;
}
- // don't handle working sets not managed by the model
- if (!isAffected(event))
- return;
-
+ // don't handle working sets not managed by the model
+ if (!isAffected(event))
+ return;
+
if (IWorkingSetManager.CHANGE_WORKING_SET_CONTENT_CHANGE.equals(property)) {
- IWorkingSet workingSet= (IWorkingSet)event.getNewValue();
+ IWorkingSet workingSet= (IWorkingSet) event.getNewValue();
IAdaptable[] elements= fElementMapper.refresh(workingSet);
if (elements != null) {
fireEvent(event);
}
} else if (IWorkingSetManager.CHANGE_WORKING_SET_REMOVE.equals(property)) {
- IWorkingSet workingSet= (IWorkingSet)event.getOldValue();
+ IWorkingSet workingSet= (IWorkingSet) event.getOldValue();
List elements= new ArrayList(fActiveWorkingSets);
elements.remove(workingSet);
- setActiveWorkingSets((IWorkingSet[])elements.toArray(new IWorkingSet[elements.size()]));
- } else if (IWorkingSetManager.CHANGE_WORKING_SET_NAME_CHANGE.equals(property)) {
+ setActiveWorkingSets((IWorkingSet[]) elements.toArray(new IWorkingSet[elements.size()]));
+ } else if (IWorkingSetManager.CHANGE_WORKING_SET_NAME_CHANGE.equals(property)) {
fireEvent(event);
}
}
-
- private void fireEvent(PropertyChangeEvent event) {
- Object[] listeners= fListeners.getListeners();
- for (int i= 0; i < listeners.length; i++) {
- ((IPropertyChangeListener)listeners[i]).propertyChange(event);
- }
- }
-
- private boolean isAffected(PropertyChangeEvent event) {
- if (fActiveWorkingSets == null)
- return false;
- Object oldValue= event.getOldValue();
- Object newValue= event.getNewValue();
- if ((oldValue != null && fActiveWorkingSets.contains(oldValue))
- || (newValue != null && fActiveWorkingSets.contains(newValue))) {
- return true;
- }
- return false;
- }
-
+
+ private void fireEvent(PropertyChangeEvent event) {
+ Object[] listeners= fListeners.getListeners();
+ for (int i= 0; i < listeners.length; i++) {
+ ((IPropertyChangeListener) listeners[i]).propertyChange(event);
+ }
+ }
+
+ private boolean isAffected(PropertyChangeEvent event) {
+ if (fActiveWorkingSets == null)
+ return false;
+ Object oldValue= event.getOldValue();
+ Object newValue= event.getNewValue();
+ if ((oldValue != null && fActiveWorkingSets.contains(oldValue)) || (newValue != null && fActiveWorkingSets.contains(newValue))) {
+ return true;
+ }
+ return false;
+ }
+
private IWorkingSet getHistoryWorkingSet() {
IWorkingSet[] workingSets= fLocalWorkingSetManager.getWorkingSets();
for (int i= 0; i < workingSets.length; i++) {
Index: ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerContentProvider.java
===================================================================
RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerContentProvider.java,v
retrieving revision 1.50
diff -u -r1.50 PackageExplorerContentProvider.java
--- ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerContentProvider.java 11 Jan 2006 15:49:15 -0000 1.50
+++ ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerContentProvider.java 8 Feb 2006 00:46:03 -0000
@@ -76,14 +76,22 @@
private PackageFragmentProvider fPackageFragmentProvider= new PackageFragmentProvider();
private int fPendingChanges;
- PackageExplorerPart fPart;
+ //PackageExplorerPart fPart;
+
+ /**
+ * Creates a new content provider for Java elements.
+ */
+ public PackageExplorerContentProvider(boolean provideMembers) {
+ super(provideMembers);
+ //fPart= part;
+ }
/**
* Creates a new content provider for Java elements.
*/
public PackageExplorerContentProvider(PackageExplorerPart part, boolean provideMembers) {
super(provideMembers);
- fPart= part;
+ //fPart= part;
}
/* package */ PackageFragmentProvider getPackageFragmentProvider() {
@@ -620,7 +628,7 @@
});
}
- private void postAdd(final Object parent, final Object element) {
+ /* package */ void postAdd(final Object parent, final Object element) {
postRunnable(new Runnable() {
public void run() {
Control ctrl= fViewer.getControl();
@@ -647,7 +655,14 @@
private void postProjectStateChanged(final Object root) {
postRunnable(new Runnable() {
public void run() {
- fPart.projectStateChanged(root);
+ //fPart.projectStateChanged(root);
+ Control ctrl= fViewer.getControl();
+ if (ctrl != null && !ctrl.isDisposed()) {
+ fViewer.refresh(root, true);
+ // trigger a syntetic selection change so that action refresh their
+ // enable state.
+ fViewer.setSelection(fViewer.getSelection());
+ }
}
});
}
Index: plugin.xml
===================================================================
RCS file: /home/eclipse/org.eclipse.jdt.ui/plugin.xml,v
retrieving revision 1.617
diff -u -r1.617 plugin.xml
--- plugin.xml 5 Feb 2006 18:11:23 -0000 1.617
+++ plugin.xml 8 Feb 2006 00:46:02 -0000
@@ -5047,4 +5047,97 @@
+
+
+
+
+ * It provides labels for the packages in hierarchical layout and in all other + * cases delegates it to its super class. + *
+ * + * @since 2.1 + */ +public class PreferenceAwareLabelProvider implements ICommonLabelProvider { + + private final long LABEL_FLAGS = JavaElementLabels.DEFAULT_QUALIFIED + | JavaElementLabels.ROOT_POST_QUALIFIED + | JavaElementLabels.APPEND_ROOT_PATH + | JavaElementLabels.M_PARAMETER_TYPES + | JavaElementLabels.M_PARAMETER_NAMES + | JavaElementLabels.M_APP_RETURNTYPE + | JavaElementLabels.M_EXCEPTIONS + | JavaElementLabels.F_APP_TYPE_SIGNATURE + | JavaElementLabels.T_TYPE_PARAMETERS; + + private PackageExplorerLabelProvider delegeteLabelProvider; + + private PackageExplorerContentProvider fContentProvider; + + private IExtensionStateModel fStateModel; + + public PreferenceAwareLabelProvider() { + + } + + public void init(IExtensionStateModel aStateModel, + ITreeContentProvider contentProvider) { + fStateModel = aStateModel; + + fContentProvider = (PackageExplorerContentProvider) contentProvider; + delegeteLabelProvider = createLabelProvider(); + + delegeteLabelProvider.setIsFlatLayout(fStateModel + .getBooleanProperty(Values.IS_LAYOUT_FLAT)); + fStateModel.addPropertyChangeListener(new IPropertyChangeListener() { + public void propertyChange(PropertyChangeEvent event) { + if (Values.IS_LAYOUT_FLAT.equals(event.getProperty())) { + if (event.getNewValue() != null) { + boolean newValue = ((Boolean) event.getNewValue()) + .booleanValue() ? true : false; + delegeteLabelProvider.setIsFlatLayout(newValue); + } + } + + } + }); + } + + public String getDescription(Object anElement) { + return formatMessage(anElement); + } + + private PackageExplorerLabelProvider createLabelProvider() { + + return new PackageExplorerLabelProvider( + AppearanceAwareLabelProvider.DEFAULT_TEXTFLAGS + | JavaElementLabels.P_COMPRESSED, + AppearanceAwareLabelProvider.DEFAULT_IMAGEFLAGS + | JavaElementImageProvider.SMALL_ICONS, + fContentProvider); + + } + + public void dispose() { + delegeteLabelProvider.dispose(); + } + + public void propertyChange(PropertyChangeEvent event) { + delegeteLabelProvider.propertyChange(event); + } + + public void addLabelDecorator(ILabelDecorator decorator) { + delegeteLabelProvider.addLabelDecorator(decorator); + } + + public void addListener(ILabelProviderListener listener) { + delegeteLabelProvider.addListener(listener); + } + + public Color getBackground(Object element) { + return delegeteLabelProvider.getBackground(element); + } + + public Color getForeground(Object element) { + return delegeteLabelProvider.getForeground(element); + } + + public Image getImage(Object element) { + return delegeteLabelProvider.getImage(element); + } + + public boolean isLabelProperty(Object element, String property) { + return delegeteLabelProvider.isLabelProperty(element, property); + } + + public void removeListener(ILabelProviderListener listener) { + delegeteLabelProvider.removeListener(listener); + } + + public boolean equals(Object obj) { + return delegeteLabelProvider.equals(obj); + } + + public int hashCode() { + return delegeteLabelProvider.hashCode(); + } + + public String toString() { + return delegeteLabelProvider.toString(); + } + + public String getText(Object element) { + return delegeteLabelProvider.getText(element); + } + + public void setIsFlatLayout(boolean state) { + delegeteLabelProvider.setIsFlatLayout(state); + } + + // Taken from StatusBarUpdater + + protected String formatMessage(Object element) { + if (element instanceof IJavaElement) { + return formatJavaElementMessage((IJavaElement) element); + } else if (element instanceof IResource) { + return formatResourceMessage((IResource) element); + } + return ""; //$NON-NLS-1$ + } + + private String formatJavaElementMessage(IJavaElement element) { + return JavaElementLabels.getElementLabel(element, LABEL_FLAGS); + } + + private String formatResourceMessage(IResource element) { + IContainer parent = element.getParent(); + if (parent != null && parent.getType() != IResource.ROOT) + return element.getName() + JavaElementLabels.CONCAT_STRING + + parent.getFullPath().makeRelative().toString(); + else + return element.getName(); + } + + public void restoreState(IMemento aMemento) { + + } + + public void saveState(IMemento aMemento) { + + } +} Index: ui/org/eclipse/jdt/internal/ui/packageview/IExtensionStateConstants.java =================================================================== RCS file: ui/org/eclipse/jdt/internal/ui/packageview/IExtensionStateConstants.java diff -N ui/org/eclipse/jdt/internal/ui/packageview/IExtensionStateConstants.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ ui/org/eclipse/jdt/internal/ui/packageview/IExtensionStateConstants.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,23 @@ +/*************************************************************************************************** + * Copyright (c) 2003, 2004 IBM Corporation 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 + * + * Contributors: IBM Corporation - initial API and implementation + **************************************************************************************************/ +package org.eclipse.jdt.internal.ui.packageview; + + +public interface IExtensionStateConstants { + + String ROOT_MODE= "rootMode"; //$NON-NLS-1$ + + interface Values { + + String IS_LAYOUT_FLAT= "isLayoutFlat"; //$NON-NLS-1$ + + + } + +}