/** * Create a recursive field layout. * * @param curr recursion index * @param startAt the ordered offset * @return the recursive field layout. */ private WFieldLayout recursiveFieldLayout(final int curr, final int startAt) { WFieldLayout innerLayout = new WFieldLayout(); innerLayout.setLabelWidth(20); if (curr == 0 && startAt == 0) { innerLayout.setMargin(new Margin(Size.LARGE, null, null, null)); } innerLayout.setOrdered(true); if (startAt > 1) { innerLayout.setOrderedOffset(startAt); } innerLayout.addField("Test " + String.valueOf(startAt > 1 ? startAt : 1), new WTextField()); innerLayout.addField("Test " + String.valueOf(startAt > 1 ? startAt + 1 : 2), new WTextField()); innerLayout.addField("Test " + String.valueOf(startAt > 1 ? startAt + 2 : 2), new WTextField()); if (curr < 4) { int next = curr + 1; innerLayout.addField("indent level " + String.valueOf(next), recursiveFieldLayout(next, 0)); } innerLayout.addField("Test after nest", new WTextField()); return innerLayout; }
innerLayout.setMargin(new Margin(Size.LARGE, null, null, null));
/** * Set up the UI for the configuration options. */ private void buildConfigOptions() { WFieldLayout layout = new WFieldLayout(WFieldLayout.LAYOUT_STACKED); layout.setMargin(new Margin(null, null, Size.LARGE, null)); layout.addField("Select a WPanel Type", panelType); contentField = layout.addField("Panel content", panelContent); headingField = layout.addField("heading", tfHeading); showMenuField = layout.addField("Show menu", showMenu); showUtilBarField = layout.addField("Show utility bar", showUtilBar); layout.addField((WLabel) null, applyConfigButton); add(layout); }
/** * Creates a WDiagnosticComponent. */ public WDiagnosticComponent() { WFieldLayout layout = new WFieldLayout(); layout.setLabelWidth(30); layout.setMargin(new com.github.bordertech.wcomponents.Margin(0, 0, 12, 0)); //mandatory fields inputText1.setMandatory(true); layout.addField("Unique Input 1", inputText1).getLabel().setHint("required"); inputText2.setMandatory(true); layout.addField("Unique Input 2", inputText2).getLabel().setHint( "required and must be different from unique input 1"); add(layout); }
/** * Create the UI artefacts for the "Print contacts" sub form. */ private void createPrintContactsSubForm() { add(new WHeading(HeadingLevel.H3, "Print to CSV")); WButton printBtn = new WButton("Print"); printBtn.setAction(new Action() { @Override public void execute(final ActionEvent event) { printDetails(); } }); printBtn.setImage("/image/document-print.png"); printBtn.setImagePosition(WButton.ImagePosition.EAST); WFieldLayout layout = new WFieldLayout(); add(layout); layout.setMargin(new Margin(Size.LARGE, null, null, null)); layout.addField("Print output", printOutput); layout.addField((WLabel) null, printBtn); add(new WAjaxControl(printBtn, printOutput)); }
@Test public void testRenderedWithMargins() throws IOException, SAXException, XpathException { WFieldLayout layout = new WFieldLayout(); assertXpathNotExists("//ui:fieldlayout/ui:margin", layout); Margin margin = new Margin(0); layout.setMargin(margin); assertXpathNotExists("//ui:fieldlayout/ui:margin", layout); margin = new Margin(Size.SMALL); layout.setMargin(margin); assertSchemaMatch(layout); assertXpathEvaluatesTo("sm", "//ui:fieldlayout/ui:margin/@all", layout); assertXpathEvaluatesTo("", "//ui:fieldlayout/ui:margin/@north", layout); assertXpathEvaluatesTo("", "//ui:fieldlayout/ui:margin/@east", layout); assertXpathEvaluatesTo("", "//ui:fieldlayout/ui:margin/@south", layout); assertXpathEvaluatesTo("", "//ui:fieldlayout/ui:margin/@west", layout); margin = new Margin(Size.SMALL, Size.MEDIUM, Size.LARGE, Size.XL); layout.setMargin(margin); assertSchemaMatch(layout); assertXpathEvaluatesTo("", "//ui:fieldlayout/ui:margin/@all", layout); assertXpathEvaluatesTo("sm", "//ui:fieldlayout/ui:margin/@north", layout); assertXpathEvaluatesTo("med", "//ui:fieldlayout/ui:margin/@east", layout); assertXpathEvaluatesTo("lg", "//ui:fieldlayout/ui:margin/@south", layout); assertXpathEvaluatesTo("xl", "//ui:fieldlayout/ui:margin/@west", layout); }
/** * Creates an ExamplePanel. * * @param options the options to display in the multi-select pair. */ private ExamplePanel(final List options) { setMargin(new Margin(null, null, Size.LARGE, null)); WFieldLayout layout = new WFieldLayout(); add(layout); layout.setMargin(new Margin(null, null, Size.MEDIUM, null)); multi = new WMultiSelect(options); layout.addField("Select items", multi); WButton copyBtn = new WButton("Copy selected values"); add(copyBtn); copyBtn.setAction(new Action() { @Override public void execute(final ActionEvent event) { copySelectedValues(); } }); WFieldLayout layout2 = new WFieldLayout(); add(layout2); layout2.addField("Copied values", textArea); textArea.setRows(5); textArea.setReadOnly(true); }
/** * Build the UI for this example. */ private void buildUI() { // build the configuration options UI. WFieldLayout layout = new WFieldLayout(WFieldLayout.LAYOUT_STACKED); layout.setMargin(new Margin(null, null, Size.LARGE, null)); add(layout); layout.addField("Autoplay", cbAutoPlay); layout.addField("Loop", cbLoop); layout.addField("Disable", cbDisable); layout.addField("Show only play/pause", cbControls); layout.addField((WLabel) null, btnApply); // enable disable option only when control PLAY_PAUSE is used. WSubordinateControl control = new WSubordinateControl(); add(control); Rule rule = new Rule(); rule.setCondition(new Equal(cbControls, Boolean.TRUE.toString())); rule.addActionOnTrue(new Enable(cbDisable)); rule.addActionOnFalse(new Disable(cbDisable)); control.addRule(rule); // allow config to change without reloading the whole page. add(new WAjaxControl(btnApply, audio)); // add the audio to the UI add(audio); }
/** * Creates a SubordinateControlSimpleWDropdownExample. */ public SubordinateControlSimpleWDropdownExample() { WDropdown extraInfoRequired = new WDropdown(new String[]{null, YES_OPTION, NO_OPTION}); WTextField extraField = new WTextField(); WFieldLayout flay = new WFieldLayout(); flay.setLabelWidth(25); flay.setMargin(new Margin(null, null, Size.LARGE, null)); add(flay); flay.addField("Extra information required?", extraInfoRequired); WField extraInfoField = flay.addField("Extra information", extraField); WSubordinateControl control = new WSubordinateControl(); add(control); Rule rule = new Rule(); rule.setCondition(new Equal(extraInfoRequired, YES_OPTION)); rule.addActionOnTrue(new Show(extraInfoField)); rule.addActionOnFalse(new Hide(extraInfoField)); control.addRule(rule); } }
/** * Build the UI for this example. */ private void buildUI() { // build the configuration options UI. WFieldLayout layout = new WFieldLayout(WFieldLayout.LAYOUT_STACKED); layout.setMargin(new Margin(null, null, Size.LARGE, null)); add(layout); layout.addField("Autoplay", cbAutoPlay); layout.addField("Loop", cbLoop); layout.addField("Mute", cbMute); layout.addField("Disable", cbDisable); layout.addField("Show separate play/pause", cbControls); layout.addField((WLabel) null, btnApply); // add the video to the UI add(video); // disable mute and enable disable if PLAY_PAUSE is used WSubordinateControl control = new WSubordinateControl(); add(control); Rule rule = new Rule(); rule.setCondition(new Equal(cbControls, Boolean.TRUE.toString())); rule.addActionOnTrue(new Disable(cbMute)); rule.addActionOnTrue(new Enable(cbDisable)); rule.addActionOnFalse(new Enable(cbMute)); rule.addActionOnFalse(new Disable(cbDisable)); control.addRule(rule); // Allow the config to be updated without reloading the whole UI. add(new WAjaxControl(btnApply, video)); }
/** * Creates a WDropdownSubmitOnChangeExample. */ public WDropdownSubmitOnChangeExample() { actMessage.setEncodeText(false); add(new ExplanatoryText("Any form control component which is not a WButton will show a visible warning in its label if its " + "submitOnChange property is set true.")); WFieldLayout flay = new WFieldLayout(); add(flay); flay.setLabelWidth(25); flay.setMargin(new Margin(null, null, Size.LARGE, null)); flay.addField("State", stateSelector).getLabel().setHint("Selecting a state will update the available regions."); flay.addField("Region", regionSelector); // Used to test control of visibility as part of submit on change. add(actMessage); actMessage.setVisible(false); stateSelector.setOptions(new String[]{null, STATE_ACT, STATE_NSW, STATE_VIC}); //This is the flag which causes accessibility problems. It may be removed completely in future versions of WComponents. //you should use AJAX instead stateSelector.setSubmitOnChange(true); stateSelector.setActionOnChange(new Action() { @Override public void execute(final ActionEvent event) { updateRegion(); regionSelector.resetData(); } }); regionSelector.setSubmitOnChange(true); }
/** * Creates a ValidationExamples. */ public ValidationExamples() { btnApplySettings.setAction(new ValidatingAction(new WValidationErrors(), btnApplySettings) { @Override public void executeOnValid(final ActionEvent event) { jsPlainTextTemplate.setVisible(useClientValidation.isSelected()); } }); WFieldLayout layout = new WFieldLayout(WFieldLayout.LAYOUT_STACKED); add(layout); layout.addField("Use client side validation? ", useClientValidation); layout.addField((WLabel) null, btnApplySettings); layout.setMargin(new Margin(null, null, Size.LARGE, null)); WTabSet tabs = new WTabSet(); tabs.addTab(new BasicFieldsValidationExample(), "Basic", WTabSet.TAB_MODE_CLIENT); tabs.addTab(new BasicFieldLayoutValidationExample(), "Basic - using WFieldLayout", WTabSet.TAB_MODE_LAZY); tabs.addTab(new RepeaterExample(), "Repeater", WTabSet.TAB_MODE_LAZY); tabs.addTab(new FieldValidation(), "All Fields", WTabSet.TAB_MODE_LAZY); add(tabs); add(jsPlainTextTemplate); } }
/** * Creates a RepeaterFields. */ public RepeaterFields() { WFieldLayout fields = new WFieldLayout(); fields.setMargin(new Margin(null, null, Size.LARGE, null)); add(fields); nameText = new WTextField(); WField nameField = fields.addField("Name", nameText); nameText.setMandatory(true); nameField.getLabel().setHint("required"); repeater = new WRepeater(); repeater.setRepeatedComponent(new RepeaterComponent()); add(repeater); WPanel buttonPanel = new WPanel(WPanel.Type.FEATURE); buttonPanel.setMargin(new Margin(Size.LARGE, null, null, null)); add(buttonPanel); buttonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT)); submitBtn = new WButton("Submit", 'S'); buttonPanel.add(submitBtn); }
/** * Creates a SubordinateControlSimpleWFieldExample. */ public SubordinateControlSimpleWFieldExample() { WRadioButtonSelect extraGroup = new WRadioButtonSelect(new String[]{YES_OPTION, NO_OPTION}); extraGroup.setFrameless(true); extraGroup.setButtonLayout(WRadioButtonSelect.LAYOUT_FLAT); WFieldLayout layout = new WFieldLayout(); layout.setLabelWidth(25); layout.setMargin(new Margin(null, null, Size.LARGE, null)); add(layout); layout.addField("Extra info required", extraGroup); WField extraField = layout.addField("Extra Text", new WTextField()); // Subordinate WSubordinateControl control = new WSubordinateControl(); add(control); Rule rule = new Rule(); rule.setCondition(new Equal(extraGroup, YES_OPTION)); rule.addActionOnTrue(new Show(extraField)); rule.addActionOnFalse(new Hide(extraField)); control.addRule(rule); } }
layout.addField("setImage ('/image/attachment.png')", cbSetImage); layout.addField("Image Position", ddImagePosition); layout.setMargin(new com.github.bordertech.wcomponents.Margin(0, 0, 6, 0));
/** * Creates a SubordinateControlCrtWDropdownExample. */ public SubordinateControlCrtWDropdownExample() { WFieldLayout layout = new WFieldLayout(); add(layout); layout.setLabelWidth(25); layout.setMargin(new Margin(null, null, Size.LARGE, null)); WDropdown genderDropdown = new WDropdown(new TableWithNullOption("sex")); WField field = layout.addField("Gender", genderDropdown); field.getLabel().setHint("The 'Male' option requires more information"); WTextField extraField = new WTextField(); WField xtraWField = layout.addField("Extra information", extraField); WSubordinateControl control = new WSubordinateControl(); add(control); Rule rule = new Rule(); rule.setCondition(new Equal(genderDropdown, "M")); rule.addActionOnTrue(new Show(xtraWField)); rule.addActionOnFalse(new Hide(xtraWField)); control.addRule(rule); } }
/** * Creates a SubordinateControlSimpleWMultiSelectExample. */ public SubordinateControlSimpleWMultiSelectExample() { WMultiSelect groupSelect = getGroupSelect(); groupSelect.setOptions(new String[]{OPTION_A, OPTION_B, OPTION_C}); WFieldLayout layout = new WFieldLayout(); layout.setLabelWidth(25); layout.setMargin(new Margin(null, null, Size.LARGE, null)); add(layout); layout.addField("Select one or more options", groupSelect).getLabel().setHint( "Option c requires further information"); WField extraField = layout.addField("Extra information", new WTextField()); WSubordinateControl control = new WSubordinateControl(); add(control); Rule rule = new Rule(); rule.setCondition(new Equal(groupSelect, OPTION_C)); rule.addActionOnTrue(new Show(extraField)); rule.addActionOnFalse(new Hide(extraField)); control.addRule(rule); }
/** * Creates a SubordinateControlSimpleCheckBoxSelectExample. */ public SubordinateControlSimpleCheckBoxSelectExample() { WCheckBoxSelect groupSelect = new WCheckBoxSelect(); groupSelect.setOptions(new String[]{OPTION_A, OPTION_B, OPTION_C}); groupSelect.setFrameless(true); groupSelect.setButtonLayout(WCheckBoxSelect.LAYOUT_FLAT); WTextField extraField = new WTextField(); WFieldLayout flay = new WFieldLayout(); add(flay); flay.setLabelWidth(25); flay.setMargin(new Margin(null, null, Size.LARGE, null)); flay.addField("Select an option", groupSelect); WField xtraField = flay.addField("Extra information", extraField); WSubordinateControl control = new WSubordinateControl(); add(control); Rule rule = new Rule(); rule.setCondition(new Equal(groupSelect, OPTION_C)); rule.addActionOnTrue(new Show(xtraField)); rule.addActionOnFalse(new Hide(xtraField)); control.addRule(rule); } }
layout.setMargin(new com.github.bordertech.wcomponents.Margin(0, 0, 12, 0)); WCheckBox checkBox = new WCheckBox(); layout.addField("Set Mandatory", checkBox);
fieldsFlat.setMargin(new Margin(null, null, Size.XL, null)); add(fieldsFlat); WFieldSet fs = new WFieldSet("Do you like Bananas?");