Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.debug.ui/plugin.xml2
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIAdapterFactory.java14
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/DebugUIViewsMessages.properties1
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointContainerWorkbenchAdapter.java62
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointSetOrganizer.java10
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointsLabelProvider.java17
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/WorkingSetCategory.java55
7 files changed, 140 insertions, 21 deletions
diff --git a/org.eclipse.debug.ui/plugin.xml b/org.eclipse.debug.ui/plugin.xml
index 7e107e3b0..8a65de9a8 100644
--- a/org.eclipse.debug.ui/plugin.xml
+++ b/org.eclipse.debug.ui/plugin.xml
@@ -2375,6 +2375,7 @@ M4 = Platform-specific fourth key
class="org.eclipse.debug.internal.ui.DebugUIAdapterFactory"
adaptableType="org.eclipse.debug.internal.ui.views.breakpoints.BreakpointContainer">
<adapter type="org.eclipse.ui.model.IWorkbenchAdapter"/>
+ <adapter type="org.eclipse.ui.model.IWorkbenchAdapter2"/>
</factory>
<factory
class="org.eclipse.debug.internal.ui.DebugUIAdapterFactory"
@@ -2390,6 +2391,7 @@ M4 = Platform-specific fourth key
class="org.eclipse.debug.internal.ui.DebugUIAdapterFactory"
adaptableType="org.eclipse.debug.internal.ui.views.breakpoints.WorkingSetCategory">
<adapter type="org.eclipse.ui.model.IWorkbenchAdapter"/>
+ <adapter type="org.eclipse.ui.model.IWorkbenchAdapter2"/>
</factory>
</extension>
<extension
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIAdapterFactory.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIAdapterFactory.java
index 2dae4b78e..de198c9c3 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIAdapterFactory.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIAdapterFactory.java
@@ -17,11 +17,12 @@ import org.eclipse.debug.core.ILaunchConfigurationType;
import org.eclipse.debug.core.model.IBreakpoint;
import org.eclipse.debug.internal.ui.launchConfigurations.PersistableLaunchConfigurationFactory;
import org.eclipse.debug.internal.ui.launchConfigurations.PersistableLaunchConfigurationTypeFactory;
+import org.eclipse.debug.internal.ui.views.breakpoints.BreakpointContainer;
import org.eclipse.debug.internal.ui.views.breakpoints.BreakpointContainerWorkbenchAdapter;
import org.eclipse.debug.internal.ui.views.breakpoints.BreakpointPersistableElementAdapter;
-import org.eclipse.debug.internal.ui.views.breakpoints.BreakpointContainer;
import org.eclipse.ui.IPersistableElement;
import org.eclipse.ui.model.IWorkbenchAdapter;
+import org.eclipse.ui.model.IWorkbenchAdapter2;
public class DebugUIAdapterFactory implements IAdapterFactory {
@@ -52,6 +53,15 @@ public class DebugUIAdapterFactory implements IAdapterFactory {
}
}
+ if (adapterType == IWorkbenchAdapter2.class) {
+ if (obj instanceof IWorkbenchAdapter2) {
+ return obj;
+ }
+ if (obj instanceof BreakpointContainer) {
+ return new BreakpointContainerWorkbenchAdapter();
+ }
+ }
+
return null;
}
@@ -59,7 +69,7 @@ public class DebugUIAdapterFactory implements IAdapterFactory {
* @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
*/
public Class[] getAdapterList() {
- return new Class[] {IPersistableElement.class};
+ return new Class[] {IPersistableElement.class, IWorkbenchAdapter.class, IWorkbenchAdapter2.class};
}
}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/DebugUIViewsMessages.properties b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/DebugUIViewsMessages.properties
index 387e42ae9..e5796e9df 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/DebugUIViewsMessages.properties
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/DebugUIViewsMessages.properties
@@ -69,3 +69,4 @@ AbstractDebugEventHandler.0=Update Debug View
IncrementalDeferredTreeContentManager.0=Replace children
IncrementalDeferredTreeContentManager.1=Prune children
OtherBreakpointOrganizer.0=Others
+WorkingSetCategory.0=\ (default)
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointContainerWorkbenchAdapter.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointContainerWorkbenchAdapter.java
index acee73f49..d8da389f6 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointContainerWorkbenchAdapter.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointContainerWorkbenchAdapter.java
@@ -12,13 +12,15 @@ package org.eclipse.debug.internal.ui.views.breakpoints;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IWorkingSet;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.RGB;
import org.eclipse.ui.model.IWorkbenchAdapter;
+import org.eclipse.ui.model.IWorkbenchAdapter2;
/**
* BreakpointContainerWorkbenchAdapter
*/
-public class BreakpointContainerWorkbenchAdapter implements IWorkbenchAdapter {
+public class BreakpointContainerWorkbenchAdapter implements IWorkbenchAdapter, IWorkbenchAdapter2{
/* (non-Javadoc)
* @see org.eclipse.ui.model.IWorkbenchAdapter#getChildren(java.lang.Object)
@@ -39,11 +41,6 @@ public class BreakpointContainerWorkbenchAdapter implements IWorkbenchAdapter {
if (adapter != null) {
return adapter.getImageDescriptor(category);
}
- // TODO: this should really be handled by an IWorkingSet workbench adapater
- if (category instanceof IWorkingSet) {
- IWorkingSet set = (IWorkingSet) category;
- return set.getImage();
- }
return container.getOrganizer().getImageDescriptor();
}
return null;
@@ -60,11 +57,6 @@ public class BreakpointContainerWorkbenchAdapter implements IWorkbenchAdapter {
if (adapter != null) {
return adapter.getLabel(category);
}
-// TODO: this should really be handled by an IWorkingSet workbench adapater
- if (category instanceof IWorkingSet) {
- IWorkingSet set = (IWorkingSet) category;
- return set.getName();
- }
return container.getOrganizer().getLabel();
}
return ""; //$NON-NLS-1$
@@ -74,7 +66,51 @@ public class BreakpointContainerWorkbenchAdapter implements IWorkbenchAdapter {
* @see org.eclipse.ui.model.IWorkbenchAdapter#getParent(java.lang.Object)
*/
public Object getParent(Object o) {
- // not used
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.model.IWorkbenchAdapter2#getForeground(java.lang.Object)
+ */
+ public RGB getForeground(Object object) {
+ if (object instanceof BreakpointContainer) {
+ BreakpointContainer container = (BreakpointContainer) object;
+ IAdaptable category = container.getCategory();
+ IWorkbenchAdapter2 adapter = (IWorkbenchAdapter2) category.getAdapter(IWorkbenchAdapter2.class);
+ if (adapter != null) {
+ return adapter.getForeground(category);
+ }
+ }
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.model.IWorkbenchAdapter2#getBackground(java.lang.Object)
+ */
+ public RGB getBackground(Object object) {
+ if (object instanceof BreakpointContainer) {
+ BreakpointContainer container = (BreakpointContainer) object;
+ IAdaptable category = container.getCategory();
+ IWorkbenchAdapter2 adapter = (IWorkbenchAdapter2) category.getAdapter(IWorkbenchAdapter2.class);
+ if (adapter != null) {
+ return adapter.getBackground(category);
+ }
+ }
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.model.IWorkbenchAdapter2#getFont(java.lang.Object)
+ */
+ public FontData getFont(Object object) {
+ if (object instanceof BreakpointContainer) {
+ BreakpointContainer container = (BreakpointContainer) object;
+ IAdaptable category = container.getCategory();
+ IWorkbenchAdapter2 adapter = (IWorkbenchAdapter2) category.getAdapter(IWorkbenchAdapter2.class);
+ if (adapter != null) {
+ return adapter.getFont(category);
+ }
+ }
return null;
}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointSetOrganizer.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointSetOrganizer.java
index 228b6be28..393c85b97 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointSetOrganizer.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointSetOrganizer.java
@@ -42,6 +42,7 @@ public class BreakpointSetOrganizer extends AbstractBreakpointOrganizer implemen
*/
public BreakpointSetOrganizer() {
PlatformUI.getWorkbench().getWorkingSetManager().addPropertyChangeListener(this);
+ DebugUIPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(this);
DebugPlugin.getDefault().getBreakpointManager().addBreakpointListener(this);
}
@@ -74,6 +75,7 @@ public class BreakpointSetOrganizer extends AbstractBreakpointOrganizer implemen
public void dispose() {
PlatformUI.getWorkbench().getWorkingSetManager().removePropertyChangeListener(this);
DebugPlugin.getDefault().getBreakpointManager().removeBreakpointListener(this);
+ DebugUIPlugin.getDefault().getPreferenceStore().removePropertyChangeListener(this);
super.dispose();
}
@@ -90,6 +92,14 @@ public class BreakpointSetOrganizer extends AbstractBreakpointOrganizer implemen
if (set != null && IInternalDebugUIConstants.ID_BREAKPOINT_WORKINGSET.equals(set.getId())) {
fireCategoryChanged(new WorkingSetCategory(set));
}
+ if (event.getProperty().equals(IInternalDebugUIConstants.MEMENTO_BREAKPOINT_WORKING_SET_NAME)) {
+ IWorkingSet defaultWorkingSet = getDefaultWorkingSet();
+ if (defaultWorkingSet != null) {
+ fireCategoryChanged(new WorkingSetCategory(defaultWorkingSet));
+ } else {
+ fireCategoryChanged(null);
+ }
+ }
}
/* (non-Javadoc)
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointsLabelProvider.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointsLabelProvider.java
index 41f22a32d..4162cf330 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointsLabelProvider.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/BreakpointsLabelProvider.java
@@ -13,17 +13,18 @@ package org.eclipse.debug.internal.ui.views.breakpoints;
import org.eclipse.debug.core.model.IBreakpoint;
import org.eclipse.debug.ui.DebugUITools;
import org.eclipse.debug.ui.IDebugModelPresentation;
-import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.IFontProvider;
import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.model.WorkbenchLabelProvider;
/**
* Label provider for the breakpoints view
*/
-public class BreakpointsLabelProvider extends LabelProvider {
+public class BreakpointsLabelProvider extends LabelProvider implements IFontProvider {
- private ILabelProvider fWorkbenchLabelProvider;
+ private WorkbenchLabelProvider fWorkbenchLabelProvider;
private IDebugModelPresentation fPresentation;
/**
@@ -62,4 +63,14 @@ public class BreakpointsLabelProvider extends LabelProvider {
}
return fWorkbenchLabelProvider.getText(element);
}
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.IFontProvider#getFont(java.lang.Object)
+ */
+ public Font getFont(Object element) {
+ if (element instanceof IBreakpoint) {
+ return null;
+ }
+ return fWorkbenchLabelProvider.getFont(element);
+ }
}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/WorkingSetCategory.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/WorkingSetCategory.java
index 61fab8313..0ad478c32 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/WorkingSetCategory.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/breakpoints/WorkingSetCategory.java
@@ -11,14 +11,20 @@
package org.eclipse.debug.internal.ui.views.breakpoints;
import org.eclipse.core.runtime.PlatformObject;
+import org.eclipse.debug.internal.ui.views.DebugUIViewsMessages;
import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.RGB;
import org.eclipse.ui.IWorkingSet;
import org.eclipse.ui.model.IWorkbenchAdapter;
+import org.eclipse.ui.model.IWorkbenchAdapter2;
/**
- * WorkingSetCategory
+ * Represents a breakpoint category for a specific working set.
*/
-public class WorkingSetCategory extends PlatformObject implements IWorkbenchAdapter {
+public class WorkingSetCategory extends PlatformObject implements IWorkbenchAdapter, IWorkbenchAdapter2 {
private IWorkingSet fWorkingSet;
@@ -49,7 +55,11 @@ public class WorkingSetCategory extends PlatformObject implements IWorkbenchAdap
* @see org.eclipse.ui.model.IWorkbenchAdapter#getLabel(java.lang.Object)
*/
public String getLabel(Object o) {
- return fWorkingSet.getName();
+ StringBuffer name = new StringBuffer(fWorkingSet.getName());
+ if (isDefault()) {
+ name.append(DebugUIViewsMessages.getString("WorkingSetCategory.0")); //$NON-NLS-1$
+ }
+ return name.toString();
}
/* (non-Javadoc)
@@ -85,4 +95,43 @@ public class WorkingSetCategory extends PlatformObject implements IWorkbenchAdap
public int hashCode() {
return fWorkingSet.hashCode();
}
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.model.IWorkbenchAdapter2#getForeground(java.lang.Object)
+ */
+ public RGB getForeground(Object element) {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.model.IWorkbenchAdapter2#getBackground(java.lang.Object)
+ */
+ public RGB getBackground(Object element) {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.model.IWorkbenchAdapter2#getFont(java.lang.Object)
+ */
+ public FontData getFont(Object element) {
+ if (isDefault()) {
+ FontData[] fontData = JFaceResources.getDefaultFont().getFontData();
+ if (fontData != null && fontData.length > 0) {
+ FontData data = fontData[0];
+ data.setStyle(SWT.BOLD);
+ return data;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Whether this is the default breakpoint working set.
+ *
+ * @return whether this is the default breakpoint working set
+ */
+ private boolean isDefault() {
+ return fWorkingSet.equals(BreakpointSetOrganizer.getDefaultWorkingSet());
+ }
}
+

Back to the top