Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenrik Rentz-Reichert2013-03-26 15:07:36 +0000
committerHenrik Rentz-Reichert2013-03-26 15:07:36 +0000
commit0db8cbecb7c36faa2bc796485b8131e601e284cd (patch)
tree1a3864b51a3e4cf384dd9f3d42a36f4707eeae04
parentc11a0d242d9435d2e1f7373b8da37f2688c08eea (diff)
downloadorg.eclipse.etrice-0db8cbecb7c36faa2bc796485b8131e601e284cd.tar.gz
org.eclipse.etrice-0db8cbecb7c36faa2bc796485b8131e601e284cd.tar.xz
org.eclipse.etrice-0db8cbecb7c36faa2bc796485b8131e601e284cd.zip
[ui.behavior] bug 402348: [ui.behavior] missing non-empty validation for field guard of Edit Transition dialog
https://bugs.eclipse.org/bugs/show_bug.cgi?id=402348
-rw-r--r--plugins/org.eclipse.etrice.ui.behavior/src/org/eclipse/etrice/ui/behavior/dialogs/TransitionPropertyDialog.java20
-rw-r--r--plugins/org.eclipse.etrice.ui.behavior/src/org/eclipse/etrice/ui/behavior/support/TransitionSupport.java6
2 files changed, 21 insertions, 5 deletions
diff --git a/plugins/org.eclipse.etrice.ui.behavior/src/org/eclipse/etrice/ui/behavior/dialogs/TransitionPropertyDialog.java b/plugins/org.eclipse.etrice.ui.behavior/src/org/eclipse/etrice/ui/behavior/dialogs/TransitionPropertyDialog.java
index 9dca3a3bc..e6f7cc71f 100644
--- a/plugins/org.eclipse.etrice.ui.behavior/src/org/eclipse/etrice/ui/behavior/dialogs/TransitionPropertyDialog.java
+++ b/plugins/org.eclipse.etrice.ui.behavior/src/org/eclipse/etrice/ui/behavior/dialogs/TransitionPropertyDialog.java
@@ -145,16 +145,22 @@ public class TransitionPropertyDialog extends AbstractMemberAwarePropertyDialog
}
private class GuardValidator implements IValidator {
+ private String text;
+
+ public GuardValidator(String text) {
+ this.text = text;
+
+ }
@Override
public IStatus validate(Object value) {
if (value instanceof String) {
String name = (String) value;
if (name.isEmpty())
- return ValidationStatus.error("guard must not be empty");
+ return ValidationStatus.error(text);
}
else if (value instanceof DetailCode) {
- if (RoomHelpers.getDetailCode((DetailCode)value).isEmpty())
- return ValidationStatus.error("guard must not be empty");
+ if (RoomHelpers.getDetailCode((DetailCode)value).trim().isEmpty())
+ return ValidationStatus.error(text);
}
return Status.OK_STATUS;
}
@@ -257,7 +263,7 @@ public class TransitionPropertyDialog extends AbstractMemberAwarePropertyDialog
createFixedText(body, "&Guard:", code, true);
}
else {
- GuardValidator gv = new GuardValidator();
+ GuardValidator gv = new GuardValidator("guard must not be empty");
Text cond = createText(body, "&Guard:", trans, RoomPackage.eINSTANCE.getGuardedTransition_Guard(), gv, s2m_not_null, m2s_null_empty, true);
configureMemberAware(cond, true, true, true);
@@ -275,11 +281,15 @@ public class TransitionPropertyDialog extends AbstractMemberAwarePropertyDialog
createFixedText(body, "&Condition", code, true);
}
else {
- Text cond = createText(body, "&Condition:", trans, RoomPackage.eINSTANCE.getCPBranchTransition_Condition(), null, s2m, m2s, true);
+ GuardValidator gv = new GuardValidator("condition must not be empty");
+
+ Text cond = createText(body, "&Condition:", trans, RoomPackage.eINSTANCE.getCPBranchTransition_Condition(), gv, s2m_not_null, m2s_null_empty, true);
configureMemberAware(cond, true, true, true);
GridData gd = new GridData(GridData.FILL_BOTH);
gd.heightHint = 100;
cond.setLayoutData(gd);
+
+ createDecorator(cond, "empty condition");
}
}
diff --git a/plugins/org.eclipse.etrice.ui.behavior/src/org/eclipse/etrice/ui/behavior/support/TransitionSupport.java b/plugins/org.eclipse.etrice.ui.behavior/src/org/eclipse/etrice/ui/behavior/support/TransitionSupport.java
index ebb004d95..dfea4c509 100644
--- a/plugins/org.eclipse.etrice.ui.behavior/src/org/eclipse/etrice/ui/behavior/support/TransitionSupport.java
+++ b/plugins/org.eclipse.etrice.ui.behavior/src/org/eclipse/etrice/ui/behavior/support/TransitionSupport.java
@@ -19,6 +19,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.etrice.core.naming.RoomNameProvider;
import org.eclipse.etrice.core.room.ActorClass;
import org.eclipse.etrice.core.room.ActorCommunicationType;
+import org.eclipse.etrice.core.room.CPBranchTransition;
import org.eclipse.etrice.core.room.ChoicepointTerminal;
import org.eclipse.etrice.core.room.ContinuationTransition;
import org.eclipse.etrice.core.room.EntryPoint;
@@ -177,6 +178,11 @@ public class TransitionSupport {
}
NonInitialTransition t = dfltBranch? RoomFactory.eINSTANCE.createContinuationTransition()
: RoomFactory.eINSTANCE.createCPBranchTransition();
+
+ if (t instanceof CPBranchTransition) {
+ ((CPBranchTransition) t).setCondition(RoomFactory.eINSTANCE.createDetailCode());
+ }
+
t.setFrom(src);
t.setTo(dst);
trans = t;

Back to the top