/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.wicket.examples.forminput;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.apache.wicket.util.io.IClusterable;
/**
* Simple model object for FormInput example. Has a number of simple properties that can be
* retrieved and set.
*/
public final class FormInputModel implements IClusterable
{
/**
* Represents a line of text. Hack to get around the fact that strings are immutable.
*/
public final class Line implements IClusterable
{
private String text;
/**
* Construct.
*
* @param text
*/
public Line(String text)
{
this.text = text;
}
/**
* Gets text.
*
* @return text
*/
public String getText()
{
return text;
}
/**
* Sets text.
*
* @param text
* text
*/
public void setText(String text)
{
this.text = text;
}
/**
* @see java.lang.Object#toString()
*/
@Override
public String toString()
{
return text == null ? "null" : "'" + text + "'";
}
}
private Boolean booleanProperty;
private Double doubleProperty = 20.5;
private Integer integerInRangeProperty = 50;
private Integer integerProperty = 100;
private List<Line> lines = new ArrayList<>();
private Integer multiply = 0;
private String numberRadioChoice = FormInput.NUMBERS.get(0);
private final List<String> numbersCheckGroup = new ArrayList<>();
private String numbersGroup;
/** US phone number with mask '(###) ###-####'. */
private UsPhoneNumber phoneNumberUS = new UsPhoneNumber("(123) 456-1234");
private Set<String> siteSelection = new HashSet<>();
private String stringProperty = "test";
private URL urlProperty;
/**
* Construct.
*/
public FormInputModel()
{
try
{
urlProperty = new URL("http://wicket.apache.org");
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
lines.add(new Line("line one"));
lines.add(new Line("line two"));
lines.add(new Line("line three"));
}
/**
* Gets the booleanProperty.
*
* @return booleanProperty
*/
public Boolean getBooleanProperty()
{
return booleanProperty;
}
/**
* Gets doubleProperty.
*
* @return doubleProperty
*/
public Double getDoubleProperty()
{
return doubleProperty;
}
/**
* Gets integerInRangeProperty.
*
* @return integerInRangeProperty
*/
public Integer getIntegerInRangeProperty()
{
return integerInRangeProperty;
}
/**
* Gets integerProperty.
*
* @return integerProperty
*/
public Integer getIntegerProperty()
{
return integerProperty;
}
/**
* Gets lines.
*
* @return lines
*/
public List<Line> getLines()
{
return lines;
}
/**
* @return gets multiply
*/
public Integer getMultiply()
{
return multiply;
}
/**
* Gets the favoriteColor.
*
* @return favoriteColor
*/
public String getNumberRadioChoice()
{
return numberRadioChoice;
}
/**
* @return the numbers list
*/
public List<String> getNumbersCheckGroup()
{
return numbersCheckGroup;
}
/**
* @return the group number
*/
public String getNumbersGroup()
{
return numbersGroup;
}
/**
* @return the phoneNumberUS
*/
public UsPhoneNumber getPhoneNumberUS()
{
return phoneNumberUS;
}
/**
* Gets the selectedSites.
*
* @return selectedSites
*/
public Set<String> getSiteSelection()
{
return siteSelection;
}
/**
* Gets stringProperty.
*
* @return stringProperty
*/
public String getStringProperty()
{
return stringProperty;
}
/**
* Gets the urlProperty.
*
* @return urlProperty
*/
public URL getUrlProperty()
{
return urlProperty;
}
/**
* Sets the booleanProperty.
*
* @param booleanProperty
* booleanProperty
*/
public void setBooleanProperty(Boolean booleanProperty)
{
this.booleanProperty = booleanProperty;
}
/**
* Sets doubleProperty.
*
* @param doubleProperty
* doubleProperty
*/
public void setDoubleProperty(Double doubleProperty)
{
this.doubleProperty = doubleProperty;
}
/**
* Sets integerInRangeProperty.
*
* @param integerInRangeProperty
* integerInRangeProperty
*/
public void setIntegerInRangeProperty(Integer integerInRangeProperty)
{
this.integerInRangeProperty = integerInRangeProperty;
}
/**
* Sets integerProperty.
*
* @param integerProperty
* integerProperty
*/
public void setIntegerProperty(Integer integerProperty)
{
this.integerProperty = integerProperty;
}
/**
* Sets lines.
*
* @param lines
* lines
*/
public void setLines(List<Line> lines)
{
this.lines = lines;
}
/**
* @param multiply
* the multiply to set
*/
public void setMultiply(Integer multiply)
{
this.multiply = multiply;
}
/**
* Sets the favoriteColor.
*
* @param favoriteColor
* favoriteColor
*/
public void setNumberRadioChoice(String favoriteColor)
{
numberRadioChoice = favoriteColor;
}
/**
* Sets the number.
*
* @param group
* number
*/
public void setNumbersGroup(String group)
{
numbersGroup = group;
}
/**
* @param phoneNumberUS
* the phoneNumberUS to set
*/
public void setPhoneNumberUS(UsPhoneNumber phoneNumberUS)
{
this.phoneNumberUS = phoneNumberUS;
}
/**
* Sets the selectedSites.
*
* @param selectedSites
* selectedSites
*/
public void setSiteSelection(Set<String> selectedSites)
{
siteSelection = selectedSites;
}
/**
* Sets stringProperty.
*
* @param stringProperty
* stringProperty
*/
public void setStringProperty(String stringProperty)
{
this.stringProperty = stringProperty;
}
/**
* Sets the urlProperty.
*
* @param urlProperty
* urlProperty
*/
public void setUrlProperty(URL urlProperty)
{
this.urlProperty = urlProperty;
}
@Override
public String toString()
{
StringBuilder b = new StringBuilder();
b.append("[TestInputObject stringProperty = ")
.append(stringProperty == null ? "null" : "'" + stringProperty + "'")
.append(", integerProperty = ")
.append(integerProperty)
.append(", doubleProperty = ")
.append(doubleProperty)
.append(", booleanProperty = ")
.append(booleanProperty)
.append(", integerInRangeProperty = ")
.append(integerInRangeProperty)
.append(", urlProperty = ")
.append(urlProperty)
.append(", phoneNumberUS = ")
.append(phoneNumberUS)
.append(", numberRadioChoice = ")
.append(numberRadioChoice)
.append(", numbersCheckgroup ")
.append(numbersCheckGroup)
.append(", numberRadioGroup= ")
.append(numbersGroup);
b.append(", selected sites {");
for (Iterator<String> i = siteSelection.iterator(); i.hasNext();)
{
b.append(i.next());
if (i.hasNext())
{
b.append(',');
}
}
b.append(']');
b.append(", lines [");
for (Iterator<Line> i = lines.iterator(); i.hasNext();)
{
b.append(i.next());
if (i.hasNext())
{
b.append(", ");
}
}
b.append(']');
b.append(']');
return b.toString();
}
}