From fd1f09c8955c8a039d4a595d4102ff8e7e255ef2 Mon Sep 17 00:00:00 2001 From: David McKnight Date: Fri, 6 Oct 2006 14:17:31 +0000 Subject: [PATCH] position to fix for monitor view --- .../rse/ui/view/SystemTableTreeView.java | 39 ++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemTableTreeView.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemTableTreeView.java index a1709105385..12b8812f7c7 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemTableTreeView.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SystemTableTreeView.java @@ -56,6 +56,7 @@ import org.eclipse.rse.model.ISystemResourceChangeEvent; import org.eclipse.rse.model.ISystemResourceChangeEvents; import org.eclipse.rse.model.ISystemResourceChangeListener; import org.eclipse.rse.model.SystemRegistry; +import org.eclipse.rse.services.clientserver.StringCompare; import org.eclipse.rse.services.clientserver.messages.SystemMessageException; import org.eclipse.rse.ui.ISystemContextMenuConstants; import org.eclipse.rse.ui.ISystemDeleteTarget; @@ -94,6 +95,7 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Layout; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableItem; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeColumn; @@ -1828,12 +1830,47 @@ implements IMenuListener, ISystemDeleteTarget, ISystemRenameTarget, ISystemSelec } + public void positionTo(String name) { ArrayList selectedItems = new ArrayList(); - Composite tree = getTableTree(); + Tree tree = getTree(); + TreeItem topItem = null; + for (int i = 0; i < tree.getItemCount(); i++) + { + TreeItem item = tree.getItem(i); + Object data = item.getData(); + if (data instanceof IAdaptable) + { + ISystemViewElementAdapter adapter = getAdapter(data); + String itemName = adapter.getName(data); + + if (StringCompare.compare(name, itemName, false)) + { + if (topItem == null) + { + topItem = item; + } + selectedItems.add(item); + } + } + } + + if (selectedItems.size() > 0) + { + TreeItem[] tItems = new TreeItem[selectedItems.size()]; + for (int i = 0; i < selectedItems.size(); i++) + { + tItems[i] = (TreeItem) selectedItems.get(i); + } + + tree.setSelection(tItems); + tree.setTopItem(topItem); + setSelection(getSelection(), true); + } } + protected void handleKeyPressed(KeyEvent event) { if ((event.character == SWT.DEL) && (event.stateMask == 0) && (((IStructuredSelection) getSelection()).size() > 0))