Differences

This shows you the differences between two versions of the page.

Link to this comparison view

element_component [2012/04/09 16:29]
dragan.milicev
element_component [2012/07/09 10:46] (current)
srdjan.lukovic [GUI Code]
Line 1: Line 1:
 ====== Data Input, View, and Edit Controls ====== ====== Data Input, View, and Edit Controls ======
  
-Data Input, View, and Edit Controls is a [[SOLoist Sample Applications|SOLoist sample application]] that demonstrates various SOLoist controls for entering, viewing, and editing data from the object space. It is based on a universal //Element Component// that can be configured and combined in very different ways, as shown in this example. The so-called //Service Access Points// for fetching objects from the object space into the UI and providing them on output pins are also introduced here.+**Data Input, View, and Edit Controls** is a [[SOLoist Sample Applications|SOLoist sample application]] that demonstrates various SOLoist controls for entering, viewing, and editing data from the object space. It is based on a universal //Element Component// that can be configured and combined in very different ways, as shown in this example. The so-called //Service Access Points// for fetching objects from the object space into the UI and providing them on output pins are also introduced here.
  
 This example demonstrates almost every combination in which a //GUIElementComponent// could be used. Its configuration is done along three dimensions: This example demonstrates almost every combination in which a //GUIElementComponent// could be used. Its configuration is done along three dimensions:
Line 8: Line 8:
     - //edit//: it is bound to a backend object whose slot it edits.     - //edit//: it is bound to a backend object whose slot it edits.
   - its widget type: how it is presented in the UI, and   - its widget type: how it is presented in the UI, and
-  - the source for the contents: how it gets the content which it presents (for lists, trees, and grids).+  - the source for the contents: how it gets the content which it presents (for lists, trees, and grids)
 +    - as a collection provided on its input pin 
 +    - as a value of a slot of the object provided on its input pin.
  
 In this example, all elements are divided into two tab groups, according to their kind (inputs and editors). Every tab within these tab groups represents a different widget (field, combo box, suggest box, list, tree, and grid/table). The panel under the corresponding tab contains element components that get the objects to be rendered from different sources (collection or slot value). In this example, all elements are divided into two tab groups, according to their kind (inputs and editors). Every tab within these tab groups represents a different widget (field, combo box, suggest box, list, tree, and grid/table). The panel under the corresponding tab contains element components that get the objects to be rendered from different sources (collection or slot value).
Line 53: Line 55:
 import rs.sol.soloist.server.guiconfiguration.components.GUITabComponent; import rs.sol.soloist.server.guiconfiguration.components.GUITabComponent;
 import rs.sol.soloist.server.guiconfiguration.components.PerformImmediately; import rs.sol.soloist.server.guiconfiguration.components.PerformImmediately;
-import rs.sol.soloist.server.guiconfiguration.construction.GUIComponent; 
 import rs.sol.soloist.server.guiconfiguration.construction.GUIComponentBinding; import rs.sol.soloist.server.guiconfiguration.construction.GUIComponentBinding;
-import rs.sol.soloist.server.guiconfiguration.construction.GUIFactory; +import rs.sol.soloist.server.guiconfiguration.elementcomponents.GUIEdit
-import rs.sol.soloist.server.guiconfiguration.elementcomponents.GUICollectionInput+import rs.sol.soloist.server.guiconfiguration.elementcomponents.GUIInput;
-import rs.sol.soloist.server.guiconfiguration.elementcomponents.GUIComboWidget; +
-import rs.sol.soloist.server.guiconfiguration.elementcomponents.GUIElementComponent; +
-import rs.sol.soloist.server.guiconfiguration.elementcomponents.GUIInputKind; +
-import rs.sol.soloist.server.guiconfiguration.elementcomponents.GUIListWidget; +
-import rs.sol.soloist.server.guiconfiguration.elementcomponents.GUISlotEditorKind; +
-import rs.sol.soloist.server.guiconfiguration.elementcomponents.GUISlotValueInput; +
-import rs.sol.soloist.server.guiconfiguration.elementcomponents.GUISuggestWidget; +
-import rs.sol.soloist.server.guiconfiguration.elementcomponents.GUITableWidget; +
-import rs.sol.soloist.server.guiconfiguration.elementcomponents.GUITreeWidget; +
-import rs.sol.soloist.server.guiconfiguration.layout.CellLayoutData;+
 import rs.sol.soloist.server.guiconfiguration.layout.TableLayoutData; import rs.sol.soloist.server.guiconfiguration.layout.TableLayoutData;
 import rs.sol.soloist.server.guiconfiguration.nonvisualcompoments.GUIComparationFilter; import rs.sol.soloist.server.guiconfiguration.nonvisualcompoments.GUIComparationFilter;
Line 83: Line 74:
  
  @Override  @Override
- public void init() throws InitializerFailedException {+ public void init() throws InitializerFailedException 
 + {
  GUIApplicationComponent page = new GUIApplicationComponent();  GUIApplicationComponent page = new GUIApplicationComponent();
- page.name.set(Text.fromString("ElementComponent"));+ page.setName("ElementComponent"); 
  SoloistServiceServlet.registerApplication(page);  SoloistServiceServlet.registerApplication(page);
- page.context.set(createContextAndStyles());+ page.setContext(createContextAndStyles());
  
  GUIPanelComponent root = GUIPanelComponent.createFlow(page);  GUIPanelComponent root = GUIPanelComponent.createFlow(page);
  
  GUILabelComponent title = GUILabelComponent.create(root, "Element Component");  GUILabelComponent title = GUILabelComponent.create(root, "Element Component");
- title.styleName.set(Text.fromString("titleStyle"));+ title.setStyle("titleStyle");
  
  GUIPanelComponent topPanel = GUIPanelComponent.createFlow(root);  GUIPanelComponent topPanel = GUIPanelComponent.createFlow(root);
- topPanel.styleName.set(Text.fromString("topPanel"));+ topPanel.setStyle("topPanel");
  
  // Service Access Points  // Service Access Points
- GUIFindAllInstancesSAPComponent allPersons = GUIFindAllInstancesSAPComponent.create(root, Person.FQ_TYPE_NAME); + GUIFindAllInstancesSAPComponent allPersons = GUIFindAllInstancesSAPComponent.create(root, Person.CLASSIFIER); 
- GUIFindSingleInstanceSAPComponent findJohnDoe = GUIFindSingleInstanceSAPComponent.create(root, Person.FQ_TYPE_NAME, Person.FQPropertyNames.desc, + GUIFindSingleInstanceSAPComponent findJohnDoe = GUIFindSingleInstanceSAPComponent.create(root,  
- (ClassifierInstanceDescriptor) ElementDescriptor.create(Text.fromString(ObjectSpaceInit.JOHN_DOE_IDENTIFIER)), false); + Person.FQ_TYPE_NAME,  
- GUIFindSingleInstanceSAPComponent findJohnDeoRootDepartment = GUIFindSingleInstanceSAPComponent.create(root, BankDepartment.FQ_TYPE_NAME, + Person.FQPropertyNames.desc,  
- BankDepartment.FQPropertyNames.desc, + (ClassifierInstanceDescriptor)ElementDescriptor.create(Text.fromString(ObjectSpaceInit.JOHN_DOE_IDENTIFIER))); 
- (ClassifierInstanceDescriptor) ElementDescriptor.create(Text.fromString(ObjectSpaceInit.JOHN_DOE_ROOT_DEPARTMENT)), false);+ GUIFindSingleInstanceSAPComponent findJohnDeoRootDepartment = GUIFindSingleInstanceSAPComponent.create(root,  
 + BankDepartment.FQ_TYPE_NAME,  
 + BankDepartment.FQPropertyNames.desc,  
 + (ClassifierInstanceDescriptor)ElementDescriptor.create(Text.fromString(ObjectSpaceInit.JOHN_DOE_ROOT_DEPARTMENT)));
  GUICommandComponent allPersonsNotAdvisers = GUICommandComponent.create(root, new FetchPersonsOnly(), PerformImmediately.NOTHING);  GUICommandComponent allPersonsNotAdvisers = GUICommandComponent.create(root, new FetchPersonsOnly(), PerformImmediately.NOTHING);
- GUIComponentBinding.create(page.start, allPersonsNotAdvisers.click); + GUIComponentBinding.create(page.opStart(), allPersonsNotAdvisers.ipClick()); 
- GUIFindSingleInstanceSAPComponent findJanneRoe = GUIFindSingleInstanceSAPComponent.create(root, Person.FQ_TYPE_NAME, Person.FQPropertyNames.desc, + GUIFindSingleInstanceSAPComponent findJanneRoe = GUIFindSingleInstanceSAPComponent.create(root,  
- (ClassifierInstanceDescriptor) ElementDescriptor.create(Text.fromString(ObjectSpaceInit.JANNE_ROE_IDENTIFIER)), false); + Person.FQ_TYPE_NAME,  
 + Person.FQPropertyNames.desc,  
 + (ClassifierInstanceDescriptor)ElementDescriptor.create(Text.fromString(ObjectSpaceInit.JANNE_ROE_IDENTIFIER))); 
 +
  // Inputs  // Inputs
  GUIPanelComponent inputs = GUIPanelComponent.createFlow(topPanel);  GUIPanelComponent inputs = GUIPanelComponent.createFlow(topPanel);
- inputs.styleName.set(Text.fromString("leftSide"));+ inputs.setStyle("leftSide");
  GUILabelComponent l1 = GUILabelComponent.create(inputs, "Input kind");  GUILabelComponent l1 = GUILabelComponent.create(inputs, "Input kind");
- l1.styleName.set(Text.fromString("subtitle"));+ l1.setStyle("subtitle");
  GUITabComponent tabInput = GUITabComponent.create(inputs, "Field", "Combo", "Suggest", "List", "Tree", "Table");  GUITabComponent tabInput = GUITabComponent.create(inputs, "Field", "Combo", "Suggest", "List", "Tree", "Table");
  GUIPanelComponent inputFieldsTable = GUIPanelComponent.createTable(tabInput);  GUIPanelComponent inputFieldsTable = GUIPanelComponent.createTable(tabInput);
Line 123: Line 120:
  
  int i = 0;  int i = 0;
- GUIComparationFilter gcf0 = GUIComparationFilter.create(root, tabInput.visibleChild, Integer.valueOf(i++)); + GUIComparationFilter gcf0 = GUIComparationFilter.create(root, Integer.valueOf(i++)); 
- GUIComponentBinding.create(gcf0.yes, allPersons.refresh); + GUIComponentBinding.create(tabInput.opVisibleChild(), gcf0.ipInput()); 
- GUIComparationFilter gcf1 = GUIComparationFilter.create(root, tabInput.visibleChild, Integer.valueOf(i++)); + GUIComponentBinding.create(gcf0.opYes(), allPersons.ipRefresh()); 
- GUIComponentBinding.create(gcf1.yes, allPersons.refresh); + GUIComparationFilter gcf1 = GUIComparationFilter.create(root, Integer.valueOf(i++)); 
- GUIComparationFilter gcf2 = GUIComparationFilter.create(root, tabInput.visibleChild, Integer.valueOf(i++)); + GUIComponentBinding.create(tabInput.opVisibleChild(), gcf1.ipInput()); 
- GUIComponentBinding.create(gcf2.yes, allPersons.refresh); + GUIComponentBinding.create(gcf1.opYes(), allPersons.ipRefresh()); 
- GUIComparationFilter gcf3 = GUIComparationFilter.create(root, tabInput.visibleChild, Integer.valueOf(i++)); + GUIComparationFilter gcf2 = GUIComparationFilter.create(root, Integer.valueOf(i++)); 
- GUIComponentBinding.create(gcf3.yes, allPersons.refresh); + GUIComponentBinding.create(tabInput.opVisibleChild(), gcf2.ipInput()); 
- GUIComparationFilter gcf4 = GUIComparationFilter.create(root, tabInput.visibleChild, Integer.valueOf(i++)); + GUIComponentBinding.create(gcf2.opYes(), allPersons.ipRefresh()); 
- GUIComponentBinding.create(gcf4.yes, allPersons.refresh); + GUIComparationFilter gcf3 = GUIComparationFilter.create(root, Integer.valueOf(i++)); 
- GUIComparationFilter gcf5 = GUIComparationFilter.create(root, tabInput.visibleChild, Integer.valueOf(i++)); + GUIComponentBinding.create(tabInput.opVisibleChild(), gcf3.ipInput()); 
- GUIComponentBinding.create(gcf5.yes, allPersons.refresh);+ GUIComponentBinding.create(gcf3.opYes(), allPersons.ipRefresh()); 
 + GUIComparationFilter gcf4 = GUIComparationFilter.create(root, Integer.valueOf(i++)); 
 + GUIComponentBinding.create(tabInput.opVisibleChild(), gcf4.ipInput()); 
 + GUIComponentBinding.create(gcf4.opYes(), allPersons.ipRefresh()); 
 + GUIComparationFilter gcf5 = GUIComparationFilter.create(root, Integer.valueOf(i++)); 
 + GUIComponentBinding.create(tabInput.opVisibleChild(), gcf5.ipInput()); 
 + GUIComponentBinding.create(gcf5.opYes(), allPersons.ipRefresh());
  
  // Input fields  // Input fields
  int row = 0, col = 0;  int row = 0, col = 0;
  GUILabelComponent.create(inputFieldsTable, "Text: ", row, col);  GUILabelComponent.create(inputFieldsTable, "Text: ", row, col);
- GUIElementComponent.createInput(inputFieldsTable, "", Text.CLASSIFIER, row++, col + 1);+ GUIInput.createField(inputFieldsTable, Text.CLASSIFIER, row++, col + 1);
  
  GUILabelComponent.create(inputFieldsTable, "Integer: ", row, col);  GUILabelComponent.create(inputFieldsTable, "Integer: ", row, col);
- GUIElementComponent.createInput(inputFieldsTable, "", Integer.CLASSIFIER, row++, col + 1);+ GUIInput.createField(inputFieldsTable, Integer.CLASSIFIER, row++, col + 1);
  
  GUILabelComponent.create(inputFieldsTable, "Real: ", row, col);  GUILabelComponent.create(inputFieldsTable, "Real: ", row, col);
- GUIElementComponent.createInput(inputFieldsTable, "", Real.CLASSIFIER, row++, col + 1);+ GUIInput.createField(inputFieldsTable, Real.CLASSIFIER, row++, col + 1);
  
  GUILabelComponent.create(inputFieldsTable, "Date: ", row, col);  GUILabelComponent.create(inputFieldsTable, "Date: ", row, col);
- GUIElementComponent.createInput(inputFieldsTable, "", Date.CLASSIFIER, row++, col + 1);+ GUIInput.createField(inputFieldsTable, Date.CLASSIFIER, row++, col + 1);
  
  GUILabelComponent.create(inputFieldsTable, "Boolean: ", row, col);  GUILabelComponent.create(inputFieldsTable, "Boolean: ", row, col);
- GUIElementComponent.createInputCheckbox(inputFieldsTable, """", false, new TableLayoutData(row++, col + 1));+ GUIInput checkBox = GUIInput.createField(inputFieldsTable, Boolean.CLASSIFIER, row++, col + 1)
 + checkBox.setLowerBound(1); 
 + checkBox.addInitialValue(Boolean.FALSE);
  
  GUILabelComponent.create(inputFieldsTable, "Enum: ", row, col);  GUILabelComponent.create(inputFieldsTable, "Enum: ", row, col);
- GUIElementComponent.createInput(inputFieldsTable, "", Repository.getRepository().getEnumeration(Gender.FQ_TYPE_NAME), row++, col + 1);+ GUIInput.createField(inputFieldsTable, Repository.getRepository().getEnumeration(Gender.FQ_TYPE_NAME), row++, col + 1);
  
  // Input combo  // Input combo
  row = 0; col = 0;  row = 0; col = 0;
  GUILabelComponent.create(inputComboTable, "Collection source: ", row, col);  GUILabelComponent.create(inputComboTable, "Collection source: ", row, col);
- GUIElementComponent collectionInputCombo = GUIElementComponent.createInput(inputComboTable, new GUIComboWidget(), new GUICollectionInput(), row++, col + 1); + GUIInput collectionInputCombo = GUIInput.createCombo(inputComboTable, TableLayoutData.create(row++, col + 1)); 
- GUIComponentBinding.create(allPersons.valueGUICollectionInput.get(collectionInputCombo).collection);+ GUIComponentBinding.create(allPersons.opValue()collectionInputCombo.ipCollection());
  
  GUILabelComponent.create(inputComboTable, "Slot value source: ", row, col);  GUILabelComponent.create(inputComboTable, "Slot value source: ", row, col);
- GUIElementComponent slotValueInputCombo = GUIElementComponent.createInput(inputComboTable, new GUIComboWidget(), + GUIInput slotValueInputCombo = GUIInput.createCombo(inputComboTable, Person.PROPERTIES.accounts, TableLayoutData.create(row++, col + 1)); 
- GUISlotValueInput.create(Person.PROPERTIES.accounts), row++, col + 1); + GUIComponentBinding.create(findJohnDoe.opValue()slotValueInputCombo.ipSlotValueElement());
- GUIComponentBinding.create(findJohnDoe.valueGUISlotValueInput.get(slotValueInputCombo).element);+
  
  // Input suggest  // Input suggest
  row = 0; col = 0;  row = 0; col = 0;
  GUILabelComponent.create(inputSuggestTable, "Collection source: ", row, col);  GUILabelComponent.create(inputSuggestTable, "Collection source: ", row, col);
- GUIElementComponent collectionInputSuggest = GUIElementComponent.createInput(inputSuggestTable, new GUISuggestWidget(), new GUICollectionInput(), row++, col + 1); + GUIInput collectionInputSuggest = GUIInput.createSuggest(inputSuggestTable, TableLayoutData.create(row++, col + 1)); 
- GUIComponentBinding.create(allPersons.valueGUICollectionInput.get(collectionInputSuggest).collection);+ GUIComponentBinding.create(allPersons.opValue()collectionInputSuggest.ipCollection());
  
  GUILabelComponent.create(inputSuggestTable, "Slot value source: ", row, col);  GUILabelComponent.create(inputSuggestTable, "Slot value source: ", row, col);
- GUIElementComponent slotValueInputSuggest = GUIElementComponent.createInput(inputSuggestTable, new GUISuggestWidget(), + GUIInput slotValueInputSuggest = GUIInput.createSuggest(inputSuggestTable, Person.PROPERTIES.accounts, TableLayoutData.create(row++, col + 1)); 
- GUISlotValueInput.create(Person.PROPERTIES.accounts), row++, col + 1); + GUIComponentBinding.create(findJohnDoe.opValue()slotValueInputSuggest.ipSlotValueElement());
- GUIComponentBinding.create(findJohnDoe.valueGUISlotValueInput.get(slotValueInputSuggest).element);+
  
  // Input lists  // Input lists
  row = 0; col = 0;  row = 0; col = 0;
  GUILabelComponent.create(inputListsTable, "Collection source: ", row, col);  GUILabelComponent.create(inputListsTable, "Collection source: ", row, col);
- GUIElementComponent collectionInputList = GUIElementComponent.createInput(inputListsTable, new GUIListWidget(), new GUICollectionInput(), row++, col + 1); + GUIInput collectionInputList = GUIInput.createList(inputListsTable)
- GUIComponentBinding.create(allPersons.valueGUICollectionInput.get(collectionInputList).collection); + collectionInputList.setLayoutData(TableLayoutData.create(row++, col + 1)); 
- CellLayoutData.setSize(collectionInputList, "250px", "200px"); + GUIComponentBinding.create(allPersons.opValue()collectionInputList.ipCollection()); 
- collectionInputList.styleName.set(Text.fromString("listWidget")); + collectionInputList.setSize("250px", "200px"); 
 + collectionInputList.setStyle("listWidget"); 
 +
  GUILabelComponent.create(inputListsTable, "Slot value source: ", row, col);  GUILabelComponent.create(inputListsTable, "Slot value source: ", row, col);
- GUIElementComponent slotValueInputList = GUIElementComponent.createInput(inputListsTable, new GUIListWidget(), + GUIInput slotValueInputList = GUIInput.createList(inputListsTable, Person.PROPERTIES.accounts)
- GUISlotValueInput.create(Person.PROPERTIES.accounts)row++, col + 1); + slotValueInputList.setLayoutData(TableLayoutData.create(row++, col + 1)); 
- GUIComponentBinding.create(findJohnDoe.valueGUISlotValueInput.get(slotValueInputList).element); + GUIComponentBinding.create(findJohnDoe.opValue()slotValueInputList.ipSlotValueElement()); 
- CellLayoutData.setSize(slotValueInputList, "250px", "200px"); + slotValueInputList.setSize("250px", "200px"); 
- slotValueInputList.styleName.set(Text.fromString("listWidget"));+ slotValueInputList.setStyle("listWidget");
  
  // Input trees  // Input trees
  row = 0; col = 0;  row = 0; col = 0;
  GUILabelComponent.create(inputTreesTable, "Collection source: ", row, col);  GUILabelComponent.create(inputTreesTable, "Collection source: ", row, col);
- GUIElementComponent personsTree = GUIElementComponent.createInput(inputTreesTable, new GUITreeWidget(), new GUICollectionInput(), row++, col + 1); + GUIInput personsTree = GUIInput.createTree(inputTreesTable)
- GUIComponentBinding.create(allPersons.valueGUICollectionInput.get(personsTree).collection); + personsTree.setLayoutData(TableLayoutData.create(row++, col + 1)); 
- CellLayoutData.setSize(personsTree, "250px", "200px"); + GUIComponentBinding.create(allPersons.opValue()personsTree.ipCollection()); 
- personsTree.styleName.set(Text.fromString("treeWidget")); + personsTree.setSize("250px", "200px"); 
 + personsTree.setStyle("treeWidget"); 
 +
  GUILabelComponent.create(inputTreesTable, "Slot value source: ", row, col);  GUILabelComponent.create(inputTreesTable, "Slot value source: ", row, col);
- GUIElementComponent slotValueInputTree = GUIElementComponent.createInput(inputTreesTable, new GUITreeWidget(), + GUIInput slotValueInputTree = GUIInput.createTree(inputTreesTable, BankDepartment.PROPERTIES.subDepartments)
- GUISlotValueInput.create(BankDepartment.PROPERTIES.subDepartments), new TableLayoutData(row++, col + 1)); + slotValueInputTree.setLayoutData(TableLayoutData.create(row++, col + 1)); 
- GUIComponentBinding.create(findJohnDeoRootDepartment.valueGUISlotValueInput.get(slotValueInputTree).element); + GUIComponentBinding.create(findJohnDeoRootDepartment.opValue()slotValueInputTree.ipSlotValueElement()); 
- CellLayoutData.setSize(slotValueInputTree, "250px", "200px"); + slotValueInputTree.setSize("250px", "200px"); 
- slotValueInputTree.styleName.set(Text.fromString("treeWidget")); + slotValueInputTree.setStyle("treeWidget"); 
 +
  // Input tables  // Input tables
  row = 0; col = 0;  row = 0; col = 0;
  GUILabelComponent.create(inputTablesTable, "Collection source: ", row, col);  GUILabelComponent.create(inputTablesTable, "Collection source: ", row, col);
- GUIElementComponent genderValue = GUIElementComponent.createSlotEditor(null, Person.PROPERTIES.gender); 
- GUISlotEditorKind.get(genderValue).readOnly.set(Boolean.valueOf(true)); 
- GUISlotEditorKind.get(genderValue).displayAsLabel.set(Boolean.valueOf(true)); 
  
- GUIElementComponent dateOfBirthValue GUIElementComponent.createSlotEditor(null, Person.PROPERTIES.dateOfBirth); + GUIEdit genderValue GUIEdit.createField(null, Person.PROPERTIES.gender); 
- GUISlotEditorKind.get(dateOfBirthValue).readOnly.set(Boolean.valueOf(true)); + genderValue.setReadOnly(true); 
- GUISlotEditorKind.get(dateOfBirthValue).displayAsLabel.set(Boolean.valueOf(true));+ genderValue.setDisplayAsLabel(true);
  
- GUIElementComponent isMarriedValue GUIElementComponent.createSlotEditor(null, Person.PROPERTIES.isMarried); + GUIEdit dateOfBirthValue GUIEdit.createField(null, Person.PROPERTIES.dateOfBirth); 
- GUISlotEditorKind.get(isMarriedValue).readOnly.set(Boolean.valueOf(true)); + dateOfBirthValue.setReadOnly(true); 
- GUISlotEditorKind.get(isMarriedValue).displayAsLabel.set(Boolean.valueOf(true)); + dateOfBirthValue.setDisplayAsLabel(true);
- +
- GUITableWidget gtw1 = GUITableWidget.create(new String[] { "Person", "Gender", "Date of Birth", "Is Married" }, new GUIComponent[] { genderValue, +
- dateOfBirthValue, isMarriedValue }); +
- +
- gtw1.minRows.set(Integer.valueOf(3)); +
- GUIElementComponent collectionInputTable = GUIElementComponent.create(inputTablesTable, new GUIInputKind(), gtw1, new GUICollectionInput(), +
- new TableLayoutData(row++, col + 1)); +
- GUIComponentBinding.create(allPersons.value, GUICollectionInput.get(collectionInputTable).collection);+
  
 + GUIEdit isMarriedValue = GUIEdit.createField(null, Person.PROPERTIES.isMarried);
 + isMarriedValue.setReadOnly(true);
 + isMarriedValue.setDisplayAsLabel(true);
 +
 + GUIInput collectionInputTable = GUIInput.createTable(inputTablesTable, "Person", "Gender", "Date of Birth", "Is Married");
 + collectionInputTable.setColumnComponents(genderValue, dateOfBirthValue, isMarriedValue);
 + collectionInputTable.setMinRows(3);
 + collectionInputTable.setLayoutData(TableLayoutData.create(row++, col + 1));
 + GUIComponentBinding.create(allPersons.opValue(), collectionInputTable.ipCollection());
 +
  GUILabelComponent.create(inputTablesTable, "Slot value source: ", row, col);  GUILabelComponent.create(inputTablesTable, "Slot value source: ", row, col);
- GUIElementComponent bankNameValue = GUIElementComponent.createSlotEditor(null, BankAccount.PROPERTIES.bankName); 
- GUISlotEditorKind.get(bankNameValue).readOnly.set(Boolean.valueOf(true)); 
- GUISlotEditorKind.get(bankNameValue).displayAsLabel.set(Boolean.valueOf(true)); 
- 
- GUITableWidget gtw2 = GUITableWidget.create(new String[] { "Bank Account", "Bank Name" }, new GUIComponent[] { bankNameValue }); 
  
- gtw2.minRows.set(Integer.valueOf(3)); + GUIEdit bankNameValue = GUIEdit.createField(null, BankAccount.PROPERTIES.bankName); 
- GUIElementComponent slotValueInputTable = GUIElementComponent.create(inputTablesTable, new GUIInputKind()gtw2+ bankNameValue.setReadOnly(true)
- GUISlotValueInput.create(Person.PROPERTIES.accounts), new TableLayoutData(row++, col + 1)); + bankNameValue.setDisplayAsLabel(true); 
- GUIComponentBinding.create(findJohnDoe.valueGUISlotValueInput.get(slotValueInputTable).element);+  
 + GUIInput slotValueInputTable = GUIInput.createTable(inputTablesTable, Person.PROPERTIES.accounts"Bank Account""Bank Name"); 
 + slotValueInputTable.setColumnComponents(bankNameValue); 
 + slotValueInputTable.setMinRows(3)
 + slotValueInputTable.setLayoutData(TableLayoutData.create(row++, col + 1)); 
 + GUIComponentBinding.create(findJohnDoe.opValue()slotValueInputTable.ipSlotValueElement());
  
  // Edits  // Edits
  GUIPanelComponent edits = GUIPanelComponent.createFlow(topPanel);  GUIPanelComponent edits = GUIPanelComponent.createFlow(topPanel);
  GUILabelComponent l2 = GUILabelComponent.create(edits, "Slot Editor Kind");  GUILabelComponent l2 = GUILabelComponent.create(edits, "Slot Editor Kind");
- l2.styleName.set(Text.fromString("subtitle "));+ l2.setStyle("subtitle ");
  GUITabComponent tabEdit = GUITabComponent.create(edits, "Field", "Combo", "Suggest", "List", "Tree", "Table");  GUITabComponent tabEdit = GUITabComponent.create(edits, "Field", "Combo", "Suggest", "List", "Tree", "Table");
  GUIPanelComponent editFieldsTable = GUIPanelComponent.createTable(tabEdit);  GUIPanelComponent editFieldsTable = GUIPanelComponent.createTable(tabEdit);
Line 256: Line 260:
  
  i = 0;  i = 0;
- GUIComparationFilter gcfe0 = GUIComparationFilter.create(root, tabEdit.visibleChild, Integer.valueOf(i++)); + GUIComparationFilter gcfe0 = GUIComparationFilter.create(root, Integer.valueOf(i++)); 
- GUIComponentBinding.create(gcfe0.yes, allPersons.refresh); + GUIComponentBinding.create(tabEdit.opVisibleChild(), gcfe0.ipInput()); 
- GUIComparationFilter gcfe1 = GUIComparationFilter.create(root, tabEdit.visibleChild, Integer.valueOf(i++)); + GUIComponentBinding.create(gcfe0.opYes(), allPersons.ipRefresh()); 
- GUIComponentBinding.create(gcfe1.yes, allPersons.refresh); + GUIComparationFilter gcfe1 = GUIComparationFilter.create(root, Integer.valueOf(i++)); 
- GUIComparationFilter gcfe2 = GUIComparationFilter.create(root, tabEdit.visibleChild, Integer.valueOf(i++)); + GUIComponentBinding.create(tabEdit.opVisibleChild(), gcfe1.ipInput()); 
- GUIComponentBinding.create(gcfe2.yes, allPersons.refresh); + GUIComponentBinding.create(gcfe1.opYes(), allPersons.ipRefresh()); 
- GUIComparationFilter gcfe3 = GUIComparationFilter.create(root, tabEdit.visibleChild, Integer.valueOf(i++)); + GUIComparationFilter gcfe2 = GUIComparationFilter.create(root, Integer.valueOf(i++)); 
- GUIComponentBinding.create(gcfe3.yes, allPersons.refresh); + GUIComponentBinding.create(tabEdit.opVisibleChild(), gcfe2.ipInput()); 
- GUIComparationFilter gcfe4 = GUIComparationFilter.create(root, tabEdit.visibleChild, Integer.valueOf(i++)); + GUIComponentBinding.create(gcfe2.opYes(), allPersons.ipRefresh()); 
- GUIComponentBinding.create(gcfe4.yes, allPersons.refresh); + GUIComparationFilter gcfe3 = GUIComparationFilter.create(root, Integer.valueOf(i++)); 
- GUIComparationFilter gcfe5 = GUIComparationFilter.create(root, tabEdit.visibleChild, Integer.valueOf(i++)); + GUIComponentBinding.create(tabEdit.opVisibleChild(), gcfe3.ipInput()); 
- GUIComponentBinding.create(gcfe5.yes, allPersons.refresh);+ GUIComponentBinding.create(gcfe3.opYes(), allPersons.ipRefresh()); 
 + GUIComparationFilter gcfe4 = GUIComparationFilter.create(root, Integer.valueOf(i++)); 
 + GUIComponentBinding.create(tabEdit.opVisibleChild(), gcfe4.ipInput()); 
 + GUIComponentBinding.create(gcfe4.opYes(), allPersons.ipRefresh()); 
 + GUIComparationFilter gcfe5 = GUIComparationFilter.create(root, Integer.valueOf(i++)); 
 + GUIComponentBinding.create(tabEdit.opVisibleChild(), gcfe5.ipInput()); 
 + GUIComponentBinding.create(gcfe5.opYes(), allPersons.ipRefresh());
  
  // Edit fields  // Edit fields
  row = 0; col = 0;  row = 0; col = 0;
  GUILabelComponent.create(editFieldsTable, "Text: ", row, col);  GUILabelComponent.create(editFieldsTable, "Text: ", row, col);
- GUIElementComponent textEditor = GUIElementComponent.createSlotEditor(editFieldsTable, Person.PROPERTIES.name, row++, col + 1);+ GUIEdit textEditor = GUIEdit.createField(editFieldsTable, Person.PROPERTIES.name, row++, col + 1);
  
  GUILabelComponent.create(editFieldsTable, "Integer: ", row, col);  GUILabelComponent.create(editFieldsTable, "Integer: ", row, col);
- GUIElementComponent integerEditor = GUIElementComponent.createSlotEditor(editFieldsTable, Person.PROPERTIES.age, row++, col + 1);+ GUIEdit integerEditor = GUIEdit.createField(editFieldsTable, Person.PROPERTIES.age, row++, col + 1);
  
  GUILabelComponent.create(editFieldsTable, "Real: ", row, col);  GUILabelComponent.create(editFieldsTable, "Real: ", row, col);
- GUIElementComponent realEditor = GUIElementComponent.createSlotEditor(editFieldsTable, Person.PROPERTIES.height, row++, col + 1);+ GUIEdit realEditor = GUIEdit.createField(editFieldsTable, Person.PROPERTIES.height, row++, col + 1);
  
  GUILabelComponent.create(editFieldsTable, "Date: ", row, col);  GUILabelComponent.create(editFieldsTable, "Date: ", row, col);
- GUIElementComponent dateEditor = GUIElementComponent.createSlotEditor(editFieldsTable, Person.PROPERTIES.dateOfBirth, row++, col + 1);+ GUIEdit dateEditor = GUIEdit.createField(editFieldsTable, Person.PROPERTIES.dateOfBirth, row++, col + 1);
  
  GUILabelComponent.create(editFieldsTable, "Boolean: ", row, col);  GUILabelComponent.create(editFieldsTable, "Boolean: ", row, col);
- GUIElementComponent booleanEditor = GUIElementComponent.createSlotEditor(editFieldsTable, Person.PROPERTIES.isMarried, row++, col + 1);+ GUIEdit booleanEditor = GUIEdit.createField(editFieldsTable, Person.PROPERTIES.isMarried, row++, col + 1);
  
  GUILabelComponent.create(editFieldsTable, "Enum: ", row, col);  GUILabelComponent.create(editFieldsTable, "Enum: ", row, col);
- GUIElementComponent enumEditor = GUIElementComponent.createSlotEditor(editFieldsTable, Person.PROPERTIES.gender, row++, col + 1);+ GUIEdit enumEditor = GUIEdit.createField(editFieldsTable, Person.PROPERTIES.gender, row++, col + 1);
  
  GUILabelComponent.create(editFieldsTable, "Picture: ", row, col);  GUILabelComponent.create(editFieldsTable, "Picture: ", row, col);
- GUIPanelComponent photoUpload = GUIFactory.createFileComponent(editFieldsTable, Person.PROPERTIES.photo, true, false); + GUIPanelComponent photoUpload = GUIEdit.createFile(editFieldsTable, Person.PROPERTIES.photo, true, false); 
- TableLayoutData.setRowColumn(photoUpload, row++, col + 1);+ photoUpload.setRowColumn(row++, col + 1);
  
  GUILabelComponent.create(editFieldsTable, "Picture Value: ", row, col);  GUILabelComponent.create(editFieldsTable, "Picture Value: ", row, col);
- GUIPanelComponent photoValue = GUIFactory.createFileComponent(editFieldsTable, Person.PROPERTIES.photo, false, true); + GUIPanelComponent photoValue = GUIEdit.createPicture(editFieldsTable, Person.PROPERTIES.photo, false); 
- TableLayoutData.setRowColumn(photoValue, row++, col + 1);+ photoValue.setRowColumn(row++, col + 1);
  
- GUIComponentBinding.create(findJohnDoe.valueGUISlotEditorKind.get(textEditor).element); + GUIComponentBinding.create(findJohnDoe.opValue()textEditor.ipElement()); 
- GUIComponentBinding.create(findJohnDoe.valueGUISlotEditorKind.get(integerEditor).element); + GUIComponentBinding.create(findJohnDoe.opValue()integerEditor.ipElement()); 
- GUIComponentBinding.create(findJohnDoe.valueGUISlotEditorKind.get(realEditor).element); + GUIComponentBinding.create(findJohnDoe.opValue()realEditor.ipElement()); 
- GUIComponentBinding.create(findJohnDoe.valueGUISlotEditorKind.get(dateEditor).element); + GUIComponentBinding.create(findJohnDoe.opValue()dateEditor.ipElement()); 
- GUIComponentBinding.create(findJohnDoe.valueGUISlotEditorKind.get(booleanEditor).element); + GUIComponentBinding.create(findJohnDoe.opValue()booleanEditor.ipElement()); 
- GUIComponentBinding.create(findJohnDoe.valueGUISlotEditorKind.get(enumEditor).element); + GUIComponentBinding.create(findJohnDoe.opValue()enumEditor.ipElement()); 
- GUIComponentBinding.create(findJohnDoe.value, photoUpload.input); + GUIComponentBinding.create(findJohnDoe.opValue(), photoUpload.ipRelay1()); 
- GUIComponentBinding.create(findJohnDoe.value, photoValue.input);+ GUIComponentBinding.create(findJohnDoe.opValue(), photoValue.ipRelay1());
  
  // Edit lists  // Edit lists
  row = 0; col = 0;  row = 0; col = 0;
  GUILabelComponent.create(editListsTable, "Collection source: ", row, col);  GUILabelComponent.create(editListsTable, "Collection source: ", row, col);
- GUIElementComponent collectionEditList = GUIElementComponent.create(editListsTable, GUISlotEditorKind.create(BankAdviser.PROPERTIES.myClients), + GUIEdit collectionEditList = GUIEdit.createList(editListsTable, BankAdviser.PROPERTIES.myClients); 
- new GUIListWidget(), new GUICollectionInput(), new TableLayoutData(row++, col + 1)); + collectionEditList.setLayoutData(TableLayoutData.create(row++, col + 1)); 
- GUIComponentBinding.create(allPersonsNotAdvisers, FetchPersonsOnly.PROPERTIES.fetchedPersons, GUICollectionInput.get(collectionEditList).collection); + GUIComponentBinding.create(allPersonsNotAdvisers, FetchPersonsOnly.PROPERTIES.fetchedPersons, collectionEditList.ipCollection()); 
- GUIComponentBinding.create(findJohnDoe.valueGUISlotEditorKind.get(collectionEditList).element); + GUIComponentBinding.create(findJohnDoe.opValue()collectionEditList.ipElement()); 
- CellLayoutData.setSize(collectionEditList, "250px", "200px"); + collectionEditList.setSize("250px", "200px"); 
- collectionEditList.styleName.set(Text.fromString("listEditor")); + collectionEditList.setStyle("listEditor"); 
 +
  GUILabelComponent.create(editListsTable, "Slot value source: ", row, col);  GUILabelComponent.create(editListsTable, "Slot value source: ", row, col);
- GUIElementComponent slotValueEditList = GUIElementComponent.create(editListsTable, GUISlotEditorKind.create(Person.PROPERTIES.successfulAdvisers), + GUIEdit slotValueEditList = GUIEdit.createList(editListsTable, Person.PROPERTIES.successfulAdvisers, Person.PROPERTIES.myBankAdvisers)
- new GUIListWidget(), GUISlotValueInput.create(Person.PROPERTIES.myBankAdvisers), new TableLayoutData(row++, col + 1)); + slotValueEditList.setLayoutData(TableLayoutData.create(row++, col + 1)); 
- GUIComponentBinding.create(findJanneRoe.valueGUISlotEditorKind.get(slotValueEditList).element); + GUIComponentBinding.create(findJanneRoe.opValue()slotValueEditList.ipElement()); 
- GUIComponentBinding.create(findJanneRoe.valueGUISlotValueInput.get(slotValueEditList).element); + GUIComponentBinding.create(findJanneRoe.opValue()slotValueEditList.ipSlotValueElement()); 
- CellLayoutData.setSize(slotValueEditList, "250px", "200px"); + slotValueEditList.setSize("250px", "200px"); 
- slotValueEditList.styleName.set(Text.fromString("listEditor")); + slotValueEditList.setStyle("listEditor"); 
 +
  // Edit combos  // Edit combos
  row = 0; col = 0;  row = 0; col = 0;
  GUILabelComponent.create(editComboTable, "Collection source: ", row, col);  GUILabelComponent.create(editComboTable, "Collection source: ", row, col);
- GUIElementComponent collectionEditCombo = GUIElementComponent.create(editComboTable, GUISlotEditorKind.create(BankAdviser.PROPERTIES.myClients), + GUIEdit collectionEditCombo = GUIEdit.createCombo(editComboTable, BankAdviser.PROPERTIES.myClients, TableLayoutData.create(row++, col + 1)); 
- new GUIComboWidget(), new GUICollectionInput(), new TableLayoutData(row++, col + 1)); + GUIComponentBinding.create(allPersonsNotAdvisers, FetchPersonsOnly.PROPERTIES.fetchedPersons, collectionEditCombo.ipCollection()); 
- GUIComponentBinding.create(allPersonsNotAdvisers, FetchPersonsOnly.PROPERTIES.fetchedPersons, GUICollectionInput.get(collectionEditCombo).collection); + GUIComponentBinding.create(findJohnDoe.opValue()collectionEditCombo.ipElement());
- GUIComponentBinding.create(findJohnDoe.valueGUISlotEditorKind.get(collectionEditCombo).element);+
  
  GUILabelComponent.create(editComboTable, "Slot value source: ", row, col);  GUILabelComponent.create(editComboTable, "Slot value source: ", row, col);
- GUIElementComponent slotValueEditCombo = GUIElementComponent.create(editComboTable, GUISlotEditorKind.create(Person.PROPERTIES.successfulAdvisers), + GUIEdit slotValueEditCombo = GUIEdit.createCombo(editComboTable, Person.PROPERTIES.successfulAdvisers, Person.PROPERTIES.myBankAdvisers, TableLayoutData.create(row++, col + 1)); 
- new GUIComboWidget(), GUISlotValueInput.create(Person.PROPERTIES.myBankAdvisers)new TableLayoutData(row++, col + 1)); + GUIComponentBinding.create(findJanneRoe.opValue()slotValueEditCombo.ipElement()); 
- GUIComponentBinding.create(findJanneRoe.valueGUISlotEditorKind.get(slotValueEditCombo).element); + GUIComponentBinding.create(findJanneRoe.opValue()slotValueEditCombo.ipSlotValueElement());
- GUIComponentBinding.create(findJanneRoe.valueGUISlotValueInput.get(slotValueEditCombo).element);+
  
- // Edit suggest+ // Edit suggests
  GUILabelComponent.create(editSuggestTable, "Collection source: ", row, col);  GUILabelComponent.create(editSuggestTable, "Collection source: ", row, col);
- GUIElementComponent collectionEditSuggest = GUIElementComponent.create(editSuggestTable, GUISlotEditorKind.create(BankAdviser.PROPERTIES.myClients), + GUIEdit collectionEditSuggest = GUIEdit.createSuggest(editSuggestTable, BankAdviser.PROPERTIES.myClients, TableLayoutData.create(row++, col + 1)); 
- new GUISuggestWidget(), new GUICollectionInput(), new TableLayoutData(row++, col + 1)); + GUIComponentBinding.create(allPersonsNotAdvisers, FetchPersonsOnly.PROPERTIES.fetchedPersons, collectionEditSuggest.ipCollection()); 
- GUIComponentBinding.create(allPersonsNotAdvisers, FetchPersonsOnly.PROPERTIES.fetchedPersons, GUICollectionInput.get(collectionEditSuggest).collection); + GUIComponentBinding.create(findJohnDoe.opValue()collectionEditSuggest.ipElement());
- GUIComponentBinding.create(findJohnDoe.valueGUISlotEditorKind.get(collectionEditSuggest).element);+
  
  GUILabelComponent.create(editSuggestTable, "Slot value source: ", row, col);  GUILabelComponent.create(editSuggestTable, "Slot value source: ", row, col);
- GUIElementComponent slotValueEditSuggest = GUIElementComponent.create(editSuggestTable, GUISlotEditorKind.create(Person.PROPERTIES.successfulAdvisers), + GUIEdit slotValueEditSuggest = GUIEdit.createSuggest(editSuggestTable, Person.PROPERTIES.successfulAdvisers, Person.PROPERTIES.myBankAdvisers, TableLayoutData.create(row++, col + 1)); 
- new GUISuggestWidget(), GUISlotValueInput.create(Person.PROPERTIES.myBankAdvisers)new TableLayoutData(row++, col + 1)); + GUIComponentBinding.create(findJanneRoe.opValue()slotValueEditSuggest.ipElement()); 
- GUIComponentBinding.create(findJanneRoe.valueGUISlotEditorKind.get(slotValueEditSuggest).element); + GUIComponentBinding.create(findJanneRoe.opValue()slotValueEditSuggest.ipSlotValueElement());
- GUIComponentBinding.create(findJanneRoe.valueGUISlotValueInput.get(slotValueEditSuggest).element);+
  
  // Edit trees  // Edit trees
  row = 0; col = 0;  row = 0; col = 0;
  GUILabelComponent.create(editTreesTable, "Collection source: ", row, col);  GUILabelComponent.create(editTreesTable, "Collection source: ", row, col);
- GUIElementComponent collectionEditTree = GUIElementComponent.createSlotEditorTree(editTreesTable, BankAdviser.PROPERTIES.myDepartment, + GUIEdit collectionEditTree = GUIEdit.createTree(editTreesTable, BankAdviser.PROPERTIES.myDepartment); 
- new GUICollectionInput(), new TableLayoutData(row++, col + 1)); + collectionEditTree.setLayoutData(TableLayoutData.create(row++, col + 1)); 
- GUIComponentBinding.create(findJohnDoe.valueGUISlotEditorKind.get(collectionEditTree).element); + GUIComponentBinding.create(findJohnDoe.opValue()collectionEditTree.ipElement()); 
- GUIComponentBinding.create(findJohnDeoRootDepartment.valueGUICollectionInput.get(collectionEditTree).collection); + GUIComponentBinding.create(findJohnDeoRootDepartment.opValue()collectionEditTree.ipCollection()); 
- CellLayoutData.setSize(collectionEditTree, "250px", "200px"); + collectionEditTree.setSize("250px", "200px"); 
- collectionEditTree.styleName.set(Text.fromString("treeEditor")); + collectionEditTree.setStyle("treeEditor"); 
 +
  GUILabelComponent.create(editTreesTable, "Slot value source: ", row, col);  GUILabelComponent.create(editTreesTable, "Slot value source: ", row, col);
- GUIElementComponent slotValueEditTree = GUIElementComponent.createSlotEditorTree(editTreesTable, BankAdviser.PROPERTIES.myDepartment, + GUIEdit slotValueEditTree = GUIEdit.createTree(editTreesTable, BankAdviser.PROPERTIES.myDepartment, BankDepartment.PROPERTIES.subDepartments)
- GUISlotValueInput.create(BankDepartment.PROPERTIES.subDepartments), new TableLayoutData(row++, col + 1)); + slotValueEditTree.setLayoutData(TableLayoutData.create(row++, col + 1)); 
- GUIComponentBinding.create(findJohnDoe.valueGUISlotEditorKind.get(slotValueEditTree).element); + GUIComponentBinding.create(findJohnDoe.opValue()slotValueEditTree.ipElement()); 
- GUIComponentBinding.create(findJohnDeoRootDepartment.valueGUISlotValueInput.get(slotValueEditTree).element); + GUIComponentBinding.create(findJohnDeoRootDepartment.opValue()slotValueEditTree.ipSlotValueElement()); 
- CellLayoutData.setSize(slotValueEditTree, "250px", "200px"); + slotValueEditTree.setSize("250px", "200px"); 
- slotValueEditTree.styleName.set(Text.fromString("treeEditor")); + slotValueEditTree.setStyle("treeEditor"); 
 +
  // Edit tables  // Edit tables
  row = 0; col = 0;  row = 0; col = 0;
  GUILabelComponent.create(editTablesTable, "Collection source: ", row, col);  GUILabelComponent.create(editTablesTable, "Collection source: ", row, col);
- GUIElementComponent genderEditor = GUIElementComponent.createSlotEditor(null, Person.PROPERTIES.gender); + GUIEdit genderEditor = GUIEdit.createField(null, Person.PROPERTIES.gender); 
- GUIElementComponent dateOfBirthEditor = GUIElementComponent.createSlotEditor(null, Person.PROPERTIES.dateOfBirth); + GUIEdit dateOfBirthEditor = GUIEdit.createField(null, Person.PROPERTIES.dateOfBirth); 
- GUIElementComponent isMarriedEditor = GUIElementComponent.createSlotEditor(null, Person.PROPERTIES.isMarried); + GUIEdit isMarriedEditor = GUIEdit.createField(null, Person.PROPERTIES.isMarried);
- GUITableWidget gtw3 = GUITableWidget.create(new String[] { "Person", "Gender", "Date of Birth", "Is Married" }, new GUIComponent[] { genderEditor, +
- dateOfBirthEditor, isMarriedEditor }); +
- gtw3.minRows.set(Integer.valueOf(3)); +
- GUIElementComponent collectionEditTable = GUIElementComponent.create(editTablesTable, new GUIInputKind(), gtw3, new GUICollectionInput(), +
- new TableLayoutData(row++, col + 1)); +
- GUIComponentBinding.create(allPersons.value, GUICollectionInput.get(collectionEditTable).collection);+
  
 + GUIInput collectionEditTable = GUIInput.createTable(editTablesTable, "Person", "Gender", "Date of Birth", "Is Married");
 + collectionEditTable.setColumnComponents(genderEditor, dateOfBirthEditor, isMarriedEditor);
 + collectionEditTable.setMinRows(3);
 + collectionEditTable.setLayoutData(TableLayoutData.create(row++, col + 1));
 + GUIComponentBinding.create(allPersons.opValue(), collectionEditTable.ipCollection());
 +
  GUILabelComponent.create(editTablesTable, "Slot value source: ", row, col);  GUILabelComponent.create(editTablesTable, "Slot value source: ", row, col);
- GUIElementComponent bankNameEditor = GUIElementComponent.createSlotEditor(null, BankAccount.PROPERTIES.bankName); + GUIEdit bankNameEditor = GUIEdit.createField(null, BankAccount.PROPERTIES.bankName); 
- GUITableWidget gtw4 GUITableWidget.create(new String[] { "Bank Account", "Bank Name" }, new GUIComponent[] { bankNameEditor }); +  
- gtw4.minRows.set(Integer.valueOf(3)); + GUIInput slotValueEditTable GUIInput.createTable(editTablesTable, Person.PROPERTIES.accounts, "Bank Account", "Bank Name"); 
- GUIElementComponent slotValueEditTable = GUIElementComponent.create(editTablesTable, new GUIInputKind(), gtw4, + slotValueEditTable.setColumnComponents(bankNameEditor); 
- GUISlotValueInput.create(Person.PROPERTIES.accounts), new TableLayoutData(row++, col + 1)); + slotValueEditTable.setMinRows(3); 
- GUIComponentBinding.create(findJohnDoe.valueGUISlotValueInput.get(slotValueEditTable).element);+ slotValueEditTable.setLayoutData(TableLayoutData.create(row++, col + 1)); 
 + GUIComponentBinding.create(findJohnDoe.opValue()slotValueEditTable.ipSlotValueElement());
  }  }
  
Line 396: Line 403:
  private GUIContext createContextAndStyles() {  private GUIContext createContextAndStyles() {
  GUIContext context = new GUIContext();  GUIContext context = new GUIContext();
- context.supercontext.set(DefaultContextInit.getRoot());+ DefaultContextInit.getRoot().addContext(context);
  
  GUIObjectSetting person = GUIObjectSetting.create(context, Person.CLASSIFIER);  GUIObjectSetting person = GUIObjectSetting.create(context, Person.CLASSIFIER);
  GUITextFeature.createName(person, Person.PROPERTIES.name);  GUITextFeature.createName(person, Person.PROPERTIES.name);
- GUITextFeature.createSeparator(person, ":", true);+ GUITextFeature.createFixedSeparator(person, ":");
  GUITextFeature.createDescription(person, Person.PROPERTIES.age);  GUITextFeature.createDescription(person, Person.PROPERTIES.age);
  GUIPictureFeature.createSmallIcon(person, "images/icons/person.png");  GUIPictureFeature.createSmallIcon(person, "images/icons/person.png");
Line 407: Line 414:
  GUIObjectSetting bankAccount = GUIObjectSetting.create(context, BankAccount.CLASSIFIER);  GUIObjectSetting bankAccount = GUIObjectSetting.create(context, BankAccount.CLASSIFIER);
  GUITextFeature.createName(bankAccount, BankAccount.PROPERTIES.number);  GUITextFeature.createName(bankAccount, BankAccount.PROPERTIES.number);
- GUITextFeature.createSeparator(bankAccount, "/", true);+ GUITextFeature.createFixedSeparator(bankAccount, "/");
  GUITextFeature.createDescription(bankAccount, BankAccount.PROPERTIES.amount);  GUITextFeature.createDescription(bankAccount, BankAccount.PROPERTIES.amount);
  GUIPictureFeature.createSmallIcon(bankAccount, "images/icons/bankaccount.png");  GUIPictureFeature.createSmallIcon(bankAccount, "images/icons/bankaccount.png");
Print/export