Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorddunne2010-07-27 03:19:36 +0000
committerddunne2010-07-27 03:19:36 +0000
commit30d8ece0fc9414c0ed67a0364bf0201999c0f9b8 (patch)
tree599844be7bf1cd834c775124c2f68cc1942e278c
parent004f168e7854a5134e071741eb3a29b73e9597ef (diff)
downloadorg.eclipse.osee-30d8ece0fc9414c0ed67a0364bf0201999c0f9b8.tar.gz
org.eclipse.osee-30d8ece0fc9414c0ed67a0364bf0201999c0f9b8.tar.xz
org.eclipse.osee-30d8ece0fc9414c0ed67a0364bf0201999c0f9b8.zip
make roles single attribute each
"Team Workflow" - A4C1F - "Improvements to the enter new defect dialog box"
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/NewDefectDialog.java150
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/XDefectViewer.java41
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/role/UserRoleManager.java59
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/dialog/EntryDialog.java15
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/dialog/EntryEntryDialog.java2
5 files changed, 219 insertions, 48 deletions
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/NewDefectDialog.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/NewDefectDialog.java
new file mode 100644
index 00000000000..e1d132554d4
--- /dev/null
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/NewDefectDialog.java
@@ -0,0 +1,150 @@
+/*******************************************************************************
+ * 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.ats.util.widgets.defect;
+
+import org.eclipse.osee.ats.util.widgets.defect.DefectItem.Severity;
+import org.eclipse.osee.framework.jdk.core.util.Strings;
+import org.eclipse.osee.framework.ui.skynet.widgets.XCombo;
+import org.eclipse.osee.framework.ui.skynet.widgets.XModifiedListener;
+import org.eclipse.osee.framework.ui.skynet.widgets.XText;
+import org.eclipse.osee.framework.ui.skynet.widgets.XWidget;
+import org.eclipse.osee.framework.ui.skynet.widgets.dialog.EntryDialog;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Listener;
+
+/**
+ * Dialog with two entry boxes
+ *
+ * @author Donald G. Dunne
+ */
+public class NewDefectDialog extends EntryDialog {
+
+ private XText text2;
+ private XCombo severityCombo;
+ private String entryText2 = "";
+ private final String label2;
+ private Listener okListener;
+ private Severity severity;
+
+ public NewDefectDialog() {
+ super("Enter New Defect", "Enter Defect Description and Severity");
+ super.setLabel("Enter Defect Description");
+ super.setTextHeight(100);
+ this.label2 = "Enter Location of Defect";
+ }
+
+ @Override
+ protected void createOpenInEditorHyperlink(Composite parent) {
+ // do nothing, we don't want this here
+ }
+
+ @Override
+ protected void createClearFixedFontWidgets(Composite headerComp) {
+ // do nothing
+ }
+
+ @Override
+ protected void createExtendedArea(Composite parent) {
+
+ severityCombo = new XCombo("Enter Defect Severity");
+ severityCombo.setDataStrings(Severity.strValues().toArray(new String[Severity.strValues().size()]));
+ severityCombo.createWidgets(customAreaParent, 1);
+ severityCombo.addXModifiedListener(new XModifiedListener() {
+
+ @Override
+ public void widgetModified(XWidget widget) {
+ String str = severityCombo.get();
+ if (Strings.isValid(str)) {
+ severity = Severity.valueOf(str);
+ } else {
+ severity = null;
+ }
+ handleModified();
+ }
+ });
+
+ text2 = new XText(label2);
+ text2.setFillHorizontally(true);
+ if (isFillVertically()) {
+ text2.setFillVertically(true);
+ text2.setHeight(100);
+ text.setHeight(100);
+ text2.setFont(getFont());
+ }
+ text2.set(entryText2);
+ text2.createWidgets(customAreaParent, 1);
+
+ text2.addModifyListener(new ModifyListener() {
+
+ @Override
+ public void modifyText(ModifyEvent e) {
+ handleModified();
+ entryText2 = text2.get();
+ }
+ });
+
+ }
+
+ public String getEntry2() {
+ return entryText2;
+ }
+
+ public void setEntry2(String entry2) {
+ if (text2 != null) {
+ text2.set(entry2);
+ }
+ this.entryText2 = entry2;
+ }
+
+ public void setOkListener(Listener okListener) {
+ this.okListener = okListener;
+ }
+
+ @Override
+ protected void buttonPressed(int buttonId) {
+ super.buttonPressed(buttonId);
+ if (buttonId == 0 && okListener != null) {
+ okListener.handleEvent(null);
+ }
+ }
+
+ public Severity getSeverity() {
+ return severity;
+ }
+
+ @Override
+ public boolean isEntryValid() {
+ if (!super.isEntryValid()) {
+ return false;
+ }
+ if (!Strings.isValid(getEntry())) {
+ setErrorString("Must enter Description");
+ return false;
+ }
+
+ if (severity == null) {
+ setErrorString("Must select Severity");
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ protected Control createButtonBar(Composite parent) {
+ Control control = super.createButtonBar(parent);
+ handleModified();
+ return control;
+ }
+
+}
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/XDefectViewer.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/XDefectViewer.java
index 73907b36896..7978d2e4636 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/XDefectViewer.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/XDefectViewer.java
@@ -15,7 +15,6 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
-import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
@@ -33,6 +32,7 @@ import org.eclipse.osee.ats.util.widgets.defect.DefectItem.Disposition;
import org.eclipse.osee.ats.util.widgets.defect.DefectItem.Severity;
import org.eclipse.osee.framework.core.exception.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.util.AHTML;
+import org.eclipse.osee.framework.jdk.core.util.Strings;
import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
@@ -92,8 +92,6 @@ public class XDefectViewer extends XWidget implements IArtifactWidget, IArtifact
private static ToolItem newDefectItem, deleteDefectItem;
private Label extraInfoLabel;
private Composite parentComposite;
- private static ToolItem expandDefectItem, collapseDefectItem;
- private static Map<IReviewArtifact, Boolean> mapOfReviewArtifacts = new LinkedHashMap<IReviewArtifact, Boolean>();
private ToolBar toolBar;
private static Map<IReviewArtifact, Integer> tableHeight = new HashMap<IReviewArtifact, Integer>();
@@ -207,28 +205,6 @@ public class XDefectViewer extends XWidget implements IArtifactWidget, IArtifact
toolBar.setLayoutData(gd);
ToolItem item = null;
- expandDefectItem = new ToolItem(toolBar, SWT.PUSH);
- expandDefectItem.setImage(ImageManager.getImage(FrameworkImage.EXPAND_ALL));
- expandDefectItem.setToolTipText("Expand Defect List");
- expandDefectItem.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- mapOfReviewArtifacts.put(reviewArt, true);
- handleExpandCollapseDefectTableList();
- }
- });
-
- collapseDefectItem = new ToolItem(toolBar, SWT.PUSH);
- collapseDefectItem.setImage(ImageManager.getImage(FrameworkImage.COLLAPSE_ALL));
- collapseDefectItem.setToolTipText("Collapse Defect List");
- collapseDefectItem.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- mapOfReviewArtifacts.put(reviewArt, false);
- handleExpandCollapseDefectTableList();
- }
- });
-
newDefectItem = new ToolItem(toolBar, SWT.PUSH);
newDefectItem.setImage(ImageManager.getImage(FrameworkImage.GREEN_PLUS));
newDefectItem.setToolTipText("New Defect");
@@ -403,13 +379,20 @@ public class XDefectViewer extends XWidget implements IArtifactWidget, IArtifact
}
public void handleNewDefect() {
- EntryDialog ed =
- new EntryDialog(Displays.getActiveShell(), "Create New Defect", null, "Enter Defect Description",
- MessageDialog.QUESTION, new String[] {"OK", "Cancel"}, 0);
+ NewDefectDialog ed = new NewDefectDialog();
+ ed.setFillVertically(true);
if (ed.open() == 0) {
try {
SkynetTransaction transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), "Add Review Defect");
- reviewArt.getDefectManager().addDefectItem(ed.getEntry(), false, transaction);
+ DefectItem item = new DefectItem();
+ item.setDescription(ed.getEntry());
+ if (ed.getSeverity() != null) {
+ item.setSeverity(ed.getSeverity());
+ }
+ if (Strings.isValid(ed.getEntry2())) {
+ item.setLocation(ed.getEntry2());
+ }
+ reviewArt.getDefectManager().addOrUpdateDefectItem(item, false, transaction);
transaction.execute();
notifyXModifiedListeners();
loadTable();
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/role/UserRoleManager.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/role/UserRoleManager.java
index df6c03a16fa..c637f574392 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/role/UserRoleManager.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/role/UserRoleManager.java
@@ -14,6 +14,7 @@ import java.lang.ref.WeakReference;
import java.util.HashSet;
import java.util.Set;
import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import org.eclipse.osee.ats.artifact.IReviewArtifact;
import org.eclipse.osee.ats.artifact.ReviewSMArtifact;
import org.eclipse.osee.ats.artifact.StateMachineArtifact;
@@ -29,6 +30,7 @@ import org.eclipse.osee.framework.logging.OseeLevel;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.User;
import org.eclipse.osee.framework.skynet.core.UserManager;
+import org.eclipse.osee.framework.skynet.core.artifact.Attribute;
import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
/**
@@ -38,9 +40,10 @@ public class UserRoleManager {
private final WeakReference<ReviewSMArtifact> artifactRef;
private boolean enabled = true;
- private static String ATS_DEFECT_TAG = "AtsRole";
- private static String DEFECT_ITEM_TAG = "Role";
- private static String REVIEW_DEFECT_ATTRIBUTE_NAME = "ats.Role";
+ private static String ROLE_ITEM_TAG = "Role";
+ private static String REVIEW_ROLE_ATTRIBUTE_NAME = "ats.Role";
+ private final Matcher roleMatcher = java.util.regex.Pattern.compile(
+ "<" + ROLE_ITEM_TAG + ">(.*?)</" + ROLE_ITEM_TAG + ">", Pattern.DOTALL | Pattern.MULTILINE).matcher("");
public UserRoleManager(ReviewSMArtifact artifact) {
this.artifactRef = new WeakReference<ReviewSMArtifact>(artifact);
@@ -64,15 +67,15 @@ public class UserRoleManager {
}
public Set<UserRole> getUserRoles() throws OseeCoreException {
- Set<UserRole> uRoles = new HashSet<UserRole>();
- String xml = getArtifact().getSoleAttributeValue(REVIEW_DEFECT_ATTRIBUTE_NAME, "");
- Matcher m =
- java.util.regex.Pattern.compile("<" + DEFECT_ITEM_TAG + ">(.*?)</" + DEFECT_ITEM_TAG + ">").matcher(xml);
- while (m.find()) {
- UserRole item = new UserRole(m.group());
- uRoles.add(item);
+ Set<UserRole> roles = new HashSet<UserRole>();
+ for (String xml : getArtifact().getAttributesToStringList(REVIEW_ROLE_ATTRIBUTE_NAME)) {
+ roleMatcher.reset(xml);
+ while (roleMatcher.find()) {
+ UserRole item = new UserRole(roleMatcher.group());
+ roles.add(item);
+ }
}
- return uRoles;
+ return roles;
}
public Set<UserRole> getRoleUsersReviewComplete() throws OseeCoreException {
@@ -117,19 +120,39 @@ public class UserRoleManager {
private void saveRoleItems(Set<UserRole> defectItems, boolean persist, SkynetTransaction transaction) {
try {
- StringBuffer sb = new StringBuffer("<" + ATS_DEFECT_TAG + ">");
- for (UserRole item : defectItems) {
- sb.append(AXml.addTagData(DEFECT_ITEM_TAG, item.toXml()));
+ // Change existing ones
+ for (Attribute<?> attr : getArtifact().getAttributes(REVIEW_ROLE_ATTRIBUTE_NAME)) {
+ UserRole dbPromoteItem = new UserRole((String) attr.getValue());
+ for (UserRole pItem : defectItems) {
+ if (pItem.equals(dbPromoteItem)) {
+ attr.setFromString(AXml.addTagData(ROLE_ITEM_TAG, pItem.toXml()));
+ }
+ }
+ }
+ Set<UserRole> dbPromoteItems = getUserRoles();
+ // Remove deleted ones; items in dbPromoteItems that are not in promoteItems
+ for (UserRole delPromoteItem : org.eclipse.osee.framework.jdk.core.util.Collections.setComplement(
+ dbPromoteItems, defectItems)) {
+ for (Attribute<?> attr : getArtifact().getAttributes(REVIEW_ROLE_ATTRIBUTE_NAME)) {
+ UserRole dbPromoteItem = new UserRole((String) attr.getValue());
+ if (dbPromoteItem.equals(delPromoteItem)) {
+ attr.delete();
+ }
+ }
+ }
+ // Add new ones: items in promoteItems that are not in dbPromoteItems
+ for (UserRole newPromoteItem : org.eclipse.osee.framework.jdk.core.util.Collections.setComplement(defectItems,
+ dbPromoteItems)) {
+ getArtifact().addAttributeFromString(REVIEW_ROLE_ATTRIBUTE_NAME,
+ AXml.addTagData(ROLE_ITEM_TAG, newPromoteItem.toXml()));
}
- sb.append("</" + ATS_DEFECT_TAG + ">");
- getArtifact().setSoleAttributeValue(REVIEW_DEFECT_ATTRIBUTE_NAME, sb.toString());
updateAssignees();
if (persist) {
getArtifact().persist(transaction);
}
rollupHoursSpentToReviewState(persist, transaction);
- } catch (Exception ex) {
- OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, "Can't create ats review defect document", ex);
+ } catch (OseeCoreException ex) {
+ OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, "Can't create ats review role document", ex);
}
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/dialog/EntryDialog.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/dialog/EntryDialog.java
index 6ad75cf5dbb..e6372a9ca61 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/dialog/EntryDialog.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/dialog/EntryDialog.java
@@ -210,6 +210,7 @@ public class EntryDialog extends MessageDialog {
}
protected void createExtendedArea(Composite parent) {
+ // provided for subclass implementation
}
public void setInitialButtonState() {
@@ -318,4 +319,18 @@ public class EntryDialog extends MessageDialog {
this.textHeight = textHeight;
}
+ /**
+ * @return the errorString
+ */
+ public String getErrorString() {
+ return errorString;
+ }
+
+ /**
+ * @param errorString the errorString to set
+ */
+ public void setErrorString(String errorString) {
+ this.errorString = errorString;
+ }
+
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/dialog/EntryEntryDialog.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/dialog/EntryEntryDialog.java
index b10881e7dd4..c4c84c9bee2 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/dialog/EntryEntryDialog.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/dialog/EntryEntryDialog.java
@@ -42,7 +42,7 @@ public class EntryEntryDialog extends EntryDialog {
@Override
protected void createClearFixedFontWidgets(Composite headerComp) {
-
+ // do nothing
}
@Override

Back to the top