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:
parent
3a86c51d61
commit
505f66e7de
2 changed files with 113 additions and 41 deletions
|
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue