diff options
author | donald.g.dunne | 2016-01-20 22:36:40 +0000 |
---|---|---|
committer | Donald Dunne | 2016-01-26 15:00:15 +0000 |
commit | 6438426a07509acb0530a9924985585390c239d7 (patch) | |
tree | 16617ae40953da716bbd016b379b255830467e84 | |
parent | 3738818bbb7713456f6e4d30ba9e8009aad04d21 (diff) | |
download | org.eclipse.osee-6438426a07509acb0530a9924985585390c239d7.tar.gz org.eclipse.osee-6438426a07509acb0530a9924985585390c239d7.tar.xz org.eclipse.osee-6438426a07509acb0530a9924985585390c239d7.zip |
bug[ats_ATS267319]: ATS Workflow Editor double-click on transition corrupts workflow
Change-Id: Ib2037cbb9966d2e7d82bc5281816497ae1873289
2 files changed, 80 insertions, 9 deletions
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/WETransitionComposite.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/WETransitionComposite.java index bad3019448b..ca5febb76f7 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/WETransitionComposite.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/WETransitionComposite.java @@ -63,8 +63,8 @@ import org.eclipse.osee.framework.ui.skynet.widgets.dialog.UserCheckTreeDialog; import org.eclipse.osee.framework.ui.swt.Displays; import org.eclipse.osee.framework.ui.swt.Widgets; import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.MouseAdapter; +import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; @@ -84,6 +84,7 @@ public class WETransitionComposite extends Composite { private final AbstractWorkflowArtifact awa; private final SMAWorkFlowSection workflowSection; private final SMAEditor editor; + private final Button transitionButton; public WETransitionComposite(Composite parent, SMAWorkFlowSection workflowSection, final SMAEditor editor, final boolean isEditable) throws OseeCoreException { super(parent, SWT.NONE); @@ -95,12 +96,21 @@ public class WETransitionComposite extends Composite { setLayout(new GridLayout((editor.getWorkFlowTab().isShowTargetedVersion() ? 7 : 5), false)); setBackground(AtsUtil.ACTIVE_COLOR); - Button transitionButton = editor.getToolkit().createButton(this, "Transition", SWT.PUSH); - transitionButton.addSelectionListener(new SelectionAdapter() { + transitionButton = editor.getToolkit().createButton(this, "Transition", SWT.PUSH); + transitionButton.addMouseListener(new MouseAdapter() { + @Override - public void widgetSelected(SelectionEvent e) { - handleTransitionButtonSelection(editor, isEditable); + public void mouseUp(MouseEvent e) { + super.mouseUp(e); + /** + * Only respond to first click and not to double click. After system configured time, count will return to + * 1. + */ + if (e.count == 1) { + handleTransitionButtonSelection(editor, isEditable); + } } + }); transitionButton.setBackground(AtsUtil.ACTIVE_COLOR); @@ -190,6 +200,7 @@ public class WETransitionComposite extends Composite { private void handleTransitionButtonSelection(final SMAEditor editor, final boolean isEditable) { editor.doSave(null); + transitionButton.setEnabled(false); final List<IAtsWorkItem> workItems = Arrays.asList((IAtsWorkItem) awa); final IAtsStateDefinition toStateDef = (IAtsStateDefinition) transitionToStateCombo.getSelected(); final IAtsStateDefinition fromStateDef = awa.getStateDefinition(); @@ -333,8 +344,8 @@ public class WETransitionComposite extends Composite { if (isRequireStateHoursSpentPrompt(fromStateDefinition) && !toStateDefinition.getStateType().isCancelledState()) { // Otherwise, open dialog to ask for hours complete - String msg = - awa.getStateMgr().getCurrentStateName() + " State\n\n" + AtsUtilCore.doubleToI18nString(hoursSpent) + " hours already spent on this state.\n" + "Enter the additional number of hours you spent on this state."; + String msg = awa.getStateMgr().getCurrentStateName() + " State\n\n" + AtsUtilCore.doubleToI18nString( + hoursSpent) + " hours already spent on this state.\n" + "Enter the additional number of hours you spent on this state."; // Remove after ATS Resolution options is removed 0.9.9_SR5ish TransitionStatusData data = new TransitionStatusData(Arrays.asList(awa), false); TransitionStatusDialog dialog = new TransitionStatusDialog("Enter Hours Spent", msg, data); @@ -434,7 +445,8 @@ public class WETransitionComposite extends Composite { UserCheckTreeDialog uld = new UserCheckTreeDialog(); uld.setInitialSelections(userServiceClient.getOseeUsers(aba.getTransitionAssignees())); if (awa.getParentTeamWorkflow() != null) { - uld.setTeamMembers(userServiceClient.getOseeUsers(awa.getParentTeamWorkflow().getTeamDefinition().getMembersAndLeads())); + uld.setTeamMembers( + userServiceClient.getOseeUsers(awa.getParentTeamWorkflow().getTeamDefinition().getMembersAndLeads())); } if (uld.open() != 0) { return; diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/XWidgetsExampleBlam.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/XWidgetsExampleBlam.java index e9acb02f6b0..ae3a7c8df27 100644 --- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/XWidgetsExampleBlam.java +++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/blam/operation/XWidgetsExampleBlam.java @@ -13,8 +13,21 @@ package org.eclipse.osee.framework.ui.skynet.blam.operation; import java.util.Arrays; import java.util.Collection; import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.osee.framework.jdk.core.type.OseeCoreException; +import org.eclipse.osee.framework.skynet.core.artifact.Artifact; import org.eclipse.osee.framework.ui.skynet.blam.AbstractBlam; import org.eclipse.osee.framework.ui.skynet.blam.VariableMap; +import org.eclipse.osee.framework.ui.skynet.widgets.XModifiedListener; +import org.eclipse.osee.framework.ui.skynet.widgets.XSelectFromMultiChoiceBranch; +import org.eclipse.osee.framework.ui.skynet.widgets.XWidget; +import org.eclipse.osee.framework.ui.skynet.widgets.util.SwtXWidgetRenderer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.MouseEvent; +import org.eclipse.swt.events.MouseListener; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; +import org.eclipse.swt.widgets.Button; +import org.eclipse.ui.forms.widgets.FormToolkit; /** * @author Donald G. Dunne @@ -38,4 +51,50 @@ public class XWidgetsExampleBlam extends AbstractBlam { public Collection<String> getCategories() { return Arrays.asList("Util"); } + + @Override + public void widgetCreated(XWidget xWidget, FormToolkit toolkit, Artifact art, SwtXWidgetRenderer dynamicXWidgetLayout, XModifiedListener modListener, boolean isEditable) throws OseeCoreException { + super.widgetCreated(xWidget, toolkit, art, dynamicXWidgetLayout, modListener, isEditable); + if (xWidget.getLabel().equals("XSelectFromMultiChoiceBranch")) { + XSelectFromMultiChoiceBranch sel = (XSelectFromMultiChoiceBranch) xWidget; + + Button button = new Button(sel.getStyledText().getParent(), SWT.PUSH); + button.setText("Click and double-click to see Event type"); + button.addSelectionListener(new SelectionListener() { + + @Override + public void widgetSelected(SelectionEvent e) { + System.err.println(String.format("handleWidgetSelected " + e.detail + " - " + e.time)); + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + System.err.println(String.format("haneldWidgetDefaultSelected " + e.detail)); + } + + }); + + Button button2 = new Button(sel.getStyledText().getParent(), SWT.PUSH); + button2.setText("Click and double-click to see MouseEvent type"); + button2.addMouseListener(new MouseListener() { + + @Override + public void mouseUp(MouseEvent e) { + System.err.println("mouseUp " + e.count); + } + + @Override + public void mouseDown(MouseEvent e) { + System.err.println("mouseDown " + e.count); + } + + @Override + public void mouseDoubleClick(MouseEvent e) { + System.err.println("mouseDoubleClick " + e.count); + } + }); + + } + } + }
\ No newline at end of file |