⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 checkboxmultiplechoice.java

📁 Wicket一个开发Java Web应用程序框架。它使得开发web应用程序变得容易而轻松。 Wicket利用一个POJO data beans组件使得它可以与任何持久层技术相结合。
💻 JAVA
字号:
/* * 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.markup.html.form;import java.util.List;import org.apache.wicket.Page;import org.apache.wicket.markup.ComponentTag;import org.apache.wicket.markup.MarkupStream;import org.apache.wicket.model.IModel;import org.apache.wicket.util.string.AppendingStringBuffer;import org.apache.wicket.util.string.Strings;import org.apache.wicket.version.undo.Change;/** * A choice subclass that shows choices via checkboxes. * <p> * Java: *  * <pre> * List SITES = Arrays.asList(new String[] { &quot;The Server Side&quot;, &quot;Java Lobby&quot;, &quot;Java.Net&quot; }); * // Add a set of checkboxes uses Input's 'site' property to designate the * // current selections, and that uses the SITES list for the available options. * form.add(new CheckBoxMultipleChoice(&quot;site&quot;, SITES)); * </pre> *  * HTML: *  * <pre> *    &lt;span valign=&quot;top&quot; wicket:id=&quot;site&quot;&gt; *   	&lt;input type=&quot;checkbox&quot;&gt;site 1&lt;/input&gt; *   	&lt;input type=&quot;checkbox&quot;&gt;site 2&lt;/input&gt; *    &lt;/span&gt; * </pre> *  * </p> *  * @author Jonathan Locke * @author Johan Compagner * @author Martijn Dashorst * @author Gwyn Evans * @author Igor Vaynberg (ivaynberg) */public class CheckBoxMultipleChoice extends ListMultipleChoice{	private static final long serialVersionUID = 1L;	/** suffix change record. */	private class SuffixChange extends Change	{		private static final long serialVersionUID = 1L;		final String prevSuffix;		SuffixChange(String prevSuffix)		{			this.prevSuffix = prevSuffix;		}		/**		 * @see org.apache.wicket.version.undo.Change#undo()		 */		public void undo()		{			setSuffix(prevSuffix);		}		/**		 * @see java.lang.Object#toString()		 */		public String toString()		{			return "SuffixChange[component: " + getPath() + ", suffix: " + prevSuffix + "]";		}	}	/**	 * Prefix change record.	 */	private class PrefixChange extends Change	{		private static final long serialVersionUID = 1L;		private final String prevPrefix;		/**		 * Construct.		 * 		 * @param prevSuffix		 */		PrefixChange(String prevSuffix)		{			prevPrefix = prevSuffix;		}		/**		 * @see org.apache.wicket.version.undo.Change#undo()		 */		public void undo()		{			setPrefix(prevPrefix);		}		/**		 * @see java.lang.Object#toString()		 */		public String toString()		{			return "PrefixChange[component: " + getPath() + ", prefix: " + prevPrefix + "]";		}	}	private String prefix = "";	private String suffix = "<br/>\n";	/**	 * Constructor	 * 	 * @param id	 *            See Component	 * @see org.apache.wicket.Component#Component(String)	 * @see AbstractChoice#AbstractChoice(String)	 */	public CheckBoxMultipleChoice(final String id)	{		super(id);	}	/**	 * Constructor	 * 	 * @param id	 *            See Component	 * @param choices	 *            The collection of choices in the radio choice	 * @see org.apache.wicket.Component#Component(String)	 * @see AbstractChoice#AbstractChoice(String, java.util.List)	 */	public CheckBoxMultipleChoice(final String id, final List choices)	{		super(id, choices);	}	/**	 * Constructor	 * 	 * @param id	 *            See Component	 * @param renderer	 *            The rendering engine	 * @param choices	 *            The collection of choices in the radio choice	 * @see org.apache.wicket.Component#Component(String)	 * @see AbstractChoice#AbstractChoice(String,	 *      java.util.List,org.apache.wicket.markup.html.form.IChoiceRenderer)	 */	public CheckBoxMultipleChoice(final String id, final List choices,			final IChoiceRenderer renderer)	{		super(id, choices, renderer);	}	/**	 * Constructor	 * 	 * @param id	 *            See Component	 * @param model	 *            See Component	 * @param choices	 *            The collection of choices in the radio choice	 * @see org.apache.wicket.Component#Component(String, org.apache.wicket.model.IModel)	 * @see AbstractChoice#AbstractChoice(String, org.apache.wicket.model.IModel, java.util.List)	 */	public CheckBoxMultipleChoice(final String id, IModel model, final List choices)	{		super(id, model, choices);	}	/**	 * Constructor	 * 	 * @param id	 *            See Component	 * @param model	 *            See Component	 * @param choices	 *            The collection of choices in the radio choice	 * @param renderer	 *            The rendering engine	 * @see org.apache.wicket.Component#Component(String, org.apache.wicket.model.IModel)	 * @see AbstractChoice#AbstractChoice(String, org.apache.wicket.model.IModel,	 *      java.util.List,org.apache.wicket.markup.html.form.IChoiceRenderer)	 */	public CheckBoxMultipleChoice(final String id, IModel model, final List choices,			final IChoiceRenderer renderer)	{		super(id, model, choices, renderer);	}	/**	 * Constructor	 * 	 * @param id	 *            See Component	 * @param choices	 *            The collection of choices in the radio choice	 * @see org.apache.wicket.Component#Component(String)	 * @see AbstractChoice#AbstractChoice(String, org.apache.wicket.model.IModel)	 */	public CheckBoxMultipleChoice(String id, IModel choices)	{		super(id, choices);	}	/**	 * Constructor	 * 	 * @param id	 *            See Component	 * @param model	 *            The model that is updated with changes in this component. See Component	 * @param choices	 *            The collection of choices in the radio choice	 * @see AbstractChoice#AbstractChoice(String,	 *      org.apache.wicket.model.IModel,org.apache.wicket.model.IModel)	 * @see org.apache.wicket.Component#Component(String, org.apache.wicket.model.IModel)	 */	public CheckBoxMultipleChoice(String id, IModel model, IModel choices)	{		super(id, model, choices);	}	/**	 * Constructor	 * 	 * @param id	 *            See Component	 * @param choices	 *            The collection of choices in the radio choice	 * @param renderer	 *            The rendering engine	 * @see AbstractChoice#AbstractChoice(String,	 *      org.apache.wicket.model.IModel,org.apache.wicket.markup.html.form.IChoiceRenderer)	 * @see org.apache.wicket.Component#Component(String)	 */	public CheckBoxMultipleChoice(String id, IModel choices, IChoiceRenderer renderer)	{		super(id, choices, renderer);	}	/**	 * Constructor	 * 	 * @param id	 *            See Component	 * @param model	 *            The model that is updated with changes in this component. See Component	 * @param choices	 *            The collection of choices in the radio choice	 * @param renderer	 *            The rendering engine	 * @see org.apache.wicket.Component#Component(String, org.apache.wicket.model.IModel)	 * @see AbstractChoice#AbstractChoice(String, org.apache.wicket.model.IModel,	 *      org.apache.wicket.model.IModel,org.apache.wicket.markup.html.form.IChoiceRenderer)	 */	public CheckBoxMultipleChoice(String id, IModel model, IModel choices, IChoiceRenderer renderer)	{		super(id, model, choices, renderer);	}	/**	 * @return Prefix to use before choice	 */	public String getPrefix()	{		return prefix;	}	/**	 * @param prefix	 *            Prefix to use before choice	 * @return this	 */	public final CheckBoxMultipleChoice setPrefix(final String prefix)	{		// Tell the page that this component's prefix was changed		final Page page = findPage();		if (page != null)		{			addStateChange(new PrefixChange(this.prefix));		}		this.prefix = prefix;		return this;	}	/**	 * @return Separator to use between radio options	 */	public String getSuffix()	{		return suffix;	}	/**	 * @param suffix	 *            Separator to use between radio options	 * @return this	 */	public final CheckBoxMultipleChoice setSuffix(final String suffix)	{		// Tell the page that this component's suffix was changed		final Page page = findPage();		if (page != null)		{			addStateChange(new SuffixChange(this.suffix));		}		this.suffix = suffix;		return this;	}	/**	 * @see org.apache.wicket.markup.html.form.ListMultipleChoice#onComponentTag(org.apache.wicket.markup.ComponentTag)	 */	protected void onComponentTag(ComponentTag tag)	{		super.onComponentTag(tag);		// No longer applicable, breaks XHTML validation.		tag.remove("multiple");		tag.remove("size");		tag.remove("disabled");		tag.remove("name");	}	/**	 * @see org.apache.wicket.Component#onComponentTagBody(org.apache.wicket.markup.MarkupStream,	 *      org.apache.wicket.markup.ComponentTag)	 */	protected final void onComponentTagBody(final MarkupStream markupStream,			final ComponentTag openTag)	{		// Iterate through choices		final List choices = getChoices();		// Buffer to hold generated body		final AppendingStringBuffer buffer = new AppendingStringBuffer(70 * (choices.size() + 1));		// Value of this choice		final String selected = getValue();		// Loop through choices		for (int index = 0; index < choices.size(); index++)		{			// Get next choice			final Object choice = choices.get(index);			Object displayValue = getChoiceRenderer().getDisplayValue(choice);			Class objectClass = displayValue == null ? null : displayValue.getClass();			// Get label for choice			String label = "";			if (objectClass != null && objectClass != String.class)			{				label = getConverter(objectClass).convertToString(displayValue, getLocale());			}			else if (displayValue != null)			{				label = displayValue.toString();			}			// If there is a display value for the choice, then we know that the			// choice is automatic in some way. If label is /null/ then we know			// that the choice is a manually created checkbox tag at some random			// location in the page markup!			if (label != null)			{				// Append option suffix				buffer.append(getPrefix());				String id = getChoiceRenderer().getIdValue(choice, index);				final String idAttr = getInputName() + "_" + id;				// Add checkbox element				buffer.append("<input name=\"").append(getInputName()).append("\"").append(						" type=\"checkbox\"").append(						(isSelected(choice, index, selected) ? " checked=\"checked\"" : ""))						.append((isEnabled() ? "" : " disabled=\"disabled\"")).append(" value=\"")						.append(id).append("\" id=\"").append(idAttr).append("\"/>");				// Add label for checkbox				String display = label;				if (localizeDisplayValues())				{					display = getLocalizer().getString(label, this, label);				}				CharSequence escaped;				if (isEscapeLabelMarkup())				{					escaped = Strings.escapeMarkup(display, false, true);				}				else				{					escaped = display;				}				buffer.append("<label for=\"");				buffer.append(idAttr);				buffer.append("\">").append(escaped).append("</label>");				// Append option suffix				buffer.append(getSuffix());			}		}		// Replace body		replaceComponentTagBody(markupStream, openTag, buffer);	}	/**	 * Overridable method to determine whether the label markup should be escaped.	 * 	 * @return	 */	protected boolean isEscapeLabelMarkup()	{		return true;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -