1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-09 10:05:24 +02:00

fix for Bug 161840

This commit is contained in:
David McKnight 2006-10-23 17:18:03 +00:00
parent 3a86c51d61
commit 505f66e7de
2 changed files with 113 additions and 41 deletions

View file

@ -1137,7 +1137,10 @@ public class SystemScratchpadView
{ {
Object element = elements.next(); Object element = elements.next();
ISystemViewElementAdapter adapter = getAdapter(element); ISystemViewElementAdapter adapter = getAdapter(element);
adapters.put(adapter, element); // want only unique adapters if (adapter != null)
{
adapters.put(adapter, element); // want only unique adapters
}
} }
Enumeration uniqueAdapters = adapters.keys(); Enumeration uniqueAdapters = adapters.keys();
Shell shell = getShell(); Shell shell = getShell();
@ -1392,28 +1395,30 @@ public class SystemScratchpadView
{ {
Object element = elements.next(); Object element = elements.next();
ISystemViewElementAdapter adapter = getAdapter(element); ISystemViewElementAdapter adapter = getAdapter(element);
if (adapter != null)
if (_selectionShowRefreshAction) {
_selectionShowRefreshAction = adapter.showRefresh(element); if (_selectionShowRefreshAction)
_selectionShowRefreshAction = adapter.showRefresh(element);
if (_selectionShowOpenViewActions)
_selectionShowOpenViewActions = adapter.showOpenViewActions(element); if (_selectionShowOpenViewActions)
_selectionShowOpenViewActions = adapter.showOpenViewActions(element);
if (_selectionShowDeleteAction)
_selectionShowDeleteAction = adapter.showDelete(element); if (_selectionShowDeleteAction)
_selectionShowDeleteAction = adapter.showDelete(element);
if (_selectionShowRenameAction)
_selectionShowRenameAction = adapter.showRename(element); if (_selectionShowRenameAction)
_selectionShowRenameAction = adapter.showRename(element);
if (_selectionEnableDeleteAction)
_selectionEnableDeleteAction = _selectionShowDeleteAction && adapter.canDelete(element); if (_selectionEnableDeleteAction)
//System.out.println("ENABLE DELETE SET TO " + selectionEnableDeleteAction); _selectionEnableDeleteAction = _selectionShowDeleteAction && adapter.canDelete(element);
//System.out.println("ENABLE DELETE SET TO " + selectionEnableDeleteAction);
if (_selectionEnableRenameAction)
_selectionEnableRenameAction = _selectionShowRenameAction && adapter.canRename(element); if (_selectionEnableRenameAction)
_selectionEnableRenameAction = _selectionShowRenameAction && adapter.canRename(element);
if (_selectionIsRemoteObject)
_selectionIsRemoteObject = (getRemoteAdapter(element) != null); if (_selectionIsRemoteObject)
_selectionIsRemoteObject = (getRemoteAdapter(element) != null);
}
} }
} }

View file

@ -28,6 +28,7 @@ import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.Viewer;
import org.eclipse.rse.ui.view.ISystemViewElementAdapter; import org.eclipse.rse.ui.view.ISystemViewElementAdapter;
import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.model.IWorkbenchAdapter;
/** /**
@ -79,8 +80,18 @@ public class SystemScratchpadViewProvider implements ILabelProvider, ITreeConten
public boolean hasChildren(Object object) public boolean hasChildren(Object object)
{ {
return getAdapterFor(object).hasChildren(object); ISystemViewElementAdapter adapter = getAdapterFor(object);
if (adapter != null)
{
return adapter.hasChildren(object);
}
else if (object instanceof IAdaptable)
{
IWorkbenchAdapter wa = (IWorkbenchAdapter)((IAdaptable)object).getAdapter(IWorkbenchAdapter.class);
if (wa != null)
return wa.getChildren(object).length > 0;
}
return false;
} }
public Object getElementAt(Object object, int i) public Object getElementAt(Object object, int i)
@ -95,9 +106,12 @@ public class SystemScratchpadViewProvider implements ILabelProvider, ITreeConten
{ {
IAdaptable adapt = (IAdaptable) object; IAdaptable adapt = (IAdaptable) object;
ISystemViewElementAdapter result = (ISystemViewElementAdapter) adapt.getAdapter(ISystemViewElementAdapter.class); ISystemViewElementAdapter result = (ISystemViewElementAdapter) adapt.getAdapter(ISystemViewElementAdapter.class);
result.setPropertySourceInput(object); if (result != null)
result.setViewer(_view); {
return result; result.setPropertySourceInput(object);
result.setViewer(_view);
return result;
}
} }
return null; return null;
} }
@ -113,6 +127,12 @@ public class SystemScratchpadViewProvider implements ILabelProvider, ITreeConten
{ {
results = adapter.getChildren(object); results = adapter.getChildren(object);
} }
else
{
IWorkbenchAdapter wa = (IWorkbenchAdapter)((IAdaptable)object).getAdapter(IWorkbenchAdapter.class);
if (wa != null)
return wa.getChildren(object);
}
} }
if (results == null) if (results == null)
{ {
@ -124,30 +144,77 @@ public class SystemScratchpadViewProvider implements ILabelProvider, ITreeConten
public String getText(Object object) public String getText(Object object)
{ {
return getAdapterFor(object).getText(object); if (object instanceof String)
{
return (String)object;
}
ISystemViewElementAdapter adapter = getAdapterFor(object);
if (adapter != null)
{
return adapter.getText(object);
}
else if (object instanceof IAdaptable)
{
IWorkbenchAdapter wa = (IWorkbenchAdapter)((IAdaptable)object).getAdapter(IWorkbenchAdapter.class);
if (wa != null)
{
return wa.getLabel(object);
}
}
return object.toString();
} }
public Image getImage(Object object) public Image getImage(Object object)
{ {
ImageDescriptor descriptor = getAdapterFor(object).getImageDescriptor(object);
Image image = null; Image image = null;
if (descriptor != null) if (object instanceof String)
{ {
Object iobj = imageTable.get(descriptor); return null;
if (iobj == null) }
ISystemViewElementAdapter adapter = getAdapterFor(object);
if (adapter != null)
{
ImageDescriptor descriptor = adapter.getImageDescriptor(object);
if (descriptor != null)
{ {
image = descriptor.createImage(); Object iobj = imageTable.get(descriptor);
imageTable.put(descriptor, image); if (iobj == null)
{
image = descriptor.createImage();
imageTable.put(descriptor, image);
}
else
{
image = (Image) iobj;
}
} }
else return image;
}
else if (object instanceof IAdaptable)
{
IWorkbenchAdapter wa = (IWorkbenchAdapter)((IAdaptable)object).getAdapter(IWorkbenchAdapter.class);
if (wa != null)
{ {
image = (Image) iobj; ImageDescriptor descriptor = wa.getImageDescriptor(object);
if (descriptor != null)
{
Object iobj = imageTable.get(descriptor);
if (iobj == null)
{
image = descriptor.createImage();
imageTable.put(descriptor, image);
}
else
{
image = (Image) iobj;
}
}
return image;
} }
} }
return null;
return image;
} }