From 0d2b4d765f3a891361733a7864468339acb85bd3 Mon Sep 17 00:00:00 2001 From: David McKnight Date: Mon, 29 Jan 2007 18:05:10 +0000 Subject: [PATCH] [170728] fix for a refresh issue during the rename --- .../rse/internal/ui/view/SystemView.java | 43 +++++++++++++++---- .../org/eclipse/rse/ui/view/SystemView.java | 43 +++++++++++++++---- 2 files changed, 70 insertions(+), 16 deletions(-) diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemView.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemView.java index 91220e4bec6..5088b022503 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemView.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemView.java @@ -39,7 +39,6 @@ import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.Separator; import org.eclipse.jface.viewers.DecoratingLabelProvider; import org.eclipse.jface.viewers.DoubleClickEvent; -import org.eclipse.jface.viewers.IBaseLabelProvider; import org.eclipse.jface.viewers.IBasicPropertyConstants; import org.eclipse.jface.viewers.IDoubleClickListener; import org.eclipse.jface.viewers.ILabelDecorator; @@ -365,7 +364,7 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour protected void init() { _setList = new ArrayList(); busyCursor = new Cursor(shell.getDisplay(), SWT.CURSOR_WAIT); - setUseHashlookup(true); // new for our 2nd release. Attempt to fix 38 minutes to refresh for 15K elements + //setUseHashlookup(true); // new for our 2nd release. Attempt to fix 38 minutes to refresh for 15K elements // set content provider SystemViewLabelAndContentProvider lcProvider = new SystemViewLabelAndContentProvider(); @@ -2646,10 +2645,9 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour } // rename explicitly here (since internalUpdate doesn't seem to have an effect - System.out.println("setting name to "+newElementName); match.setText(newElementName); - - //internalUpdate(match, data, properties); + //updateItem(match, renameObject); + internalUpdate(match, data, properties); //update(data, properties); // for refreshing non-structural properties in viewer when model changes //System.out.println("Match found. refresh required? " + refresh); @@ -2661,7 +2659,8 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour if (refresh) { - smartRefresh((TreeItem[])matches.toArray(new TreeItem[matches.size()])); + // causes duplicates to appear when there are more than one rename objects + //smartRefresh((TreeItem[])matches.toArray(new TreeItem[matches.size()])); getTree().setSelection(selected); } @@ -2770,6 +2769,23 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour } return true; } + + protected void doUpdateItem(final Item item, Object element) + { + super.doUpdateItem(item, element); + + // adding this because base eclipse version isn't renaming properly on duplicates + ISystemRemoteElementAdapter adapter = getRemoteAdapter(element); + if (adapter != null) + { + String oldText = item.getText(); + String newText = adapter.getName(element); + if (!oldText.equals(newText)) + { + item.setText(newText); + } + } + } /** * Given the result of findAllRemoteItemReferences, scan for first non-filter object @@ -2829,6 +2845,12 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour logDebugMsg("in doOurInternalRefresh on " + getAdapter(element).getName(element)); //$NON-NLS-1$ logDebugMsg("...current selection is " + getFirstSelectionName(getSelection())); //$NON-NLS-1$ } + ISystemViewElementAdapter adapter = getAdapter(element); + if (adapter != null) + { + //String name = adapter.getName(element); + //System.out.println("refreshing "+ ((TreeItem)widget).getText() + " with " + name); + } SystemElapsedTimer timer = null; if (doTimings) timer = new SystemElapsedTimer(); if (widget instanceof Item) { @@ -3243,6 +3265,11 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour timer.setStartTime(); } } + + public void refreshRemote(Object element) + { + smartRefresh(element, true); + } /** * Do an intelligent refresh of the given element. Can be null for full refresh @@ -5268,11 +5295,11 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour _setList.add(newSet); return newSet; } - +/* protected boolean usingElementMap() { return false; } - +*/ public void add(Object parentElementOrTreePath, Object[] childElements) { assertElementsNotNull(childElements); diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemView.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemView.java index 91220e4bec6..5088b022503 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemView.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemView.java @@ -39,7 +39,6 @@ import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.Separator; import org.eclipse.jface.viewers.DecoratingLabelProvider; import org.eclipse.jface.viewers.DoubleClickEvent; -import org.eclipse.jface.viewers.IBaseLabelProvider; import org.eclipse.jface.viewers.IBasicPropertyConstants; import org.eclipse.jface.viewers.IDoubleClickListener; import org.eclipse.jface.viewers.ILabelDecorator; @@ -365,7 +364,7 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour protected void init() { _setList = new ArrayList(); busyCursor = new Cursor(shell.getDisplay(), SWT.CURSOR_WAIT); - setUseHashlookup(true); // new for our 2nd release. Attempt to fix 38 minutes to refresh for 15K elements + //setUseHashlookup(true); // new for our 2nd release. Attempt to fix 38 minutes to refresh for 15K elements // set content provider SystemViewLabelAndContentProvider lcProvider = new SystemViewLabelAndContentProvider(); @@ -2646,10 +2645,9 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour } // rename explicitly here (since internalUpdate doesn't seem to have an effect - System.out.println("setting name to "+newElementName); match.setText(newElementName); - - //internalUpdate(match, data, properties); + //updateItem(match, renameObject); + internalUpdate(match, data, properties); //update(data, properties); // for refreshing non-structural properties in viewer when model changes //System.out.println("Match found. refresh required? " + refresh); @@ -2661,7 +2659,8 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour if (refresh) { - smartRefresh((TreeItem[])matches.toArray(new TreeItem[matches.size()])); + // causes duplicates to appear when there are more than one rename objects + //smartRefresh((TreeItem[])matches.toArray(new TreeItem[matches.size()])); getTree().setSelection(selected); } @@ -2770,6 +2769,23 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour } return true; } + + protected void doUpdateItem(final Item item, Object element) + { + super.doUpdateItem(item, element); + + // adding this because base eclipse version isn't renaming properly on duplicates + ISystemRemoteElementAdapter adapter = getRemoteAdapter(element); + if (adapter != null) + { + String oldText = item.getText(); + String newText = adapter.getName(element); + if (!oldText.equals(newText)) + { + item.setText(newText); + } + } + } /** * Given the result of findAllRemoteItemReferences, scan for first non-filter object @@ -2829,6 +2845,12 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour logDebugMsg("in doOurInternalRefresh on " + getAdapter(element).getName(element)); //$NON-NLS-1$ logDebugMsg("...current selection is " + getFirstSelectionName(getSelection())); //$NON-NLS-1$ } + ISystemViewElementAdapter adapter = getAdapter(element); + if (adapter != null) + { + //String name = adapter.getName(element); + //System.out.println("refreshing "+ ((TreeItem)widget).getText() + " with " + name); + } SystemElapsedTimer timer = null; if (doTimings) timer = new SystemElapsedTimer(); if (widget instanceof Item) { @@ -3243,6 +3265,11 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour timer.setStartTime(); } } + + public void refreshRemote(Object element) + { + smartRefresh(element, true); + } /** * Do an intelligent refresh of the given element. Can be null for full refresh @@ -5268,11 +5295,11 @@ public class SystemView extends TreeViewer implements ISystemTree, ISystemResour _setList.add(newSet); return newSet; } - +/* protected boolean usingElementMap() { return false; } - +*/ public void add(Object parentElementOrTreePath, Object[] childElements) { assertElementsNotNull(childElements);