WFieldLayout layout = new WFieldLayout(); layout.setLabelWidth(30); layout.addField("Link text", tfLinkLabel); layout.addField("Link address", tfUrlField); layout.addField("Link AccessKey", tfAccesskey).getLabel().setHint( "A single upper case letter or digit."); layout.addField("Render as button", cbRenderAsButton); layout.addField("Disabled", cbDisabled); layout.addField("Open in a new window", cbOpenNew); layout.addField("setImage ('/image/attachment.png')", cbSetImage); layout.addField("Image Position", ddImagePosition); layout.setMargin(new com.github.bordertech.wcomponents.Margin(0, 0, 6, 0));
/** * Set the heading for the field layout. * * @param heading the text for the heading * @deprecated use {@link #setTitle(String)} instead */ @Deprecated public void setHeading(final String heading) { setTitle(heading); }
@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()); }
/** * @return a String representation of this component, for debugging purposes. */ @Override public String toString() { return toString(getLayoutType()); }
/** * 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); }
/** * 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); }
/** * Adds the UI artefacts for this PhoneNumberEditPanel. */ private void createUI() { WHeading contactName = new WHeading(HeadingLevel.H3, ""); contactName.setBeanProperty("name"); add(contactName); WFieldLayout fieldLayout = new WFieldLayout(); fieldLayout.addField("Phone", phoneNumField); fieldLayout.addField("Roles", roleSelect); add(fieldLayout); }
/** * 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; }
WFieldLayout layout = new WFieldLayout(); layout.setTitle("\'Flat\' WFieldLayout"); layout.addField("WTextField 1", new WTextField()).setInputWidth(100); layout.addField("WTextField 2", new WTextField()); layout.addField("WCheckBox", new WCheckBox()); add(layout); layout = new WFieldLayout(WFieldLayout.LAYOUT_STACKED); layout.setTitle("\'Stacked\' WFieldLayout"); layout.addField("WTextField 1", new WTextField()).setInputWidth(100); layout.addField("WTextField 2", new WTextField()); layout.addField("WCheckBox", new WCheckBox()); add(layout); layout = new WFieldLayout(); layout.setOrdered(true); layout.addField("WTextField 1", new WTextField()); layout.addField("WTextField 2", new WTextField()); layout.addField("WCheckBox", new WCheckBox()); add(layout); layout = new WFieldLayout(); layout.setOrdered(true); layout.setOrderedOffset(6); layout.addField("WTextField 1", new WTextField()); layout.addField("WTextField 2", new WTextField()); layout.addField("WCheckBox", new WCheckBox()); add(layout);
@Test public void testDoPaintAllOptions() throws IOException, SAXException, XpathException { WFieldLayout layout = new WFieldLayout(WFieldLayout.LAYOUT_STACKED); setFlag(layout, ComponentModel.HIDE_FLAG, true); layout.setLabelWidth(10); layout.setTitle("title1"); assertXpathEvaluatesTo(layout.getId(), "//ui:fieldlayout/@id", layout); assertXpathEvaluatesTo("stacked", "//ui:fieldlayout/@layout", layout); assertXpathEvaluatesTo("true", "//ui:fieldlayout/@hidden", layout); layout.setLabelWidth(0); assertXpathEvaluatesTo("", "//ui:fieldlayout/@labelWidth", layout); layout.setLabelWidth(1); assertXpathEvaluatesTo("1", "//ui:fieldlayout/@labelWidth", layout); layout.setLabelWidth(100); assertXpathEvaluatesTo("100", "//ui:fieldlayout/@labelWidth", layout); layout.setOrdered(true); assertSchemaMatch(layout); assertXpathEvaluatesTo("1", "//ui:fieldlayout/@ordered", layout); layout.setOrderedOffset(20); assertXpathEvaluatesTo("20", "//ui:fieldlayout/@ordered", layout);
WFieldLayout configLayout = new WFieldLayout(WFieldLayout.LAYOUT_STACKED); col.add(configLayout); WField field = configLayout.addField("Not Condition", cbNot); field.setInputWidth(100); configLayout = new WFieldLayout(WFieldLayout.LAYOUT_STACKED); col.add(configLayout); field = configLayout.addField("Trigger Type", drpTriggerType); field.setInputWidth(100); configLayout = new WFieldLayout(WFieldLayout.LAYOUT_STACKED); col.add(configLayout); field = configLayout.addField("Compare Type", drpCompareType); field.setInputWidth(100); configLayout = new WFieldLayout(WFieldLayout.LAYOUT_STACKED); col.add(configLayout); comboField = configLayout.addField("Compare Value (String)", comboCompareValue); dateField = configLayout.addField("Compare Value (Date)", dateCompareValue); numberField = configLayout.addField("Compare Value (Number)", numberCompareValue); comboField.setInputWidth(100); dateField.setInputWidth(100); configLayout = new WFieldLayout(WFieldLayout.LAYOUT_STACKED); col.add(configLayout); field = configLayout.addField("Action", drpActionType); field.setInputWidth(100); configLayout = new WFieldLayout(WFieldLayout.LAYOUT_STACKED);
/** * Add a field using the label and components passed in. * * @param label the label to use for the field * @param field the component to use for the field * @return the field which was added to the layout. */ public WField addField(final String label, final WComponent field) { if (null == label) { return addField((WLabel) null, field); } return addField(new WLabel(label), field); }
WFieldLayout fieldLayout = (WFieldLayout) component; XmlStringBuilder xml = renderContext.getWriter(); int labelWidth = fieldLayout.getLabelWidth(); String title = fieldLayout.getTitle(); xml.appendOptionalAttribute("class", component.getHtmlClass()); xml.appendOptionalAttribute("track", component.isTracking(), "true"); xml.appendOptionalAttribute("hidden", fieldLayout.isHidden(), "true"); xml.appendOptionalAttribute("labelWidth", labelWidth > 0, labelWidth); xml.appendAttribute("layout", fieldLayout.getLayoutType()); xml.appendOptionalAttribute("title", title); if (fieldLayout.isOrdered()) { xml.appendAttribute("ordered", fieldLayout.getOrderedOffset());
/** * Creates a SimpleListRenderer. * * @param fields the list of fields to be rendered. * @param useFieldLayout if a field layout is to be used to render the list */ public SimpleListRenderer(final List<String> fields, final boolean useFieldLayout) { WFieldLayout fieldLayout = null; if (useFieldLayout) { fieldLayout = new WFieldLayout(); add(fieldLayout); } for (String field : fields) { addRenderField(fieldLayout, field); } }
@Test public void testXssEscaping() throws IOException, SAXException, XpathException { WFieldLayout layout = new WFieldLayout(); layout.setTitle(getMaliciousAttribute("ui:fieldlayout")); assertSafeContent(layout); }
@Test(expected = IllegalArgumentException.class) public void testSetLabelWidthInvalidGreater100() { WFieldLayout layout = new WFieldLayout(); layout.setLabelWidth(101); }
@Test(expected = IllegalArgumentException.class) public void testSetOrderedOffsetInvalid() { WFieldLayout layout = new WFieldLayout(); layout.setOrderedOffset(0); }
@Test public void testConstructor() { WFieldLayout layout = new WFieldLayout(); Assert.assertEquals("Incorrect default layout", WFieldLayout.LAYOUT_FLAT, layout.getLayoutType()); layout = new WFieldLayout(WFieldLayout.LAYOUT_STACKED); Assert.assertEquals("Incorrect layout", WFieldLayout.LAYOUT_STACKED, layout.getLayoutType()); }
@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); }
@Test public void testDoPaintBasic() throws IOException, SAXException, XpathException { WFieldLayout layout = new WFieldLayout(); // Validate Schema assertSchemaMatch(layout); // Check Attributes assertXpathEvaluatesTo(layout.getId(), "//ui:fieldlayout/@id", layout); assertXpathEvaluatesTo("flat", "//ui:fieldlayout/@layout", layout); assertXpathEvaluatesTo("", "//ui:fieldlayout/@hidden", layout); assertXpathEvaluatesTo("", "//ui:fieldlayout/@labelWidth", layout); assertXpathEvaluatesTo("", "//ui:fieldlayout/@title", layout); assertXpathEvaluatesTo("", "//ui:fieldlayout/@ordered", layout); // Check No Fields assertXpathNotExists("//ui:fieldlayout/ui:field", layout); }