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 133810 Details for
Bug 274369
Add SWT smarts to inspector
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
proposed patch
InspectorView_SWT_objects.patch (text/plain), 6.64 KB, created by
Chris Grindstaff
on 2009-04-29 14:35:31 EDT
(
hide
)
Description:
proposed patch
Filename:
MIME Type:
Creator:
Chris Grindstaff
Created:
2009-04-29 14:35:31 EDT
Size:
6.64 KB
patch
obsolete
>Index: src/org/eclipse/mat/ui/messages.properties >=================================================================== >--- src/org/eclipse/mat/ui/messages.properties (revision 293) >+++ src/org/eclipse/mat/ui/messages.properties (working copy) >@@ -122,6 +122,8 @@ > OpenIconAssistAction_IndicatorsAdded=Indicators added to heap objects > OpenIconAssistAction_InstancesGroupedByClass=Instances grouped by class > OpenIconAssistAction_OtherObject=Other object >+OpenIconAssistAction_SWT=Live SWT object >+OpenIconAssistAction_SWT_DISPOSED=Disposed SWT object > OpenIconAssistAction_Others=Others > OpenIconAssistAction_Package=Package > OpenIconAssistAction_QueryViews=Query Views >Index: src/org/eclipse/mat/ui/Messages.java >=================================================================== >--- src/org/eclipse/mat/ui/Messages.java (revision 293) >+++ src/org/eclipse/mat/ui/Messages.java (working copy) >@@ -128,6 +128,8 @@ > public static String OpenIconAssistAction_IndicatorsAdded; > public static String OpenIconAssistAction_InstancesGroupedByClass; > public static String OpenIconAssistAction_OtherObject; >+ public static String OpenIconAssistAction_SWT; >+ public static String OpenIconAssistAction_SWT_DISPOSED; > public static String OpenIconAssistAction_Others; > public static String OpenIconAssistAction_Package; > public static String OpenIconAssistAction_QueryViews; >Index: src/org/eclipse/mat/ui/snapshot/ImageHelper.java >=================================================================== >--- src/org/eclipse/mat/ui/snapshot/ImageHelper.java (revision 293) >+++ src/org/eclipse/mat/ui/snapshot/ImageHelper.java (working copy) >@@ -14,8 +14,10 @@ > import org.eclipse.jface.resource.ImageDescriptor; > import org.eclipse.mat.SnapshotException; > import org.eclipse.mat.collect.HashMapIntObject; >+import org.eclipse.mat.snapshot.model.Field; > import org.eclipse.mat.snapshot.model.IClass; > import org.eclipse.mat.snapshot.model.IClassLoader; >+import org.eclipse.mat.snapshot.model.IInstance; > import org.eclipse.mat.snapshot.model.IObject; > import org.eclipse.mat.ui.MemoryAnalyserPlugin; > import org.eclipse.swt.graphics.Image; >@@ -24,6 +26,8 @@ > > public class ImageHelper > { >+ public static int TOTAL_NUMBER_OF_ICONS = 12; //this needs to be updated when icon types are added/removed >+ > public interface Type > { > int CLASS_INSTANCE = 0; >@@ -38,6 +42,8 @@ > > int CLASS = 8; > int PACKAGE = 9; >+ int OBJECT_INSTANCE_SWT = 10; >+ int OBJECT_INSTANCE_SWT_DISPOSED = 11; > } > > public interface Decorations >@@ -47,7 +53,7 @@ > > private static final String[] IMAGES = new String[] { "class_obj", "instance_obj", "classloader_obj", "array_obj", //$NON-NLS-1$ //$NON-NLS-2$//$NON-NLS-3$ //$NON-NLS-4$ > "class_obj_gc_root", "instance_obj_gc_root", "classloader_obj_gc_root", "array_obj_gc_root", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ >- "class", "package" }; //$NON-NLS-1$ //$NON-NLS-2$ >+ "class", "package", "instance_obj_swt", "instance_obj_swt_disposed"}; //$NON-NLS-1$ //$NON-NLS-2$ > > private static final String PREFIX_OVERLAY = "icons/decorations/"; //$NON-NLS-1$ > >@@ -87,10 +93,35 @@ > } > else > { >- return isGCRoot ? Type.OBJECT_INSTANCE_GC_ROOT : Type.OBJECT_INSTANCE; >+ int kind = asSWTObject(object); >+ if(kind != -1) return kind; > } >+ return isGCRoot ? Type.OBJECT_INSTANCE_GC_ROOT : Type.OBJECT_INSTANCE; >+ > } > >+ private static int asSWTObject(IObject object) >+ { >+ if(object instanceof IInstance) { >+ IInstance instance = (IInstance)object; >+ Field field = instance.getField("display"); >+ if(field == null) return -1; //do a quick check first >+ IClass superclass = object.getClazz(); >+ boolean isWidget = false; >+ while(superclass != null) { >+ if(superclass.getName().equals("org.eclipse.swt.widgets.Widget")) { >+ isWidget = true; >+ break; >+ } >+ superclass = superclass.getSuperClass(); >+ } >+ if(isWidget) { >+ return field.getValue() == null ? Type.OBJECT_INSTANCE_SWT_DISPOSED : Type.OBJECT_INSTANCE_SWT; >+ } >+ } >+ return -1; >+ } >+ > public static ImageDescriptor getImageDescriptor(int type) > { > ImageDescriptor id = IMAGES_BY_TYPE.get(type); >@@ -108,11 +139,11 @@ > > public static ImageDescriptor getInboundImageDescriptor(int type) > { >- ImageDescriptor id = IMAGES_BY_TYPE.get(type + 10); >+ ImageDescriptor id = IMAGES_BY_TYPE.get(type + TOTAL_NUMBER_OF_ICONS); > if (id == null) > { > id = createOverlay(IMAGES[type], "in.gif"); //$NON-NLS-1$ >- IMAGES_BY_TYPE.put(type + 10, id); >+ IMAGES_BY_TYPE.put(type + TOTAL_NUMBER_OF_ICONS, id); > } > return id; > } >@@ -124,11 +155,11 @@ > > public static ImageDescriptor getOutboundImageDescriptor(int type) > { >- ImageDescriptor id = IMAGES_BY_TYPE.get(type + 20); >+ ImageDescriptor id = IMAGES_BY_TYPE.get(type + TOTAL_NUMBER_OF_ICONS * 2); > if (id == null) > { > id = createOverlay(IMAGES[type], "out.gif"); //$NON-NLS-1$ >- IMAGES_BY_TYPE.put(type + 20, id); >+ IMAGES_BY_TYPE.put(type + TOTAL_NUMBER_OF_ICONS * 2, id); > } > return id; > } >Index: src/org/eclipse/mat/ui/snapshot/actions/OpenIconAssistAction.java >=================================================================== >--- src/org/eclipse/mat/ui/snapshot/actions/OpenIconAssistAction.java (revision 293) >+++ src/org/eclipse/mat/ui/snapshot/actions/OpenIconAssistAction.java (working copy) >@@ -129,6 +129,10 @@ > Messages.OpenIconAssistAction_ArrayObject)); > icons.add(new Icon(ImageHelper.getImageDescriptor(ImageHelper.Type.OBJECT_INSTANCE), > Messages.OpenIconAssistAction_OtherObject)); >+ icons.add(new Icon(ImageHelper.getImageDescriptor(ImageHelper.Type.OBJECT_INSTANCE_SWT), >+ Messages.OpenIconAssistAction_SWT)); >+ icons.add(new Icon(ImageHelper.getImageDescriptor(ImageHelper.Type.OBJECT_INSTANCE_SWT_DISPOSED), >+ Messages.OpenIconAssistAction_SWT_DISPOSED)); > icons.add(new Icon(ImageHelper.getImageDescriptor(ImageHelper.Type.PACKAGE), > Messages.OpenIconAssistAction_Package)); >
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 274369
: 133810 |
133811
|
133812