diff options
Diffstat (limited to 'org.eclipse.osee.framework.ui.skynet/src/org/eclipse')
43 files changed, 747 insertions, 69 deletions
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactDescriptorDialog.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactDescriptorDialog.java new file mode 100644 index 00000000000..84334a12dd9 --- /dev/null +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactDescriptorDialog.java @@ -0,0 +1,358 @@ +/******************************************************************************* + * Copyright (c) 2004, 2007 Boeing. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Boeing - initial API and implementation + *******************************************************************************/ +package org.eclipse.osee.framework.ui.skynet; + +import java.util.Collection; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.jface.dialogs.IconAndMessageDialog; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.osee.framework.skynet.core.artifact.ArtifactType; +import org.eclipse.osee.framework.ui.plugin.util.ObjectList; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.CLabel; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +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.Shell; + +public class ArtifactDescriptorDialog extends IconAndMessageDialog { + public final static int NONE = 0; + public final static int ERROR = 1; + public final static int INFORMATION = 2; + public final static int QUESTION = 3; + public final static int WARNING = 4; + private String[] buttonLabels; + private Button[] buttons; + private int defaultButtonIndex; + private String title; + private Image titleImage; + private Image image = null; + private Label errorLabel; + private Composite composite; + private Collection<ArtifactType> descriptors; + private ObjectList<ArtifactType> descriptorsList; + private ArtifactType entry = null; + String textField = ""; + String validationRegularExpression = null; + String validationErrorString = ""; + + /** + * The custom dialog area. + */ + private Control customArea; + + /** + * Create a message dialog. Note that the dialog will have no visual representation (no widgets) until it is told to + * open. + * <p> + * The labels of the buttons to appear in the button bar are supplied in this constructor as an array. The + * <code>open</code> method will return the index of the label in this array corresponding to the button that was + * pressed to close the dialog. If the dialog was dismissed without pressing a button (ESC, etc.) then -1 is + * returned. Note that the <code>open</code> method blocks. + * </p> + * + * @param parentShell the parent shell + * @param dialogTitle the dialog title, or <code>null</code> if none + * @param dialogTitleImage the dialog title image, or <code>null</code> if none + * @param dialogMessage the dialog message + * @param dialogImageType one of the following values: + * <ul> + * <li><code>MessageDialog.NONE</code> for a dialog with no image</li> + * <li><code>MessageDialog.ERROR</code> for a dialog with an error image</li> + * <li><code>MessageDialog.INFORMATION</code> for a dialog with an information image</li> + * <li><code>MessageDialog.QUESTION </code> for a dialog with a question image</li> + * <li><code>MessageDialog.WARNING</code> for a dialog with a warning image</li> + * </ul> + * @param dialogButtonLabels an array of labels for the buttons in the button bar + * @param defaultIndex the index in the button label array of the default button + */ + public ArtifactDescriptorDialog(Shell parentShell, String dialogTitle, Image dialogTitleImage, String dialogMessage, int dialogImageType, String[] dialogButtonLabels, int defaultIndex, Collection<ArtifactType> descriptors) { + super(parentShell); + this.title = dialogTitle; + this.titleImage = dialogTitleImage; + this.message = dialogMessage; + switch (dialogImageType) { + case ERROR: { + this.image = parentShell.getDisplay().getSystemImage(SWT.ICON_ERROR); + break; + } + case INFORMATION: { + this.image = parentShell.getDisplay().getSystemImage(SWT.ICON_INFORMATION); + break; + } + case QUESTION: { + this.image = parentShell.getDisplay().getSystemImage(SWT.ICON_QUESTION); + break; + } + case WARNING: { + this.image = parentShell.getDisplay().getSystemImage(SWT.ICON_WARNING); + break; + } + } + this.buttonLabels = dialogButtonLabels; + this.defaultButtonIndex = defaultIndex; + this.descriptors = descriptors; + } + + public void setSelectionListener(SelectionListener listener) { + for (int i = 0; i < buttons.length; i++) { + Button button = buttons[i]; + button.addSelectionListener(listener); + } + } + + /** + * Calling will enable dialog to loose focus + */ + public void setModeless() { + setShellStyle(SWT.DIALOG_TRIM | SWT.MODELESS); + setBlockOnOpen(false); + } + + /** + * override this method to make own checks on entry this will be called with every keystroke + * + * @return true if entry is valid + */ + public boolean isEntryValid() { + if (validationRegularExpression == null) { + return true; + } + return true; + } + + public void setValidationRegularExpression(String regExp) { + validationRegularExpression = regExp; + } + + public void setValidationErrorString(String errorText) { + validationErrorString = errorText; + } + + /* + * (non-Javadoc) Method declared on Dialog. + */ + protected void buttonPressed(int buttonId) { + setReturnCode(buttonId); + close(); + } + + /* + * (non-Javadoc) Method declared in Window. + */ + protected void configureShell(Shell shell) { + super.configureShell(shell); + if (title != null) shell.setText(title); + if (titleImage != null) shell.setImage(titleImage); + } + + /* + * (non-Javadoc) Method declared on Dialog. + */ + protected void createButtonsForButtonBar(Composite parent) { + buttons = new Button[buttonLabels.length]; + for (int i = 0; i < buttonLabels.length; i++) { + String label = buttonLabels[i]; + Button button = createButton(parent, i, label, defaultButtonIndex == i); + buttons[i] = button; + } + updateButtons(); + } + + /** + * Creates and returns the contents of an area of the dialog which appears below the message and above the button + * bar. + * <p> + * The default implementation of this framework method returns <code>null</code>. Subclasses may override. + * </p> + * + * @param parent parent composite to contain the custom area + * @return Control custom area control, or <code>null</code> + */ + protected Control createCustomArea(Composite parent) { + return null; + } + + /** + * This implementation of the <code>Dialog</code> framework method creates and lays out a composite and calls + * <code>createMessageArea</code> and <code>createCustomArea</code> to populate it. Subclasses should override + * <code>createCustomArea</code> to add contents below the message. + */ + protected Control createDialogArea(Composite parent) { + + // create message area + createMessageArea(parent); + + // create the top level composite for the dialog area + composite = new Composite(parent, SWT.NONE); + GridLayout layout = new GridLayout(); + layout.marginHeight = 0; + layout.marginWidth = 0; + composite.setLayout(layout); + + // Create error label + errorLabel = new Label(composite, SWT.NONE); + errorLabel.setSize(errorLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT)); + errorLabel.setText(""); + + new Label(composite, SWT.NULL).setText("Select artifact descriptor:"); + descriptorsList = new ObjectList<ArtifactType>(composite, SWT.BORDER | SWT.READ_ONLY | SWT.SCROLL_PAGE); + descriptorsList.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, true, true)); + + if (descriptors != null) { + for (ArtifactType descriptor : descriptors) { + descriptorsList.add(descriptor, descriptor.getName()); + } + descriptorsList.select(0); + } + + descriptorsList.addSelectionListener(new SelectionListener() { + public void widgetSelected(SelectionEvent e) { + updateButtons(); + } + + public void widgetDefaultSelected(SelectionEvent e) { + } + }); + descriptorsList.setFocus(); + + GridData data = new GridData(GridData.FILL_BOTH); + data.horizontalSpan = 2; + + composite.setLayoutData(data); + composite.setFont(parent.getFont()); + + // allow subclasses to add custom controls + customArea = createCustomArea(composite); + + // If it is null create a dummy label for spacing purposes + if (customArea == null) customArea = new Label(composite, SWT.NULL); + return composite; + } + + private void updateButtons() { + if (descriptorsList != null) { + entry = descriptorsList.getSelectedItem(); + + if (entry == null || !isEntryValid()) { + buttons[defaultButtonIndex].setEnabled(false); + errorLabel.setText(validationErrorString); + errorLabel.update(); + composite.layout(); + } else { + buttons[defaultButtonIndex].setEnabled(true); + errorLabel.setText(""); + errorLabel.update(); + composite.layout(); + } + } + } + + /** + * Gets a button in this dialog's button bar. + * + * @param index the index of the button in the dialog's button bar + * @return a button in the dialog's button bar + */ + protected Button getButton(int index) { + return buttons[index]; + } + + /** + * Returns the minimum message area width in pixels This determines the minimum width of the dialog. + * <p> + * Subclasses may override. + * </p> + * + * @return the minimum message area width (in pixels) + */ + protected int getMinimumMessageWidth() { + return convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH); + } + + /* + * (non-Javadoc) Method declared on Dialog. Sets a return code of -1 since none of the dialog + * buttons were pressed to close the dialog. + */ + protected void handleShellCloseEvent() { + super.handleShellCloseEvent(); + setReturnCode(-1); + } + + /** + * Convenience method to open a simple confirm (OK/Cancel) dialog. + * + * @param parent the parent shell of the dialog, or <code>null</code> if none + * @param title the dialog's title, or <code>null</code> if none + * @param message the message + * @return <code>true</code> if the user presses the OK button, <code>false</code> otherwise + */ + public static boolean openTextEntry(Shell parent, String title, String message) { + MessageDialog dialog = new MessageDialog(parent, title, null, + // accept the default window icon + message, QUESTION, new String[] {IDialogConstants.OK_LABEL, IDialogConstants.CANCEL_LABEL}, 0); + // OK is the default + return dialog.open() == 0; + } + + public ArtifactType getEntry() { + return entry; + } + + public String getTextField() { + return textField; + } + + public void setEntry(String entry) { + // text.setText(entry); + } + + /* + * @see org.eclipse.jface.dialogs.Dialog#createButton(org.eclipse.swt.widgets.Composite, int, + * java.lang.String, boolean) + */ + protected Button createButton(Composite parent, int id, String label, boolean defaultButton) { + + Button button = super.createButton(parent, id, label, defaultButton); + // Be sure to set the focus if the custom area cannot so as not + // to lose the defaultButton. + if (defaultButton && !customShouldTakeFocus()) button.setFocus(); + return button; + } + + /** + * Return whether or not we should apply the workaround where we take focus for the default button or if that should + * be determined by the dialog. By default only return true if the custom area is a label or CLabel that cannot take + * focus. + * + * @return boolean + */ + protected boolean customShouldTakeFocus() { + if (customArea instanceof Label) return false; + + if (customArea instanceof CLabel) return (customArea.getStyle() & SWT.NO_FOCUS) > 0; + + return true; + } + + /* + * @see IconAndMessageDialog#getImage() + */ + public Image getImage() { + return image; + } +} diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactDragDropSupport.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactDragDropSupport.java index 3e2a31a49f2..9e33c48f821 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactDragDropSupport.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactDragDropSupport.java @@ -21,8 +21,6 @@ import org.eclipse.osee.framework.db.connection.exception.OseeArgumentException; import org.eclipse.osee.framework.db.connection.exception.OseeCoreException;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactData;
-import org.eclipse.osee.framework.skynet.core.artifact.ArtifactDescriptorDialog;
-import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTransfer;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactType;
import org.eclipse.osee.framework.skynet.core.artifact.Branch;
import org.eclipse.osee.framework.skynet.core.artifact.WorkspaceURL;
@@ -33,6 +31,7 @@ import org.eclipse.osee.framework.skynet.core.relation.RelationSide; import org.eclipse.osee.framework.skynet.core.relation.RelationType;
import org.eclipse.osee.framework.skynet.core.relation.RelationTypeSide;
import org.eclipse.osee.framework.ui.plugin.util.AWorkspace;
+import org.eclipse.osee.framework.ui.skynet.artifact.ArtifactTransfer;
import org.eclipse.osee.framework.ui.skynet.branch.BranchSelectionDialog;
import org.eclipse.osee.framework.ui.skynet.relation.explorer.RelationExplorerWindow;
import org.eclipse.swt.dnd.DropTargetEvent;
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactExplorerDragAndDrop.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactExplorerDragAndDrop.java index 9dd7932132f..4c2312a2e1a 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactExplorerDragAndDrop.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactExplorerDragAndDrop.java @@ -12,11 +12,11 @@ import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactData;
-import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTransfer;
import org.eclipse.osee.framework.skynet.core.relation.CoreRelationEnumeration;
import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
import org.eclipse.osee.framework.ui.plugin.util.Wizards;
import org.eclipse.osee.framework.ui.skynet.Import.ArtifactImportWizard;
+import org.eclipse.osee.framework.ui.skynet.artifact.ArtifactTransfer;
import org.eclipse.osee.framework.ui.skynet.update.InterArtifactExplorerDropHandler;
import org.eclipse.osee.framework.ui.skynet.util.SkynetDragAndDrop;
import org.eclipse.swt.dnd.DND;
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/Import/ArtifactImportWizard.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/Import/ArtifactImportWizard.java index 646efe218a7..c26636a54ce 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/Import/ArtifactImportWizard.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/Import/ArtifactImportWizard.java @@ -23,12 +23,12 @@ import org.eclipse.jface.wizard.IWizardPage; import org.eclipse.jface.wizard.Wizard; import org.eclipse.osee.framework.db.connection.exception.OseeCoreException; import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.plugin.core.util.Jobs; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; import org.eclipse.osee.framework.skynet.core.artifact.ArtifactType; import org.eclipse.osee.framework.skynet.core.artifact.Branch; import org.eclipse.osee.framework.skynet.core.attribute.AttributeType; import org.eclipse.osee.framework.skynet.core.attribute.TypeValidityManager; -import org.eclipse.osee.framework.ui.plugin.util.Jobs; import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin; import org.eclipse.ui.IImportWizard; import org.eclipse.ui.IWorkbench; diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/Import/ImportMetaWizard.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/Import/ImportMetaWizard.java index 181dd7387e8..8af70989c83 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/Import/ImportMetaWizard.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/Import/ImportMetaWizard.java @@ -15,8 +15,8 @@ import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.wizard.Wizard; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.plugin.core.util.Jobs; import org.eclipse.osee.framework.skynet.core.artifact.Branch; -import org.eclipse.osee.framework.ui.plugin.util.Jobs; import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin; import org.eclipse.ui.IImportWizard; import org.eclipse.ui.IWorkbench; diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/XWidgetParser.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/XWidgetParser.java index 3623368b957..b3cbb848eea 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/XWidgetParser.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/XWidgetParser.java @@ -109,6 +109,8 @@ public class XWidgetParser { element.setAttribute("labelAfter", "true"); else if (xOption == XOption.LABEL_BEFORE) element.setAttribute("labelAfter", "false"); + else if (xOption == XOption.MULTI_SELECT) + element.setAttribute("multiSelect", "true"); else if (xOption == XOption.NONE) // do nothing ; @@ -153,16 +155,19 @@ public class XWidgetParser { else if (nodeName.equals("editable")) dynamicXWidgetLayoutData.getXOptionHandler().add( Boolean.parseBoolean(node.getNodeValue()) ? XOption.EDITABLE : XOption.NONE); - else if (nodeName.equals("xwidgetType")) + else if (nodeName.equals("xwidgetType")) { dynamicXWidgetLayoutData.setXWidgetName(node.getNodeValue()); - else if (nodeName.equals("fill")) { + } else if (nodeName.equals("multiSelect")) { + dynamicXWidgetLayoutData.getXOptionHandler().add( + Boolean.parseBoolean(node.getNodeValue()) ? XOption.MULTI_SELECT : XOption.NONE); + } else if (nodeName.equals("fill")) { String value = node.getNodeValue(); if (value.equalsIgnoreCase("Horizontally")) dynamicXWidgetLayoutData.getXOptionHandler().add(XOption.FILL_HORIZONTALLY); else if (value.equalsIgnoreCase("Vertically")) dynamicXWidgetLayoutData.getXOptionHandler().add(XOption.FILL_VERTICALLY); else - OseeLog.log(SkynetGuiPlugin.class, Level.WARNING, new IllegalArgumentException( + OseeLog.log(SkynetGuiPlugin.class, Level.WARNING, new IllegalArgumentException( "Unknown Fill Value \"" + value + "\"")); } else if (nodeName.equals("height")) dynamicXWidgetLayoutData.setHeight(Integer.parseInt(node.getNodeValue())); @@ -175,14 +180,14 @@ public class XWidgetParser { else if (value.equalsIgnoreCase("Center")) dynamicXWidgetLayoutData.getXOptionHandler().add(XOption.ALIGN_CENTER); else - OseeLog.log(SkynetGuiPlugin.class, Level.WARNING, new IllegalArgumentException( + OseeLog.log(SkynetGuiPlugin.class, Level.WARNING, new IllegalArgumentException( "Unknown Align Value \"" + value + "\"")); } else if (nodeName.equals("defaultValue")) dynamicXWidgetLayoutData.setDefaultValue(node.getNodeValue()); else if (nodeName.equals("keyedBranch")) dynamicXWidgetLayoutData.setKeyedBranchName(node.getNodeValue()); else { - OseeLog.log(SkynetGuiPlugin.class, Level.SEVERE, new IllegalArgumentException( + OseeLog.log(SkynetGuiPlugin.class, Level.SEVERE, new IllegalArgumentException( "Unsupported XWidget attribute \"" + nodeName + "\"")); } } diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/ArtifactTransfer.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/ArtifactTransfer.java new file mode 100644 index 00000000000..0bf455aa5a8 --- /dev/null +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/ArtifactTransfer.java @@ -0,0 +1,199 @@ +/******************************************************************************* + * Copyright (c) 2004, 2007 Boeing. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Boeing - initial API and implementation + *******************************************************************************/ +package org.eclipse.osee.framework.ui.skynet.artifact; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.util.logging.Level; +import org.eclipse.osee.framework.db.connection.exception.ArtifactDoesNotExist; +import org.eclipse.osee.framework.db.connection.exception.BranchDoesNotExist; +import org.eclipse.osee.framework.db.connection.exception.MultipleArtifactsExist; +import org.eclipse.osee.framework.db.connection.exception.OseeCoreException; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.skynet.core.SkynetActivator; +import org.eclipse.osee.framework.skynet.core.artifact.Artifact; +import org.eclipse.osee.framework.skynet.core.artifact.ArtifactData; +import org.eclipse.osee.framework.skynet.core.artifact.BranchManager; +import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery; +import org.eclipse.swt.dnd.ByteArrayTransfer; +import org.eclipse.swt.dnd.TransferData; + +/** + * The <code>ArtifactTransfer</code> class is used to transfer an array of <code>Artifact</code>s from one part to + * another in a drag and drop operation or a cut, copy, paste action. + * <p> + * In every drag and drop operation there is a <code>DragSource</code> and a <code>DropTarget</code>. When a drag occurs + * a <code>Transfer</code> is used to marshall the drag data from the source into a byte array. If a drop occurs another + * <code>Transfer</code> is used to marshall the byte array into drop data for the target. + * </p> + * <p> + * When a <code>CutAction</code> or a <code>CopyAction</code> is performed, this transfer is used to place references to + * the selected resources on the <code>Clipboard</code>. When a <code>PasteAction</code> is performed, the references on + * the clipboard are used to move or copy the resources to the selected destination. + * </p> + * <p> + * This class can be used for a <code>Viewer<code> or an SWT component directly. + * A singleton is provided which may be serially reused (see <code>getInstance</code>). It is not intended to be + * subclassed. + * </p> + * + * @see org.eclipse.jface.viewers.StructuredViewer + * @see org.eclipse.swt.dnd.DropTarget + * @see org.eclipse.swt.dnd.DragSource + * @author Robert A. Fisher + */ + +public class ArtifactTransfer extends ByteArrayTransfer { + + /** + * Singleton instance. + */ + private static final ArtifactTransfer instance = new ArtifactTransfer(); + + // Create a unique ID to make sure that different Eclipse + // applications use different "types" of <code>ResourceTransfer</code> + private static final String TYPE_NAME = + "artifact-transfer-format:" + System.currentTimeMillis() + ":" + instance.hashCode(); //$NON-NLS-2$//$NON-NLS-1$ + + private static final int TYPEID = registerType(TYPE_NAME); + + /** + * Creates a new transfer object. + */ + private ArtifactTransfer() { + } + + /** + * Returns the singleton instance. + * + * @return the singleton instance + */ + public static ArtifactTransfer getInstance() { + return instance; + } + + /* + * (non-Javadoc) Method declared on Transfer. + */ + protected int[] getTypeIds() { + return new int[] {TYPEID}; + } + + /* + * (non-Javadoc) Returns the type names. @return the list of type names + */ + protected String[] getTypeNames() { + return new String[] {TYPE_NAME}; + } + + /* + * (non-Javadoc) Method declared on Transfer. + */ + protected void javaToNative(Object data, TransferData transferData) { + if (!(data instanceof ArtifactData)) { + return; + } + + ArtifactData artData = (ArtifactData) data; + /** + * The resource serialization format is: (int) number of artifacts Then, the following for each resource: (int) + * artID (int) tagID Then the following (int) urlLength (int) sourceLength (chars) url (chars) source + */ + + try { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + DataOutputStream dataOut = new DataOutputStream(out); + + // write the number of resources + dataOut.writeInt(artData.getArtifacts().length); + + for (Artifact artifact : artData.getArtifacts()) { + writeArtifact(dataOut, artifact); + } + dataOut.writeInt(artData.getUrl().length()); + dataOut.writeInt(artData.getSource().length()); + dataOut.writeChars(artData.getUrl()); + dataOut.writeChars(artData.getSource()); + + // cleanup + dataOut.close(); + out.close(); + byte[] bytes = out.toByteArray(); + super.javaToNative(bytes, transferData); + } catch (IOException e) { + // it's best to send nothing if there were problems + } + } + + /* + * (non-Javadoc) Method declared on Transfer. + */ + public ArtifactData nativeToJava(TransferData transferData) { + /** + * The resource serialization format is: (int) number of artifacts Then, the following for each resource: (int) + * artID (int) tagID + */ + + byte[] bytes = (byte[]) super.nativeToJava(transferData); + if (bytes == null) return null; + DataInputStream in = new DataInputStream(new ByteArrayInputStream(bytes)); + try { + int count = in.readInt(); + Artifact[] artifacts = new Artifact[count]; + for (int i = 0; i < count; i++) + artifacts[i] = readArtifact(in); + int urlLength = in.readInt(); + int sourceLength = in.readInt(); + String url = ""; + for (int x = 0; x < urlLength; x++) + url += in.readChar(); + String source = ""; + for (int x = 0; x < sourceLength; x++) + source += in.readChar(); + return new ArtifactData(artifacts, url, source); + } catch (Exception ex) { + OseeLog.log(SkynetActivator.class, Level.SEVERE, ex); + return null; + } + } + + /** + * Reads a resource from the given stream. + * + * @param dataIn the input stream + * @return the resource + * @throws IllegalArgumentException + * @throws MultipleArtifactsExist + * @throws ArtifactDoesNotExist + * @throws IOException + * @throws BranchDoesNotExist + */ + private Artifact readArtifact(DataInputStream dataIn) throws OseeCoreException, IOException { + int artID = dataIn.readInt(); + int branchId = dataIn.readInt(); + return ArtifactQuery.getArtifactFromId(artID, BranchManager.getBranch(branchId)); + } + + /** + * Writes the given resource to the given stream. + * + * @param dataOut the output stream + * @param artifact the artifact + * @throws IOException if there is a problem writing to the stream + */ + private void writeArtifact(DataOutputStream dataOut, Artifact artifact) throws IOException { + dataOut.writeInt(artifact.getArtId()); + dataOut.writeInt(artifact.getBranch().getBranchId()); + } +}
\ No newline at end of file diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassXViewer.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassXViewer.java index 92276f31986..5c475578896 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassXViewer.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/artifact/massEditor/MassXViewer.java @@ -23,7 +23,6 @@ import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactData;
-import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTransfer;
import org.eclipse.osee.framework.skynet.core.event.FrameworkTransactionData;
import org.eclipse.osee.framework.skynet.core.event.IArtifactsChangeTypeEventListener;
import org.eclipse.osee.framework.skynet.core.event.IArtifactsPurgedEventListener;
@@ -35,6 +34,7 @@ import org.eclipse.osee.framework.ui.plugin.util.AWorkbench; import org.eclipse.osee.framework.ui.plugin.util.Displays;
import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin;
import org.eclipse.osee.framework.ui.skynet.artifact.ArtifactPromptChange;
+import org.eclipse.osee.framework.ui.skynet.artifact.ArtifactTransfer;
import org.eclipse.osee.framework.ui.skynet.render.PresentationType;
import org.eclipse.osee.framework.ui.skynet.render.RendererManager;
import org.eclipse.osee.framework.ui.swt.IDirtiableEditor;
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/OverviewPage.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/OverviewPage.java index 97c2b6d5f47..40175cfe3dc 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/OverviewPage.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/OverviewPage.java @@ -14,7 +14,7 @@ import java.util.List; import org.eclipse.jface.action.Action; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; -import org.eclipse.osee.framework.ui.plugin.util.Jobs; +import org.eclipse.osee.framework.plugin.core.util.Jobs; import org.eclipse.osee.framework.ui.skynet.IHelpContextIds; import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin; import org.eclipse.osee.framework.ui.skynet.XFormToolkit; diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/DeleteTransaction.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/DeleteTransaction.java index 0b03b8e5c83..0b6541d2c05 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/DeleteTransaction.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/DeleteTransaction.java @@ -16,8 +16,8 @@ import java.util.List; import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.osee.framework.jdk.core.util.Lib;
+import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.artifact.DeleteTransactionJob;
-import org.eclipse.osee.framework.ui.plugin.util.Jobs;
import org.eclipse.osee.framework.ui.skynet.blam.VariableMap;
/**
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/RelationOrderAnalysisOnBranch.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/RelationOrderAnalysisOnBranch.java index 56774a781c1..d52f4f10ba7 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/RelationOrderAnalysisOnBranch.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/RelationOrderAnalysisOnBranch.java @@ -30,6 +30,7 @@ import org.eclipse.core.runtime.jobs.Job; import org.eclipse.osee.framework.db.connection.exception.OseeCoreException;
import org.eclipse.osee.framework.logging.ILoggerListener;
import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactCache;
import org.eclipse.osee.framework.skynet.core.artifact.Branch;
@@ -38,7 +39,6 @@ import org.eclipse.osee.framework.skynet.core.relation.RelationLink; import org.eclipse.osee.framework.skynet.core.relation.RelationManager;
import org.eclipse.osee.framework.skynet.core.relation.RelationTypeManager;
import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.ui.plugin.util.Jobs;
import org.eclipse.osee.framework.ui.plugin.util.OseeData;
import org.eclipse.osee.framework.ui.skynet.blam.VariableMap;
import org.eclipse.osee.framework.ui.skynet.widgets.XBranchSelectWidget;
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/CompressWordAttributesHandler.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/CompressWordAttributesHandler.java index e0df4de7b9b..f6492caef4e 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/CompressWordAttributesHandler.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/CompressWordAttributesHandler.java @@ -23,13 +23,13 @@ import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.access.AccessControlManager;
import org.eclipse.osee.framework.skynet.core.access.PermissionEnum;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.word.WordUtil;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.plugin.util.Displays;
-import org.eclipse.osee.framework.ui.plugin.util.Jobs;
import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin;
import org.eclipse.ui.PlatformUI;
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/PurgeArtifactHandler.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/PurgeArtifactHandler.java index 6dfddf66061..694d0f8c1c5 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/PurgeArtifactHandler.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/PurgeArtifactHandler.java @@ -25,13 +25,13 @@ import org.eclipse.osee.framework.db.connection.DbTransaction; import org.eclipse.osee.framework.db.connection.OseeConnection;
import org.eclipse.osee.framework.db.connection.exception.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.SkynetActivator;
import org.eclipse.osee.framework.skynet.core.access.AccessControlManager;
import org.eclipse.osee.framework.skynet.core.access.PermissionEnum;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.plugin.util.CommandHandler;
-import org.eclipse.osee.framework.ui.plugin.util.Jobs;
import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin;
import org.eclipse.ui.PlatformUI;
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/RevertAttributeHandler.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/RevertAttributeHandler.java index f976b69eeb6..1ebd316e897 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/RevertAttributeHandler.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/RevertAttributeHandler.java @@ -26,12 +26,12 @@ import org.eclipse.osee.framework.db.connection.OseeConnection; import org.eclipse.osee.framework.db.connection.exception.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.access.AccessControlManager;
import org.eclipse.osee.framework.skynet.core.access.PermissionEnum;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactPersistenceManager;
import org.eclipse.osee.framework.skynet.core.attribute.Attribute;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
-import org.eclipse.osee.framework.ui.plugin.util.Jobs;
import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.PlatformUI;
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/BranchCreationHandler.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/BranchCreationHandler.java index cad01aa1ab2..2134868edc8 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/BranchCreationHandler.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/BranchCreationHandler.java @@ -19,6 +19,8 @@ import org.eclipse.osee.framework.db.connection.exception.OseeCoreException; import org.eclipse.osee.framework.db.connection.exception.OseeStateException; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.plugin.core.util.IExceptionableRunnable; +import org.eclipse.osee.framework.plugin.core.util.Jobs; import org.eclipse.osee.framework.skynet.core.access.AccessControlManager; import org.eclipse.osee.framework.skynet.core.access.PermissionEnum; import org.eclipse.osee.framework.skynet.core.artifact.Branch; @@ -27,8 +29,6 @@ import org.eclipse.osee.framework.skynet.core.transaction.TransactionId; import org.eclipse.osee.framework.skynet.core.transaction.TransactionIdManager; import org.eclipse.osee.framework.ui.plugin.util.AWorkbench; import org.eclipse.osee.framework.ui.plugin.util.CommandHandler; -import org.eclipse.osee.framework.ui.plugin.util.IExceptionableRunnable; -import org.eclipse.osee.framework.ui.plugin.util.Jobs; import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin; import org.eclipse.osee.framework.ui.skynet.widgets.dialog.EntryDialog; import org.eclipse.swt.widgets.Display; diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/commit/CommitHandler.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/commit/CommitHandler.java index df80aa90afe..882b686f078 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/commit/CommitHandler.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/branch/commit/CommitHandler.java @@ -23,6 +23,7 @@ import org.eclipse.osee.framework.db.connection.exception.OseeCoreException; import org.eclipse.osee.framework.jdk.core.type.MutableInteger;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.access.AccessControlManager;
import org.eclipse.osee.framework.skynet.core.artifact.Branch;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
@@ -31,7 +32,6 @@ import org.eclipse.osee.framework.skynet.core.transaction.TransactionId; import org.eclipse.osee.framework.skynet.core.transaction.TransactionIdManager;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.plugin.util.CommandHandler;
-import org.eclipse.osee.framework.ui.plugin.util.Jobs;
import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin;
import org.eclipse.osee.framework.ui.skynet.commandHandlers.Handlers;
import org.eclipse.osee.framework.ui.skynet.widgets.xBranch.BranchViewPresentationPreferences;
@@ -107,15 +107,15 @@ public abstract class CommitHandler extends CommandHandler { message.toString(), MessageDialog.QUESTION, new String[] {"Ok", "Cancel"}, 0);
dialogResult.setValue(dialog.open());
} else {
- MessageDialog dialog =
- new MessageDialog(Display.getCurrent().getActiveShell(), "Commit Branch", null,
+ MessageDialog dialog =
+ new MessageDialog(Display.getCurrent().getActiveShell(), "Commit Branch", null,
message.toString(), MessageDialog.QUESTION, new String[] {"Ok",
"Launch Merge Manager", "Cancel"}, 0);
- dialogResult.setValue(dialog.open());
- if (dialogResult.getValue() == 1) {
- MergeView.openView(sourceBranch, destinationBranch, transactionId);
- }
- }
+ dialogResult.setValue(dialog.open());
+ if (dialogResult.getValue() == 1) {
+ MergeView.openView(sourceBranch, destinationBranch, transactionId);
+ }
+ }
} catch (OseeCoreException ex) {
OseeLog.log(SkynetGuiPlugin.class, OseeLevel.SEVERE_POPUP, ex);
}
@@ -133,11 +133,11 @@ public abstract class CommitHandler extends CommandHandler { @Override
public Object execute(ExecutionEvent event) throws ExecutionException {
IStructuredSelection selection =
- (IStructuredSelection) AWorkbench.getActivePage().getActivePart().getSite().getSelectionProvider().getSelection();
-
+ (IStructuredSelection) AWorkbench.getActivePage().getActivePart().getSite().getSelectionProvider().getSelection();
+
List<Branch> branches = Handlers.getBranchesFromStructuredSelection(selection);
Branch sourceBranch = branches.iterator().next();
-
+
try {
Branch destinationBranch = null;
if (useParentBranch) {
@@ -157,21 +157,21 @@ public abstract class CommitHandler extends CommandHandler { @Override
public boolean isEnabledWithException() throws OseeCoreException {
boolean enabled = false;
-
+
IStructuredSelection selection =
- (IStructuredSelection) AWorkbench.getActivePage().getActivePart().getSite().getSelectionProvider().getSelection();
-
+ (IStructuredSelection) AWorkbench.getActivePage().getActivePart().getSite().getSelectionProvider().getSelection();
+
List<Branch> branches = Handlers.getBranchesFromStructuredSelection(selection);
-
- if (branches.size() == 1) {
+
+ if(branches.size() == 1){
Branch branch = branches.iterator().next();
enabled = useParentBranchValid(branch) || (!useParentBranch && AccessControlManager.isOseeAdmin());
}
return enabled;
}
-
- protected boolean useParentBranchValid(Branch branch) {
- return branch.hasParentBranch() && useParentBranch && !branch.isChangeManaged() && !branch.isArchived();
+
+ protected boolean useParentBranchValid(Branch branch){
+ return branch.hasParentBranch() && useParentBranch && ! branch.isChangeManaged() && !branch.isArchived();
}
private class CommitJob extends Job {
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/export/ArtifactExportWizard.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/export/ArtifactExportWizard.java index f9a7dfa46d4..bc4b4613ebe 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/export/ArtifactExportWizard.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/export/ArtifactExportWizard.java @@ -16,7 +16,7 @@ import org.eclipse.core.runtime.Status; import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.osee.framework.ui.plugin.util.Jobs;
+import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.ui.IExportWizard;
import org.eclipse.ui.IWorkbench;
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/group/GroupExplorerDragAndDrop.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/group/GroupExplorerDragAndDrop.java index 1aac2cdb059..b09388fffcb 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/group/GroupExplorerDragAndDrop.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/group/GroupExplorerDragAndDrop.java @@ -22,7 +22,6 @@ import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactData;
-import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTransfer;
import org.eclipse.osee.framework.skynet.core.artifact.Branch;
import org.eclipse.osee.framework.skynet.core.artifact.UniversalGroup;
import org.eclipse.osee.framework.skynet.core.relation.CoreRelationEnumeration;
@@ -30,6 +29,7 @@ import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; import org.eclipse.osee.framework.skynet.core.utility.Artifacts;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin;
+import org.eclipse.osee.framework.ui.skynet.artifact.ArtifactTransfer;
import org.eclipse.osee.framework.ui.skynet.util.SkynetDragAndDrop;
import org.eclipse.swt.SWT;
import org.eclipse.swt.dnd.DND;
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/menu/GlobalMenu.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/menu/GlobalMenu.java index 6bf8e223da3..6ffaea006d0 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/menu/GlobalMenu.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/menu/GlobalMenu.java @@ -27,12 +27,12 @@ import org.eclipse.osee.framework.db.connection.OseeConnection; import org.eclipse.osee.framework.db.connection.exception.OseeCoreException; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.plugin.core.util.Jobs; import org.eclipse.osee.framework.skynet.core.SkynetActivator; import org.eclipse.osee.framework.skynet.core.access.AccessControlManager; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; import org.eclipse.osee.framework.skynet.core.artifact.ArtifactPersistenceManager; import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; -import org.eclipse.osee.framework.ui.plugin.util.Jobs; import org.eclipse.osee.framework.ui.plugin.util.Result; import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin; import org.eclipse.swt.SWT; diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/render/ArtifactEditFileWatcher.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/render/ArtifactEditFileWatcher.java index a43d17054a5..dba980db784 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/render/ArtifactEditFileWatcher.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/render/ArtifactEditFileWatcher.java @@ -15,9 +15,9 @@ import java.io.File; import java.util.Collection;
import java.util.logging.Level;
import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.utility.FileChangeEvent;
import org.eclipse.osee.framework.skynet.core.utility.IFileWatcherListener;
-import org.eclipse.osee.framework.ui.plugin.util.Jobs;
import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin;
/**
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/render/RendererManager.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/render/RendererManager.java index 0a31d6cc921..b25e67b081f 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/render/RendererManager.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/render/RendererManager.java @@ -29,9 +29,9 @@ import org.eclipse.osee.framework.db.connection.exception.OseeStateException; import org.eclipse.osee.framework.jdk.core.type.HashCollection;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.plugin.core.util.ExtensionPoints;
+import org.eclipse.osee.framework.plugin.core.util.IExceptionableRunnable;
+import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.ui.plugin.util.IExceptionableRunnable;
-import org.eclipse.osee.framework.ui.plugin.util.Jobs;
import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin;
import org.eclipse.osee.framework.ui.skynet.blam.VariableMap;
import org.eclipse.osee.framework.ui.skynet.render.word.AttributeElement;
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/render/WordTemplateRenderer.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/render/WordTemplateRenderer.java index 3a0fce9b73f..bf771779125 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/render/WordTemplateRenderer.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/render/WordTemplateRenderer.java @@ -33,6 +33,7 @@ import org.eclipse.osee.framework.jdk.core.util.GUID; import org.eclipse.osee.framework.jdk.core.util.xml.Jaxp;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.UserManager;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.Branch;
@@ -45,7 +46,6 @@ import org.eclipse.osee.framework.skynet.core.linking.WordMlLinkHandler; import org.eclipse.osee.framework.skynet.core.word.WordAnnotationHandler;
import org.eclipse.osee.framework.skynet.core.word.WordUtil;
import org.eclipse.osee.framework.ui.plugin.util.Displays;
-import org.eclipse.osee.framework.ui.plugin.util.Jobs;
import org.eclipse.osee.framework.ui.plugin.util.OseeData;
import org.eclipse.osee.framework.ui.skynet.ArtifactExplorer;
import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin;
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/results/SkynetTransactionJobTemplate.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/results/SkynetTransactionJobTemplate.java new file mode 100644 index 00000000000..d8116bca1d9 --- /dev/null +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/results/SkynetTransactionJobTemplate.java @@ -0,0 +1,110 @@ +/******************************************************************************* + * Copyright (c) 2004, 2007 Boeing. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Boeing - initial API and implementation + *******************************************************************************/ +package org.eclipse.osee.framework.ui.skynet.results; + +import java.util.logging.Level; +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.osee.framework.db.connection.exception.OseeCoreException; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.skynet.core.SkynetActivator; +import org.eclipse.osee.framework.skynet.core.artifact.Branch; +import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; +import org.eclipse.osee.framework.ui.plugin.util.Result; + +/** + * This abstract class provides a uniform way of executing transactions within an Eclipse Job. It handles exceptions + * ensuring that transactions are processed in the correct order and roll-backs are performed whenever errors are + * detected. + * + * @author Donald G. Dunne + */ +public abstract class SkynetTransactionJobTemplate extends Job { + private final Branch branch; + protected IProgressMonitor monitor; + + /** + * @param name + */ + public SkynetTransactionJobTemplate(String name, Branch branch) { + super(name); + this.branch = branch; + } + + /** + * @param user true if Job initiated by user + * @param priority Job.LONG, Job.SHORT + */ + public void run(boolean user, int priority) { + setUser(user); + setPriority(priority); + schedule(); + } + + /** + * Perform whatever preprocessing or UI required. NOTE: It is the applications job to run in Display thread if + * necessary + * + * @return TrueResult if ok to continue; FalseResult will terminate Job with getText() error + */ + public Result performPreprocess() { + return Result.TrueResult; + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor) + */ + @Override + protected IStatus run(IProgressMonitor monitor) { + this.monitor = monitor; + Result result = performPreprocess(); + if (result.isFalse()) { + return new Status(Status.ERROR, SkynetActivator.PLUGIN_ID, -1, result.getText(), null); + } + try { + SkynetTransaction transaction = new SkynetTransaction(branch); + handleTxWork(transaction); + transaction.execute(); + } catch (Exception ex) { + OseeLog.log(SkynetActivator.class, Level.SEVERE, ex); + return new Status(Status.ERROR, SkynetActivator.PLUGIN_ID, -1, ex.getMessage(), ex); + } finally{ + try { + handleTxFinally(); + } catch (OseeCoreException ex) { + return new Status(Status.ERROR, SkynetActivator.PLUGIN_ID, -1, ex.getMessage(), ex); + } + } + return Status.OK_STATUS; + } + + /** + * Provides the transaction's work implementation. + * @param transaction + * + * @throws Exception + */ + protected abstract void handleTxWork(SkynetTransaction transaction) throws OseeCoreException; + + /** + * This convenience method is provided in case child classes have a portion of code that needs to execute always at + * the end of the transaction, regardless of exceptions. <br/><b>Override to add additional code to finally block</b> + * + * @throws Exception + */ + protected void handleTxFinally() throws OseeCoreException { + } + +} diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/revert/RevertWizardPage.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/revert/RevertWizardPage.java index 0b9ade0ec61..6268de4b97c 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/revert/RevertWizardPage.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/revert/RevertWizardPage.java @@ -18,6 +18,7 @@ import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.Branch;
import org.eclipse.osee.framework.skynet.core.event.IRelationModifiedEventListener;
@@ -26,7 +27,6 @@ import org.eclipse.osee.framework.skynet.core.event.Sender; import org.eclipse.osee.framework.skynet.core.relation.RelationLink;
import org.eclipse.osee.framework.skynet.core.relation.RelationModType;
import org.eclipse.osee.framework.skynet.core.relation.RelationSide;
-import org.eclipse.osee.framework.ui.plugin.util.Jobs;
import org.eclipse.osee.framework.ui.skynet.ArtifactDoubleClick;
import org.eclipse.osee.framework.ui.skynet.ArtifactExplorer;
import org.eclipse.osee.framework.ui.skynet.commandHandlers.RevertJob;
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/AttributeFindReplaceDialog.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/AttributeFindReplaceDialog.java index 9fbdbfba1d5..39eb3bd2df3 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/AttributeFindReplaceDialog.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/AttributeFindReplaceDialog.java @@ -30,13 +30,13 @@ import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.osee.framework.db.connection.exception.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.Branch;
import org.eclipse.osee.framework.skynet.core.attribute.Attribute;
import org.eclipse.osee.framework.skynet.core.attribute.AttributeType;
import org.eclipse.osee.framework.skynet.core.attribute.TypeValidityManager;
import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
-import org.eclipse.osee.framework.ui.plugin.util.Jobs;
import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/report/ReportSelectionListener.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/report/ReportSelectionListener.java index cfa4780419b..19db231b276 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/report/ReportSelectionListener.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/report/ReportSelectionListener.java @@ -14,7 +14,7 @@ import java.util.logging.Level; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.osee.framework.logging.OseeLog; -import org.eclipse.osee.framework.ui.plugin.util.Jobs; +import org.eclipse.osee.framework.plugin.core.util.Jobs; import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/ArtifactClipboard.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/ArtifactClipboard.java index ddfaf5a270a..3c0e080bc7d 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/ArtifactClipboard.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/ArtifactClipboard.java @@ -18,8 +18,8 @@ import org.eclipse.osee.framework.jdk.core.util.Collections; import org.eclipse.osee.framework.skynet.core.User; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; import org.eclipse.osee.framework.skynet.core.artifact.ArtifactData; -import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTransfer; import org.eclipse.osee.framework.ui.skynet.HTMLTransferFormatter; +import org.eclipse.osee.framework.ui.skynet.artifact.ArtifactTransfer; import org.eclipse.osee.framework.ui.swt.NonBlankValidator; import org.eclipse.swt.dnd.Clipboard; import org.eclipse.swt.dnd.HTMLTransfer; diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/SkynetDragAndDrop.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/SkynetDragAndDrop.java index 7f4a782616e..fd53f7327d0 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/SkynetDragAndDrop.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/util/SkynetDragAndDrop.java @@ -15,8 +15,8 @@ import java.util.Collection; import org.eclipse.osee.framework.jdk.core.util.Collections; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; import org.eclipse.osee.framework.skynet.core.artifact.ArtifactData; -import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTransfer; import org.eclipse.osee.framework.ui.skynet.HTMLTransferFormatter; +import org.eclipse.osee.framework.ui.skynet.artifact.ArtifactTransfer; import org.eclipse.swt.dnd.DND; import org.eclipse.swt.dnd.DragSource; import org.eclipse.swt.dnd.DragSourceEvent; diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XArtifactList.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XArtifactList.java index 81afd5bfd4b..7db7527f26a 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XArtifactList.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XArtifactList.java @@ -25,11 +25,11 @@ public class XArtifactList extends XListViewer { this("ArtList", "", ""); } - public XArtifactList(String displayLabel) throws OseeCoreException { + public XArtifactList(String displayLabel) { this(displayLabel, "", ""); } - public XArtifactList(String displayLabel, String xmlRoot, String xmlSubRoot) throws OseeCoreException { + public XArtifactList(String displayLabel, String xmlRoot, String xmlSubRoot) { super(displayLabel, xmlRoot, xmlSubRoot); super.setLabelProvider(new ArtifactLabelProvider()); super.setContentProvider(new ArrayContentProvider()); diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XComboViewer.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XComboViewer.java index 5c71c4ead5d..0ff7d513364 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XComboViewer.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XComboViewer.java @@ -13,6 +13,7 @@ package org.eclipse.osee.framework.ui.skynet.widgets; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; +import org.eclipse.jface.viewers.ArrayContentProvider; import org.eclipse.jface.viewers.ComboViewer; import org.eclipse.jface.viewers.IContentProvider; import org.eclipse.jface.viewers.ILabelProvider; @@ -22,6 +23,7 @@ import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.ViewerSorter; import org.eclipse.osee.framework.jdk.core.util.AHTML; import org.eclipse.osee.framework.ui.plugin.util.Result; +import org.eclipse.osee.framework.ui.skynet.ArtifactLabelProvider; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; @@ -70,6 +72,8 @@ public class XComboViewer extends XWidget { public XComboViewer(String displayLabel, String xmlRoot, String xmlSubRoot) { super(displayLabel, xmlRoot, xmlSubRoot); setReportType(XWidget.RPT_SINGLE_LINE); + contentProvider = new ArrayContentProvider(); + labelProvider = new ArtifactLabelProvider(); } /* @@ -240,10 +244,6 @@ public class XComboViewer extends XWidget { } } - public void add(Collection<String> names) { - input.addAll(names); - } - public void setSelected(ArrayList<Object> selected) { comboViewer.setSelection(new StructuredSelection(selected.toArray(new Object[selected.size()]))); updateListWidget(); diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XListDropViewer.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XListDropViewer.java index 9dcb09a09d9..899770fb95d 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XListDropViewer.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XListDropViewer.java @@ -17,8 +17,8 @@ import org.eclipse.jface.viewers.ArrayContentProvider; import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTransfer;
import org.eclipse.osee.framework.ui.skynet.ArtifactLabelProvider;
+import org.eclipse.osee.framework.ui.skynet.artifact.ArtifactTransfer;
import org.eclipse.osee.framework.ui.skynet.util.SkynetDragAndDrop;
import org.eclipse.swt.SWT;
import org.eclipse.swt.dnd.DND;
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XListViewer.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XListViewer.java index d53b5d88a36..663f5121ed4 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XListViewer.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XListViewer.java @@ -133,8 +133,7 @@ public class XListViewer extends XWidget { public void setInputArtifacts(Collection<? extends Artifact> arts) {
ArrayList<Object> objs = new ArrayList<Object>();
- for (Artifact art : arts)
- objs.add((Object) art);
+ objs.addAll(arts);
setInput(objs);
}
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XOption.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XOption.java index 02bd2e11a32..c5729b754d2 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XOption.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XOption.java @@ -22,6 +22,7 @@ public enum XOption { NOT_ENABLED,
EDITABLE,
NOT_EDITABLE,
+ MULTI_SELECT,
HORIZONTAL_LABEL,
VERTICAL_LABEL,
LABEL_AFTER,
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XTextResourceDropDam.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XTextResourceDropDam.java index a27b1720150..91191cd9816 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XTextResourceDropDam.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XTextResourceDropDam.java @@ -15,9 +15,9 @@ import java.util.HashSet; import java.util.Set; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IResource; -import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTransfer; import org.eclipse.osee.framework.ui.plugin.util.AJavaProject; import org.eclipse.osee.framework.ui.plugin.util.AWorkspace; +import org.eclipse.osee.framework.ui.skynet.artifact.ArtifactTransfer; import org.eclipse.swt.dnd.DND; import org.eclipse.swt.dnd.DropTarget; import org.eclipse.swt.dnd.DropTargetAdapter; diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/workflow/XWidgetFactory.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/workflow/XWidgetFactory.java index a24973f665b..358bbd1bb0b 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/workflow/XWidgetFactory.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/workflow/XWidgetFactory.java @@ -23,6 +23,7 @@ import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.attribute.BooleanAttribute;
import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin;
import org.eclipse.osee.framework.ui.skynet.widgets.SkynetSpellModifyDictionary;
+import org.eclipse.osee.framework.ui.skynet.widgets.XArtifactList;
import org.eclipse.osee.framework.ui.skynet.widgets.XArtifactTypeListViewer;
import org.eclipse.osee.framework.ui.skynet.widgets.XAttributeTypeListViewer;
import org.eclipse.osee.framework.ui.skynet.widgets.XCheckBox;
@@ -30,6 +31,7 @@ import org.eclipse.osee.framework.ui.skynet.widgets.XCheckBoxDam; import org.eclipse.osee.framework.ui.skynet.widgets.XCombo;
import org.eclipse.osee.framework.ui.skynet.widgets.XComboBooleanDam;
import org.eclipse.osee.framework.ui.skynet.widgets.XComboDam;
+import org.eclipse.osee.framework.ui.skynet.widgets.XComboViewer;
import org.eclipse.osee.framework.ui.skynet.widgets.XDate;
import org.eclipse.osee.framework.ui.skynet.widgets.XDateDam;
import org.eclipse.osee.framework.ui.skynet.widgets.XFileTextWithSelectionDialog;
@@ -166,6 +168,8 @@ public class XWidgetFactory { else
combo.set("");
}
+ } else if (xWidgetName.startsWith("XComboViewer")) {
+ xWidget = new XComboViewer(name);
} else if (xWidgetName.startsWith("XCombo")) {
String values[] =
xWidgetLayoutData.getDynamicXWidgetLayout().getOptionResolver().getWidgetOptions(xWidgetLayoutData);
@@ -207,7 +211,10 @@ public class XWidgetFactory { ",")));
} else
throw new IllegalArgumentException("Invalid XList. " + "Must be \"XList(option1,option2,option3)\"");
-
+ } else if (xWidgetName.startsWith("XArtifactList")) {
+ XArtifactList artifactList = new XArtifactList(name);
+ artifactList.setMultiSelect(xWidgetLayoutData.getXOptionHandler().contains(XOption.MULTI_SELECT));
+ xWidget = artifactList;
} else {
xWidget = new XLabel("Error: Unhandled XWidget \"" + xWidgetName + "\"");
}
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xBranch/XBranchWidget.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xBranch/XBranchWidget.java index 081afb955b6..585d5657db2 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xBranch/XBranchWidget.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xBranch/XBranchWidget.java @@ -23,10 +23,10 @@ import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.osee.framework.db.connection.exception.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.util.AHTML;
import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.artifact.Branch;
import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
import org.eclipse.osee.framework.ui.plugin.util.Displays;
-import org.eclipse.osee.framework.ui.plugin.util.Jobs;
import org.eclipse.osee.framework.ui.plugin.util.Result;
import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin;
import org.eclipse.osee.framework.ui.skynet.ats.IActionable;
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xHistory/HistoryView.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xHistory/HistoryView.java index 23b1f984bd8..4a14c46a087 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xHistory/HistoryView.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xHistory/HistoryView.java @@ -29,6 +29,7 @@ import org.eclipse.osee.framework.db.connection.exception.OseeArgumentException; import org.eclipse.osee.framework.db.connection.exception.OseeCoreException; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.plugin.core.util.Jobs; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; import org.eclipse.osee.framework.skynet.core.artifact.BranchManager; import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery; @@ -38,7 +39,6 @@ import org.eclipse.osee.framework.skynet.core.event.Sender; import org.eclipse.osee.framework.skynet.core.revision.HistoryTransactionItem; import org.eclipse.osee.framework.ui.plugin.util.AWorkbench; import org.eclipse.osee.framework.ui.plugin.util.Displays; -import org.eclipse.osee.framework.ui.plugin.util.Jobs; import org.eclipse.osee.framework.ui.skynet.OpenWithMenuListener; import org.eclipse.osee.framework.ui.skynet.OseeContributionItem; import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin; diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xHistory/XHistoryWidget.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xHistory/XHistoryWidget.java index 4e88d463728..43d2685fda1 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xHistory/XHistoryWidget.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xHistory/XHistoryWidget.java @@ -25,6 +25,7 @@ import org.eclipse.osee.framework.db.connection.exception.OseeCoreException; import org.eclipse.osee.framework.jdk.core.util.AHTML;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.Branch;
import org.eclipse.osee.framework.skynet.core.revision.HistoryTransactionItem;
@@ -32,7 +33,6 @@ import org.eclipse.osee.framework.skynet.core.revision.RevisionChange; import org.eclipse.osee.framework.skynet.core.revision.RevisionManager;
import org.eclipse.osee.framework.skynet.core.revision.TransactionData;
import org.eclipse.osee.framework.ui.plugin.util.Displays;
-import org.eclipse.osee.framework.ui.plugin.util.Jobs;
import org.eclipse.osee.framework.ui.plugin.util.Result;
import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin;
import org.eclipse.osee.framework.ui.skynet.ats.IActionable;
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xchange/ChangeView.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xchange/ChangeView.java index 95338366934..23344ce4ee5 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xchange/ChangeView.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xchange/ChangeView.java @@ -24,6 +24,7 @@ import org.eclipse.jface.action.Separator; import org.eclipse.osee.framework.db.connection.exception.OseeArgumentException; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.plugin.core.util.Jobs; import org.eclipse.osee.framework.skynet.core.artifact.Branch; import org.eclipse.osee.framework.skynet.core.artifact.BranchManager; import org.eclipse.osee.framework.skynet.core.event.BranchEventType; @@ -35,7 +36,6 @@ import org.eclipse.osee.framework.skynet.core.transaction.TransactionId; import org.eclipse.osee.framework.skynet.core.transaction.TransactionIdManager; import org.eclipse.osee.framework.ui.plugin.util.AWorkbench; import org.eclipse.osee.framework.ui.plugin.util.Displays; -import org.eclipse.osee.framework.ui.plugin.util.Jobs; import org.eclipse.osee.framework.ui.skynet.OseeContributionItem; import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin; import org.eclipse.osee.framework.ui.skynet.ats.IActionable; diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xchange/XChangeWidget.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xchange/XChangeWidget.java index 3f4e7fa058a..de8169477b0 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xchange/XChangeWidget.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xchange/XChangeWidget.java @@ -25,6 +25,7 @@ import org.eclipse.osee.framework.db.connection.exception.OseeCoreException; import org.eclipse.osee.framework.jdk.core.util.AHTML;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.User;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.Branch;
@@ -35,7 +36,6 @@ import org.eclipse.osee.framework.skynet.core.revision.ChangeManager; import org.eclipse.osee.framework.skynet.core.transaction.TransactionId;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.plugin.util.Displays;
-import org.eclipse.osee.framework.ui.plugin.util.Jobs;
import org.eclipse.osee.framework.ui.plugin.util.Result;
import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin;
import org.eclipse.osee.framework.ui.skynet.ats.IActionable;
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xmerge/MergeUtility.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xmerge/MergeUtility.java index 4aaf3870bc9..e994951dd17 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xmerge/MergeUtility.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xmerge/MergeUtility.java @@ -31,6 +31,7 @@ import org.eclipse.osee.framework.jdk.core.util.AFile; import org.eclipse.osee.framework.jdk.core.util.Lib;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.ArtifactPersistenceManager;
import org.eclipse.osee.framework.skynet.core.attribute.WordAttribute;
@@ -40,7 +41,6 @@ import org.eclipse.osee.framework.skynet.core.conflict.Conflict; import org.eclipse.osee.framework.skynet.core.transaction.TransactionId;
import org.eclipse.osee.framework.skynet.core.transaction.TransactionIdManager;
import org.eclipse.osee.framework.ui.plugin.util.AIFile;
-import org.eclipse.osee.framework.ui.plugin.util.Jobs;
import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin;
import org.eclipse.osee.framework.ui.skynet.blam.VariableMap;
import org.eclipse.osee.framework.ui.skynet.render.PresentationType;
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xmerge/MergeView.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xmerge/MergeView.java index 5e1c83efbb9..d002da770c4 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xmerge/MergeView.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xmerge/MergeView.java @@ -30,6 +30,7 @@ import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.osee.framework.db.connection.exception.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.access.AccessControlManager;
import org.eclipse.osee.framework.skynet.core.access.PermissionEnum;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
@@ -51,7 +52,6 @@ import org.eclipse.osee.framework.ui.plugin.util.AWorkbench; import org.eclipse.osee.framework.ui.plugin.util.AbstractSelectionEnabledHandler;
import org.eclipse.osee.framework.ui.plugin.util.Commands;
import org.eclipse.osee.framework.ui.plugin.util.Displays;
-import org.eclipse.osee.framework.ui.plugin.util.Jobs;
import org.eclipse.osee.framework.ui.skynet.ArtifactExplorer;
import org.eclipse.osee.framework.ui.skynet.OseeContributionItem;
import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin;
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xmerge/XMergeViewer.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xmerge/XMergeViewer.java index 73b0ecbe48f..273ad2c40a5 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xmerge/XMergeViewer.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xmerge/XMergeViewer.java @@ -28,6 +28,7 @@ import org.eclipse.osee.framework.db.connection.exception.OseeCoreException; import org.eclipse.osee.framework.jdk.core.util.AHTML;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.plugin.core.util.Jobs;
import org.eclipse.osee.framework.skynet.core.UserManager;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.artifact.Branch;
@@ -38,7 +39,6 @@ import org.eclipse.osee.framework.skynet.core.revision.ConflictManagerInternal; import org.eclipse.osee.framework.skynet.core.transaction.TransactionId;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.plugin.util.Displays;
-import org.eclipse.osee.framework.ui.plugin.util.Jobs;
import org.eclipse.osee.framework.ui.plugin.util.ListSelectionDialogNoSave;
import org.eclipse.osee.framework.ui.plugin.util.Result;
import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin;
|