Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrian Sacchi2014-03-13 14:01:28 +0000
committerKen Lee2014-03-31 09:14:23 +0000
commit47095735a87f1136b5e4f3cd61e194c3e5de2f04 (patch)
tree4ff2b63d51241f8d70ed46b7bea67b277c5058f4
parent70ee0068be6ce9ce3a0ff28ce3ea5ec717433c6d (diff)
downloadorg.eclipse.scout.rt-47095735a87f1136b5e4f3cd61e194c3e5de2f04.tar.gz
org.eclipse.scout.rt-47095735a87f1136b5e4f3cd61e194c3e5de2f04.tar.xz
org.eclipse.scout.rt-47095735a87f1136b5e4f3cd61e194c3e5de2f04.zip
bug 420626: Unique FieldId
https://bugs.eclipse.org/bugs/show_bug.cgi?id=420626 fix order of composed classId for fields in template groupboxes Change-Id: Ibbb57d41cefb5a12b1f2b46be1cafbf687a10aeb Signed-off-by: Adrian Sacchi <adrian.sacchi@bsiag.com> Reviewed-on: https://git.eclipse.org/r/23328 Tested-by: Hudson CI Reviewed-by: Ken Lee <kle@bsiag.com> IP-Clean: Ken Lee <kle@bsiag.com> Reviewed-on: https://git.eclipse.org/r/24018
-rw-r--r--org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/client/ui/form/fields/AbstractFormFieldTest.java27
-rw-r--r--org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/client/ui/form/fixture/AbstractTemplateUsingOtherTemplateGroupBox.java38
-rw-r--r--org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/client/ui/form/fixture/AbstractTestGroupBox.java2
-rw-r--r--org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/shared/data/form/fixture/AbstractTestGroupBoxData.java43
-rw-r--r--org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/form/fields/AbstractFormField.java4
5 files changed, 86 insertions, 28 deletions
diff --git a/org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/client/ui/form/fields/AbstractFormFieldTest.java b/org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/client/ui/form/fields/AbstractFormFieldTest.java
index 5aed7175fa..a6fa0a5185 100644
--- a/org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/client/ui/form/fields/AbstractFormFieldTest.java
+++ b/org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/client/ui/form/fields/AbstractFormFieldTest.java
@@ -17,13 +17,19 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import org.eclipse.scout.commons.ConfigurationUtility;
+import org.eclipse.scout.commons.ITypeWithClassId;
import org.eclipse.scout.commons.annotations.ClassId;
import org.eclipse.scout.commons.annotations.Order;
import org.eclipse.scout.commons.exception.ProcessingException;
import org.eclipse.scout.rt.client.ui.form.AbstractForm;
import org.eclipse.scout.rt.client.ui.form.fields.AbstractFormFieldTest.TestForm2.MainBox.SimpleGroupBox2;
+import org.eclipse.scout.rt.client.ui.form.fields.AbstractFormFieldTest.TestFormWithGroupBoxes.MainBox.GroupBox1;
+import org.eclipse.scout.rt.client.ui.form.fields.AbstractFormFieldTest.TestFormWithGroupBoxes.MainBox.GroupBox2;
import org.eclipse.scout.rt.client.ui.form.fields.groupbox.AbstractGroupBox;
+import org.eclipse.scout.rt.client.ui.form.fixture.AbstractTemplateUsingOtherTemplateGroupBox;
import org.eclipse.scout.rt.client.ui.form.fixture.AbstractTestGroupBox;
+import org.junit.Assert;
import org.junit.Test;
/**
@@ -81,7 +87,14 @@ public class AbstractFormFieldTest {
*/
@Test
public void testClassIdTemplateGroupBox() throws ProcessingException {
- verifyNoDuplicateClassIds(new TestFormWithGroupBoxes().getAllFields());
+ TestFormWithGroupBoxes form = new TestFormWithGroupBoxes();
+ verifyNoDuplicateClassIds(form.getAllFields());
+ String completeClassId = form.getGroupBox1().getUsingOtherTemplateBox().getText1Field().classId();
+ String fieldClassId = ConfigurationUtility.getAnnotatedClassIdWithFallback(form.getGroupBox1().getUsingOtherTemplateBox().getText1Field().getClass());
+ String parentGroupboxClassId = ConfigurationUtility.getAnnotatedClassIdWithFallback(form.getGroupBox1().getUsingOtherTemplateBox().getClass(), true);
+ String parentParentGroupboxClassId = ConfigurationUtility.getAnnotatedClassIdWithFallback(form.getGroupBox1().getClass(), true);
+ String expectedClassId = fieldClassId + ITypeWithClassId.ID_CONCAT_SYMBOL + parentGroupboxClassId + ITypeWithClassId.ID_CONCAT_SYMBOL + parentParentGroupboxClassId;
+ Assert.assertEquals(expectedClassId, completeClassId);
}
private void verifyNoDuplicateClassIds(List<IFormField> formFields) {
@@ -132,14 +145,22 @@ public class AbstractFormFieldTest {
super();
}
+ public GroupBox1 getGroupBox1() {
+ return getFieldByClass(GroupBox1.class);
+ }
+
+ public GroupBox2 getGroupBox2() {
+ return getFieldByClass(GroupBox2.class);
+ }
+
public class MainBox extends AbstractGroupBox {
@Order(10.0)
- public class SimpleGroupBox extends AbstractTestGroupBox {
+ public class GroupBox1 extends AbstractTemplateUsingOtherTemplateGroupBox {
}
@Order(20.0)
- public class SimpleGroupBox2 extends AbstractTestGroupBox {
+ public class GroupBox2 extends AbstractTemplateUsingOtherTemplateGroupBox {
}
}
diff --git a/org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/client/ui/form/fixture/AbstractTemplateUsingOtherTemplateGroupBox.java b/org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/client/ui/form/fixture/AbstractTemplateUsingOtherTemplateGroupBox.java
new file mode 100644
index 0000000000..0f57cd514c
--- /dev/null
+++ b/org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/client/ui/form/fixture/AbstractTemplateUsingOtherTemplateGroupBox.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2013 BSI Business Systems Integration AG.
+ * 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:
+ * BSI Business Systems Integration AG - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.scout.rt.client.ui.form.fixture;
+
+import org.eclipse.scout.commons.annotations.Order;
+import org.eclipse.scout.rt.client.ui.form.fields.groupbox.AbstractGroupBox;
+import org.eclipse.scout.rt.client.ui.form.fields.stringfield.AbstractStringField;
+
+/**
+ * Template GroupBox with a StringField and a nested groupbox using another template
+ */
+public abstract class AbstractTemplateUsingOtherTemplateGroupBox extends AbstractGroupBox {
+
+ public TextField getTextField() {
+ return getFieldByClass(TextField.class);
+ }
+
+ public UsingOtherTemplateBox getUsingOtherTemplateBox() {
+ return getFieldByClass(UsingOtherTemplateBox.class);
+ }
+
+ @Order(10.0)
+ public class TextField extends AbstractStringField {
+ }
+
+ @Order(20.0)
+ public class UsingOtherTemplateBox extends AbstractTestGroupBox {
+ }
+
+}
diff --git a/org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/client/ui/form/fixture/AbstractTestGroupBox.java b/org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/client/ui/form/fixture/AbstractTestGroupBox.java
index b755dd9b14..985330ef71 100644
--- a/org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/client/ui/form/fixture/AbstractTestGroupBox.java
+++ b/org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/client/ui/form/fixture/AbstractTestGroupBox.java
@@ -10,6 +10,7 @@
******************************************************************************/
package org.eclipse.scout.rt.client.ui.form.fixture;
+import org.eclipse.scout.commons.annotations.ClassId;
import org.eclipse.scout.commons.annotations.FormData;
import org.eclipse.scout.commons.annotations.FormData.DefaultSubtypeSdkCommand;
import org.eclipse.scout.commons.annotations.FormData.SdkCommand;
@@ -41,6 +42,7 @@ public abstract class AbstractTestGroupBox extends AbstractGroupBox {
return getFieldByClass(InnerTestGroupBox.class);
}
+ @ClassId("1b67f4c4-1579-4875-a2c9-d62c7cd63508")
@Order(10.0)
public class Text1Field extends AbstractStringField {
}
diff --git a/org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/shared/data/form/fixture/AbstractTestGroupBoxData.java b/org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/shared/data/form/fixture/AbstractTestGroupBoxData.java
index f5b8f51b3d..ee57eceeb8 100644
--- a/org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/shared/data/form/fixture/AbstractTestGroupBoxData.java
+++ b/org.eclipse.scout.rt.client.test/src/org/eclipse/scout/rt/shared/data/form/fixture/AbstractTestGroupBoxData.java
@@ -1,29 +1,37 @@
/*******************************************************************************
- * Copyright (c) 2013 BSI Business Systems Integration AG.
+ * Copyright (c) 2010 BSI Business Systems Integration AG.
* 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:
* BSI Business Systems Integration AG - initial API and implementation
******************************************************************************/
package org.eclipse.scout.rt.shared.data.form.fixture;
+import java.util.Map;
+
+import javax.annotation.Generated;
+
import org.eclipse.scout.rt.shared.data.form.ValidationRule;
import org.eclipse.scout.rt.shared.data.form.fields.AbstractFormFieldData;
import org.eclipse.scout.rt.shared.data.form.fields.AbstractValueFieldData;
+/**
+ * <b>NOTE:</b><br>
+ * This class is auto generated by the Scout SDK. No manual modifications recommended.
+ *
+ * @generated
+ */
+@Generated(value = "org.eclipse.scout.sdk.workspace.dto.formdata.FormDataDtoUpdateOperation", comments = "This class is auto generated by the Scout SDK. No manual modifications recommended.")
public abstract class AbstractTestGroupBoxData extends AbstractFormFieldData {
+
private static final long serialVersionUID = 1L;
public AbstractTestGroupBoxData() {
}
- public InnerText1 getInnerText1() {
- return getFieldByClass(InnerText1.class);
- }
-
public TestListBox getTestListBox() {
return getFieldByClass(TestListBox.class);
}
@@ -36,23 +44,8 @@ public abstract class AbstractTestGroupBoxData extends AbstractFormFieldData {
return getFieldByClass(Text2.class);
}
- public static class InnerText1 extends AbstractValueFieldData<String> {
- private static final long serialVersionUID = 1L;
-
- public InnerText1() {
- }
-
- /**
- * list of derived validation rules.
- */
- @Override
- protected void initValidationRules(java.util.Map<String, Object> ruleMap) {
- super.initValidationRules(ruleMap);
- ruleMap.put(ValidationRule.MAX_LENGTH, 4000);
- }
- }
-
public static class TestListBox extends AbstractValueFieldData<String[]> {
+
private static final long serialVersionUID = 1L;
public TestListBox() {
@@ -60,6 +53,7 @@ public abstract class AbstractTestGroupBoxData extends AbstractFormFieldData {
}
public static class Text1 extends AbstractValueFieldData<String> {
+
private static final long serialVersionUID = 1L;
public Text1() {
@@ -69,13 +63,14 @@ public abstract class AbstractTestGroupBoxData extends AbstractFormFieldData {
* list of derived validation rules.
*/
@Override
- protected void initValidationRules(java.util.Map<String, Object> ruleMap) {
+ protected void initValidationRules(Map<String, Object> ruleMap) {
super.initValidationRules(ruleMap);
ruleMap.put(ValidationRule.MAX_LENGTH, 4000);
}
}
public static class Text2 extends AbstractValueFieldData<String> {
+
private static final long serialVersionUID = 1L;
public Text2() {
@@ -85,7 +80,7 @@ public abstract class AbstractTestGroupBoxData extends AbstractFormFieldData {
* list of derived validation rules.
*/
@Override
- protected void initValidationRules(java.util.Map<String, Object> ruleMap) {
+ protected void initValidationRules(Map<String, Object> ruleMap) {
super.initValidationRules(ruleMap);
ruleMap.put(ValidationRule.MAX_LENGTH, 4000);
}
diff --git a/org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/form/fields/AbstractFormField.java b/org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/form/fields/AbstractFormField.java
index c7e7eff177..ac54dfabdb 100644
--- a/org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/form/fields/AbstractFormField.java
+++ b/org.eclipse.scout.rt.client/src/org/eclipse/scout/rt/client/ui/form/fields/AbstractFormField.java
@@ -1048,7 +1048,9 @@ public abstract class AbstractFormField extends AbstractPropertyObserver impleme
StringBuilder fieldId = new StringBuilder();
String simpleClassId = ConfigurationUtility.getAnnotatedClassIdWithFallback(getClass(), true);
fieldId.append(simpleClassId);
- for (ICompositeField enclosingField : getEnclosingFieldList()) {
+ List<ICompositeField> enclosingFieldList = getEnclosingFieldList();
+ Collections.reverse(enclosingFieldList);
+ for (ICompositeField enclosingField : enclosingFieldList) {
String enclosingClassId = ConfigurationUtility.getAnnotatedClassIdWithFallback(enclosingField.getClass(), true);
fieldId.append(ID_CONCAT_SYMBOL).append(enclosingClassId);
}

Back to the top