Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordonald.g.dunne2021-05-04 03:39:02 +0000
committerRyan T. Baldwin2021-05-04 03:39:02 +0000
commitb6135d51abe3b8da83a80c1bb5097190246a44cf (patch)
treec9c333ef7d2a4b627cf804b541edf1a184e444c1
parentcbb2a41b50d47edfa0b5cfbc366a1bf34c20fece (diff)
downloadorg.eclipse.osee-b6135d51abe3b8da83a80c1bb5097190246a44cf.tar.gz
org.eclipse.osee-b6135d51abe3b8da83a80c1bb5097190246a44cf.tar.xz
org.eclipse.osee-b6135d51abe3b8da83a80c1bb5097190246a44cf.zip
feature[TW19120]: Add Auto-Save to XComboDam and XIntegerDam
-rw-r--r--plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/WidgetOption.java3
-rw-r--r--plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/WidgetOptionHandler.java4
-rw-r--r--plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/workdef/WidgetOptionTest.java2
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XComboDam.java20
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XIntegerDam.java23
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XOption.java2
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XOptionHandler.java6
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XWidget.java9
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/util/SwtXWidgetRenderer.java1
9 files changed, 69 insertions, 1 deletions
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/WidgetOption.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/WidgetOption.java
index 2b2bc7a3076..cb4f765ad0f 100644
--- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/WidgetOption.java
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/WidgetOption.java
@@ -22,6 +22,9 @@ public enum WidgetOption {
REQUIRED_FOR_TRANSITION,
NOT_REQUIRED_FOR_TRANSITION,
+ AUTO_SAVE,
+ NOT_AUTO_SAVE,
+
REQUIRED_FOR_COMPLETION,
NOT_REQUIRED_FOR_COMPLETION,
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/WidgetOptionHandler.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/WidgetOptionHandler.java
index 37b70343136..f2ea87775f6 100644
--- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/WidgetOptionHandler.java
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/WidgetOptionHandler.java
@@ -62,6 +62,10 @@ public class WidgetOptionHandler implements IAtsWidgetOptionHandler {
options.remove(WidgetOption.REQUIRED_FOR_TRANSITION);
} else if (xOption == WidgetOption.REQUIRED_FOR_TRANSITION) {
options.remove(WidgetOption.NOT_REQUIRED_FOR_TRANSITION);
+ } else if (xOption == WidgetOption.AUTO_SAVE) {
+ options.remove(WidgetOption.NOT_AUTO_SAVE);
+ } else if (xOption == WidgetOption.NOT_AUTO_SAVE) {
+ options.remove(WidgetOption.AUTO_SAVE);
} else if (xOption == WidgetOption.NOT_ENABLED) {
options.remove(WidgetOption.ENABLED);
} else if (xOption == WidgetOption.ENABLED) {
diff --git a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/workdef/WidgetOptionTest.java b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/workdef/WidgetOptionTest.java
index ecd3f84dec6..7a2a8a2baa6 100644
--- a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/workdef/WidgetOptionTest.java
+++ b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/workdef/WidgetOptionTest.java
@@ -26,7 +26,7 @@ public class WidgetOptionTest {
@Test
public void testValues() {
- Assert.assertEquals(32, WidgetOption.values().length);
+ Assert.assertEquals(34, WidgetOption.values().length);
}
@Test
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XComboDam.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XComboDam.java
index de2eac4a98e..95bd7a95b32 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XComboDam.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XComboDam.java
@@ -26,6 +26,7 @@ import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.validation.IOseeValidator;
import org.eclipse.osee.framework.skynet.core.validation.OseeValidator;
import org.eclipse.osee.framework.ui.skynet.internal.Activator;
+import org.eclipse.swt.widgets.Composite;
/**
* @author Donald G. Dunne
@@ -45,6 +46,25 @@ public class XComboDam extends XCombo implements AttributeWidget {
}
@Override
+ protected void createControls(Composite parent, int horizontalSpan) {
+ super.createControls(parent, horizontalSpan);
+ if (isAutoSave()) {
+ addXModifiedListener(new XModifiedListener() {
+
+ @Override
+ public void widgetModified(XWidget widget) {
+ if (artifact != null && artifact.isValid()) {
+ saveToArtifact();
+ if (artifact.isDirty()) {
+ artifact.persist("XComboDam Auto-Save");
+ }
+ }
+ }
+ });
+ }
+ }
+
+ @Override
public AttributeTypeToken getAttributeType() {
return attributeType;
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XIntegerDam.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XIntegerDam.java
index be1a8a11d51..f9a09a6eb51 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XIntegerDam.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XIntegerDam.java
@@ -21,6 +21,9 @@ 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.internal.Activator;
+import org.eclipse.swt.events.FocusAdapter;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.widgets.Composite;
/**
* @author Donald G. Dunne
@@ -36,6 +39,26 @@ public class XIntegerDam extends XInteger implements AttributeWidget {
}
@Override
+ protected void createControls(Composite parent, int horizontalSpan) {
+ super.createControls(parent, horizontalSpan);
+ if (isAutoSave()) {
+ getStyledText().addFocusListener(new FocusAdapter() {
+
+ @Override
+ public void focusLost(FocusEvent e) {
+ if (artifact != null && artifact.isValid()) {
+ saveToArtifact();
+ if (artifact.isDirty()) {
+ artifact.persist("XIntegerDam Auto-Save");
+ }
+ }
+ }
+
+ });
+ }
+ }
+
+ @Override
public Artifact getArtifact() {
return artifact;
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XOption.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XOption.java
index 29dce906cb7..a9520cedc0d 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XOption.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XOption.java
@@ -22,6 +22,8 @@ import java.util.EnumSet;
public enum XOption {
NONE("", ""),
+ AUTO_SAVE("autoSave", "true"),
+ NOT_AUTO_SAVE("autoSave", "false"),
REQUIRED("required", "true"),
NOT_REQUIRED("required", "false"),
REQUIRED_FOR_COMPLETION("requiredForCompletion", "true"),
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XOptionHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XOptionHandler.java
index e45dd6c75c4..f6a9582e7d1 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XOptionHandler.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XOptionHandler.java
@@ -54,6 +54,12 @@ public class XOptionHandler {
case REQUIRED:
xOptions.remove(XOption.NOT_REQUIRED);
break;
+ case AUTO_SAVE:
+ xOptions.remove(XOption.NOT_AUTO_SAVE);
+ break;
+ case NOT_AUTO_SAVE:
+ xOptions.remove(XOption.AUTO_SAVE);
+ break;
case NOT_REQUIRED_FOR_COMPLETION:
xOptions.remove(XOption.REQUIRED_FOR_COMPLETION);
break;
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XWidget.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XWidget.java
index 2a913c25d04..4eeb25f6793 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XWidget.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XWidget.java
@@ -69,6 +69,7 @@ public abstract class XWidget {
private ArtifactTypeId artifactType;
private String id;
protected Object defaultValueObj;
+ private boolean autoSave = false;
public XWidget(String label) {
this.label = label;
@@ -454,4 +455,12 @@ public abstract class XWidget {
public void setDefaultValueObj(Object defaultValueObj) {
this.defaultValueObj = defaultValueObj;
}
+
+ public boolean isAutoSave() {
+ return autoSave;
+ }
+
+ public void setAutoSave(boolean autoSave) {
+ this.autoSave = autoSave;
+ }
} \ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/util/SwtXWidgetRenderer.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/util/SwtXWidgetRenderer.java
index 8630f4fe219..7d60f37673a 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/util/SwtXWidgetRenderer.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/util/SwtXWidgetRenderer.java
@@ -129,6 +129,7 @@ public class SwtXWidgetRenderer {
xWidget.setRequiredEntry(xWidgetLayoutData.isRequired());
xWidget.setEditable(xWidgetLayoutData.getXOptionHandler().contains(XOption.EDITABLE) && isEditable);
xWidget.setNoSelect(xWidgetLayoutData.getXOptionHandler().contains(XOption.NO_SELECT));
+ xWidget.setAutoSave(xWidgetLayoutData.getXOptionHandler().contains(XOption.AUTO_SAVE));
xWidget.setArtifactType(xWidgetLayoutData.getArtifactType());

Back to the top