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 43294 Details for
Bug 120606
[variables] Static variables disappeared after clicking a variable
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]
patch
bug120606.patch (text/plain), 28.09 KB, created by
Darin Wright
on 2006-06-01 15:18:20 EDT
(
hide
)
Description:
patch
Filename:
MIME Type:
Creator:
Darin Wright
Created:
2006-06-01 15:18:20 EDT
Size:
28.09 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.debug.ui >Index: ui/org/eclipse/jdt/internal/debug/ui/actions/ShowStaticVariablesAction.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowStaticVariablesAction.java,v >retrieving revision 1.5 >diff -u -r1.5 ShowStaticVariablesAction.java >--- ui/org/eclipse/jdt/internal/debug/ui/actions/ShowStaticVariablesAction.java 24 Feb 2005 15:25:56 -0000 1.5 >+++ ui/org/eclipse/jdt/internal/debug/ui/actions/ShowStaticVariablesAction.java 1 Jun 2006 19:20:07 -0000 >@@ -11,16 +11,12 @@ > package org.eclipse.jdt.internal.debug.ui.actions; > > >-import org.eclipse.debug.core.DebugException; >-import org.eclipse.jdt.debug.core.IJavaVariable; > import org.eclipse.jdt.internal.debug.ui.IJDIPreferencesConstants; >-import org.eclipse.jdt.internal.debug.ui.JDIDebugUIPlugin; >-import org.eclipse.jface.viewers.Viewer; > > /** > * Shows non-final static variables > */ >-public class ShowStaticVariablesAction extends ViewFilterAction { >+public class ShowStaticVariablesAction extends ToggleViewBooleanPreferenceAction { > > public ShowStaticVariablesAction() { > super(); >@@ -33,21 +29,4 @@ > return IJDIPreferencesConstants.PREF_SHOW_STATIC_VARIALBES; > } > >- /** >- * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) >- */ >- public boolean select(Viewer viewer, Object parentElement, Object element) { >- if (element instanceof IJavaVariable) { >- IJavaVariable variable = (IJavaVariable)element; >- try { >- if (!getValue()) { >- // when not on, filter non-static finals >- return !(variable.isStatic() && !variable.isFinal()); >- } >- } catch (DebugException e) { >- JDIDebugUIPlugin.log(e); >- } >- } >- return true; >- } > } >Index: ui/org/eclipse/jdt/internal/debug/ui/actions/ShowNullArrayEntriesAction.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowNullArrayEntriesAction.java,v >retrieving revision 1.4 >diff -u -r1.4 ShowNullArrayEntriesAction.java >--- ui/org/eclipse/jdt/internal/debug/ui/actions/ShowNullArrayEntriesAction.java 24 Feb 2005 15:25:56 -0000 1.4 >+++ ui/org/eclipse/jdt/internal/debug/ui/actions/ShowNullArrayEntriesAction.java 1 Jun 2006 19:20:07 -0000 >@@ -11,17 +11,12 @@ > package org.eclipse.jdt.internal.debug.ui.actions; > > >-import org.eclipse.debug.core.DebugException; >-import org.eclipse.jdt.debug.core.IJavaDebugTarget; >-import org.eclipse.jdt.internal.debug.core.model.JDIArrayEntryVariable; > import org.eclipse.jdt.internal.debug.ui.IJDIPreferencesConstants; >-import org.eclipse.jdt.internal.debug.ui.JDIDebugUIPlugin; >-import org.eclipse.jface.viewers.Viewer; > > /** > * Shows non-final static variables > */ >-public class ShowNullArrayEntriesAction extends ViewFilterAction { >+public class ShowNullArrayEntriesAction extends ToggleViewBooleanPreferenceAction { > > public ShowNullArrayEntriesAction() { > super(); >@@ -34,22 +29,4 @@ > return IJDIPreferencesConstants.PREF_SHOW_NULL_ARRAY_ENTRIES; > } > >- /** >- * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) >- */ >- public boolean select(Viewer viewer, Object parentElement, Object element) { >- if (getValue()) { >- // when on, filter nothing >- return true; >- } >- if (element instanceof JDIArrayEntryVariable) { >- JDIArrayEntryVariable variable = (JDIArrayEntryVariable)element; >- try { >- return !variable.getValue().equals(((IJavaDebugTarget)variable.getDebugTarget()).nullValue()); >- } catch (DebugException e) { >- JDIDebugUIPlugin.log(e); >- } >- } >- return true; >- } > } >Index: ui/org/eclipse/jdt/internal/debug/ui/actions/ShowConstantsAction.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/actions/ShowConstantsAction.java,v >retrieving revision 1.5 >diff -u -r1.5 ShowConstantsAction.java >--- ui/org/eclipse/jdt/internal/debug/ui/actions/ShowConstantsAction.java 24 Feb 2005 15:25:56 -0000 1.5 >+++ ui/org/eclipse/jdt/internal/debug/ui/actions/ShowConstantsAction.java 1 Jun 2006 19:20:07 -0000 >@@ -11,16 +11,12 @@ > package org.eclipse.jdt.internal.debug.ui.actions; > > >-import org.eclipse.debug.core.DebugException; >-import org.eclipse.jdt.debug.core.IJavaVariable; > import org.eclipse.jdt.internal.debug.ui.IJDIPreferencesConstants; >-import org.eclipse.jdt.internal.debug.ui.JDIDebugUIPlugin; >-import org.eclipse.jface.viewers.Viewer; > > /** > * Shows static final variables (constants) > */ >-public class ShowConstantsAction extends ViewFilterAction { >+public class ShowConstantsAction extends ToggleViewBooleanPreferenceAction { > > public ShowConstantsAction() { > super(); >@@ -33,21 +29,4 @@ > return IJDIPreferencesConstants.PREF_SHOW_CONSTANTS; > } > >- /** >- * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) >- */ >- public boolean select(Viewer viewer, Object parentElement, Object element) { >- if (element instanceof IJavaVariable) { >- IJavaVariable variable = (IJavaVariable)element; >- try { >- if (!getValue()) { >- // when not on, filter static finals >- return !(variable.isStatic() && variable.isFinal()); >- } >- } catch (DebugException e) { >- JDIDebugUIPlugin.log(e); >- } >- } >- return true; >- } > } >Index: ui/org/eclipse/jdt/internal/debug/ui/JDIDebugUIPlugin.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIDebugUIPlugin.java,v >retrieving revision 1.122 >diff -u -r1.122 JDIDebugUIPlugin.java >--- ui/org/eclipse/jdt/internal/debug/ui/JDIDebugUIPlugin.java 8 May 2006 20:35:07 -0000 1.122 >+++ ui/org/eclipse/jdt/internal/debug/ui/JDIDebugUIPlugin.java 1 Jun 2006 19:20:07 -0000 >@@ -61,6 +61,7 @@ > import org.eclipse.jdt.internal.debug.ui.sourcelookup.JavaDebugShowInAdapterFactory; > import org.eclipse.jdt.internal.debug.ui.threadgroups.JavaDebugElementLabelAdapterFactory; > import org.eclipse.jdt.internal.debug.ui.variables.ColumnPresentationAdapterFactory; >+import org.eclipse.jdt.internal.debug.ui.variables.JavaVariableContentAdapterFactory; > import org.eclipse.jdt.internal.launching.DefaultProjectClasspathEntry; > import org.eclipse.jdt.launching.sourcelookup.IJavaSourceLocation; > import org.eclipse.jdt.ui.JavaElementLabelProvider; >@@ -331,6 +332,9 @@ > > IAdapterFactory entryFactory = new ClasspathEntryAdapterFactory(); > manager.registerAdapters(entryFactory, DefaultProjectClasspathEntry.class); >+ >+ IAdapterFactory contentFactory = new JavaVariableContentAdapterFactory(); >+ manager.registerAdapters(contentFactory, IJavaVariable.class); > > fHCRListener= new JavaHotCodeReplaceListener(); > JDIDebugModel.addHotCodeReplaceListener(fHCRListener); >Index: ui/org/eclipse/jdt/internal/debug/ui/variables/ElementFilter.java >=================================================================== >RCS file: ui/org/eclipse/jdt/internal/debug/ui/variables/ElementFilter.java >diff -N ui/org/eclipse/jdt/internal/debug/ui/variables/ElementFilter.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ui/org/eclipse/jdt/internal/debug/ui/variables/ElementFilter.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,29 @@ >+/******************************************************************************* >+ * Copyright (c) 2006 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.debug.ui.variables; >+ >+/** >+ * A filter for elements in a viewer. >+ * >+ * @since 3.2.1 >+ */ >+public abstract class ElementFilter { >+ >+ /** >+ * Returns whether the given element should be filtered. >+ * >+ * @param parent parent element >+ * @param element element >+ * @return whether the given element should be filtered >+ */ >+ public abstract boolean isFiltered(Object parent, Object element); >+ >+} >Index: ui/org/eclipse/jdt/internal/debug/ui/variables/StaticVariablesFilter.java >=================================================================== >RCS file: ui/org/eclipse/jdt/internal/debug/ui/variables/StaticVariablesFilter.java >diff -N ui/org/eclipse/jdt/internal/debug/ui/variables/StaticVariablesFilter.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ui/org/eclipse/jdt/internal/debug/ui/variables/StaticVariablesFilter.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,37 @@ >+/******************************************************************************* >+ * Copyright (c) 2006 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.debug.ui.variables; >+ >+import org.eclipse.debug.core.DebugException; >+import org.eclipse.jdt.debug.core.IJavaVariable; >+ >+/** >+ * Filter for 'show static variables' toggle. >+ * >+ * @since 3.2.1 >+ */ >+public class StaticVariablesFilter extends ElementFilter { >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.jdt.internal.debug.ui.variables.ElementFilter#isFiltered(java.lang.Object, java.lang.Object) >+ */ >+ public boolean isFiltered(Object parent, Object element) { >+ if (element instanceof IJavaVariable) { >+ IJavaVariable variable = (IJavaVariable)element; >+ try { >+ return variable.isStatic() && !variable.isFinal(); >+ } catch (DebugException e) { >+ } >+ } >+ return false; >+ } >+ >+} >Index: ui/org/eclipse/jdt/internal/debug/ui/variables/JavaDebugElementFilters.java >=================================================================== >RCS file: ui/org/eclipse/jdt/internal/debug/ui/variables/JavaDebugElementFilters.java >diff -N ui/org/eclipse/jdt/internal/debug/ui/variables/JavaDebugElementFilters.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ui/org/eclipse/jdt/internal/debug/ui/variables/JavaDebugElementFilters.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,188 @@ >+/******************************************************************************* >+ * Copyright (c) 2006 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.debug.ui.variables; >+ >+import java.util.ArrayList; >+import java.util.HashMap; >+import java.util.Iterator; >+import java.util.List; >+import java.util.ListIterator; >+import java.util.Map; >+import java.util.Map.Entry; >+ >+import org.eclipse.debug.internal.ui.viewers.provisional.IPresentationContext; >+import org.eclipse.debug.ui.IDebugUIConstants; >+import org.eclipse.jdt.debug.ui.IJavaDebugUIConstants; >+import org.eclipse.jdt.internal.debug.ui.IJDIPreferencesConstants; >+import org.eclipse.jdt.internal.debug.ui.JDIDebugUIPlugin; >+import org.eclipse.jface.preference.IPreferenceStore; >+import org.eclipse.jface.util.IPropertyChangeListener; >+import org.eclipse.jface.util.PropertyChangeEvent; >+import org.eclipse.ui.IWorkbenchPart; >+ >+/** >+ * Filters debug elements based on presentation context. Used with content adapters. >+ * >+ * @since 3.2.1 >+ */ >+public class JavaDebugElementFilters implements IPropertyChangeListener { >+ >+ /** >+ * Map of part identifiers to active <ElementFilters> for that part. >+ */ >+ private Map fFilters = new HashMap(); >+ >+ /** >+ * Map of parts and arrays of associated preferences >+ */ >+ private Map fPartsAndPreferences = new HashMap(); >+ >+ // filters >+ private ElementFilter fStaticVariablesFilter = new StaticVariablesFilter(); >+ private ElementFilter fConstantsFilter = new ConstantsFilter(); >+ private ElementFilter fNullEntriesFilter = new NullArrayEntriesFilter(); >+ >+ /** >+ * Singleton filter manager. >+ */ >+ private static JavaDebugElementFilters fgDefault = null; >+ >+ public synchronized static JavaDebugElementFilters getDefault() { >+ if (fgDefault == null) { >+ fgDefault = new JavaDebugElementFilters(); >+ } >+ return fgDefault; >+ } >+ >+ private JavaDebugElementFilters() { >+ init(); >+ } >+ >+ private void init() { >+ IPreferenceStore preferenceStore = JDIDebugUIPlugin.getDefault().getPreferenceStore(); >+ preferenceStore.addPropertyChangeListener(this); >+ // initialize preferences associated with each part >+ fPartsAndPreferences.put(IDebugUIConstants.ID_VARIABLE_VIEW, >+ new String[]{ >+ IJDIPreferencesConstants.PREF_SHOW_CONSTANTS, >+ IJDIPreferencesConstants.PREF_SHOW_STATIC_VARIALBES, >+ IJDIPreferencesConstants.PREF_SHOW_NULL_ARRAY_ENTRIES}); >+ fPartsAndPreferences.put(IDebugUIConstants.ID_EXPRESSION_VIEW, >+ new String[]{ >+ IJDIPreferencesConstants.PREF_SHOW_CONSTANTS, >+ IJDIPreferencesConstants.PREF_SHOW_STATIC_VARIALBES, >+ IJDIPreferencesConstants.PREF_SHOW_NULL_ARRAY_ENTRIES}); >+ // initialize filters based on preference settings >+ Iterator entries = fPartsAndPreferences.entrySet().iterator(); >+ while (entries.hasNext()) { >+ Entry entry = (Entry) entries.next(); >+ String partId = (String) entry.getKey(); >+ String[] prefs = (String[]) entry.getValue(); >+ for (int i = 0; i < prefs.length; i++) { >+ String pref = partId + "." + prefs[i]; //$NON-NLS-1$ >+ PropertyChangeEvent event = new PropertyChangeEvent(preferenceStore, pref, >+ null, new Boolean(preferenceStore.getBoolean(pref))); >+ propertyChange(event); >+ } >+ } >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent) >+ */ >+ public void propertyChange(PropertyChangeEvent event) { >+ String property = event.getProperty(); >+ if (property.endsWith(IJDIPreferencesConstants.PREF_SHOW_CONSTANTS)) { >+ updateFilter(getPartId(property, IJDIPreferencesConstants.PREF_SHOW_CONSTANTS), >+ fConstantsFilter, !getBooleanValue(event.getNewValue())); >+ } else if (property.endsWith(IJDIPreferencesConstants.PREF_SHOW_STATIC_VARIALBES)) { >+ updateFilter(getPartId(property, IJDIPreferencesConstants.PREF_SHOW_STATIC_VARIALBES), >+ fStaticVariablesFilter, !getBooleanValue(event.getNewValue())); >+ } else if (property.endsWith(IJDIPreferencesConstants.PREF_SHOW_NULL_ARRAY_ENTRIES)) { >+ updateFilter(getPartId(property, IJDIPreferencesConstants.PREF_SHOW_NULL_ARRAY_ENTRIES), >+ fNullEntriesFilter, !getBooleanValue(event.getNewValue())); >+ } >+ } >+ >+ /** >+ * Updates the specified filter for the specified part. >+ * >+ * @param partId part to update >+ * @param filter the filter to add or remove >+ * @param add whether to add the filter >+ */ >+ private void updateFilter(String partId, ElementFilter filter, boolean add) { >+ List filters = (List) fFilters.get(partId); >+ if (add) { >+ if (filters == null) { >+ filters = new ArrayList(); >+ fFilters.put(partId, filters); >+ } >+ filters.add(filter); >+ } else { >+ if (filters != null) { >+ filters.remove(filter); >+ } >+ } >+ } >+ >+ private boolean getBooleanValue(Object object) { >+ if (object instanceof Boolean) { >+ return ((Boolean)object).booleanValue(); >+ } >+ return false; >+ } >+ >+ /** >+ * Returns the part effected by the preference change. >+ * >+ * @param key >+ * @param pref >+ * @return part id >+ */ >+ private String getPartId(String key, String pref) { >+ return key.substring(0, key.length() - pref.length() - 1); >+ } >+ >+ /** >+ * Filters the given element based on presentation context. >+ * >+ * @param parent parent element >+ * @param elements elements to filter >+ * @param context context in which the elements are displayed >+ * @return filtered elements >+ */ >+ public Object[] filter(Object parent, Object[] elements, IPresentationContext context) { >+ IWorkbenchPart part = context.getPart(); >+ if (part != null) { >+ String id = part.getSite().getId(); >+ List list = (List) fFilters.get(id); >+ if (list != null && !list.isEmpty()) { >+ Iterator filters = list.iterator(); >+ List filteredElements = new ArrayList(elements.length); >+ for (int i = 0; i < elements.length; i++) { >+ filteredElements.add(elements[i]); >+ } >+ while (filters.hasNext()) { >+ ElementFilter filter = (ElementFilter) filters.next(); >+ ListIterator iterator = filteredElements.listIterator(); >+ while (iterator.hasNext()) { >+ if (filter.isFiltered(parent, iterator.next())) { >+ iterator.remove(); >+ } >+ } >+ } >+ return filteredElements.toArray(); >+ } >+ } >+ return elements; >+ } >+} >Index: ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleViewBooleanPreferenceAction.java >=================================================================== >RCS file: ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleViewBooleanPreferenceAction.java >diff -N ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleViewBooleanPreferenceAction.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ui/org/eclipse/jdt/internal/debug/ui/actions/ToggleViewBooleanPreferenceAction.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,50 @@ >+/******************************************************************************* >+ * Copyright (c) 2006 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.debug.ui.actions; >+ >+import org.eclipse.jface.action.IAction; >+import org.eclipse.jface.preference.IPreferenceStore; >+import org.eclipse.jface.viewers.StructuredViewer; >+import org.eclipse.jface.viewers.Viewer; >+import org.eclipse.swt.custom.BusyIndicator; >+ >+/** >+ * Toggles a view specific boolean preference. >+ * >+ * @since 3.2.1 >+ */ >+public abstract class ToggleViewBooleanPreferenceAction extends ViewFilterAction { >+ >+ /* (non-Javadoc) >+ * This method is not actually called - this action is not a filter. Instead >+ * it sets an preference. >+ * >+ * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) >+ */ >+ public boolean select(Viewer viewer, Object parentElement, Object element) { >+ return false; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.jdt.internal.debug.ui.actions.ViewFilterAction#run(org.eclipse.jface.action.IAction) >+ */ >+ public void run(IAction action) { >+ final StructuredViewer viewer = getStructuredViewer(); >+ BusyIndicator.showWhile(viewer.getControl().getDisplay(), new Runnable() { >+ public void run() { >+ IPreferenceStore store = getPreferenceStore(); >+ store.setValue(getCompositeKey(), getValue()); >+ viewer.refresh(); >+ } >+ }); >+ } >+ >+} >Index: ui/org/eclipse/jdt/internal/debug/ui/variables/NullArrayEntriesFilter.java >=================================================================== >RCS file: ui/org/eclipse/jdt/internal/debug/ui/variables/NullArrayEntriesFilter.java >diff -N ui/org/eclipse/jdt/internal/debug/ui/variables/NullArrayEntriesFilter.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ui/org/eclipse/jdt/internal/debug/ui/variables/NullArrayEntriesFilter.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,38 @@ >+/******************************************************************************* >+ * Copyright (c) 2006 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.debug.ui.variables; >+ >+import org.eclipse.debug.core.DebugException; >+import org.eclipse.jdt.debug.core.IJavaDebugTarget; >+import org.eclipse.jdt.internal.debug.core.model.JDIArrayEntryVariable; >+ >+/** >+ * Filter for 'show null array entries' toggle. >+ * >+ * @since 3.2.1 >+ */ >+public class NullArrayEntriesFilter extends ElementFilter { >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.jdt.internal.debug.ui.variables.ElementFilter#isFiltered(java.lang.Object, java.lang.Object) >+ */ >+ public boolean isFiltered(Object parent, Object element) { >+ if (element instanceof JDIArrayEntryVariable) { >+ JDIArrayEntryVariable variable = (JDIArrayEntryVariable)element; >+ try { >+ return variable.getValue().equals(((IJavaDebugTarget)variable.getDebugTarget()).nullValue()); >+ } catch (DebugException e) { >+ } >+ } >+ return false; >+ } >+ >+} >Index: ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableContentAdapterFactory.java >=================================================================== >RCS file: ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableContentAdapterFactory.java >diff -N ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableContentAdapterFactory.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableContentAdapterFactory.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,49 @@ >+/******************************************************************************* >+ * Copyright (c) 2006 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.debug.ui.variables; >+ >+import org.eclipse.core.runtime.IAdapterFactory; >+import org.eclipse.debug.internal.ui.viewers.provisional.IAsynchronousContentAdapter; >+import org.eclipse.debug.internal.ui.viewers.provisional.IAsynchronousLabelAdapter; >+import org.eclipse.debug.internal.ui.viewers.provisional.IColumnEditorFactoryAdapter; >+import org.eclipse.debug.internal.ui.viewers.provisional.IColumnPresentationFactoryAdapter; >+import org.eclipse.jdt.debug.core.IJavaStackFrame; >+import org.eclipse.jdt.debug.core.IJavaVariable; >+ >+/** >+ * Adapter factory. >+ * >+ * @since 3.2.1 >+ */ >+public class JavaVariableContentAdapterFactory implements IAdapterFactory { >+ >+ private static final IAsynchronousContentAdapter fgVariableContentAdapter = new JavaVariableContentAdapter(); >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class) >+ */ >+ public Object getAdapter(Object adaptableObject, Class adapterType) { >+ if (adaptableObject instanceof IJavaVariable) { >+ if (IAsynchronousContentAdapter.class.equals(adapterType)) { >+ return fgVariableContentAdapter; >+ } >+ } >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList() >+ */ >+ public Class[] getAdapterList() { >+ return new Class[]{IAsynchronousContentAdapter.class}; >+ } >+ >+} >Index: ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableContentAdapter.java >=================================================================== >RCS file: ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableContentAdapter.java >diff -N ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableContentAdapter.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ui/org/eclipse/jdt/internal/debug/ui/variables/JavaVariableContentAdapter.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,34 @@ >+/******************************************************************************* >+ * Copyright (c) 2006 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.debug.ui.variables; >+ >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.debug.core.model.IDebugElement; >+import org.eclipse.debug.core.model.IValue; >+import org.eclipse.debug.internal.ui.elements.adapters.VariableContentAdapter; >+import org.eclipse.debug.internal.ui.viewers.provisional.IPresentationContext; >+ >+/** >+ * Content adapter for Java variables to incorporate filters. >+ * >+ * @since 3.2.1 >+ */ >+public class JavaVariableContentAdapter extends VariableContentAdapter { >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.debug.internal.ui.elements.adapters.VariableContentAdapter#getValueChildren(org.eclipse.debug.core.model.IDebugElement, org.eclipse.debug.core.model.IValue, org.eclipse.debug.internal.ui.viewers.provisional.IPresentationContext) >+ */ >+ protected Object[] getValueChildren(IDebugElement parent, IValue value, IPresentationContext context) throws CoreException { >+ Object[] children = super.getValueChildren(parent, value, context); >+ return JavaDebugElementFilters.getDefault().filter(parent, children, context); >+ } >+ >+} >Index: ui/org/eclipse/jdt/internal/debug/ui/variables/ConstantsFilter.java >=================================================================== >RCS file: ui/org/eclipse/jdt/internal/debug/ui/variables/ConstantsFilter.java >diff -N ui/org/eclipse/jdt/internal/debug/ui/variables/ConstantsFilter.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ui/org/eclipse/jdt/internal/debug/ui/variables/ConstantsFilter.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,37 @@ >+/******************************************************************************* >+ * Copyright (c) 2006 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.debug.ui.variables; >+ >+import org.eclipse.debug.core.DebugException; >+import org.eclipse.jdt.debug.core.IJavaVariable; >+ >+/** >+ * Filter for 'show constants' toggle. >+ * >+ * @since 3.2.1 >+ */ >+public class ConstantsFilter extends ElementFilter { >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.jdt.internal.debug.ui.variables.ElementFilter#isFiltered(java.lang.Object, java.lang.Object) >+ */ >+ public boolean isFiltered(Object parent, Object element) { >+ if (element instanceof IJavaVariable) { >+ IJavaVariable variable = (IJavaVariable)element; >+ try { >+ return variable.isStatic() && variable.isFinal(); >+ } catch (DebugException e) { >+ } >+ } >+ return false; >+ } >+ >+}
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 120606
:
31649
| 43294 |
43307