use of org.eclipse.scout.rt.platform.classid.ClassIdentifier in project scout.rt by eclipse.
the class FormDataStatementBuilderCheck method checkValueField.
protected void checkValueField(AbstractValueFieldData<?> v) {
BasicPartDefinition part = null;
for (BasicPartDefinition f : builder.getBasicPartDefinitions()) {
if (part != null) {
break;
}
for (ClassIdentifier t : f.getValueTypeClassIdentifiers()) {
if (part != null) {
break;
}
if (t.getLastSegment() == v.getClass()) {
part = f;
}
}
}
if (part == null) {
String name = fieldToName(v);
String sqlColumnName = toSqlColumn(name);
String sqlTemplate = "\"${sqlName}\"";
String sql = sqlTemplate.replace("${sqlColumnName}", sqlColumnName);
String op;
Class<?> dataType = v.getHolderType();
if (String.class.isAssignableFrom(dataType)) {
op = "DataModelConstants.OPERATOR_CONTAINS";
} else {
op = "DataModelConstants.OPERATOR_EQ";
}
addBodyLine("setBasicDefinition(" + resolveImport(v.getClass()) + ".class," + sql + "," + op + ");");
}
}
use of org.eclipse.scout.rt.platform.classid.ClassIdentifier in project scout.rt by eclipse.
the class ExtendFormWithDeepLinkingTest method testContributeOnlyToOneTemplateUsage.
@Test
public void testContributeOnlyToOneTemplateUsage() throws Exception {
BEANS.get(IExtensionRegistry.class).register(ContributedTestField.class, new ClassIdentifier(TopFieldsBox.class, AbstractTemplateFieldsBox.class), null);
MultiTemplateUsageForm form = new MultiTemplateUsageForm();
assertTypes(form.getMainBox().getFields(), FirstTemplateBox.class, SecondTemplateBox.class, MainBoxStringField.class);
// first template box
FirstTemplateBox firstTemplateBox = form.getFirstTemplateBox();
assertTypes(firstTemplateBox.getFields(), TopFieldsBox.class, MiddleStringField.class, BottomFieldsBox.class);
assertTypes(firstTemplateBox.getTopFieldsBox().getFields(), TopStringField.class, BottomStringField.class, ContributedTestField.class);
assertTypes(firstTemplateBox.getBottomFieldsBox().getFields(), TopStringField.class, BottomStringField.class);
// second template box
SecondTemplateBox secondTemplateBox = form.getSecondTemplateBox();
assertTypes(secondTemplateBox.getFields(), TopFieldsBox.class, BottomFieldsBox.class);
assertTypes(secondTemplateBox.getTopFieldsBox().getFields(), TopStringField.class, BottomStringField.class, ContributedTestField.class);
assertTypes(secondTemplateBox.getBottomFieldsBox().getFields(), TopStringField.class, BottomStringField.class);
}
use of org.eclipse.scout.rt.platform.classid.ClassIdentifier in project scout.rt by eclipse.
the class ExtendFormWithDeepLinkingTest method testExtendOnlyToOneTemplateUses.
@Test
public void testExtendOnlyToOneTemplateUses() throws Exception {
BEANS.get(IExtensionRegistry.class).register(TemplateStringFieldExtension.class, new ClassIdentifier(TopFieldsBox.class, AbstractStringField.class), null);
MultiTemplateUsageForm form = new MultiTemplateUsageForm();
form.initForm();
assertTypes(form.getMainBox().getFields(), FirstTemplateBox.class, SecondTemplateBox.class, MainBoxStringField.class);
// first template box
FirstTemplateBox firstTemplateBox = form.getFirstTemplateBox();
assertTypes(firstTemplateBox.getFields(), TopFieldsBox.class, MiddleStringField.class, BottomFieldsBox.class);
assertTypes(firstTemplateBox.getTopFieldsBox().getFields(), TopStringField.class, BottomStringField.class);
assertTypes(firstTemplateBox.getBottomFieldsBox().getFields(), TopStringField.class, BottomStringField.class);
// second template box
SecondTemplateBox secondTemplateBox = form.getSecondTemplateBox();
assertTypes(secondTemplateBox.getFields(), TopFieldsBox.class, BottomFieldsBox.class);
assertTypes(secondTemplateBox.getTopFieldsBox().getFields(), TopStringField.class, BottomStringField.class);
assertTypes(secondTemplateBox.getBottomFieldsBox().getFields(), TopStringField.class, BottomStringField.class);
// behavior checks
assertEquals("A", form.getFirstTemplateBox().getTopFieldsBox().getTopStringField().getValue());
assertEquals("A", form.getFirstTemplateBox().getTopFieldsBox().getBottomStringField().getValue());
assertNull(form.getMiddleStringField().getValue());
assertNull(form.getFirstTemplateBox().getBottomFieldsBox().getTopStringField().getValue());
assertNull(form.getFirstTemplateBox().getBottomFieldsBox().getBottomStringField().getValue());
assertEquals("A", form.getSecondTemplateBox().getTopFieldsBox().getTopStringField().getValue());
assertEquals("A", form.getSecondTemplateBox().getTopFieldsBox().getBottomStringField().getValue());
assertNull(form.getSecondTemplateBox().getBottomFieldsBox().getTopStringField().getValue());
assertNull(form.getSecondTemplateBox().getBottomFieldsBox().getBottomStringField().getValue());
}
use of org.eclipse.scout.rt.platform.classid.ClassIdentifier in project scout.rt by eclipse.
the class MoveFormFieldTest method testMultiTemplateUsageFormMoveWithDeepLinkedTargetOverspecified.
@Test
public void testMultiTemplateUsageFormMoveWithDeepLinkedTargetOverspecified() throws Exception {
BEANS.get(IExtensionRegistry.class).registerMove(new ClassIdentifier(MainBoxStringField.class), 15d, new ClassIdentifier(MultiTemplateUsageForm.class, MultiTemplateUsageForm.MainBox.class, SecondTemplateBox.class, TopFieldsBox.class));
MultiTemplateUsageForm form = new MultiTemplateUsageForm();
assertClasses(form.getMainBox().getFields(), FirstTemplateBox.class, SecondTemplateBox.class);
// first template box
FirstTemplateBox firstTemplateBox = form.getFirstTemplateBox();
assertClasses(firstTemplateBox.getFields(), TopFieldsBox.class, MiddleStringField.class, BottomFieldsBox.class);
assertClasses(firstTemplateBox.getTopFieldsBox().getFields(), TopStringField.class, BottomStringField.class);
assertClasses(firstTemplateBox.getBottomFieldsBox().getFields(), TopStringField.class, BottomStringField.class);
// second template box
SecondTemplateBox secondTemplateBox = form.getSecondTemplateBox();
assertClasses(secondTemplateBox.getFields(), TopFieldsBox.class, BottomFieldsBox.class);
assertClasses(secondTemplateBox.getTopFieldsBox().getFields(), TopStringField.class, MainBoxStringField.class, BottomStringField.class);
assertClasses(secondTemplateBox.getBottomFieldsBox().getFields(), TopStringField.class, BottomStringField.class);
}
use of org.eclipse.scout.rt.platform.classid.ClassIdentifier in project scout.rt by eclipse.
the class MoveFormFieldTest method testMultiTemplateUsageFormMoveTopStringFieldInFirstTemplateBoxUsingOverspecifiedClassIdentifier.
@Test
public void testMultiTemplateUsageFormMoveTopStringFieldInFirstTemplateBoxUsingOverspecifiedClassIdentifier() throws Exception {
BEANS.get(IExtensionRegistry.class).registerMove(new ClassIdentifier(MultiTemplateUsageForm.class, MultiTemplateUsageForm.MainBox.class, FirstTemplateBox.class, TopStringField.class), 30d);
MultiTemplateUsageForm form = new MultiTemplateUsageForm();
assertEquals(3, form.getMainBox().getFieldCount());
assertSame(form.getFirstTemplateBox(), form.getMainBox().getFields().get(0));
assertSame(form.getSecondTemplateBox(), form.getMainBox().getFields().get(1));
assertSame(form.getMainBoxStringField(), form.getMainBox().getFields().get(2));
// first template box
FirstTemplateBox firstTemplateBox = form.getFirstTemplateBox();
assertEquals(3, firstTemplateBox.getFieldCount());
assertSame(firstTemplateBox.getTopFieldsBox(), firstTemplateBox.getFields().get(0));
assertSame(form.getMiddleStringField(), firstTemplateBox.getFields().get(1));
assertSame(firstTemplateBox.getBottomFieldsBox(), firstTemplateBox.getFields().get(2));
// top fields box in first template box
assertAbstractTemplateFieldsBox(firstTemplateBox.getTopFieldsBox(), false);
assertAbstractTemplateFieldsBox(firstTemplateBox.getBottomFieldsBox(), false);
// second template box
SecondTemplateBox secondTemplateBox = form.getSecondTemplateBox();
assertEquals(2, secondTemplateBox.getFieldCount());
assertSame(secondTemplateBox.getTopFieldsBox(), secondTemplateBox.getFields().get(0));
assertSame(secondTemplateBox.getBottomFieldsBox(), secondTemplateBox.getFields().get(1));
// top fields box in first template box
assertAbstractTemplateFieldsBox(secondTemplateBox.getTopFieldsBox(), true);
assertAbstractTemplateFieldsBox(secondTemplateBox.getBottomFieldsBox(), true);
}
Aggregations