Author: ivaynberg
Date: Thu Mar 6 10:59:05 2008
New Revision: 634378
URL: http://svn.apache.org/viewvc?rev=634378&view=rev
Log:
todo
Modified:
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java
Modified:
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java?rev=634378&r1=634377&r2=634378&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java
(original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java
Thu Mar 6 10:59:05 2008
@@ -58,16 +58,16 @@
/**
* Component serves as the highest level abstract base class for all
components.
- *
+ *
* <ul>
* <li><b>Identity </b>- All Components must have a non-null id which is
retrieved by calling
* getId(). The id must be unique within the MarkupContainer that holds the
Component, but does not
* have to be globally unique or unique within a Page's component hierarchy.
- *
+ *
* <li><b>Hierarchy </b>- A component has a parent which can be retrieved with
[EMAIL PROTECTED] #getParent()}.
* If a component is an instance of MarkupContainer, it may have children. In
this way it has a
* place in the hierarchy of components contained on a given page.
- *
+ *
* <li><b>Component Paths </b>- The path from the Page at the root of the
component hierarchy to a
* given Component is simply the concatenation with dot separators of each id
along the way. For
* example, the path "a.b.c" would refer to the component named "c" inside the
MarkupContainer named
@@ -76,12 +76,12 @@
* bear a PageMap/Session-relative identifier as their id, so each absolute
path will begin with a
* number, such as "0.a.b.c". To get a Component path relative to the page
that contains it, you can
* call getPageRelativePath().
- *
+ *
* <li><b>LifeCycle </b>- Components participate in the following lifecycle
phases:
* <ul>
* <li><b>Construction </b>- A Component is constructed with the Java language
new operator.
* Children may be added during construction if the Component is a
MarkupContainer.
- *
+ *
* <li><b>Request Handling </b>- An incoming request is processed by a
protocol request handler
* such as WicketServlet. An associated Application object creates Session,
Request and Response
* objects for use by a given Component in updating its model and rendering a
response. These
@@ -89,7 +89,7 @@
* [EMAIL PROTECTED] Component#getRequestCycle()}. The convenience methods
[EMAIL PROTECTED] Component#getRequest()},
* [EMAIL PROTECTED] Component#getResponse()} and [EMAIL PROTECTED]
Component#getSession()} provide easy access to the
* contents of this container.
- *
+ *
* <li><b>Listener Invocation </b>- If the request references a listener on an
existing Component,
* that listener is called, allowing arbitrary user code to handle events such
as link clicks or
* form submits. Although arbitrary listeners are supported in Wicket, the
need to implement a new
@@ -102,24 +102,24 @@
* interface methods in Java must be public). Instead, Form subclasses should
override user-oriented
* methods such as onValidate(), onSubmit() and onError() (although only the
latter two are likely
* to be overridden in practice).
- *
+ *
* <li><b>onBeginRequest </b>- The [EMAIL PROTECTED]
Component#onBeginRequest()} method is called.
- *
+ *
* <li><b>Form Submit </b>- If a Form has been submitted and the Component is
a FormComponent, the
* component's model is validated by a call to FormComponent.validate().
- *
+ *
* <li><b>Form Model Update </b>- If a valid Form has been submitted and the
Component is a
* FormComponent, the component's model is updated by a call to
FormComponent.updateModel().
- *
+ *
* <li><b>Rendering </b>- A markup response is generated by the Component via
* [EMAIL PROTECTED] Component#render()}, which calls subclass implementation
code contained in
* [EMAIL PROTECTED]
Component#onRender(org.apache.wicket.markup.MarkupStream)}. Once this phase
begins, a
* Component becomes immutable. Attempts to alter the Component will result in
a
* WicketRuntimeException.
- *
+ *
* <li><b>onEndRequest </b>() - The [EMAIL PROTECTED]
Component#onEndRequest()} method is called.
* </ul>
- *
+ *
* <li><b>Component Models </b>- The primary responsibility of a component is
to use its model (an
* object that implements IModel), which can be set via [EMAIL PROTECTED]
Component#setModel(IModel model)} and
* retrieved via [EMAIL PROTECTED] Component#getModel()}, to render a response
in an appropriate markup
@@ -128,29 +128,29 @@
* convenience method [EMAIL PROTECTED] Component#getModelObject()} is
provided to retrieve the model Object
* from its IModel wrapper. A further convenience method, [EMAIL PROTECTED]
Component#getModelObjectAsString()},
* is provided for the very common operation of converting the wrapped model
Object to a String.
- *
+ *
* <li><b>Visibility </b>- Components which have setVisible(false) will return
false from
* isVisible() and will not render a response (nor will their children).
- *
+ *
* <li><b>Page </b>- The Page containing any given Component can be retrieved
by calling
* [EMAIL PROTECTED] Component#getPage()}. If the Component is not attached to
a Page, an
* IllegalStateException will be thrown. An equivalent method, [EMAIL
PROTECTED] Component#findPage()} is
* available for special circumstances where it might be desirable to get a
null reference back
* instead.
- *
+ *
* <li><b>Session </b>- The Page for a Component points back to the Session
that contains the Page.
* The Session for a component can be accessed with the convenience method
getSession(), which
* simply calls getPage().getSession().
- *
+ *
* <li><b>Locale </b>- The Locale for a Component is available through the
convenience method
* getLocale(), which is equivalent to getSession().getLocale().
- *
+ *
* <li><b>String Resources </b>- Components can have associated String
resources via the
* Application's Localizer, which is available through the method [EMAIL
PROTECTED] Component#getLocalizer()}.
* The convenience methods [EMAIL PROTECTED] Component#getString(String key)}
and
* [EMAIL PROTECTED] Component#getString(String key, IModel model)} wrap the
identical methods on the
* Application Localizer for easy access in Components.
- *
+ *
* <li><b>Style </b>- The style ("skin") for a component is available through
* [EMAIL PROTECTED] Component#getStyle()}, which is equivalent to
getSession().getStyle(). Styles are
* intended to give a particular look to a Component or Resource that is
independent of its Locale.
@@ -158,39 +158,39 @@
* the design look of "ocean" to the user. If the Session's style is set to
"ocean" and these
* resources are given names suffixed with "_ocean", Wicket's resource
management logic will prefer
* these resources to other resources, such as default resources, which are
not as good of a match.
- *
+ *
* <li><b>Variation </b>- Whereas Styles are Session (user) specific,
variations are component
* specific. E.g. if the Style is "ocean" and the Variation is "NorthSea",
than the resources are
* given the names suffixed with "_ocean_NorthSea".
- *
+ *
* <li><b>AttributeModifiers </b>- You can add one or more [EMAIL PROTECTED]
AttributeModifier}s to any
* component if you need to programmatically manipulate attributes of the
markup tag to which a
* Component is attached.
- *
+ *
* <li><b>Application, ApplicationSettings and ApplicationPages </b>- The
getApplication() method
* provides convenient access to the Application for a Component via
getSession().getApplication().
* The getApplicationSettings() method is equivalent to
getApplication().getSettings(). The
* getApplicationPages is equivalent to getApplication().getPages().
- *
+ *
* <li><b>Feedback Messages </b>- The [EMAIL PROTECTED]
Component#debug(String)},
* [EMAIL PROTECTED] Component#info(String)}, [EMAIL PROTECTED]
Component#warn(String)},
* [EMAIL PROTECTED] Component#error(java.io.Serializable)} and [EMAIL
PROTECTED] Component#fatal(String)} methods
* associate feedback messages with a Component. It is generally not necessary
to use these methods
* directly since Wicket validators automatically register feedback messages
on Components. Any
* feedback message for a given Component can be retrieved with [EMAIL
PROTECTED] Component#getFeedbackMessage}.
- *
+ *
* <li><b>Page Factory </b>- It is possible to change the way that Pages are
constructed by
* overriding the [EMAIL PROTECTED] Component#getPageFactory()} method,
returning your own implementation of
* [EMAIL PROTECTED] org.apache.wicket.IPageFactory}.
- *
+ *
* <li><b>Versioning </b>- Pages are the unit of versioning in Wicket, but
fine-grained control of
* which Components should participate in versioning is possible via the
* [EMAIL PROTECTED] Component#setVersioned(boolean)} method. The versioning
participation of a given Component
* can be retrieved with [EMAIL PROTECTED] Component#isVersioned()}.
- *
+ *
* <li><b>AJAX support</b>- Components can be re-rendered after the whole Page
has been rendered
* at least once by calling doRender().
- *
+ *
* @author Jonathan Locke
* @author Chris Turner
* @author Eelco Hillenius
@@ -212,7 +212,7 @@
/**
* Construct.
- *
+ *
* @param model
*/
public ComponentModelChange(IModel model)
@@ -261,7 +261,7 @@
/**
* Called at each component in a traversal.
- *
+ *
* @param component
* The component
* @return CONTINUE_TRAVERSAL (null) if the traversal should
continue, or a non-null return
@@ -273,7 +273,7 @@
/**
* Change object for undoing addition of behavior
- *
+ *
* @author Igor Vaynberg (ivaynberg)
*/
private final class AddedBehaviorChange extends Change
@@ -285,7 +285,7 @@
/**
* Construct.
- *
+ *
* @param behavior
*/
public AddedBehaviorChange(IBehavior behavior)
@@ -307,7 +307,7 @@
/**
* Undo change for component border property
- *
+ *
* @author ivaynberg
*/
private class ComponentBorderChange extends Change
@@ -325,7 +325,7 @@
/**
* Change object for undoing removal of behavior
- *
+ *
* @author Igor Vaynberg (ivaynberg)
*/
private final class RemovedBehaviorChange extends Change
@@ -337,7 +337,7 @@
/**
* Construct.
- *
+ *
* @param behavior
*/
public RemovedBehaviorChange(IBehavior behavior)
@@ -373,7 +373,7 @@
/**
* Construct.
- *
+ *
* @param component
*/
EnabledChange(final Component component)
@@ -414,7 +414,7 @@
/**
* Construct.
- *
+ *
* @param component
*/
VisibilityChange(final Component component)
@@ -453,12 +453,12 @@
* When a component is not allowed to be enabled (in effect disabled
through the implementation
* of this interface), Wicket will try to prevent model updates too.
This is not completely fail
* safe, as constructs like:
- *
+ *
* <pre>
* User u = (User)getModelObject();
* u.setName("got you there!");
* </pre>
- *
+ *
* can't be prevented. Indeed it can be argued that any model
protection is best dealt with in
* your model objects to be completely secured. Wicket will catch all
normal framework-directed
* use though.
@@ -854,7 +854,7 @@
/**
* Constructor. All components have names. A component's id cannot be
null. This is the minimal
* constructor of component. It does not register a model.
- *
+ *
* @param id
* The non-null id of this component
* @throws WicketRuntimeException
@@ -876,12 +876,12 @@
/**
* Constructor. All components have names. A component's id cannot be
null. This constructor
* includes a model.
- *
+ *
* @param id
* The non-null id of this component
* @param model
* The component's model
- *
+ *
* @throws WicketRuntimeException
* Thrown if the component has been given a null id.
*/
@@ -893,13 +893,13 @@
/**
* Adds an behavior modifier to the component.
- *
+ *
* <p>
* Note: this method is override to enable users to do things like
discussed in <a
*
href="http://www.nabble.com/Why-add%28IBehavior%29-is-final--tf2598263.html#a7248198">this
* thread</a>.
* </p>
- *
+ *
* @param behavior
* The behavior modifier to be added
* @return this (to allow method call chaining)
@@ -1042,7 +1042,7 @@
/**
* Redirects to any intercept page previously specified by a call to
redirectToInterceptPage.
- *
+ *
* @return True if an original destination was redirected to
* @see Component#redirectToInterceptPage(Page)
*/
@@ -1053,7 +1053,7 @@
/**
* Registers a debug feedback message for this component
- *
+ *
* @param message
* The feedback message
*/
@@ -1103,7 +1103,7 @@
/**
* THIS IS WICKET INTERNAL ONLY. DO NOT USE IT.
- *
+ *
* Traverses all behaviors and calls detachModel() on them. This is
needed to cleanup behavior
* after render. This method is necessary for [EMAIL PROTECTED]
AjaxRequestTarget} to be able to cleanup
* component's behaviors after header contribution has been done (which
is separated from
@@ -1147,7 +1147,7 @@
/**
* Registers an error feedback message for this component
- *
+ *
* @param message
* The feedback message
*/
@@ -1159,7 +1159,7 @@
/**
* Registers an fatal error feedback message for this component
- *
+ *
* @param message
* The feedback message
*/
@@ -1171,7 +1171,7 @@
/**
* Finds the first container parent of this component of the given
class.
- *
+ *
* @param c
* MarkupContainer class to search for
* @return First container parent that is an instance of the given
class, or null if none can be
@@ -1220,7 +1220,7 @@
/**
* Gets interface to application that this component is a part of.
- *
+ *
* @return The application associated with the session that this
component is in.
* @see Application
*/
@@ -1232,7 +1232,7 @@
/**
* Gets the currently coupled [EMAIL PROTECTED] IBehavior}s as a
unmodifiable list. Returns an empty list
* rather than null if there are no behaviors coupled to this component.
- *
+ *
* @return The currently coupled behaviors as a unmodifiable list
*/
public final List/* <IBehavior> */getBehaviors()
@@ -1268,10 +1268,10 @@
/**
* Gets the converter that should be used by this component.
- *
+ *
* @param type
* The type to convert to
- *
+ *
* @return The converter that should be used by this component
*/
public IConverter getConverter(Class/* <?> */type)
@@ -1281,7 +1281,7 @@
/**
* Gets whether model strings should be escaped.
- *
+ *
* @return Returns whether model strings should be escaped
*/
public final boolean getEscapeModelStrings()
@@ -1299,7 +1299,7 @@
/**
* Gets the id of this component.
- *
+ *
* @return The id of this component
*/
public String getId()
@@ -1318,7 +1318,7 @@
/**
* Gets the locale for this component. By default, it searches its
parents for a locale. If no
* parents (it's a recursive search) returns a locale, it gets one from
the session.
- *
+ *
* @return The locale to be used for this component
* @see Session#getLocale()
*/
@@ -1334,7 +1334,7 @@
/**
* Convenience method to provide easy access to the localizer object
within any component.
- *
+ *
* @return The localizer object
*/
public final Localizer getLocalizer()
@@ -1344,14 +1344,14 @@
/**
* THIS IS WICKET INTERNAL ONLY. DO NOT USE IT.
- *
+ *
* Get a copy of the markup's attributes which are associated with the
component.
* <p>
* Modifications to the map returned don't change the tags attributes.
It is just a copy.
* <p>
* Note: The component must have been added (directly or indirectly) to
a container with an
* associated markup file (Page, Panel or Border).
- *
+ *
* @return markup attributes
*/
public final ValueMap getMarkupAttributes()
@@ -1397,11 +1397,11 @@
* <p>
* Note: This method should only be called after the component or its
parent have been added to
* the page.
- *
+ *
* @param createIfDoesNotExist
* When there is no existing markup id, determines whether
it should be generated or
* whether <code>null</code> should be returned.
- *
+ *
* @return markup id of the component
*/
@@ -1472,7 +1472,7 @@
* <p>
* Note: This method should only be called after the component or its
parent have been added to
* the page.
- *
+ *
* @return markup id of the component
*/
public String getMarkupId()
@@ -1482,7 +1482,7 @@
/**
* Gets metadata for this component using the given key.
- *
+ *
* @param key
* The key for the data
* @return The metadata or null of no metadata was found for the given
key
@@ -1520,7 +1520,7 @@
/**
* Gets the model. It returns the object that wraps the backing model.
- *
+ *
* @return The model
*/
public final IModel getModel()
@@ -1539,7 +1539,7 @@
/**
* Gets the backing model object; this is shorthand for
getModel().getObject().
- *
+ *
* @return The backing model object
*/
public final Object getModelObject()
@@ -1562,10 +1562,10 @@
* sensitive chars are escaped but not all none-ascii chars. Proper
HTML encoding should be used
* instead. In case you really need a fully escaped model string you
may call
* [EMAIL PROTECTED] Strings#escapeMarkup(String, boolean, boolean)} on
the model string returned.
- *
+ *
* @see Strings#escapeMarkup(String, boolean, boolean)
* @see #getEscapeModelStrings()
- *
+ *
* @return Model object for this component as a string
*/
public final String getModelObjectAsString()
@@ -1579,10 +1579,10 @@
* sensitive chars are escaped but not all none-ascii chars. Proper
HTML encoding should be used
* instead. In case you really need a fully escaped model string you
may call
* [EMAIL PROTECTED] Strings#escapeMarkup(String, boolean, boolean)} on
the model string returned.
- *
+ *
* @see Strings#escapeMarkup(String, boolean, boolean)
* @see #getEscapeModelStrings()
- *
+ *
* @param modelObject
* Model object to convert to string
* @return The string
@@ -1614,7 +1614,7 @@
/**
* Gets whether or not component will output id attribute into the
markup. id attribute will be
* set to the value returned from [EMAIL PROTECTED]
Component#getMarkupId()}.
- *
+ *
* @return whether or not component will output id attribute into the
markup
*/
public final boolean getOutputMarkupId()
@@ -1624,7 +1624,7 @@
/**
* Gets whether or not an invisible component will render a placeholder
tag.
- *
+ *
* @return true if a placeholder tag should be rendered
*/
public final boolean getOutputMarkupPlaceholderTag()
@@ -1634,7 +1634,7 @@
/**
* Gets the page holding this component.
- *
+ *
* @return The page holding this component
* @throws IllegalStateException
* Thrown if component is not yet attached to a Page.
@@ -1664,7 +1664,7 @@
/**
* Gets the path to this component relative to the page it is in.
- *
+ *
* @return The path to this component relative to the page it is in
*/
public final String getPageRelativePath()
@@ -1674,7 +1674,7 @@
/**
* Gets any parent container, or null if there is none.
- *
+ *
* @return Any parent container, or null if there is none
*/
public final MarkupContainer getParent()
@@ -1684,7 +1684,7 @@
/**
* Gets this component's path.
- *
+ *
* @return Colon separated path to this component in the component
hierarchy
*/
public final String getPath()
@@ -1704,7 +1704,7 @@
/**
* If false the component's tag will be printed as well as its body
(which is default). If true
* only the body will be printed, but not the component's tag.
- *
+ *
* @return If true, the component tag will not be printed
*/
public final boolean getRenderBodyOnly()
@@ -1729,7 +1729,7 @@
/**
* Gets the active request cycle for this component
- *
+ *
* @return The request cycle
*/
public final RequestCycle getRequestCycle()
@@ -1747,7 +1747,7 @@
/**
* Gets the current Session object.
- *
+ *
* @return The Session that this component is in
*/
public Session getSession()
@@ -1816,9 +1816,9 @@
/**
* Gets the style of this component (see [EMAIL PROTECTED]
org.apache.wicket.Session}).
- *
+ *
* @return The style of this component.
- *
+ *
* @see org.apache.wicket.Session
* @see org.apache.wicket.Session#getStyle()
*/
@@ -1844,7 +1844,7 @@
* Gets the variation string of this component that will be used to
look up markup for this
* component. Subclasses can override this method to define by an
instance what markup variation
* should be picked up. By default it will return null or the value of
a parent.
- *
+ *
* @return The variation of this component.
*/
public String getVariation()
@@ -1859,7 +1859,7 @@
/**
* Gets whether this component was rendered at least once.
- *
+ *
* @return true if the component has been rendered before, false if it
is merely constructed
*/
public final boolean hasBeenRendered()
@@ -1885,7 +1885,7 @@
/**
* Registers an informational feedback message for this component
- *
+ *
* @param message
* The feedback message
*/
@@ -1915,7 +1915,7 @@
/**
* Authorizes an action for a component.
- *
+ *
* @param action
* The action to authorize
* @return True if the action is allowed
@@ -1934,7 +1934,7 @@
/**
* Returns true if this component is an ancestor of the given component
- *
+ *
* @param component
* The component to check
* @return True if the given component has this component as an ancestor
@@ -1971,7 +1971,7 @@
* Gets whether this component is enabled. Specific components may
decide to implement special
* behavior that uses this property, like web form components that add
a disabled='disabled'
* attribute when enabled is false.
- *
+ *
* @return Whether this component is enabled.
*/
public boolean isEnabled()
@@ -1982,7 +1982,7 @@
/**
* Checks the security strategy if the [EMAIL PROTECTED]
Component#RENDER} action is allowed on this
* component
- *
+ *
* @return ture if [EMAIL PROTECTED] Component#RENDER} action is
allowed, false otherwise
*/
public final boolean isRenderAllowed()
@@ -1994,7 +1994,7 @@
* Returns if the component is stateless or not. It checks the
stateless hint if that is false
* it returns directly false. If that is still true it checks all its
behaviors if they can be
* stateless.
- *
+ *
* @return whether the component is stateless.
*/
public final boolean isStateless()
@@ -2050,7 +2050,7 @@
* method, it is a good idea to keep it cheap in terms of processing.
Alternatively, you can
* call [EMAIL PROTECTED] #setVisible(boolean)}.
* <p>
- *
+ *
* @return True if component and any children are visible
*/
public boolean isVisible()
@@ -2060,7 +2060,7 @@
/**
* Checks if the component itself and all its parents are visible.
- *
+ *
* @return true if the component and all its parents are visible.
*/
public final boolean isVisibleInHierarchy()
@@ -2118,7 +2118,7 @@
/**
* Creates a new page using the component's page factory
- *
+ *
* @param c
* The class of page to create
* @return The new page
@@ -2130,7 +2130,7 @@
/**
* Creates a new page using the component's page factory
- *
+ *
* @param c
* The class of page to create
* @param parameters
@@ -2172,10 +2172,10 @@
* is saved for future use by method continueToOriginalDestination();
Only use this method when
* you plan to continue to the current url at some later time;
otherwise just use
* setResponsePage or - when you are in a constructor or
checkAccessMethod, call redirectTo.
- *
+ *
* @param page
* The sign in page
- *
+ *
* @see Component#continueToOriginalDestination()
*/
public final void redirectToInterceptPage(final Page page)
@@ -2199,10 +2199,10 @@
/**
* Removes behavior from component
- *
+ *
* @param behavior
* behavior to remove
- *
+ *
* @return this (to allow method call chaining)
*/
public Component remove(final IBehavior behavior)
@@ -2267,7 +2267,7 @@
* <p>
* For component level re-render (e.g. AJAX) please call [EMAIL
PROTECTED] #renderComponent(MarkupStream)}.
* Though render() does seem to work, it will fail for panel children.
- *
+ *
* @param markupStream
*/
public final void render(final MarkupStream markupStream)
@@ -2426,7 +2426,7 @@
* Renders the component at the current position in the given markup
stream. The method
* onComponentTag() is called to allow the component to mutate the
start tag. The method
* onComponentTagBody() is then called to permit the component to
render its body.
- *
+ *
* @param markupStream
* The markup stream
*/
@@ -2531,7 +2531,7 @@
* NOT intended for overriding by framework clients. Rather, use
* [EMAIL PROTECTED]
IHeaderContributor#renderHead(org.apache.wicket.markup.html.IHeaderResponse)}
* </p>
- *
+ *
* @param container
* The HtmlHeaderContainer
*/
@@ -2567,9 +2567,9 @@
* as this component. This method serves as a shortcut to
* <code>this.getParent().replace(replacement)</code> and provides a
better context for
* errors.
- *
+ *
* @since 1.2.1
- *
+ *
* @param replacement
* component to replace this one
*/
@@ -2626,7 +2626,7 @@
/**
* Assigns a component border to this component. If called with
<code>null</code> any previous
* border will be cleared.
- *
+ *
* @param border
* component border to assign, or <code>null</code> to clear
any previous
* @return component for chaining
@@ -2647,7 +2647,7 @@
* attribute when enabled is false. If it is not enabled, it will not
be allowed to call any
* listener method on it (e.g. Link.onClick) and the model object will
be protected (for the
* common use cases, not for programmer's misuse)
- *
+ *
* @param enabled
* whether this component is enabled
* @return This
@@ -2675,7 +2675,7 @@
/**
* Sets whether model strings should be escaped.
- *
+ *
* @param escapeMarkup
* True is model strings should be escaped
* @return This
@@ -2712,9 +2712,9 @@
* <p>
* If null is passed in the user defined value is cleared and markup id
value will fall back on
* automatically generated value
- *
+ *
* @see #getMarkupId()
- *
+ *
* @param markupId
* markup id value or null to clear any previous user
defined value
*/
@@ -2725,6 +2725,10 @@
throw new IllegalArgumentException("Markup id cannot be
an empty string");
}
+ // TODO check if an automatic id has already been generated or
getmarkupid() called
+ // previously and throw an illegalstateexception because
something else might be depending
+ // on previous id
+
setMarkupIdImpl(markupId);
}
@@ -2732,7 +2736,7 @@
* Sets the metadata for this component using the given key. If the
metadata object is not of
* the correct type for the metadata key, an IllegalArgumentException
will be thrown. For
* information on creating MetaDataKeys, see [EMAIL PROTECTED]
MetaDataKey}.
- *
+ *
* @param key
* The singleton key for the metadata
* @param object
@@ -2773,7 +2777,7 @@
* WARNING: DO NOT OVERRIDE THIS METHOD UNLESS YOU HAVE A VERY GOOD
REASON FOR IT. OVERRIDING
* THIS MIGHT OPEN UP SECURITY LEAKS AND BREAK BACK-BUTTON SUPPORT.
* </p>
- *
+ *
* @param model
* The model
* @return This
@@ -2847,7 +2851,7 @@
/**
* Sets the backing model object; shorthand for
getModel().setObject(object).
- *
+ *
* @param object
* The object to set
* @return This
@@ -2883,13 +2887,13 @@
/**
* Sets whether or not component will output id attribute into the
markup. id attribute will be
* set to the value returned from [EMAIL PROTECTED]
Component#getMarkupId()}.
- *
+ *
* @param output
* True if the component will out the id attribute into
markup. Please note that the
* default behavior is to use the same id as the component.
This means that your
* component must begin with [a-zA-Z] in order to generate a
valid markup id
* according to:
http://www.w3.org/TR/html401/types.html#type-name
- *
+ *
* @return this for chaining
*/
public final Component setOutputMarkupId(final boolean output)
@@ -2902,15 +2906,15 @@
* Render a placeholder tag when the component is not visible. The tag
is of form:
* <componenttag style="display:none;" id="componentid"/>. This
method will also call
* <code>setOutputMarkupId(true)</code>.
- *
+ *
* This is useful, for example, in ajax situations where the component
starts out invisible and
* then becomes visible through an ajax update. With a placeholder tag
already in the markup you
* do not need to repaint this component's parent, instead you can
repaint the component
* directly.
- *
+ *
* When this method is called with parameter <code>false</code> the
outputmarkupid flag is not
* reverted to false.
- *
+ *
* @param outputTag
* @return this for chaining
*/
@@ -2946,7 +2950,7 @@
/**
* If false the component's tag will be printed as well as its body
(which is default). If true
* only the body will be printed, but not the component's tag.
- *
+ *
* @param renderTag
* If true, the component tag will not be printed
* @return This
@@ -2959,7 +2963,7 @@
/**
* Sets the page that will respond to this request
- *
+ *
* @param cls
* The response page class
* @see RequestCycle#setResponsePage(Class)
@@ -2972,7 +2976,7 @@
/**
* Sets the page class and its parameters that will respond to this
request
- *
+ *
* @param cls
* The response page class
* @param parameters
@@ -2986,7 +2990,7 @@
/**
* Sets the page that will respond to this request
- *
+ *
* @param page
* The response page
* @see RequestCycle#setResponsePage(Page)
@@ -3010,7 +3014,7 @@
/**
* Sets whether this component and any children are visible.
- *
+ *
* @param visible
* True if this component and any children should be visible
* @return This
@@ -3031,7 +3035,7 @@
/**
* Gets the string representation of this component.
- *
+ *
* @return The path to this component
*/
public String toString()
@@ -3082,9 +3086,9 @@
* Returns a bookmarkable URL that references a given page class using
a given set of page
* parameters. Since the URL which is returned contains all information
necessary to instantiate
* and render the page, it can be stored in a user's browser as a
stable bookmark.
- *
+ *
* @see RequestCycle#urlFor(IPageMap, Class, PageParameters)
- *
+ *
* @param pageClass
* Class of page
* @param parameters
@@ -3099,7 +3103,7 @@
/**
* Gets a URL for the listener interface on a behavior (e.g.
IBehaviorListener on
* AjaxPagingNavigationBehavior).
- *
+ *
* @param behaviour
* The behavior that the URL should point to
* @param listener
@@ -3116,17 +3120,17 @@
* Returns a bookmarkable URL that references a given page class using
a given set of page
* parameters. Since the URL which is returned contains all information
necessary to instantiate
* and render the page, it can be stored in a user's browser as a
stable bookmark.
- *
+ *
* @see RequestCycle#urlFor(IPageMap, Class, PageParameters)
- *
+ *
* @param pageMap
* Page map to use
* @param pageClass
* Class of page
* @param parameters
* Parameters to page
- *
- *
+ *
+ *
* @return Bookmarkable URL to page
*/
public final CharSequence urlFor(final IPageMap pageMap, final Class
pageClass,
@@ -3137,12 +3141,12 @@
/**
* Returns a URL that references the given request target.
- *
+ *
* @see RequestCycle#urlFor(IRequestTarget)
- *
+ *
* @param requestTarget
* the request target to reference
- *
+ *
* @return a URL that references the given request target
*/
public final CharSequence urlFor(final IRequestTarget requestTarget)
@@ -3152,7 +3156,7 @@
/**
* Gets a URL for the listener interface (e.g. ILinkListener).
- *
+ *
* @param listener
* The listener interface that the URL should call
* @return The URL
@@ -3164,9 +3168,9 @@
/**
* Returns a URL that references a shared resource through the provided
resource reference.
- *
+ *
* @see RequestCycle#urlFor(ResourceReference)
- *
+ *
* @param resourceReference
* The resource reference
* @return The url for the shared resource
@@ -3179,7 +3183,7 @@
/**
* Traverses all parent components of the given class in this
container, calling the visitor's
* visit method at each one.
- *
+ *
* @param c
* Class
* @param visitor
@@ -3212,7 +3216,7 @@
/**
* Registers a warning feedback message for this component.
- *
+ *
* @param message
* The feedback message
*/
@@ -3265,7 +3269,7 @@
/**
* Adds state change to page.
- *
+ *
* @param change
* The change
*/
@@ -3281,7 +3285,7 @@
/**
* Checks whether the given type has the expected name.
- *
+ *
* @param tag
* The tag to check
* @param name
@@ -3301,7 +3305,7 @@
/**
* Checks that a given tag has a required attribute value.
- *
+ *
* @param tag
* The tag
* @param key
@@ -3329,7 +3333,7 @@
/**
* Checks whether the hierarchy may be changed at all, and throws an
exception if this is not
* the case.
- *
+ *
* @param component
* the component which is about to be added or removed
*/
@@ -3363,7 +3367,7 @@
/**
* Prefixes an exception message with useful information about this.
component.
- *
+ *
* @param message
* The message
* @return The modified message
@@ -3375,7 +3379,7 @@
/**
* Finds the markup stream for this component.
- *
+ *
* @return The markup stream for this component. Since a Component
cannot have a markup stream,
* we ask this component's parent to search for it.
*/
@@ -3393,7 +3397,7 @@
/**
* If this Component is a Page, returns self. Otherwise, searches for
the nearest Page parent in
* the component hierarchy. If no Page parent can be found, null is
returned.
- *
+ *
* @return The Page or null if none can be found
*/
protected final Page findPage()
@@ -3406,10 +3410,10 @@
* Gets the subset of the currently coupled [EMAIL PROTECTED]
IBehavior}s that are of the provided type as
* a unmodifiable list or null if there are no behaviors attached.
Returns an empty list rather
* than null if there are no behaviors coupled to this component.
- *
+ *
* @param type
* The type or null for all
- *
+ *
* @return The subset of the currently coupled behaviors that are of
the provided type as a
* unmodifiable list or null
*/
@@ -3435,7 +3439,7 @@
/**
* THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT USE IT!
- *
+ *
* @param flag
* The flag to test
* @return True if the flag is set
@@ -3447,7 +3451,7 @@
/**
* THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT USE IT!
- *
+ *
* @param flag
* The flag to test
* @return True if the flag is set
@@ -3459,7 +3463,7 @@
/**
* Finds the innermost IModel object for an IModel that might contain
nested IModel(s).
- *
+ *
* @param model
* The model
* @return The innermost (most nested) model
@@ -3483,7 +3487,7 @@
* Gets the value defaultModelComparator. Implementations of this
interface can be used in the
* Component.getComparator() for testing the current value of the
components model data with the
* new value that is given.
- *
+ *
* @return the value defaultModelComparator
*/
protected IModelComparator getModelComparator()
@@ -3496,7 +3500,7 @@
* stateless, otherwise the component will be treat as stateful. In
order for page to be
* stateless (and not to be stored in session), all components (and
component behaviors) must be
* stateless.
- *
+ *
* @return whether the component can be stateless
*/
protected boolean getStatelessHint()
@@ -3508,7 +3512,7 @@
* Called when a null model is about to be retrieved in order to allow
a subclass to provide an
* initial model. This gives FormComponent, for example, an opportunity
to instantiate a model
* on the fly using the containing Form's model.
- *
+ *
* @return The model
*/
protected IModel initModel()
@@ -3542,9 +3546,9 @@
/**
* THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT CALL OR
OVERRIDE.
- *
+ *
* Called when a request begins.
- *
+ *
* @Deprecated use [EMAIL PROTECTED] #onBeforeRender()} instead
*/
protected final void internalOnAttach()
@@ -3553,11 +3557,11 @@
/**
* THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT CALL OR
OVERRIDE.
- *
+ *
* Called when a request ends.
- *
+ *
* @Deprecated use [EMAIL PROTECTED] #onBeforeRender()} instead
- *
+ *
*/
protected final void internalOnDetach()
{
@@ -3565,7 +3569,7 @@
/**
* THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT CALL OR
OVERRIDE.
- *
+ *
* Called anytime a model is changed via setModel or setModelObject.
*/
protected void internalOnModelChanged()
@@ -3574,7 +3578,7 @@
/**
* Convenience method that sets the attached flags.
- *
+ *
* @param attached
*/
protected final void markAttached(boolean attached)
@@ -3592,7 +3596,7 @@
/**
* Components are allowed to reject behavior modifiers.
- *
+ *
* @param behavior
* @return False, if the component should not apply this behavior
*/
@@ -3610,7 +3614,7 @@
/**
* If true, all attribute modifiers will be ignored
- *
+ *
* @return True, if attribute modifiers are to be ignored
*/
protected final boolean isIgnoreAttributeModifier()
@@ -3643,7 +3647,7 @@
* <p>
* If you need to get notification when page is taken out of Session
(before calling the event
* listener), you can use the [EMAIL PROTECTED] Page#onPageAttached()}
method.
- *
+ *
* @deprecated
*/
protected final void onAttach()
@@ -3656,11 +3660,11 @@
* <p>
* *NOTE* If you override this, you *must* call super.onBeforeRender()
within your
* implementation.
- *
+ *
* Because this method is responsible for cascading [EMAIL PROTECTED]
#onBeforeRender()} call to its
* children it is strongly recommended that super call is made at the
end of the override.
* </p>
- *
+ *
* @see Component#callOnBeforeRenderIfNotVisible()
*/
protected void onBeforeRender()
@@ -3673,10 +3677,10 @@
/**
* Override this method if you want onBeforeRender to be called even
when your component is not
* visible. default this returns false.
- *
+ *
* @return boolean, if true then onBeforeRender is called even for none
visible components,
* default false.
- *
+ *
* @see Component#onBeforeRender()
*/
protected boolean callOnBeforeRenderIfNotVisible()
@@ -3695,7 +3699,7 @@
/**
* Processes the component tag.
- *
+ *
* @param tag
* Tag to modify
*/
@@ -3713,7 +3717,7 @@
/**
* Processes the body.
- *
+ *
* @param markupStream
* The markup stream
* @param openTag
@@ -3725,11 +3729,11 @@
/**
* Called to allow a component to detach resources after use.
- *
+ *
* Overrides of this method MUST call the super implementation, the
most logical place to do
* this is the last line of the override method.
- *
- *
+ *
+ *
*/
protected void onDetach()
{
@@ -3762,7 +3766,7 @@
/**
* Implementation that renders this component.
- *
+ *
* @since Wicket 1.2
* @param markupStream
*/
@@ -3772,7 +3776,7 @@
* Writes a simple tag out to the response stream. Any components that
might be referenced by
* the tag are ignored. Also undertakes any tag attribute modifications
if they have been added
* to the component.
- *
+ *
* @param tag
* The tag to write
*/
@@ -3823,7 +3827,7 @@
/**
* Replaces the body with the given one.
- *
+ *
* @param markupStream
* The markup stream to replace the tag body in
* @param tag
@@ -3888,7 +3892,7 @@
/**
* THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT USE IT!
- *
+ *
* @param flag
* The flag to set
* @param set
@@ -3908,7 +3912,7 @@
/**
* THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT USE IT!
- *
+ *
* @param flag
* The flag to set
* @param set
@@ -3921,7 +3925,7 @@
/**
* If true, all attribute modifiers will be ignored
- *
+ *
* @param ignore
* If true, all attribute modifiers will be ignored
* @return This
@@ -3935,10 +3939,10 @@
/**
* The markup stream will be assigned to the component at the beginning
of the component render
* phase. It is temporary working variable only.
- *
+ *
* @see #findMarkupStream()
* @see MarkupContainer#getMarkupStream()
- *
+ *
* @param markupStream
* The current markup stream which should be applied by the
component to render
* itself
@@ -3973,7 +3977,7 @@
/**
* Gets the component at the given path.
- *
+ *
* @param path
* Path to component
* @return The component at the path
@@ -3993,7 +3997,7 @@
/**
* Checks whether or not this component has a markup id value
generated, whether it is automatic
* or user defined
- *
+ *
* @return true if this component has a markup id value generated
*/
final boolean hasMarkupIdMetaData()
@@ -4044,7 +4048,7 @@
/**
* Renders the close tag at the current position in the markup stream.
- *
+ *
* @param markupStream
* the markup stream
* @param openTag
@@ -4094,7 +4098,7 @@
/**
* Sets the id of this component. This method is private because the
only time a component's id
* can be set is in its constructor.
- *
+ *
* @param id
* The non-null id of this component
*/
@@ -4109,7 +4113,7 @@
/**
* Sets the parent of a component.
- *
+ *
* @param parent
* The parent container
*/
@@ -4124,7 +4128,7 @@
/**
* Sets the render allowed flag.
- *
+ *
* @param renderAllowed
*/
final void setRenderAllowed(boolean renderAllowed)
@@ -4134,7 +4138,7 @@
/**
* Sets the render allowed flag.
- *
+ *
* Visit all this page's children (overridden in MarkupContainer) to
check rendering
* authorization, as appropriate. We set any result; positive or
negative as a temporary boolean
* in the components, and when a authorization exception is thrown it
will block the rendering