/** * Set the text inputs of this component. * * @param inputs The text inputs to set. */ public void setTextInputs(final String[] inputs) { setData(inputs); }
/** * Set the inputs based on the incoming request. The text input values are set as an array of strings on the * parameter with this name {@link #getName()}. Any empty strings will be ignored. * * @param request the current request. * @return true if the inputs have changed, otherwise return false */ @Override protected boolean doHandleRequest(final Request request) { String[] values = getRequestValue(request); String[] current = getValue(); boolean changed = !Arrays.equals(values, current); if (changed) { setData(values); } return changed; }
@Test public void testSetData() { WMultiTextField field = new WMultiTextField(); field.setLocked(true); setActiveContext(createUIContext()); field.setData(ENTERED_1_2); Assert.assertTrue("Wrong value returned for data", Arrays.equals(ENTERED_1_2, (Object[]) field.getData())); // Empty array field.setData(ENTERED_EMPTY); Assert.assertNull("Null should be returned for empty array", field.getData()); // Empty options field.setData(new String[]{"", TEXT1, "", TEXT2, ""}); Assert.assertTrue("Empty options should have been removed", Arrays.equals(ENTERED_1_2, (Object[]) field.getData())); // Max options exceeded field.setMaxInputs(1); field.setData(ENTERED_1_2); Assert.assertTrue("Should only return the first option", Arrays.equals(ENTERED_1, (Object[]) field.getData())); }
@Test public void testGetValueAsString() { WMultiTextField field = new WMultiTextField(); field.setLocked(true); setActiveContext(createUIContext()); // Null Assert.assertNull("Value as String should be null", field.getValueAsString()); // Entered text1 field.setData(ENTERED_1); Assert.assertEquals("Value as String should be text1", TEXT1, field.getValueAsString()); // Entered text1 and text2 field.setData(ENTERED_1_2); Assert .assertEquals("Value as String should be text1 and text2", TEXT1 + ", " + TEXT2, field.getValueAsString()); }