/** * Creates a PanelWithTextField. * * @param fieldLabel the text for the textField's label. */ private PanelWithTextField(final String fieldLabel) { super(); WFieldLayout fieldLayout = new WFieldLayout(WFieldLayout.LAYOUT_FLAT); fieldLayout.setLabelWidth(25); add(fieldLayout); fieldLayout.addField(fieldLabel, textField); }
@Test(expected = IllegalArgumentException.class) public void testSetLabelWidthInvalidGreater100() { WFieldLayout layout = new WFieldLayout(); layout.setLabelWidth(101); }
@Test public void testSetLabelWidthRange() { WFieldLayout layout = new WFieldLayout(); layout.setLabelWidth(-1); Assert.assertEquals("Incorrect width percentage from setter -1", 0, layout.getLabelWidth()); layout.setLabelWidth(0); Assert.assertEquals("Incorrect width percentage from setter 0", 0, layout.getLabelWidth()); layout.setLabelWidth(100); Assert.assertEquals("Incorrect width percentage from setter 100", 100, layout. getLabelWidth()); }
/** * 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; }
/** * 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); }
/** * Creates a WDropdownSpecialCharHandlingExample. */ public WDropdownSpecialCharHandlingExample() { drop.setOptions(new String[]{null, ">", "<", "&", "\"", "normal"}); WFieldLayout flay = new WFieldLayout(); flay.setLabelWidth(25); add(flay); flay.addField("Select an option", drop); text = new WTextField(); text.setDisabled(true); flay.addField("Selected option output", text); WButton submit = new WButton("Submit"); flay.addField((WLabel) null, submit); submit.setAction(new Action() { @Override public void execute(final ActionEvent event) { String selected = (String) drop.getSelected(); text.setText(selected); } }); } }
/** * Creates a SubordinateBuilderSimpleExample. */ public SubordinateBuilderSimpleExample() { // Set up the form controls WFieldLayout layout = new WFieldLayout(); add(layout); layout.setLabelWidth(25); WCheckBox extraInfoRequired = new WCheckBox(); layout.addField("Extra information required", extraInfoRequired); WTextField extraField = new WTextField(); layout.addField("Extra information", extraField); // Build & add the subordinate SubordinateBuilder builder = new SubordinateBuilder(); builder.condition().equals(extraInfoRequired, String.valueOf(true)); builder.whenTrue().show(extraField); builder.whenFalse().hide(extraField); add(builder.build()); // Add a tooltip which describes the rule extraInfoRequired.setToolTip(builder.toString()); } }
/** * build the button controls field set. * * @param errors the error pane from the page. * @return a field set for the controls. */ private WFieldSet getButtonControls(final WValidationErrors errors) { // Options Layout WFieldSet fieldSet = new WFieldSet("Button configuration"); WFieldLayout layout = new WFieldLayout(); layout.setLabelWidth(30); layout.addField("Text", tfButtonLabel); layout.addField("AccessKey", tfAccesskey); layout.addField("Render as link", cbRenderAsLink); layout.addField("Disabled", cbDisabled); layout.addField("setImage ('/image/pencil.png')", cbSetImage); layout.addField("Image Position", ddImagePosition); // Apply Button WButton apply = new WButton("Apply"); apply.setAction(new ValidatingAction(errors, fieldSet) { @Override public void executeOnValid(final ActionEvent event) { applySettings(); } }); fieldSet.add(layout); fieldSet.add(apply); return fieldSet; }
/** * Generate some content for the tabs. * @param dateText some text to include in the content * @return a WContainer with content. */ private WContainer sampleTabContent(final String dateText) { WContainer container = new WContainer(); WStyledText txt = new WStyledText((new DateText(dateText)).getText()); txt.setWhitespaceMode(WStyledText.WhitespaceMode.PARAGRAPHS); container.add(txt); WFieldLayout layout = new WFieldLayout(WFieldLayout.LAYOUT_FLAT); layout.setLabelWidth(25); container.add(layout); layout.addField("Who are you?", new WTextField()); layout.addField("I like bananas", new WCheckBox()); layout.addField(new WButton("Save")); return container; } }
/** * Construct the row component. */ public RowComponent() { firstName.setBeanProperty("firstName"); lastName.setBeanProperty("lastName"); extraBox.setBeanProperty("extra"); extraText.setBeanProperty("extraText"); WFieldSet fieldset = new WFieldSet("Person Details"); add(fieldset); fieldset.setMargin(new Margin(null, null, Size.LARGE, null)); WFieldLayout layout = new WFieldLayout(); layout.setLabelWidth(30); layout.addField("First", firstName); layout.addField("Last", lastName); layout.addField("Extra text via ajax", extraBox); extraField = layout.addField("Extra text", extraText); fieldset.add(layout); // Set up an ajax request when the extraBox is clicked to refresh the row. WAjaxControl control = new WAjaxControl(extraBox, layout); add(control); }
/** * 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); } }
/** * Construct the example. */ public WFieldNestedExample() { InnerFieldLayout innerLayout = new InnerFieldLayout(); WFieldSet innerFieldSet = new WFieldSet("Enter date range"); innerFieldSet.setFrameType(WFieldSet.FrameType.NONE); innerFieldSet.add(innerLayout); WFieldLayout layout = new WFieldLayout(); layout.setLabelWidth(20); WField field = layout.addField("Enter date range", innerFieldSet); WLabel layoutLabel = field.getLabel(); innerLayout.getDateStart().addValidator(new InnerFieldLayoutValidator( "{0} must be before {1} for {2}", layoutLabel, innerLayout)); WButton button = new WButton("Validate"); layout.addField((WLabel) null, button); button.setAction(new ValidatingAction(messages.getValidationErrors(), this) { @Override public void executeOnValid(final ActionEvent event) { messages.addMessage(new Message(Message.SUCCESS_MESSAGE, "Valid.")); } }); add(messages); add(new WHeading(WHeading.MAJOR, "Nested WField Example With Validation")); add(layout); }
/** * 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 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); } }
/** * 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 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 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); } }
/** * adds a WRadioButtonSelect with setMandatory(true). */ private void addMandatorySelectExample() { add(new WHeading(HeadingLevel.H3, "Mandatory WRadioButtonSelect")); add(new ExplanatoryText("When a WRadioButtonSelect is mandatory it needs a visible labelling element, otherwise many users may not know that " + "the component requires an answer.")); final WRadioButtonSelect select = new WRadioButtonSelect("australian_state"); select.setButtonLayout(WRadioButtonSelect.LAYOUT_FLAT); select.setMandatory(true); add(new WLabel("Mandatory selection", select)); add(select); add(new WHeading(HeadingLevel.H3, "Mandatory WRadioButtonSelect in a WFieldLayout")); WRadioButtonSelect select2 = new WRadioButtonSelect("australian_state"); select2.setButtonLayout(WRadioButtonSelect.LAYOUT_FLAT); select2.setMandatory(true); final WFieldLayout layout = new WFieldLayout(); layout.setLabelWidth(25); add(layout); layout.addField("Required selection", select2).getLabel().setHint("Required"); select2 = new WRadioButtonSelect("australian_state"); select2.setButtonLayout(WRadioButtonSelect.LAYOUT_FLAT); select2.setMandatory(true); select2.setToolTip("Select a state"); layout.addField((WLabel) null, select2); }