1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-08 01:25:23 +02:00

Applied Michael Berger patch from here:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=149080

Along with suggested changed from Martin.
This commit is contained in:
David McKnight 2006-07-10 15:19:13 +00:00
parent 25a6c26d74
commit c048159b94
2 changed files with 1326 additions and 1246 deletions

View file

@ -22,6 +22,9 @@ import java.util.List;
import java.util.Vector;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.action.ActionContributionItem;
import org.eclipse.jface.action.GroupMarker;
import org.eclipse.jface.action.IAction;
@ -52,6 +55,7 @@ import org.eclipse.rse.core.SystemElapsedTimer;
import org.eclipse.rse.core.SystemPopupMenuActionContributorManager;
import org.eclipse.rse.core.SystemPreferencesManager;
import org.eclipse.rse.core.subsystems.ISubSystem;
import org.eclipse.rse.core.subsystems.SubSystem.ConnectJobNoShell;
import org.eclipse.rse.filters.ISystemFilter;
import org.eclipse.rse.filters.ISystemFilterContainer;
import org.eclipse.rse.filters.ISystemFilterContainerReference;
@ -112,6 +116,7 @@ import org.eclipse.swt.events.TreeEvent;
import org.eclipse.swt.graphics.Cursor;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Item;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Shell;
@ -125,6 +130,7 @@ import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.dialogs.PropertyDialogAction;
import org.eclipse.ui.part.EditorInputTransfer;
import org.eclipse.ui.part.PluginTransfer;
import org.eclipse.ui.progress.UIJob;
import org.eclipse.ui.views.framelist.GoIntoAction;
@ -1726,9 +1732,40 @@ public class SystemView extends TreeViewer implements ISystemTree,
*/
public void systemResourceChanged(ISystemResourceChangeEvent event)
{
int type = event.getType();
Object src = event.getSource();
Object parent = event.getParent();
ResourceChangedJob job = new ResourceChangedJob(event, this);
job.setPriority(Job.INTERACTIVE);
//job.setUser(true);
job.schedule();
Display display = Display.getCurrent();
try {
while (job.getResult() == null) {
while (display!=null && display.readAndDispatch()) {}
if (job.getResult() == null) Thread.sleep(200);
}
} catch(InterruptedException e) {}
}
/**
* Inner class which extends UIJob to connect this connection
* on the UI Thread when no Shell is available from
* the caller
*/
public class ResourceChangedJob extends UIJob {
protected ISystemResourceChangeEvent _event;
protected SystemView _originatingViewer;
public ResourceChangedJob(ISystemResourceChangeEvent event, SystemView originatingViewer)
{
super("Resource Changed...");
_event = event;
}
public IStatus runInUIThread(IProgressMonitor monitor)
{
int type = _event.getType();
Object src = _event.getSource();
Object parent = _event.getParent();
String[] properties = new String[1];
if (parent == RSEUIPlugin.getTheSystemRegistry())
parent = inputProvider;
@ -1737,12 +1774,12 @@ public class SystemView extends TreeViewer implements ISystemTree,
Widget parentItem = null;
Object[] multiSource = null;
Object previous = null;
if (event.getViewerItem() instanceof TreeItem)
inputTreeItem = (TreeItem)event.getViewerItem();
if (_event.getViewerItem() instanceof TreeItem)
inputTreeItem = (TreeItem)_event.getViewerItem();
else
inputTreeItem = null;
boolean wasSelected = false;
boolean originatedHere = (event.getOriginatingViewer() == null) || (event.getOriginatingViewer() == this);
boolean originatedHere = (_event.getOriginatingViewer() == null) || (_event.getOriginatingViewer() == _originatingViewer);
//logDebugMsg("INSIDE SYSRESCHGD: " + type + ", " + src + ", " + parent);
switch(type)
@ -1750,10 +1787,10 @@ public class SystemView extends TreeViewer implements ISystemTree,
// SPECIAL CASES: ANYTHING TO DO WITH FILTERS!!
case EVENT_RENAME_FILTER_REFERENCE:
case EVENT_CHANGE_FILTER_REFERENCE:
findAndUpdateFilter(event, type);
findAndUpdateFilter(_event, type);
break;
case EVENT_CHANGE_FILTERSTRING_REFERENCE:
findAndUpdateFilterString(event, type);
findAndUpdateFilterString(_event, type);
break;
case EVENT_ADD_FILTERSTRING_REFERENCE:
@ -1770,10 +1807,10 @@ public class SystemView extends TreeViewer implements ISystemTree,
affectsInput(src))
{
close();
return;
return Status.OK_STATUS;
}
findAndUpdateFilterParent(event, type);
findAndUpdateFilterParent(_event, type);
break;
case EVENT_ADD:
@ -1786,7 +1823,7 @@ public class SystemView extends TreeViewer implements ISystemTree,
//refresh(parent);
parentItem = findItem(parent);
if (parentItem == null)
return;
return Status.OK_STATUS;
if ((parentItem instanceof Item) && !getExpanded((Item)parentItem))
{
refresh(parent); // flush cached stuff so next call will show new item
@ -1799,20 +1836,20 @@ public class SystemView extends TreeViewer implements ISystemTree,
//System.out.println("event.getParent() instanceof SystemRegistry: " + (event.getParent() instanceof SystemRegistry));
//System.out.println("inputProvider.showingConnections().........: " + (inputProvider.showingConnections()));
if ((parent == inputProvider) && addingConnection &&
(event.getParent() instanceof ISystemRegistry) &&
(_event.getParent() instanceof ISystemRegistry) &&
!inputProvider.showingConnections())
return; // only reflect new connections in main perspective. pc42742
return Status.OK_STATUS; // only reflect new connections in main perspective. pc42742
int pos = -1;
if (type == EVENT_ADD_RELATIVE)
{
previous = event.getRelativePrevious();
previous = _event.getRelativePrevious();
if (previous != null)
pos = getItemIndex(parentItem, previous);
if (pos >= 0)
pos++; // want to add after previous
}
else
pos = event.getPosition();
pos = _event.getPosition();
//logDebugMsg("ADDING CONN? "+ addingConnection + ", position="+pos);
createTreeItem(parentItem, src, pos);
setSelection(new StructuredSelection(src),true);
@ -1823,11 +1860,11 @@ public class SystemView extends TreeViewer implements ISystemTree,
{
logDebugMsg("SV event: EVENT_ADD_MANY");
}
multiSource = event.getMultiSource();
multiSource = _event.getMultiSource();
clearSelection();
parentItem = findItem(parent);
if (parentItem == null)
return;
return Status.OK_STATUS;
if ((parentItem instanceof Item) && !getExpanded((Item)parentItem))
{
refresh(parent); // flush cached stuff so next call will show new items
@ -1837,7 +1874,7 @@ public class SystemView extends TreeViewer implements ISystemTree,
boolean addingConnections = (multiSource[0] instanceof IHost);
// are we restoring connections previously removed due to making a profile inactive,
// and is one of these connections the one we were opened with?
if (addingConnections && (event.getParent() instanceof ISystemRegistry) &&
if (addingConnections && (_event.getParent() instanceof ISystemRegistry) &&
(inputProvider instanceof SystemEmptyListAPIProviderImpl))
{
boolean done = false;
@ -1852,13 +1889,13 @@ public class SystemView extends TreeViewer implements ISystemTree,
}
}
if (done)
return;
return Status.OK_STATUS;
}
// are we adding connections and yet we are not a secondary perspective?
// If so, this event does not apply to us.
else if (addingConnections && (event.getParent() instanceof ISystemRegistry) &&
else if (addingConnections && (_event.getParent() instanceof ISystemRegistry) &&
!inputProvider.showingConnections())
return;
return Status.OK_STATUS;
for (int idx=0; idx<multiSource.length; idx++)
{
@ -1874,12 +1911,12 @@ public class SystemView extends TreeViewer implements ISystemTree,
{
logDebugMsg("SV event: EVENT_REPLACE_CHILDREN");
}
multiSource = event.getMultiSource();
multiSource = _event.getMultiSource();
//logDebugMsg("MULTI-SRC LENGTH : " + multiSource.length);
clearSelection();
parentItem = findItem(parent);
if (parentItem == null)
return;
return Status.OK_STATUS;
if (multiSource.length > 0 && parentItem != null && parentItem instanceof Item )
{
getControl().setRedraw(false);
@ -1953,11 +1990,11 @@ public class SystemView extends TreeViewer implements ISystemTree,
if (affectsInput(src))
{
close();
return;
return Status.OK_STATUS;
}
parentItem = findItem(parent);
if (parentItem == null)
return;
return Status.OK_STATUS;
if ((parentItem instanceof Item) && !getExpanded((Item)parentItem))
refresh(parent); // flush memory
else
@ -1965,7 +2002,7 @@ public class SystemView extends TreeViewer implements ISystemTree,
wasSelected = isSelectedOrChildSelected(src);
if (wasSelected)
clearSelection();
remove(src);
_originatingViewer.remove(src);
if (wasSelected)
setSelection(new StructuredSelection(parent),true);
}
@ -1974,16 +2011,16 @@ public class SystemView extends TreeViewer implements ISystemTree,
case EVENT_DELETE_MANY:
if (debug)
logDebugMsg("SV event: EVENT_DELETE_MANY ");
multiSource = event.getMultiSource();
multiSource = _event.getMultiSource();
// are we a secondary perspective, and our input or parent of our input was deleted?
if (affectsInput(multiSource))
{
close();
return;
return Status.OK_STATUS;
}
parentItem = findItem(parent);
if (parentItem == null)
return;
return Status.OK_STATUS;
if ((parentItem instanceof Item) && !getExpanded((Item)parentItem))
refresh(parent); // flush memory
else
@ -1991,7 +2028,7 @@ public class SystemView extends TreeViewer implements ISystemTree,
wasSelected = isSelectedOrChildSelected(multiSource);
if (wasSelected)
clearSelection();
remove(multiSource);
_originatingViewer.remove(multiSource);
if (wasSelected)
setSelection(new StructuredSelection(parent),true);
}
@ -2124,7 +2161,7 @@ public class SystemView extends TreeViewer implements ISystemTree,
{
Object element = i.next();
ISystemViewElementAdapter adapter = getAdapter(element);
ISystemViewElementAdapter adapter = _originatingViewer.getAdapter(element);
if ((parentElementItem==null) && (adapter != null) && (!adapter.hasChildren(element)))
{
//parentItem = getParentItem((Item)findItem(element));
@ -2192,7 +2229,7 @@ public class SystemView extends TreeViewer implements ISystemTree,
if (j.hasNext())
{
Object element = j.next();
ISystemViewElementAdapter adapter = getAdapter(element);
ISystemViewElementAdapter adapter = _originatingViewer.getAdapter(element);
if ((parentElemItem==null) && (adapter != null))
{
Item parItem = getParentItem((Item)findItem(element));
@ -2230,8 +2267,8 @@ public class SystemView extends TreeViewer implements ISystemTree,
{
// if we cannot find a parent element that has a system filter reference then we refresh
// everything since the explorer must be within a filter
event.setType(ISystemResourceChangeEvents.EVENT_REFRESH);
systemResourceChanged(event);
_event.setType(ISystemResourceChangeEvents.EVENT_REFRESH);
systemResourceChanged(_event);
}
break;
case EVENT_REFRESH_REMOTE:
@ -2249,18 +2286,18 @@ public class SystemView extends TreeViewer implements ISystemTree,
case EVENT_MOVE_MANY:
if (debug)
logDebugMsg("SV event: EVENT_MOVE_MANY ");
multiSource = event.getMultiSource();
multiSource = _event.getMultiSource();
if ((multiSource == null) || (multiSource.length == 0))
return;
return Status.OK_STATUS;
parentItem = findItem(parent);
if (parentItem == null)
return;
return Status.OK_STATUS;
if ((parentItem instanceof Item) && !getExpanded((Item)parentItem))
refresh(parent); // flush memory
else
{
clearSelection();
moveTreeItems(parentItem, multiSource, event.getPosition());
moveTreeItems(parentItem, multiSource, _event.getPosition());
setSelection(new StructuredSelection(multiSource),true);
}
break;
@ -2313,7 +2350,7 @@ public class SystemView extends TreeViewer implements ISystemTree,
logDebugMsg("SV event: EVENT_REVEAL_AND_SELECT ");
parentItem = findItem(parent);
if (parentItem == null)
return;
return Status.OK_STATUS;
if ((parentItem instanceof Item) && !getExpanded((Item)parentItem))
{
setExpandedState(parent, true);
@ -2347,7 +2384,7 @@ public class SystemView extends TreeViewer implements ISystemTree,
logDebugMsg("SV event: EVENT_SELECT ");
item = findItem(src);
if (item == null) // if not showing item, this is a no-op
return;
return Status.OK_STATUS;
setSelection(new StructuredSelection(src), true);
break;
case EVENT_SELECT_EXPAND:
@ -2355,14 +2392,17 @@ public class SystemView extends TreeViewer implements ISystemTree,
logDebugMsg("SV event: EVENT_SELECT_EXPAND ");
item = findItem(src);
if (item == null) // if not showing item, this is a no-op
return;
return Status.OK_STATUS;
if (!getExpanded((Item)item))
setExpandedState(src, true);
setSelection(new StructuredSelection(src), true);
break;
}
return Status.OK_STATUS;
}
}
// ------------------------------------
// ISYSTEMREMOTEChangeListener METHOD
// ------------------------------------

View file

@ -22,6 +22,9 @@ import java.util.List;
import java.util.Vector;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.action.ActionContributionItem;
import org.eclipse.jface.action.GroupMarker;
import org.eclipse.jface.action.IAction;
@ -52,6 +55,7 @@ import org.eclipse.rse.core.SystemElapsedTimer;
import org.eclipse.rse.core.SystemPopupMenuActionContributorManager;
import org.eclipse.rse.core.SystemPreferencesManager;
import org.eclipse.rse.core.subsystems.ISubSystem;
import org.eclipse.rse.core.subsystems.SubSystem.ConnectJobNoShell;
import org.eclipse.rse.filters.ISystemFilter;
import org.eclipse.rse.filters.ISystemFilterContainer;
import org.eclipse.rse.filters.ISystemFilterContainerReference;
@ -112,6 +116,7 @@ import org.eclipse.swt.events.TreeEvent;
import org.eclipse.swt.graphics.Cursor;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Item;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Shell;
@ -125,6 +130,7 @@ import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.dialogs.PropertyDialogAction;
import org.eclipse.ui.part.EditorInputTransfer;
import org.eclipse.ui.part.PluginTransfer;
import org.eclipse.ui.progress.UIJob;
import org.eclipse.ui.views.framelist.GoIntoAction;
@ -1726,9 +1732,40 @@ public class SystemView extends TreeViewer implements ISystemTree,
*/
public void systemResourceChanged(ISystemResourceChangeEvent event)
{
int type = event.getType();
Object src = event.getSource();
Object parent = event.getParent();
ResourceChangedJob job = new ResourceChangedJob(event, this);
job.setPriority(Job.INTERACTIVE);
//job.setUser(true);
job.schedule();
Display display = Display.getCurrent();
try {
while (job.getResult() == null) {
while (display!=null && display.readAndDispatch()) {}
if (job.getResult() == null) Thread.sleep(200);
}
} catch(InterruptedException e) {}
}
/**
* Inner class which extends UIJob to connect this connection
* on the UI Thread when no Shell is available from
* the caller
*/
public class ResourceChangedJob extends UIJob {
protected ISystemResourceChangeEvent _event;
protected SystemView _originatingViewer;
public ResourceChangedJob(ISystemResourceChangeEvent event, SystemView originatingViewer)
{
super("Resource Changed...");
_event = event;
}
public IStatus runInUIThread(IProgressMonitor monitor)
{
int type = _event.getType();
Object src = _event.getSource();
Object parent = _event.getParent();
String[] properties = new String[1];
if (parent == RSEUIPlugin.getTheSystemRegistry())
parent = inputProvider;
@ -1737,12 +1774,12 @@ public class SystemView extends TreeViewer implements ISystemTree,
Widget parentItem = null;
Object[] multiSource = null;
Object previous = null;
if (event.getViewerItem() instanceof TreeItem)
inputTreeItem = (TreeItem)event.getViewerItem();
if (_event.getViewerItem() instanceof TreeItem)
inputTreeItem = (TreeItem)_event.getViewerItem();
else
inputTreeItem = null;
boolean wasSelected = false;
boolean originatedHere = (event.getOriginatingViewer() == null) || (event.getOriginatingViewer() == this);
boolean originatedHere = (_event.getOriginatingViewer() == null) || (_event.getOriginatingViewer() == _originatingViewer);
//logDebugMsg("INSIDE SYSRESCHGD: " + type + ", " + src + ", " + parent);
switch(type)
@ -1750,10 +1787,10 @@ public class SystemView extends TreeViewer implements ISystemTree,
// SPECIAL CASES: ANYTHING TO DO WITH FILTERS!!
case EVENT_RENAME_FILTER_REFERENCE:
case EVENT_CHANGE_FILTER_REFERENCE:
findAndUpdateFilter(event, type);
findAndUpdateFilter(_event, type);
break;
case EVENT_CHANGE_FILTERSTRING_REFERENCE:
findAndUpdateFilterString(event, type);
findAndUpdateFilterString(_event, type);
break;
case EVENT_ADD_FILTERSTRING_REFERENCE:
@ -1770,10 +1807,10 @@ public class SystemView extends TreeViewer implements ISystemTree,
affectsInput(src))
{
close();
return;
return Status.OK_STATUS;
}
findAndUpdateFilterParent(event, type);
findAndUpdateFilterParent(_event, type);
break;
case EVENT_ADD:
@ -1786,7 +1823,7 @@ public class SystemView extends TreeViewer implements ISystemTree,
//refresh(parent);
parentItem = findItem(parent);
if (parentItem == null)
return;
return Status.OK_STATUS;
if ((parentItem instanceof Item) && !getExpanded((Item)parentItem))
{
refresh(parent); // flush cached stuff so next call will show new item
@ -1799,20 +1836,20 @@ public class SystemView extends TreeViewer implements ISystemTree,
//System.out.println("event.getParent() instanceof SystemRegistry: " + (event.getParent() instanceof SystemRegistry));
//System.out.println("inputProvider.showingConnections().........: " + (inputProvider.showingConnections()));
if ((parent == inputProvider) && addingConnection &&
(event.getParent() instanceof ISystemRegistry) &&
(_event.getParent() instanceof ISystemRegistry) &&
!inputProvider.showingConnections())
return; // only reflect new connections in main perspective. pc42742
return Status.OK_STATUS; // only reflect new connections in main perspective. pc42742
int pos = -1;
if (type == EVENT_ADD_RELATIVE)
{
previous = event.getRelativePrevious();
previous = _event.getRelativePrevious();
if (previous != null)
pos = getItemIndex(parentItem, previous);
if (pos >= 0)
pos++; // want to add after previous
}
else
pos = event.getPosition();
pos = _event.getPosition();
//logDebugMsg("ADDING CONN? "+ addingConnection + ", position="+pos);
createTreeItem(parentItem, src, pos);
setSelection(new StructuredSelection(src),true);
@ -1823,11 +1860,11 @@ public class SystemView extends TreeViewer implements ISystemTree,
{
logDebugMsg("SV event: EVENT_ADD_MANY");
}
multiSource = event.getMultiSource();
multiSource = _event.getMultiSource();
clearSelection();
parentItem = findItem(parent);
if (parentItem == null)
return;
return Status.OK_STATUS;
if ((parentItem instanceof Item) && !getExpanded((Item)parentItem))
{
refresh(parent); // flush cached stuff so next call will show new items
@ -1837,7 +1874,7 @@ public class SystemView extends TreeViewer implements ISystemTree,
boolean addingConnections = (multiSource[0] instanceof IHost);
// are we restoring connections previously removed due to making a profile inactive,
// and is one of these connections the one we were opened with?
if (addingConnections && (event.getParent() instanceof ISystemRegistry) &&
if (addingConnections && (_event.getParent() instanceof ISystemRegistry) &&
(inputProvider instanceof SystemEmptyListAPIProviderImpl))
{
boolean done = false;
@ -1852,13 +1889,13 @@ public class SystemView extends TreeViewer implements ISystemTree,
}
}
if (done)
return;
return Status.OK_STATUS;
}
// are we adding connections and yet we are not a secondary perspective?
// If so, this event does not apply to us.
else if (addingConnections && (event.getParent() instanceof ISystemRegistry) &&
else if (addingConnections && (_event.getParent() instanceof ISystemRegistry) &&
!inputProvider.showingConnections())
return;
return Status.OK_STATUS;
for (int idx=0; idx<multiSource.length; idx++)
{
@ -1874,12 +1911,12 @@ public class SystemView extends TreeViewer implements ISystemTree,
{
logDebugMsg("SV event: EVENT_REPLACE_CHILDREN");
}
multiSource = event.getMultiSource();
multiSource = _event.getMultiSource();
//logDebugMsg("MULTI-SRC LENGTH : " + multiSource.length);
clearSelection();
parentItem = findItem(parent);
if (parentItem == null)
return;
return Status.OK_STATUS;
if (multiSource.length > 0 && parentItem != null && parentItem instanceof Item )
{
getControl().setRedraw(false);
@ -1953,11 +1990,11 @@ public class SystemView extends TreeViewer implements ISystemTree,
if (affectsInput(src))
{
close();
return;
return Status.OK_STATUS;
}
parentItem = findItem(parent);
if (parentItem == null)
return;
return Status.OK_STATUS;
if ((parentItem instanceof Item) && !getExpanded((Item)parentItem))
refresh(parent); // flush memory
else
@ -1965,7 +2002,7 @@ public class SystemView extends TreeViewer implements ISystemTree,
wasSelected = isSelectedOrChildSelected(src);
if (wasSelected)
clearSelection();
remove(src);
_originatingViewer.remove(src);
if (wasSelected)
setSelection(new StructuredSelection(parent),true);
}
@ -1974,16 +2011,16 @@ public class SystemView extends TreeViewer implements ISystemTree,
case EVENT_DELETE_MANY:
if (debug)
logDebugMsg("SV event: EVENT_DELETE_MANY ");
multiSource = event.getMultiSource();
multiSource = _event.getMultiSource();
// are we a secondary perspective, and our input or parent of our input was deleted?
if (affectsInput(multiSource))
{
close();
return;
return Status.OK_STATUS;
}
parentItem = findItem(parent);
if (parentItem == null)
return;
return Status.OK_STATUS;
if ((parentItem instanceof Item) && !getExpanded((Item)parentItem))
refresh(parent); // flush memory
else
@ -1991,7 +2028,7 @@ public class SystemView extends TreeViewer implements ISystemTree,
wasSelected = isSelectedOrChildSelected(multiSource);
if (wasSelected)
clearSelection();
remove(multiSource);
_originatingViewer.remove(multiSource);
if (wasSelected)
setSelection(new StructuredSelection(parent),true);
}
@ -2124,7 +2161,7 @@ public class SystemView extends TreeViewer implements ISystemTree,
{
Object element = i.next();
ISystemViewElementAdapter adapter = getAdapter(element);
ISystemViewElementAdapter adapter = _originatingViewer.getAdapter(element);
if ((parentElementItem==null) && (adapter != null) && (!adapter.hasChildren(element)))
{
//parentItem = getParentItem((Item)findItem(element));
@ -2192,7 +2229,7 @@ public class SystemView extends TreeViewer implements ISystemTree,
if (j.hasNext())
{
Object element = j.next();
ISystemViewElementAdapter adapter = getAdapter(element);
ISystemViewElementAdapter adapter = _originatingViewer.getAdapter(element);
if ((parentElemItem==null) && (adapter != null))
{
Item parItem = getParentItem((Item)findItem(element));
@ -2230,8 +2267,8 @@ public class SystemView extends TreeViewer implements ISystemTree,
{
// if we cannot find a parent element that has a system filter reference then we refresh
// everything since the explorer must be within a filter
event.setType(ISystemResourceChangeEvents.EVENT_REFRESH);
systemResourceChanged(event);
_event.setType(ISystemResourceChangeEvents.EVENT_REFRESH);
systemResourceChanged(_event);
}
break;
case EVENT_REFRESH_REMOTE:
@ -2249,18 +2286,18 @@ public class SystemView extends TreeViewer implements ISystemTree,
case EVENT_MOVE_MANY:
if (debug)
logDebugMsg("SV event: EVENT_MOVE_MANY ");
multiSource = event.getMultiSource();
multiSource = _event.getMultiSource();
if ((multiSource == null) || (multiSource.length == 0))
return;
return Status.OK_STATUS;
parentItem = findItem(parent);
if (parentItem == null)
return;
return Status.OK_STATUS;
if ((parentItem instanceof Item) && !getExpanded((Item)parentItem))
refresh(parent); // flush memory
else
{
clearSelection();
moveTreeItems(parentItem, multiSource, event.getPosition());
moveTreeItems(parentItem, multiSource, _event.getPosition());
setSelection(new StructuredSelection(multiSource),true);
}
break;
@ -2313,7 +2350,7 @@ public class SystemView extends TreeViewer implements ISystemTree,
logDebugMsg("SV event: EVENT_REVEAL_AND_SELECT ");
parentItem = findItem(parent);
if (parentItem == null)
return;
return Status.OK_STATUS;
if ((parentItem instanceof Item) && !getExpanded((Item)parentItem))
{
setExpandedState(parent, true);
@ -2347,7 +2384,7 @@ public class SystemView extends TreeViewer implements ISystemTree,
logDebugMsg("SV event: EVENT_SELECT ");
item = findItem(src);
if (item == null) // if not showing item, this is a no-op
return;
return Status.OK_STATUS;
setSelection(new StructuredSelection(src), true);
break;
case EVENT_SELECT_EXPAND:
@ -2355,14 +2392,17 @@ public class SystemView extends TreeViewer implements ISystemTree,
logDebugMsg("SV event: EVENT_SELECT_EXPAND ");
item = findItem(src);
if (item == null) // if not showing item, this is a no-op
return;
return Status.OK_STATUS;
if (!getExpanded((Item)item))
setExpandedState(src, true);
setSelection(new StructuredSelection(src), true);
break;
}
return Status.OK_STATUS;
}
}
// ------------------------------------
// ISYSTEMREMOTEChangeListener METHOD
// ------------------------------------