Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordonald.g.dunne2017-05-15 18:48:35 +0000
committerDonald Dunne2017-05-16 21:08:41 +0000
commit92d0debb9640fda47f22c8c5a44f36a82eeb153a (patch)
treea1e0389fea5ae24de2789feb9fe19178df7f3faf /plugins
parent727f5fe5291a44db035f0277aece97f3187242ee (diff)
downloadorg.eclipse.osee-92d0debb9640fda47f22c8c5a44f36a82eeb153a.tar.gz
org.eclipse.osee-92d0debb9640fda47f22c8c5a44f36a82eeb153a.tar.xz
org.eclipse.osee-92d0debb9640fda47f22c8c5a44f36a82eeb153a.zip
feature[ats_ATS401973]: HLR - Add additional New Action fields for OSEE Team
Diffstat (limited to 'plugins')
-rw-r--r--plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AtsObjects.java12
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/IAtsWizardItem.java16
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionJob.java2
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionPage1.java14
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionPage3.java27
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionWizard.java16
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/AbstractXAssigneesListWidget.java107
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/XAssigneesListWidget.java136
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/XAssigneesListWorkItemWidget.java96
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/goal/NewActionToGoalAction.java2
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/review/NewPeerReviewDialog.java2
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/AtsWidgetProvider.java3
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/util/IDynamicWidgetLayoutListener.java13
13 files changed, 317 insertions, 129 deletions
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AtsObjects.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AtsObjects.java
index b0cf739b5b4..f3630509818 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AtsObjects.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/AtsObjects.java
@@ -14,6 +14,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
+import org.eclipse.osee.ats.api.IAtsConfigObject;
import org.eclipse.osee.ats.api.IAtsObject;
import org.eclipse.osee.ats.api.IAtsServices;
import org.eclipse.osee.ats.api.IAtsWorkItem;
@@ -123,4 +124,15 @@ public class AtsObjects {
return artifacts;
}
+ @SuppressWarnings("unchecked")
+ public static <T> Collection<T> getActive(Collection<? extends IAtsConfigObject> objects) {
+ List<T> active = new LinkedList<>();
+ for (IAtsConfigObject obj : objects) {
+ if (obj.isActive()) {
+ active.add((T) obj);
+ }
+ }
+ return active;
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/IAtsWizardItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/IAtsWizardItem.java
index 56fbbcbd2ea..cd2f91f6cad 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/IAtsWizardItem.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/IAtsWizardItem.java
@@ -13,12 +13,12 @@ package org.eclipse.osee.ats.actions.wizard;
import java.util.Collection;
import org.eclipse.osee.ats.api.ai.IAtsActionableItem;
import org.eclipse.osee.ats.api.util.IAtsChangeSet;
+import org.eclipse.osee.ats.api.workflow.ActionResult;
import org.eclipse.osee.framework.core.util.Result;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
/**
* Allows the New Action wizard to be extended with custom widgets when the appropriate Actionable Items are selected
- *
+ *
* @author Donald G. Dunne
*/
public interface IAtsWizardItem {
@@ -38,7 +38,7 @@ public interface IAtsWizardItem {
/**
* Determine if Action is valid to create based on wizard data entered. hasWizardXWidgetExtenstions will be called to
* determine if this method should be called.
- *
+ *
* @return result of validation. if true, action will be created; if not, error will popup and action will not be
* created
*/
@@ -48,16 +48,22 @@ public interface IAtsWizardItem {
* Callback with created action upon completion and creation of the action and it's workflows.
* hasWizardXWidgetExtenstions will be called to determine if this method should be called.
*/
- void wizardCompleted(Artifact actionArt, NewActionWizard wizard, IAtsChangeSet changes) throws Exception;
+ void wizardCompleted(ActionResult actionResult, NewActionWizard wizard, IAtsChangeSet changes) throws Exception;
/**
* Validation that the data entered is valid and the wizard can be finished. This will be called after every
* character is entered, so extensive processing should not be performed during this check. Extensive processing can
* be performed during isActionValidToCreate(). hasWizardXWidgetExtenstions will be called to determine if this
* method should be called.
- *
+ *
* @return true if widget data entered is valid
*/
Result isWizardXWidgetsComplete(NewActionWizard wizard);
+ /**
+ * @return Name of the product or team that uses these fields. This will display in Page3 of the wizard to separate
+ * out different fields for different teams.
+ */
+ String getName();
+
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionJob.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionJob.java
index 57ebda09599..780264b85dc 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionJob.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionJob.java
@@ -76,7 +76,7 @@ public class NewActionJob extends Job {
AtsClientService.get().getUserService().getCurrentUser(), newActionListener, changes);
if (wizard != null) {
- wizard.notifyAtsWizardItemExtensions((Artifact) result.getFirstTeam().getStoreObject(), changes);
+ wizard.notifyAtsWizardItemExtensions(result, changes);
}
if (monitor != null) {
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionPage1.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionPage1.java
index 63a145c9d1a..a866bb21977 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionPage1.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionPage1.java
@@ -112,7 +112,7 @@ public class NewActionPage1 extends WizardPage {
}
});
- Pair<FilteredCheckboxTree, Text> results = createActionableItemTreeViewer(comp);
+ Pair<FilteredCheckboxTree, Text> results = createActionableItemTreeViewer(comp, wizard.getSelectableAis());
treeViewer = results.getFirst();
descriptionLabel = results.getSecond();
treeViewer.getCheckboxTreeViewer().addCheckStateListener(new ICheckStateListener() {
@@ -136,7 +136,7 @@ public class NewActionPage1 extends WizardPage {
}
}
- public static Pair<FilteredCheckboxTree, Text> createActionableItemTreeViewer(Composite comp) {
+ public static Pair<FilteredCheckboxTree, Text> createActionableItemTreeViewer(Composite comp, Collection<IAtsActionableItem> selectableAis) {
Composite aiComp = new Composite(comp, SWT.NONE);
aiComp.setLayout(new GridLayout(1, false));
aiComp.setLayoutData(new GridData(GridData.FILL_BOTH));
@@ -148,9 +148,13 @@ public class NewActionPage1 extends WizardPage {
treeViewer.getViewer().setContentProvider(new AITreeContentProvider(Active.Active));
treeViewer.getViewer().setLabelProvider(new AtsObjectLabelProvider());
try {
- List<IAtsActionableItem> topLevelActionableItems =
- ActionableItems.getTopLevelActionableItems(Active.Active, AtsClientService.get().getQueryService());
- treeViewer.getViewer().setInput(topLevelActionableItems);
+ if (selectableAis == null) {
+ List<IAtsActionableItem> topLevelActionableItems =
+ ActionableItems.getTopLevelActionableItems(Active.Active, AtsClientService.get().getQueryService());
+ treeViewer.getViewer().setInput(topLevelActionableItems);
+ } else {
+ treeViewer.getViewer().setInput(selectableAis);
+ }
} catch (Exception ex) {
OseeLog.log(Activator.class, Level.SEVERE, ex);
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionPage3.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionPage3.java
index 9066fd37892..093eee4e4cd 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionPage3.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionPage3.java
@@ -22,6 +22,7 @@ import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.osee.ats.api.ai.IAtsActionableItem;
import org.eclipse.osee.ats.api.util.IAtsChangeSet;
+import org.eclipse.osee.ats.api.workflow.ActionResult;
import org.eclipse.osee.ats.internal.Activator;
import org.eclipse.osee.ats.workflow.ATSXWidgetOptionResolver;
import org.eclipse.osee.framework.core.util.Result;
@@ -29,9 +30,9 @@ import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.util.Conditions;
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.ui.skynet.widgets.XModifiedListener;
import org.eclipse.osee.framework.ui.skynet.widgets.XWidget;
+import org.eclipse.osee.framework.ui.skynet.widgets.util.IDynamicWidgetLayoutListener;
import org.eclipse.osee.framework.ui.skynet.widgets.util.XWidgetPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
@@ -59,11 +60,11 @@ public class NewActionPage3 extends WizardPage {
getWizardXWidgetExtensions();
}
- public void notifyAtsWizardItemExtensions(Artifact action, IAtsChangeSet changes) {
+ public void notifyAtsWizardItemExtensions(ActionResult actionResult, IAtsChangeSet changes) {
for (IAtsWizardItem item : wizardExtensionItems) {
try {
if (item.hasWizardXWidgetExtensions(wizard.getSelectedIAtsActionableItems())) {
- item.wizardCompleted(action, wizard, changes);
+ item.wizardCompleted(actionResult, wizard, changes);
}
} catch (Exception ex) {
OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
@@ -90,18 +91,26 @@ public class NewActionPage3 extends WizardPage {
if (page == null) {
StringBuffer stringBuffer = new StringBuffer(500);
stringBuffer.append("<WorkPage>");
+ IDynamicWidgetLayoutListener dynamicWidgetLayoutListener = null;
for (IAtsWizardItem item : wizardExtensionItems) {
- try {
- if (item.hasWizardXWidgetExtensions(wizard.getSelectedIAtsActionableItems())) {
+ boolean hasWizardXWidgetExtensions =
+ item.hasWizardXWidgetExtensions(wizard.getSelectedIAtsActionableItems());
+ if (hasWizardXWidgetExtensions) {
+ stringBuffer.append(
+ "<XWidget displayName=\"--- Extra fields for " + item.getName() + " ---\" xwidgetType=\"XLabel\" horizontalLabel=\"true\" toolTip=\"These fields are available for only the team workflow specified here.\"/>");
+ try {
+ if (item instanceof IDynamicWidgetLayoutListener) {
+ dynamicWidgetLayoutListener = (IDynamicWidgetLayoutListener) item;
+ }
item.getWizardXWidgetExtensions(wizard.getSelectedIAtsActionableItems(), stringBuffer);
+ } catch (Exception ex) {
+ OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
}
- } catch (Exception ex) {
- OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
}
}
stringBuffer.append("</WorkPage>");
-
- page = new XWidgetPage(stringBuffer.toString(), ATSXWidgetOptionResolver.getInstance());
+ page = new XWidgetPage(stringBuffer.toString(), ATSXWidgetOptionResolver.getInstance(),
+ dynamicWidgetLayoutListener);
page.createBody(null, comp, null, xModListener, true);
comp.layout();
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionWizard.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionWizard.java
index 87434b0573d..1e0d8d22634 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionWizard.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/NewActionWizard.java
@@ -19,13 +19,13 @@ import org.eclipse.jface.wizard.Wizard;
import org.eclipse.osee.ats.api.ai.IAtsActionableItem;
import org.eclipse.osee.ats.api.team.ChangeType;
import org.eclipse.osee.ats.api.util.IAtsChangeSet;
+import org.eclipse.osee.ats.api.workflow.ActionResult;
import org.eclipse.osee.ats.api.workflow.INewActionListener;
import org.eclipse.osee.ats.internal.Activator;
import org.eclipse.osee.framework.core.util.Result;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
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.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.skynet.widgets.XCheckBox;
import org.eclipse.osee.framework.ui.skynet.widgets.XCombo;
@@ -42,7 +42,7 @@ public class NewActionWizard extends Wizard implements INewWizard {
protected NewActionPage1 page1;
protected NewActionPage2 page2;
protected NewActionPage3 page3;
- private Collection<IAtsActionableItem> initialAias;
+ private Collection<IAtsActionableItem> initialAias, selectableAis;
private String initialDescription;
private NewActionJob job = null;
private INewActionListener newActionListener;
@@ -128,9 +128,9 @@ public class NewActionWizard extends Wizard implements INewWizard {
return ((XDate) page2.getXWidget(NewActionPage2.DEADLINE)).getDate();
}
- public void notifyAtsWizardItemExtensions(Artifact action, IAtsChangeSet changes) {
+ public void notifyAtsWizardItemExtensions(ActionResult actionResult, IAtsChangeSet changes) {
if (page3 != null) {
- page3.notifyAtsWizardItemExtensions(action, changes);
+ page3.notifyAtsWizardItemExtensions(actionResult, changes);
}
}
@@ -176,4 +176,12 @@ public class NewActionWizard extends Wizard implements INewWizard {
this.openOnComplete = openOnComplete;
}
+ public void getSelectableAis(Collection<IAtsActionableItem> ais) {
+ this.selectableAis = ais;
+ }
+
+ public Collection<IAtsActionableItem> getSelectableAis() {
+ return selectableAis;
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/AbstractXAssigneesListWidget.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/AbstractXAssigneesListWidget.java
new file mode 100644
index 00000000000..1840aab37db
--- /dev/null
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/AbstractXAssigneesListWidget.java
@@ -0,0 +1,107 @@
+/*******************************************************************************
+ * Copyright (c) 2017 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.ats.editor.widget;
+
+import java.util.List;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.osee.ats.api.user.IAtsUser;
+import org.eclipse.osee.ats.core.users.AtsCoreUsers;
+import org.eclipse.osee.ats.util.AtsUserLabelProvider;
+import org.eclipse.osee.framework.ui.skynet.FrameworkImage;
+import org.eclipse.osee.framework.ui.skynet.widgets.XListViewer;
+import org.eclipse.osee.framework.ui.swt.ALayout;
+import org.eclipse.osee.framework.ui.swt.ImageManager;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * @author Donald G. Dunne
+ */
+public abstract class AbstractXAssigneesListWidget extends XListViewer {
+
+ public AbstractXAssigneesListWidget(String displayLabel) {
+ super(displayLabel);
+ }
+
+ @Override
+ protected void createControls(Composite parent, int horizontalSpan) {
+ setLabelProvider(new AtsUserLabelProvider());
+ setContentProvider(new ArrayContentProvider());
+
+ super.createControls(parent, horizontalSpan);
+
+ setVerticalLabel(true);
+
+ List<IAtsUser> assignees = getCurrentAssignees();
+ assignees.remove(AtsCoreUsers.UNASSIGNED_USER);
+ setInput(assignees);
+
+ GridData gd = new GridData(SWT.FILL, SWT.NONE, true, false);
+ gd.horizontalSpan = 2;
+ gd.heightHint = 60;
+ gd.widthHint = 60;
+ getTable().setLayoutData(gd);
+
+ }
+
+ public abstract List<IAtsUser> getCurrentAssignees();
+
+ public abstract void handleModifySelection();
+
+ public abstract void handleEmailSelection();
+
+ public abstract boolean includeEmailButton();
+
+ @Override
+ protected void createControlsAfterLabel(Composite parent, int horizontalSpan) {
+
+ Composite mComp = new Composite(parent, SWT.FLAT);
+ GridData gd = new GridData(SWT.FILL, SWT.NONE, false, false);
+ gd.horizontalSpan = 2;
+ mComp.setLayoutData(gd);
+ mComp.setLayout(ALayout.getZeroMarginLayout(2, false));
+ mComp.setBackgroundMode(SWT.INHERIT_FORCE);
+
+ Button modifyList = new Button(mComp, SWT.PUSH);
+ modifyList.setImage(ImageManager.getImage(FrameworkImage.EDIT));
+ modifyList.setToolTipText("Select to modify");
+ modifyList.setLayoutData(new GridData(SWT.LEFT, SWT.NONE, false, false));
+ modifyList.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ handleModifySelection();
+ }
+
+ });
+
+ if (includeEmailButton()) {
+ Button emailSelected = new Button(mComp, SWT.PUSH);
+ emailSelected.setImage(ImageManager.getImage(FrameworkImage.EMAIL));
+ emailSelected.setToolTipText("Email");
+ emailSelected.setLayoutData(new GridData(SWT.LEFT, SWT.NONE, false, false));
+ emailSelected.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ handleEmailSelection();
+ }
+
+ });
+ }
+
+ }
+
+}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/XAssigneesListWidget.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/XAssigneesListWidget.java
index c3b82ad5f6c..429de72ec66 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/XAssigneesListWidget.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/XAssigneesListWidget.java
@@ -10,137 +10,75 @@
*******************************************************************************/
package org.eclipse.osee.ats.editor.widget;
+import java.util.LinkedList;
import java.util.List;
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.osee.ats.api.team.IAtsTeamDefinition;
import org.eclipse.osee.ats.api.user.IAtsUser;
-import org.eclipse.osee.ats.column.AssigneeColumnUI;
-import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
-import org.eclipse.osee.ats.core.users.AtsCoreUsers;
import org.eclipse.osee.ats.internal.Activator;
-import org.eclipse.osee.ats.notify.ArtifactEmailWizard;
-import org.eclipse.osee.ats.util.AtsUserLabelProvider;
-import org.eclipse.osee.framework.core.util.Result;
-import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
+import org.eclipse.osee.ats.internal.AtsClientService;
+import org.eclipse.osee.framework.core.enums.Active;
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.ui.skynet.FrameworkImage;
-import org.eclipse.osee.framework.ui.skynet.widgets.IArtifactWidget;
-import org.eclipse.osee.framework.ui.skynet.widgets.XListViewer;
-import org.eclipse.osee.framework.ui.swt.ALayout;
-import org.eclipse.osee.framework.ui.swt.Displays;
-import org.eclipse.osee.framework.ui.swt.ImageManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
+import org.eclipse.osee.framework.ui.skynet.widgets.dialog.UserCheckTreeDialog;
/**
* @author Donald G. Dunne
*/
-public class XAssigneesListWidget extends XListViewer implements IArtifactWidget {
+public class XAssigneesListWidget extends AbstractXAssigneesListWidget {
- private AbstractWorkflowArtifact awa;
+ public static final String WIDGET_ID = XAssigneesListWidget.class.getSimpleName();
+ List<IAtsUser> assignees = new LinkedList<>();
+ IAtsTeamDefinition teamDef = null;
- public XAssigneesListWidget(String displayLabel) {
- super(displayLabel);
+ public XAssigneesListWidget() {
+ super("Assignees");
}
@Override
- protected void createControls(Composite parent, int horizontalSpan) {
- setLabelProvider(new AtsUserLabelProvider());
- setContentProvider(new ArrayContentProvider());
-
- super.createControls(parent, horizontalSpan);
-
- setVerticalLabel(true);
-
- List<IAtsUser> assignees = awa.getAssignees();
- assignees.remove(AtsCoreUsers.UNASSIGNED_USER);
- setInput(assignees);
-
- GridData gd = new GridData(SWT.FILL, SWT.NONE, false, false);
- gd.horizontalSpan = 2;
- gd.heightHint = 60;
- getTable().setLayoutData(gd);
-
+ public List<IAtsUser> getCurrentAssignees() {
+ return assignees;
}
@Override
- protected void createControlsAfterLabel(Composite parent, int horizontalSpan) {
-
- Composite mComp = new Composite(parent, SWT.FLAT);
- GridData gd = new GridData(SWT.FILL, SWT.NONE, false, false);
- gd.horizontalSpan = 2;
- mComp.setLayoutData(gd);
- mComp.setLayout(ALayout.getZeroMarginLayout(2, false));
- mComp.setBackgroundMode(SWT.INHERIT_FORCE);
-
- Button modifyList = new Button(mComp, SWT.PUSH);
- modifyList.setImage(ImageManager.getImage(FrameworkImage.EDIT));
- modifyList.setToolTipText("Select to modify");
- modifyList.setLayoutData(new GridData(SWT.LEFT, SWT.NONE, false, false));
- modifyList.addSelectionListener(new SelectionAdapter() {
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- try {
- AssigneeColumnUI.promptChangeAssignees(awa, true);
- } catch (Exception ex) {
- OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
- }
+ public void handleModifySelection() {
+ try {
+ UserCheckTreeDialog uld = new UserCheckTreeDialog("Select Assigness", "Select to assign.",
+ AtsClientService.get().getUserServiceClient().getOseeUsers(
+ AtsClientService.get().getUserService().getUsers(Active.Active)));
+ if (teamDef != null) {
+ uld.setTeamMembers(
+ AtsClientService.get().getUserServiceClient().getOseeUsers(teamDef.getMembersAndLeads()));
}
- });
-
- Button emailSelected = new Button(mComp, SWT.PUSH);
- emailSelected.setImage(ImageManager.getImage(FrameworkImage.EMAIL));
- emailSelected.setToolTipText("Email");
- emailSelected.setLayoutData(new GridData(SWT.LEFT, SWT.NONE, false, false));
- emailSelected.addSelectionListener(new SelectionAdapter() {
+ uld.setInitialSelections(AtsClientService.get().getUserServiceClient().getOseeUsers(assignees));
- @Override
- public void widgetSelected(SelectionEvent e) {
- try {
- ArtifactEmailWizard wizard = new ArtifactEmailWizard(awa);
- WizardDialog dialog = new WizardDialog(Displays.getActiveShell(), wizard);
- dialog.create();
- dialog.open();
- } catch (Exception ex) {
- OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
- }
+ if (uld.open() == Window.OK) {
+ assignees.clear();
+ assignees.addAll(AtsClientService.get().getUserServiceClient().getAtsUsers(uld.getUsersSelected()));
+ setInput(assignees);
}
-
- });
-
- }
-
- @Override
- public void saveToArtifact() {
- // do nothing
+ } catch (Exception ex) {
+ OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
+ }
}
@Override
- public void revert() {
+ public void handleEmailSelection() {
// do nothing
}
@Override
- public Result isDirty() {
- return Result.FalseResult;
+ public boolean includeEmailButton() {
+ return false;
}
- @Override
- public Artifact getArtifact() throws OseeCoreException {
- return awa;
+ public IAtsTeamDefinition getTeamDef() {
+ return teamDef;
}
- @Override
- public void setArtifact(Artifact artifact) throws OseeCoreException {
- this.awa = (AbstractWorkflowArtifact) artifact;
+ public void setTeamDef(IAtsTeamDefinition teamDef) {
+ this.teamDef = teamDef;
}
}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/XAssigneesListWorkItemWidget.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/XAssigneesListWorkItemWidget.java
new file mode 100644
index 00000000000..9e9bc78e3c4
--- /dev/null
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/widget/XAssigneesListWorkItemWidget.java
@@ -0,0 +1,96 @@
+/*******************************************************************************
+ * Copyright (c) 2017 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.ats.editor.widget;
+
+import java.util.List;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.osee.ats.api.user.IAtsUser;
+import org.eclipse.osee.ats.column.AssigneeColumnUI;
+import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact;
+import org.eclipse.osee.ats.internal.Activator;
+import org.eclipse.osee.ats.notify.ArtifactEmailWizard;
+import org.eclipse.osee.framework.core.util.Result;
+import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
+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.ui.skynet.widgets.IArtifactWidget;
+import org.eclipse.osee.framework.ui.swt.Displays;
+
+/**
+ * @author Donald G. Dunne
+ */
+public class XAssigneesListWorkItemWidget extends AbstractXAssigneesListWidget implements IArtifactWidget {
+
+ private AbstractWorkflowArtifact awa;
+ public static final String WIDGET_ID = XAssigneesListWorkItemWidget.class.getSimpleName();
+
+ public XAssigneesListWorkItemWidget(String displayLabel) {
+ super(displayLabel);
+ }
+
+ @Override
+ public List<IAtsUser> getCurrentAssignees() {
+ return awa.getAssignees();
+ }
+
+ @Override
+ public void handleModifySelection() {
+ try {
+ AssigneeColumnUI.promptChangeAssignees(awa, true);
+ } catch (Exception ex) {
+ OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
+ }
+ }
+
+ @Override
+ public void handleEmailSelection() {
+ try {
+ ArtifactEmailWizard wizard = new ArtifactEmailWizard(awa);
+ WizardDialog dialog = new WizardDialog(Displays.getActiveShell(), wizard);
+ dialog.create();
+ dialog.open();
+ } catch (Exception ex) {
+ OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
+ }
+ }
+
+ @Override
+ public boolean includeEmailButton() {
+ return true;
+ }
+
+ @Override
+ public void saveToArtifact() {
+ // do nothing
+ }
+
+ @Override
+ public void revert() {
+ // do nothing
+ }
+
+ @Override
+ public Result isDirty() {
+ return Result.FalseResult;
+ }
+
+ @Override
+ public Artifact getArtifact() throws OseeCoreException {
+ return awa;
+ }
+
+ @Override
+ public void setArtifact(Artifact artifact) throws OseeCoreException {
+ this.awa = (AbstractWorkflowArtifact) artifact;
+ }
+
+}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/goal/NewActionToGoalAction.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/goal/NewActionToGoalAction.java
index 45607d50de7..b0552eb0667 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/goal/NewActionToGoalAction.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/goal/NewActionToGoalAction.java
@@ -86,7 +86,7 @@ public class NewActionToGoalAction extends Action {
}
NewActionWizard wizard = new NewActionWizard();
if (!ais.isEmpty()) {
- wizard.setInitialAias(ais);
+ wizard.getSelectableAis(ais);
}
wizard.setNewActionListener(new NewActionAdapter() {
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/review/NewPeerReviewDialog.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/review/NewPeerReviewDialog.java
index a4b4b767728..5f1ddb31995 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/review/NewPeerReviewDialog.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/review/NewPeerReviewDialog.java
@@ -83,7 +83,7 @@ public class NewPeerReviewDialog extends EntryDialog {
}
private void createAisSelection(Composite parent) {
- Pair<FilteredCheckboxTree, Text> results = NewActionPage1.createActionableItemTreeViewer(parent);
+ Pair<FilteredCheckboxTree, Text> results = NewActionPage1.createActionableItemTreeViewer(parent, null);
aiFilteredTree = results.getFirst();
descriptionLabel = results.getSecond();
aiFilteredTree.getCheckboxTreeViewer().addCheckStateListener(new CheckStateListener());
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/AtsWidgetProvider.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/AtsWidgetProvider.java
index 6973abaf3a0..3336e2213df 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/AtsWidgetProvider.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/AtsWidgetProvider.java
@@ -23,6 +23,7 @@ import org.eclipse.osee.ats.core.client.review.defect.AtsXDefectValidator;
import org.eclipse.osee.ats.core.client.review.role.AtsXUserRoleValidator;
import org.eclipse.osee.ats.core.client.validator.AtsOperationalImpactValidator;
import org.eclipse.osee.ats.core.client.validator.AtsOperationalImpactWithWorkaroundValidator;
+import org.eclipse.osee.ats.editor.widget.XAssigneesListWidget;
import org.eclipse.osee.ats.internal.Activator;
import org.eclipse.osee.ats.internal.AtsClientService;
import org.eclipse.osee.ats.util.XVersionList;
@@ -149,6 +150,8 @@ public class AtsWidgetProvider implements IXWidgetProvider {
return new XWorkPackageWidget();
} else if (widgetName.equals(XHyperlabelWorkflowApplicabilitySelection.WIDGET_ID)) {
return new XHyperlabelWorkflowApplicabilitySelection();
+ } else if (widgetName.equals(XAssigneesListWidget.WIDGET_ID)) {
+ return new XAssigneesListWidget();
}
return toReturn;
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/util/IDynamicWidgetLayoutListener.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/util/IDynamicWidgetLayoutListener.java
index 4ecc73a07de..dc0c78e03bc 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/util/IDynamicWidgetLayoutListener.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/util/IDynamicWidgetLayoutListener.java
@@ -10,7 +10,6 @@
*******************************************************************************/
package org.eclipse.osee.framework.ui.skynet.widgets.util;
-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.widgets.XModifiedListener;
import org.eclipse.osee.framework.ui.skynet.widgets.XWidget;
@@ -21,10 +20,16 @@ import org.eclipse.ui.forms.widgets.FormToolkit;
*/
public interface IDynamicWidgetLayoutListener {
- public void widgetCreating(XWidget xWidget, FormToolkit toolkit, Artifact art, SwtXWidgetRenderer dynamicXWidgetLayout, XModifiedListener xModListener, boolean isEditable) throws OseeCoreException;
+ public default void widgetCreating(XWidget xWidget, FormToolkit toolkit, Artifact art, SwtXWidgetRenderer dynamicXWidgetLayout, XModifiedListener xModListener, boolean isEditable) {
+ // do nothing
+ };
- public void widgetCreated(XWidget xWidget, FormToolkit toolkit, Artifact art, SwtXWidgetRenderer dynamicXWidgetLayout, XModifiedListener xModListener, boolean isEditable) throws OseeCoreException;
+ public default void widgetCreated(XWidget xWidget, FormToolkit toolkit, Artifact art, SwtXWidgetRenderer dynamicXWidgetLayout, XModifiedListener xModListener, boolean isEditable) {
+ // do nothing
+ };
- public void createXWidgetLayoutData(XWidgetRendererItem layoutData, XWidget xWidget, FormToolkit toolkit, Artifact art, XModifiedListener xModListener, boolean isEditable) throws OseeCoreException;
+ public default void createXWidgetLayoutData(XWidgetRendererItem layoutData, XWidget xWidget, FormToolkit toolkit, Artifact art, XModifiedListener xModListener, boolean isEditable) {
+ // do nothing
+ }
}

Back to the top