diff options
author | ddunne | 2008-01-03 21:11:07 +0000 |
---|---|---|
committer | ddunne | 2008-01-03 21:11:07 +0000 |
commit | 091a94f08b4bf307ba6d803a6cb927fde5ef0f09 (patch) | |
tree | 7a03d7b11f176d5eceaef2f4a9c62a0631a9c5e2 | |
parent | 8cc84ff3744aa03aa17978899013a6b922aaf5c1 (diff) | |
download | org.eclipse.osee-091a94f08b4bf307ba6d803a6cb927fde5ef0f09.tar.gz org.eclipse.osee-091a94f08b4bf307ba6d803a6cb927fde5ef0f09.tar.xz org.eclipse.osee-091a94f08b4bf307ba6d803a6cb927fde5ef0f09.zip |
Fixed BranchSelectionDialog
Added to Artifact Explorer
2 files changed, 99 insertions, 24 deletions
diff --git a/MS_0.1.4_20080103/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactExplorer.java b/MS_0.1.4_20080103/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactExplorer.java index fda6e383e72..d85cadd1d5b 100644 --- a/MS_0.1.4_20080103/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactExplorer.java +++ b/MS_0.1.4_20080103/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactExplorer.java @@ -31,6 +31,7 @@ import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.window.Window;
import org.eclipse.osee.framework.jdk.core.type.HashCollection;
import org.eclipse.osee.framework.jdk.core.util.GUID;
import org.eclipse.osee.framework.jdk.core.util.OseeProperties;
@@ -85,6 +86,7 @@ import org.eclipse.osee.framework.ui.skynet.menu.IGlobalMenuHelper; import org.eclipse.osee.framework.ui.skynet.render.RendererManager;
import org.eclipse.osee.framework.ui.skynet.skywalker.SkyWalkerView;
import org.eclipse.osee.framework.ui.skynet.util.ArtifactClipboard;
+import org.eclipse.osee.framework.ui.skynet.util.BranchSelectionDialog;
import org.eclipse.osee.framework.ui.skynet.util.DbConnectionExceptionComposite;
import org.eclipse.osee.framework.ui.skynet.util.HierarchicalReportDialog;
import org.eclipse.osee.framework.ui.skynet.util.HtmlReportJob;
@@ -281,6 +283,7 @@ public class ArtifactExplorer extends ViewPart implements IEventReceiver, IActio if (OseeProperties.getInstance().isDeveloper()) {
createShowArtIdsAction();
}
+ createSetDefaultBranchAction();
OseeAts.addBugToViewToolbar(this, this, SkynetActivator.getInstance(), VIEW_ID, "Artifact Explorer");
getViewSite().getActionBars().getStatusLineManager().add(branchStatusItem);
@@ -410,6 +413,24 @@ public class ArtifactExplorer extends ViewPart implements IEventReceiver, IActio toolbarManager.add(showArtIds);
}
+ private void createSetDefaultBranchAction() {
+ Action setDefaultBranch = new Action("Set Default Branch", Action.AS_PUSH_BUTTON) {
+ @Override
+ public void run() {
+ BranchSelectionDialog branchSelection =
+ new BranchSelectionDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell());
+ int result = branchSelection.open();
+ if (result == Window.OK) {
+ BranchPersistenceManager.getInstance().setDefaultBranch(branchSelection.getSelection());
+ }
+ }
+ };
+ setDefaultBranch.setImageDescriptor(SkynetGuiPlugin.getInstance().getImageDescriptor("branch_change.gif"));
+ setDefaultBranch.setAccelerator(SWT.CTRL | 'B');
+ IMenuManager toolbarManager = getViewSite().getActionBars().getMenuManager();
+ toolbarManager.add(setDefaultBranch);
+ }
+
protected void createShowArtTypeAction() {
showArtType = new Action("Show Artifact Type") {
diff --git a/MS_0.1.4_20080103/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/BranchSelectionDialog.java b/MS_0.1.4_20080103/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/BranchSelectionDialog.java index 19ce9f04b38..ebfb1b49a31 100644 --- a/MS_0.1.4_20080103/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/BranchSelectionDialog.java +++ b/MS_0.1.4_20080103/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/BranchSelectionDialog.java @@ -11,63 +11,117 @@ package org.eclipse.osee.framework.ui.skynet.util; import java.sql.SQLException; -import java.util.ArrayList; -import org.eclipse.jface.viewers.ArrayContentProvider; +import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ILabelProviderListener; -import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.viewers.ISelectionChangedListener; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.osee.framework.skynet.core.artifact.Branch; import org.eclipse.osee.framework.skynet.core.artifact.BranchPersistenceManager; import org.eclipse.osee.framework.ui.plugin.util.AWorkbench; +import org.eclipse.osee.framework.ui.plugin.util.JobbedNode; import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin; +import org.eclipse.osee.framework.ui.skynet.branch.BranchContentProvider; +import org.eclipse.osee.framework.ui.skynet.util.filteredTree.OSEEFilteredTree; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.KeyEvent; +import org.eclipse.swt.events.KeyListener; import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; -import org.eclipse.ui.dialogs.ListDialog; +import org.eclipse.ui.dialogs.PatternFilter; /** * @author Donald G. Dunne */ -public class BranchSelectionDialog extends ListDialog { +public class BranchSelectionDialog extends MessageDialog { Branch selected = null; + private OSEEFilteredTree oseeFilteredTree; + private static PatternFilter patternFilter = new PatternFilter(); public BranchSelectionDialog(Shell parent) { - super(parent); - setContentProvider(new ArrayContentProvider()); - setLabelProvider(new BranchLabelProvider()); - try { - setInput(BranchPersistenceManager.getInstance().getBranches()); - } catch (SQLException ex) { - OSEELog.logException(SkynetGuiPlugin.class, ex, false); - } + super(Display.getCurrent().getActiveShell(), "Select Branch", null, null, MessageDialog.NONE, new String[] {"Ok", + "Cancel"}, 0); setShellStyle(getShellStyle() | SWT.RESIZE); - setTitle("Select Branch"); - setMessage("Select Branch"); } public Branch getSelection() { - return (Branch) getResult()[0]; + return selected; } @Override protected Control createDialogArea(Composite container) { - Control c = super.createDialogArea(container); - if (selected != null) { - ArrayList<Object> sel = new ArrayList<Object>(); - sel.add(selected); - getTableViewer().setSelection(new StructuredSelection(sel.toArray(new Object[sel.size()]))); - getTableViewer().getTable().setFocus(); + oseeFilteredTree = new OSEEFilteredTree(container, SWT.SINGLE | SWT.BORDER, patternFilter); + oseeFilteredTree.getViewer().setContentProvider(new BranchContentProvider()); + oseeFilteredTree.setInitialText(""); + oseeFilteredTree.getFilterControl().setFocus(); + oseeFilteredTree.getViewer().addSelectionChangedListener(new ISelectionChangedListener() { + /* (non-Javadoc) + * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent) + */ + public void selectionChanged(SelectionChangedEvent event) { + selected = getSelectedBranch(); + } + }); + oseeFilteredTree.getViewer().setLabelProvider( + new org.eclipse.osee.framework.ui.skynet.branch.BranchLabelProvider()); + GridData gd = new GridData(GridData.FILL_BOTH); + gd.heightHint = 500; + gd.widthHint = 500; + oseeFilteredTree.getViewer().getTree().setLayoutData(gd); + oseeFilteredTree.getViewer().getTree().addListener(SWT.MouseDoubleClick, new Listener() { + public void handleEvent(Event event) { + if (event.button == 1) handleDoubleClick(); + } + }); + oseeFilteredTree.getViewer().getTree().addKeyListener(new KeyListener() { + /* + * (non-Javadoc) + * + * @see org.eclipse.swt.events.KeyListener#keyPressed(org.eclipse.swt.events.KeyEvent) + */ + public void keyPressed(KeyEvent e) { + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.swt.events.KeyListener#keyReleased(org.eclipse.swt.events.KeyEvent) + */ + public void keyReleased(KeyEvent e) { + if (e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_CR) handleDoubleClick(); + } + }); + try { + oseeFilteredTree.getViewer().setInput(BranchPersistenceManager.getInstance().getBranches()); + } catch (SQLException ex) { + OSEELog.logException(SkynetGuiPlugin.class, ex, true); } - return c; + return container; + } + + private Branch getSelectedBranch() { + IStructuredSelection sel = (IStructuredSelection) oseeFilteredTree.getViewer().getSelection(); + if (!sel.isEmpty()) selected = (Branch) ((JobbedNode) sel.getFirstElement()).getBackingData(); + return selected; + } + + private void handleDoubleClick() { + getSelectedBranch(); + okPressed(); } @Override protected void okPressed() { - if (getTableViewer().getSelection().isEmpty()) { + if (oseeFilteredTree.getViewer().getSelection().isEmpty()) { AWorkbench.popup("ERROR", "Must make selection."); return; } |