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,8 +1137,11 @@ public class SystemScratchpadView
|
||||||
{
|
{
|
||||||
Object element = elements.next();
|
Object element = elements.next();
|
||||||
ISystemViewElementAdapter adapter = getAdapter(element);
|
ISystemViewElementAdapter adapter = getAdapter(element);
|
||||||
|
if (adapter != null)
|
||||||
|
{
|
||||||
adapters.put(adapter, element); // want only unique adapters
|
adapters.put(adapter, element); // want only unique adapters
|
||||||
}
|
}
|
||||||
|
}
|
||||||
Enumeration uniqueAdapters = adapters.keys();
|
Enumeration uniqueAdapters = adapters.keys();
|
||||||
Shell shell = getShell();
|
Shell shell = getShell();
|
||||||
while (uniqueAdapters.hasMoreElements())
|
while (uniqueAdapters.hasMoreElements())
|
||||||
|
@ -1392,7 +1395,8 @@ public class SystemScratchpadView
|
||||||
{
|
{
|
||||||
Object element = elements.next();
|
Object element = elements.next();
|
||||||
ISystemViewElementAdapter adapter = getAdapter(element);
|
ISystemViewElementAdapter adapter = getAdapter(element);
|
||||||
|
if (adapter != null)
|
||||||
|
{
|
||||||
if (_selectionShowRefreshAction)
|
if (_selectionShowRefreshAction)
|
||||||
_selectionShowRefreshAction = adapter.showRefresh(element);
|
_selectionShowRefreshAction = adapter.showRefresh(element);
|
||||||
|
|
||||||
|
@ -1415,6 +1419,7 @@ public class SystemScratchpadView
|
||||||
if (_selectionIsRemoteObject)
|
if (_selectionIsRemoteObject)
|
||||||
_selectionIsRemoteObject = (getRemoteAdapter(element) != null);
|
_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,10 +106,13 @@ 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);
|
||||||
|
if (result != null)
|
||||||
|
{
|
||||||
result.setPropertySourceInput(object);
|
result.setPropertySourceInput(object);
|
||||||
result.setViewer(_view);
|
result.setViewer(_view);
|
||||||
return result;
|
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,15 +144,39 @@ 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 (object instanceof String)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
ISystemViewElementAdapter adapter = getAdapterFor(object);
|
||||||
|
if (adapter != null)
|
||||||
|
{
|
||||||
|
ImageDescriptor descriptor = adapter.getImageDescriptor(object);
|
||||||
|
|
||||||
|
|
||||||
if (descriptor != null)
|
if (descriptor != null)
|
||||||
{
|
{
|
||||||
Object iobj = imageTable.get(descriptor);
|
Object iobj = imageTable.get(descriptor);
|
||||||
|
@ -146,9 +190,32 @@ public class SystemScratchpadViewProvider implements ILabelProvider, ITreeConten
|
||||||
image = (Image) iobj;
|
image = (Image) iobj;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return image;
|
return image;
|
||||||
}
|
}
|
||||||
|
else if (object instanceof IAdaptable)
|
||||||
|
{
|
||||||
|
IWorkbenchAdapter wa = (IWorkbenchAdapter)((IAdaptable)object).getAdapter(IWorkbenchAdapter.class);
|
||||||
|
if (wa != null)
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void addListener(ILabelProviderListener listener)
|
public void addListener(ILabelProviderListener listener)
|
||||||
|
|
Loading…
Add table
Reference in a new issue