diff options
author | donald.g.dunne | 2014-11-24 17:22:23 +0000 |
---|---|---|
committer | Angel Avila | 2014-11-24 17:22:23 +0000 |
commit | 7b10e8fa24170d8f26dec5d1525c81431c01641a (patch) | |
tree | cdac25556722f4999776af225e1045cc11e00009 /plugins | |
parent | 239a0fdab02eae256aba30a91d1fd5d747d8ec66 (diff) | |
download | org.eclipse.osee-7b10e8fa24170d8f26dec5d1525c81431c01641a.tar.gz org.eclipse.osee-7b10e8fa24170d8f26dec5d1525c81431c01641a.tar.xz org.eclipse.osee-7b10e8fa24170d8f26dec5d1525c81431c01641a.zip |
feature[ats_ATS119815]: Add double-click and filter select to FilterTreeDialog
Change-Id: I2f6bbe5c3d93d4ee788999fdb9de1f0e363fa2eb
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/dialog/FilteredTreeDialog.java | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/dialog/FilteredTreeDialog.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/dialog/FilteredTreeDialog.java index cf0ca9ddd99..8f4eb959b41 100644 --- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/dialog/FilteredTreeDialog.java +++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/dialog/FilteredTreeDialog.java @@ -13,9 +13,12 @@ package org.eclipse.osee.framework.ui.skynet.widgets.dialog; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.DoubleClickEvent; import org.eclipse.jface.viewers.IBaseLabelProvider; import org.eclipse.jface.viewers.IContentProvider; +import org.eclipse.jface.viewers.IDoubleClickListener; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.SelectionChangedEvent; @@ -25,11 +28,15 @@ import org.eclipse.osee.framework.core.util.Result; import org.eclipse.osee.framework.ui.swt.ALayout; import org.eclipse.osee.framework.ui.swt.Displays; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; + +import org.eclipse.swt.widgets.TreeItem; import org.eclipse.ui.dialogs.PatternFilter; public class FilteredTreeDialog extends MessageDialog { @@ -139,6 +146,27 @@ public class FilteredTreeDialog extends MessageDialog { updateStatusLabel(); } }); + final FilteredTreeDialog dialog = this; + treeViewer.getViewer().addDoubleClickListener(new IDoubleClickListener() { + + @Override + public void doubleClick(DoubleClickEvent event) { + updateSelected(); + dialog.okPressed(); + } + }); + treeViewer.getFilterControl().addModifyListener(new ModifyListener() { + + @Override + public void modifyText(ModifyEvent e) { + Collection<TreeItem> visibleItems = getVisibleItems(); + if (visibleItems.size() == 1) { + treeViewer.getViewer().setSelection( + new StructuredSelection(new Object[] {visibleItems.iterator().next().getData()})); + getButton(IDialogConstants.OK_ID).setEnabled(true); + } + } + }); if (input != null) { treeViewer.getViewer().setInput(input); } @@ -150,6 +178,21 @@ public class FilteredTreeDialog extends MessageDialog { return parent; } + public List<TreeItem> getVisibleItems() { + List<TreeItem> toReturn = new ArrayList<TreeItem>(); + getVisibleItems(toReturn, treeViewer.getViewer().getTree().getItems()); + return toReturn; + } + + private void getVisibleItems(List<TreeItem> toReturn, TreeItem items[]) { + for (TreeItem item : items) { + toReturn.add(item); + if (item.getExpanded()) { + getVisibleItems(toReturn, item.getItems()); + } + } + } + protected void updateSelected() { selected.clear(); for (Object obj : ((StructuredSelection) treeViewer.getViewer().getSelection()).toArray()) { |