]> source.dussan.org Git - vaadin-framework.git/commitdiff
Pulled changesets from branches/4.0.0-SRIT into trunk, done by
authorJani Laakso <jani.laakso@itmill.com>
Thu, 12 Apr 2007 14:41:25 +0000 (14:41 +0000)
committerJani Laakso <jani.laakso@itmill.com>
Thu, 12 Apr 2007 14:41:25 +0000 (14:41 +0000)
mohamed.atique@renaissance-it.com. All changes are related to javadocs only.
Merge was done beetween revisions 924:1192.

svn changeset:1212/svn branch:trunk

107 files changed:
src/com/itmill/toolkit/Application.java
src/com/itmill/toolkit/data/Buffered.java
src/com/itmill/toolkit/data/BufferedValidatable.java
src/com/itmill/toolkit/data/Container.java
src/com/itmill/toolkit/data/Item.java
src/com/itmill/toolkit/data/Property.java
src/com/itmill/toolkit/data/Validatable.java
src/com/itmill/toolkit/data/Validator.java
src/com/itmill/toolkit/data/util/BeanItem.java
src/com/itmill/toolkit/data/util/ContainerHierarchicalWrapper.java
src/com/itmill/toolkit/data/util/ContainerOrderedWrapper.java
src/com/itmill/toolkit/data/util/FilesystemContainer.java
src/com/itmill/toolkit/data/util/HierarchicalContainer.java
src/com/itmill/toolkit/data/util/IndexedContainer.java
src/com/itmill/toolkit/data/util/MethodProperty.java
src/com/itmill/toolkit/data/util/ObjectProperty.java
src/com/itmill/toolkit/data/util/PropertysetItem.java
src/com/itmill/toolkit/data/util/QueryContainer.java
src/com/itmill/toolkit/data/validator/CompositeValidator.java
src/com/itmill/toolkit/data/validator/NullValidator.java
src/com/itmill/toolkit/data/validator/StringLengthValidator.java
src/com/itmill/toolkit/event/Action.java
src/com/itmill/toolkit/event/EventRouter.java
src/com/itmill/toolkit/event/ListenerMethod.java
src/com/itmill/toolkit/event/MethodEventSource.java
src/com/itmill/toolkit/service/ApplicationContext.java
src/com/itmill/toolkit/service/FileTypeResolver.java
src/com/itmill/toolkit/service/License.java
src/com/itmill/toolkit/terminal/ApplicationResource.java
src/com/itmill/toolkit/terminal/ClassResource.java
src/com/itmill/toolkit/terminal/CompositeErrorMessage.java
src/com/itmill/toolkit/terminal/DownloadStream.java
src/com/itmill/toolkit/terminal/ErrorMessage.java
src/com/itmill/toolkit/terminal/ExternalResource.java
src/com/itmill/toolkit/terminal/FileResource.java
src/com/itmill/toolkit/terminal/KeyMapper.java
src/com/itmill/toolkit/terminal/PaintException.java
src/com/itmill/toolkit/terminal/PaintTarget.java
src/com/itmill/toolkit/terminal/Paintable.java
src/com/itmill/toolkit/terminal/ParameterHandler.java
src/com/itmill/toolkit/terminal/Resource.java
src/com/itmill/toolkit/terminal/Scrollable.java
src/com/itmill/toolkit/terminal/Sizeable.java
src/com/itmill/toolkit/terminal/StreamResource.java
src/com/itmill/toolkit/terminal/SystemError.java
src/com/itmill/toolkit/terminal/Terminal.java
src/com/itmill/toolkit/terminal/ThemeResource.java
src/com/itmill/toolkit/terminal/URIHandler.java
src/com/itmill/toolkit/terminal/UploadStream.java
src/com/itmill/toolkit/terminal/UserError.java
src/com/itmill/toolkit/terminal/VariableOwner.java
src/com/itmill/toolkit/terminal/web/AjaxApplicationManager.java
src/com/itmill/toolkit/terminal/web/AjaxHttpUploadStream.java
src/com/itmill/toolkit/terminal/web/AjaxPaintTarget.java
src/com/itmill/toolkit/terminal/web/AjaxVariableMap.java
src/com/itmill/toolkit/terminal/web/ApplicationServlet.java
src/com/itmill/toolkit/terminal/web/CollectionThemeSource.java
src/com/itmill/toolkit/terminal/web/DebugWindow.java
src/com/itmill/toolkit/terminal/web/DirectoryThemeSource.java
src/com/itmill/toolkit/terminal/web/HttpUploadStream.java
src/com/itmill/toolkit/terminal/web/HttpVariableMap.java
src/com/itmill/toolkit/terminal/web/JarThemeSource.java
src/com/itmill/toolkit/terminal/web/Log.java
src/com/itmill/toolkit/terminal/web/MultipartRequest.java
src/com/itmill/toolkit/terminal/web/ServletMultipartRequest.java
src/com/itmill/toolkit/terminal/web/ServletThemeSource.java
src/com/itmill/toolkit/terminal/web/Theme.java
src/com/itmill/toolkit/terminal/web/ThemeFunctionLibrary.java
src/com/itmill/toolkit/terminal/web/ThemeSource.java
src/com/itmill/toolkit/terminal/web/UIDLTransformer.java
src/com/itmill/toolkit/terminal/web/UIDLTransformerException.java
src/com/itmill/toolkit/terminal/web/UIDLTransformerFactory.java
src/com/itmill/toolkit/terminal/web/UIDLTransformerType.java
src/com/itmill/toolkit/terminal/web/WebApplicationContext.java
src/com/itmill/toolkit/terminal/web/WebBrowser.java
src/com/itmill/toolkit/terminal/web/WebBrowserProbe.java
src/com/itmill/toolkit/terminal/web/WebPaintTarget.java
src/com/itmill/toolkit/terminal/web/XSLReader.java
src/com/itmill/toolkit/ui/AbstractComponent.java
src/com/itmill/toolkit/ui/AbstractComponentContainer.java
src/com/itmill/toolkit/ui/AbstractField.java
src/com/itmill/toolkit/ui/BaseFieldFactory.java
src/com/itmill/toolkit/ui/Button.java
src/com/itmill/toolkit/ui/Component.java
src/com/itmill/toolkit/ui/ComponentContainer.java
src/com/itmill/toolkit/ui/CustomComponent.java
src/com/itmill/toolkit/ui/CustomLayout.java
src/com/itmill/toolkit/ui/DateField.java
src/com/itmill/toolkit/ui/Embedded.java
src/com/itmill/toolkit/ui/Field.java
src/com/itmill/toolkit/ui/FieldFactory.java
src/com/itmill/toolkit/ui/Form.java
src/com/itmill/toolkit/ui/FrameWindow.java
src/com/itmill/toolkit/ui/GridLayout.java
src/com/itmill/toolkit/ui/Label.java
src/com/itmill/toolkit/ui/Layout.java
src/com/itmill/toolkit/ui/Link.java
src/com/itmill/toolkit/ui/OrderedLayout.java
src/com/itmill/toolkit/ui/Panel.java
src/com/itmill/toolkit/ui/ProgressIndicator.java
src/com/itmill/toolkit/ui/Select.java
src/com/itmill/toolkit/ui/TabSheet.java
src/com/itmill/toolkit/ui/Table.java
src/com/itmill/toolkit/ui/TextField.java
src/com/itmill/toolkit/ui/Tree.java
src/com/itmill/toolkit/ui/Upload.java
src/com/itmill/toolkit/ui/Window.java

index bff944bdc9045367f173258a4e7c32dc4808bfce..bb6d7dc1d57620e6bad17328ff6f62d88e50ff55 100644 (file)
@@ -63,7 +63,7 @@ import java.net.URL;
  * As mentioned, all IT Mill Toolkit applications must inherit this class.
  * However, this is almost all of what one needs to do to create a fully
  * functional application. The only thing a class inheriting the
- * <code>Application</code> needs to do is implement the <code>init()</code>
+ * <code>Application</code> needs to do is implement the <code>init</code> method
  * where it creates the windows it needs to perform its function. Note that all
  * applications must have at least one window: the main window. The first
  * unnamed window constructed by an application automatically becomes the main
@@ -164,9 +164,10 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
        private Focusable pendingFocus;
 
        /**
-        * Gets a window by name. Returns <code>null</code> if the application is
-        * not running or it does not contain a window corresponding to
-        * <code>name</code>.
+        * <p>
+        * Gets a window by name. Returns <code>null</code>  if the application is not
+        * running or it does not contain a window corresponding to the name.
+        * </p>
         * 
         * @param name
         *            The name of the window.
@@ -183,7 +184,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
 
                return window;
        }
-
+       
        /**
         * Adds a new window to the application.
         * 
@@ -196,7 +197,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
         *            the new <code>Window</code> to add
         * @throws IllegalArgumentException
         *             if a window with the same name as the new window already
-        *             exists in the application
+        *             exists in the application.
         * @throws NullPointerException
         *             if the given <code>Window</code> or its name is
         *             <code>null</code>
@@ -257,10 +258,10 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
        }
 
        /**
-        * Removes the specified window from the application.
+        * Removes the specified window  from the application.
         * 
         * @param window
-        *            The window to be removed
+        *            The window to be removed.
         */
        public void removeWindow(Window window) {
                if (window != null && windows.contains(window)) {
@@ -297,11 +298,15 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
        }
 
        /**
-        * Sets the user of the application instance. An application instance may
-        * have a user associated to it. This can be set in login procedure or
-        * application initialization. A component performing the user login
-        * procedure can assign the user property of the application and make the
-        * user object available to other components of the application.
+        * <p>
+        * Sets the user of the application instance. An application instance may have
+        * a user associated to it. This can be set in login procedure or application initialization. 
+        * </p>
+        * <p>
+        * A component performing the user login procedure can assign the user property
+        * of the application and make the user object available to other components 
+        * of the application.
+        * </p>
         * 
         * @param user
         *            the new user.
@@ -332,24 +337,24 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
        }
 
        /**
-        * Ends the Application. In effect this will cause the application stop
-        * returning any windows when asked.
+        * Ends the Application. In effect this will cause the application 
+        * stop returning any windows when asked.
         */
        public void close() {
                applicationIsRunning = false;
        }
 
        /**
-        * Starts the application on the given URL. After this call the application
-        * corresponds to the given URL and it will return windows when asked for
-        * them.
+        * Starts the application on the given URL.After this call the 
+        * application corresponds to the given URL and it will return 
+        * windows when asked for them.
         * 
         * @param applicationUrl
-        *            The URL the application should respond to
+        *            The URL the application should respond to.
         * @param applicationProperties
         *            Application properties as specified by the adapter.
         * @param context
-        *            The context application will be running in
+        *            The context application will be running in.
         * 
         */
        public void start(URL applicationUrl, Properties applicationProperties,
@@ -362,10 +367,10 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
        }
 
        /**
-        * Tests if the application is running or if it has it been finished.
+        * Tests if the application is running or if it has been finished.
         * 
         * @return <code>true</code> if the application is running,
-        *         <code>false</code> if not
+        *         <code>false</code> if not.
         */
        public boolean isRunning() {
                return applicationIsRunning;
@@ -381,18 +386,19 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
        }
 
        /**
-        * Main initializer of the application. This method is called by the
+        * <p>
+        * Main initializer of the application. The <code>init</code> method is called by the
         * framework when the application is started, and it should perform whatever
         * initialization operations the application needs, such as creating windows
         * and adding components to them.
+        * </p>
         */
        public abstract void init();
 
        /**
-        * Gets the application's theme. The application's theme is the default
-        * theme used by all the windows in it that do not explicitly specify a
-        * theme. If the application theme is not explicitly set, the
-        * <code>null</code> is returned.
+        * Gets the application's theme. The application's theme is the default theme
+        * used by all the windows in it that do not explicitly  specify a theme. 
+        * If the application theme is not explicitly set, the <code>null</code> is returned.
         * 
         * @return the name of the application's theme
         */
@@ -401,9 +407,11 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
        }
 
        /**
-        * Sets the application's theme. Note that this theme can be overridden by
-        * the windows. <code>null</code> implies the default terminal theme.
-        * 
+        * Sets the application's theme. 
+        * <p>
+        * Note that this theme can be overridden by the windows. <code>null</code> 
+        * implies the default terminal theme.
+        * </p>
         * @param theme
         *            The new theme for this application
         */
@@ -431,19 +439,20 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
        }
 
        /**
-        * Returns the mainWindow of the application.
+        * Gets the mainWindow of the application.
         * 
-        * @return Window
+        * @return the main window
         */
        public Window getMainWindow() {
                return mainWindow;
        }
 
        /**
-        * Sets the mainWindow. If the main window is not explicitly set, the main
-        * window defaults to first created window. Setting window as a main window
-        * of this application also adds the window to this application.
-        * 
+        * <p>
+        * Sets the mainWindow. If the main window is not explicitly set, the main window
+        * defaults to first created window. Setting window as a main window of this 
+        * application also adds the window to this application.
+        * </p>
         * @param mainWindow
         *            The mainWindow to set
         */
@@ -466,7 +475,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
 
        /**
         * Searches for the property with the specified name in this application.
-        * The method returns null if the property is not found.
+        * This method returns <code>null</code> if the property is not found.
         * 
         * @param name
         *            The name of the property.
@@ -477,8 +486,10 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
        }
 
        /**
-        * Add new resource to the application. The resource can be accessed by the
-        * user of the application.
+        * Adds new resource to the application. The resource can be accessed 
+        * by the user of the application.
+        * @param resource
+        *                                      the resource to add.
         */
        public void addResource(ApplicationResource resource) {
 
@@ -494,7 +505,11 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
                keyResourceMap.put(key, resource);
        }
 
-       /** Remove resource from the application. */
+       /** 
+        * Removes the  resource from the application. 
+        * @param resource
+        *                                      the resource to remove.
+        */
        public void removeResource(ApplicationResource resource) {
                Object key = resourceKeyMap.get(resource);
                if (key != null) {
@@ -503,7 +518,11 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
                }
        }
 
-       /** Get relative uri of the resource */
+       /**
+        *  Gets the relative uri of the resource. 
+        *  @param resource
+        *                              the resource to get relative location.
+        */
        public String getRelativeLocation(ApplicationResource resource) {
 
                // Get the key
@@ -576,19 +595,27 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
                return null;
        }
 
-       /** Get thed default locale for this application */
+       /** 
+        * Gets the default locale for this application. 
+        * @return the locale of this application. 
+        */
        public Locale getLocale() {
                if (this.locale != null)
                        return this.locale;
                return Locale.getDefault();
        }
 
-       /** Set the default locale for this application */
+       /**
+        * Sets the default locale for this application.
+        * @param locale        Locale object
+        *                      
+        */
        public void setLocale(Locale locale) {
                this.locale = locale;
        }
 
        /**
+        * <p>An event that characterizes a change in the current selection.</p>
         * Application user change event sent when the setUser is called to change
         * the current user of the application.
         * 
@@ -609,7 +636,12 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
                /** Previous user of the application */
                private Object prevUser;
 
-               /** Contructor for user change event */
+               /** 
+                * Contructor for user change event.
+                * @param source
+                * @param newUser new User
+                * @param prevUser previous User
+                */
                public UserChangeEvent(Application source, Object newUser,
                                Object prevUser) {
                        super(source);
@@ -617,24 +649,34 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
                        this.prevUser = prevUser;
                }
 
-               /** Get the new user of the application */
+               /** 
+                * Gets the new user of the application.
+                * @return new User.
+                */
                public Object getNewUser() {
                        return newUser;
                }
 
-               /** Get the previous user of the application */
+               /**
+                * Gets the previous user of the application.
+                * @return previous Toolkit user, if user has not changed 
+                *                      ever on application it returns <code>null</code>
+                */
                public Object getPreviousUser() {
                        return prevUser;
                }
 
-               /** Get the application where the user change occurred */
+               /**
+                * Gets the application where the user change occurred.
+                * @return Application
+                */
                public Application getApplication() {
                        return (Application) getSource();
                }
        }
 
        /**
-        * Public interface for listening application user changes
+        * The <code>UserChangeListener</code> interface for listening application user changes.
         * 
         * @version
         * @VERSION@
@@ -642,18 +684,30 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
         */
        public interface UserChangeListener extends EventListener {
 
-               /** Invoked when the application user has changed */
+               /**
+                * The <code>applicationUserChanged</code> method Invoked when the application user has changed.
+                * @param event 
+                *                              change event.
+                */
                public void applicationUserChanged(Application.UserChangeEvent event);
        }
 
-       /** Add user change listener */
+       /**
+        * Adds user change listener.
+        * @param listener
+        *                                      user change listener to add.
+     */
        public void addListener(UserChangeListener listener) {
                if (userChangeListeners == null)
                        userChangeListeners = new LinkedList();
                userChangeListeners.add(listener);
        }
 
-       /** Remove user change listener */
+       /**
+        * Removes user change listener.
+        * @param listener
+        *                                      user change listener to remove.
+        */
        public void removeListener(UserChangeListener listener) {
                if (userChangeListeners == null)
                        return;
@@ -683,18 +737,25 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
                        this.window = window;
                }
 
-               /** Get the detached window */
+               /**
+                * Gets the detached window.
+                * @return detached window
+                */
                public Window getWindow() {
                        return window;
                }
 
-               /** Get the application from which the window was detached */
+               /** 
+                * Gets the application from which the window was detached. 
+                * @return Application
+                */
                public Application getApplication() {
                        return (Application) getSource();
                }
        }
 
        /** Window attach event */
+       
        public class WindowAttachEvent extends EventObject {
 
                /**
@@ -705,7 +766,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
                private Window window;
 
                /**
-                * Create event.
+                * Creates event.
                 * 
                 * @param window
                 *            Attached window.
@@ -715,12 +776,18 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
                        this.window = window;
                }
 
-               /** Get the attached window */
+               /** 
+                * Gets the attached window.
+                * @return attached window.
+                */
                public Window getWindow() {
                        return window;
                }
 
-               /** Get the application to which the window was attached */
+               /**
+                * Gets the application to which the window was attached.
+                * @return Application.
+                */
                public Application getApplication() {
                        return (Application) getSource();
                }
@@ -729,32 +796,52 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
        /** Window attach listener interface */
        public interface WindowAttachListener {
 
-               /** Window attached */
+               /** 
+                * Window attached
+                * @param event 
+                *                              change event. 
+                */
                public void windowAttached(WindowAttachEvent event);
        }
 
        /** Window detach listener interface */
        public interface WindowDetachListener {
 
-               /** Window attached */
+               /** 
+                * Window detached.
+                * @param event 
+                *                              change event.
+                */
                public void windowDetached(WindowDetachEvent event);
        }
 
-       /** Add window attach listener */
+       /**
+        *  Adds window attach listener.
+        *  @param listener 
+        *                              window attach listener to add.
+        */
        public void addListener(WindowAttachListener listener) {
                if (windowAttachListeners == null)
                        windowAttachListeners = new LinkedList();
                windowAttachListeners.add(listener);
        }
 
-       /** Add window detach listener */
+       /**
+        *  Adds window detach listener.
+        *  @param listener 
+        *                              window detach listener to add.
+        */
        public void addListener(WindowDetachListener listener) {
                if (windowDetachListeners == null)
                        windowDetachListeners = new LinkedList();
                windowDetachListeners.add(listener);
        }
 
-       /** Remove window attach listener */
+       /**
+        *  Removes window attach listener.
+        *  @param listener
+        *                              window attach listener to remove.
+        */
        public void removeListener(WindowAttachListener listener) {
                if (windowAttachListeners != null) {
                        windowAttachListeners.remove(listener);
@@ -763,7 +850,11 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
                }
        }
 
-       /** Remove window detach listener */
+       /** 
+        * Removes window detach listener.
+        * @param listener 
+        *                                      window detach listener to remove.
+        */
        public void removeListener(WindowDetachListener listener) {
                if (windowDetachListeners != null) {
                        windowDetachListeners.remove(listener);
@@ -773,11 +864,13 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
        }
 
        /**
-        * Returns the URL user is redirected to on application close. If the URL is
-        * null, the application is closed normally as defined by the application
-        * running environment: Desctop application just closes the application
-        * window and web-application redirects the browser to application main URL.
-        * 
+        * Returns the URL user is redirected to on application close.If the URL
+        * is <code>null</code>, the application is closed normally as defined by
+        * the application running environment.
+        * <p>
+        * Desctop application just closes the application window and web-application redirects 
+        * the browser to application main URL.
+        * </p>
         * @return URL
         */
        public String getLogoutURL() {
@@ -785,10 +878,10 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
        }
 
        /**
-        * Sets the URL user is redirected to on application close. If the URL is
-        * null, the application is closed normally as defined by the application
-        * running environment: Desctop application just closes the application
-        * window and web-application redirects the browser to application main URL.
+        * Sets the URL user is redirected to on application close. If the URL is <code>null</code>,
+        * the application is closed normally as defined by the application running environment:
+        * Desctop application just closes the application window and web-application redirects
+        * the browser to application main URL.
         * 
         * @param logoutURL
         *            The logoutURL to set
@@ -797,12 +890,18 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
                this.logoutURL = logoutURL;
        }
 
-       /** This method is invoked by the terminal on any exception that occurs in application 
-        * and is thrown by the setVariable() to the terminal. The default implementation sets
-        * the exceptions as ComponentErrors to the component that initiated the exception. 
+       /** 
+        * <p>
+        * Invoked by the terminal on any exception that occurs in application and is thrown by 
+        * the <code>setVariable</code> to the terminal. The default implementation sets
+        * the exceptions as <code>ComponentErrors</code> to the component that initiated the exception.
+        * </p>
+        * <p> 
         * You can safely override this method in your application in order to direct the errors
         * to some other destination (for example log).
-        * 
+        * </p>
+        * @param event 
+        *                              change event.
         * @see com.itmill.toolkit.terminal.Terminal.ErrorListener#terminalError(com.itmill.toolkit.terminal.Terminal.ErrorEvent)
         */
        public void terminalError(Terminal.ErrorEvent event) {
@@ -829,23 +928,24 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
        }
 
        /**
-        * Get application context.
-        * 
+        * Gets application context.
+        * <p>
         * The application context is the environment where the application is
         * running in.
+        * </p>
+        * @return context
         */
        public ApplicationContext getContext() {
                return context;
        }
 
        /**
-        * Get the license this application is running on.
-        * 
-        * The license is initialized by the ApplicationServlet before application
-        * is started. The the license-file can not be found in
-        * WEB-INF/itmill-toolkit-license.xml, you can set its source in application
-        * init().
-        * 
+        * Gets the license this application is running on.
+        * <p>
+        * The license is initialized by the <code>ApplicationServlet</code> class before application
+        * is started. The license-file can not be found in <code>WEB-INF/itmill-toolkit-license.xml</code>,
+        * you can set its source in application <code>init</code> method.
+        * </p>
         * @return License this application is currently using
         */
        public License getToolkitLicense() {
@@ -853,11 +953,12 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
        }
 
        /**
-        * Set the license this application is currently using.
-        * 
-        * The license is initialized by the ApplicationServlet before application
-        * is started. Changing the license after application init has no effect.
-        * 
+        * Sets the license this application is currently using.
+        * <p>
+        * The license is initialized by the <code>ApplicationServlet</code> before application
+        * is started. Changing the license after application <code>init</code> method has no effect.
+        * </p>
+        *  
         * @param license
         *            New license for this application.
         */
index 0e14fdd8c61409100c460d08d3e30e5be8ae02cd..fcba99d313fcad913898957fb6b2ab0e6855de3f 100644 (file)
@@ -33,22 +33,29 @@ import com.itmill.toolkit.terminal.PaintException;
 import com.itmill.toolkit.terminal.PaintTarget;
 import com.itmill.toolkit.terminal.SystemError;
 
-/** <p>Defines the interface to commit and discard changes to an object,
- * supporting read-through and write-through modes.</p>
+/** 
+ * <p>Defines the interface to commit and discard changes to an object,
+ * supporting read-through and write-through modes.
+ * </p>
  * 
  * <p><i>Read-through mode</i> means that the value read from the buffered
  * object is constantly up to date with the data source.
  * <i>Write-through</i> mode means that all changes to the object are
- * immediately updated to the data source.</p>
+ * immediately updated to the data source.
+ * </p>
  * 
  * <p>Since these modes are independent, their combinations may result in
- * some behaviour that may sound surprising. For example, if a
- * <code>Buffered</code> object is in read-through mode but not in
- * write-through mode, the result is an object whose value is updated
+ * some behaviour that may sound surprising.
+ * </p>
+ * 
+ * <p>
+ * For example, if a <code>Buffered</code> object is in read-through mode
+ * but not in write-through mode, the result is an object whose value is updated
  * directly from the data source only if it's not locally modified. If the
  * value is locally modified, retrieving the value from the object would
  * result in a value that is different than the one stored in the data
- * source, even though the object is in read-through mode.</p>
+ * source, even though the object is in read-through mode.
+ * </p>
  * 
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -56,7 +63,8 @@ import com.itmill.toolkit.terminal.SystemError;
  */
 public interface Buffered {
 
-       /** Updates all changes since the previous commit to the data source.
+       /** 
+        * Updates all changes since the previous commit to the data source.
         * The value stored in the object will always be updated into the data
         * source when <code>commit</code> is called.
         * 
@@ -66,7 +74,8 @@ public interface Buffered {
         */
        public void commit() throws SourceException;
 
-       /** Discards all changes since last commit. The object updates its value
+       /** 
+        * Discards all changes since last commit. The object updates its value
         * from the data source.
         * 
         * @throws SourceException if the operation fails because of an 
@@ -75,7 +84,8 @@ public interface Buffered {
         */
        public void discard() throws SourceException;
 
-       /** Tests if the object is in write-through mode. If the object is in
+       /** 
+        * Tests if the object is in write-through mode. If the object is in
         * write-through mode, all modifications to it will result in
         * <code>commit</code> being called after the modification.
         * 
@@ -84,42 +94,51 @@ public interface Buffered {
         */
        public boolean isWriteThrough();
 
-       /** Sets the object's write-through mode to the specified status. When
-        * switching the write-through mode on, the <code>commit()</code>
+       /** 
+        * Sets the object's write-through mode to the specified status. When
+        * switching the write-through mode on, the <code>commit</code>
         * operation will be performed.
         * 
         * @param writeThrough Boolean value to indicate if the object should be
         * in write-through mode after the call.
+        * @throws SourceException
+        *                                                      If the operation fails because of an exception
+        *                                                       is thrown by the data source.
+        * 
         */
        public void setWriteThrough(boolean writeThrough) throws SourceException;
 
-       /** Tests if the object is in read-through mode. If the object is in
+       /** 
+        * Tests if the object is in read-through mode. If the object is in
         * read-through mode, retrieving its value will result in the value
-        * being first updated from the data source to the object. The only
-        * exception to this rule is that when the object is not in
+        * being first updated from the data source to the object.
+        * <p> 
+        * The only exception to this rule is that when the object is not in
         * write-through mode and it's buffer contains a modified value, the
         * value retrieved from the object will be the locally modified value
         * in the buffer which may differ from the value in the data source.
-        * 
+        * </p>
         * @return <code>true</code> if the object is in read-through mode,
         * <code>false</code> if it's not.
         */
        public boolean isReadThrough();
 
-       /** Sets the object's read-through mode to the specified status. When
+       /** 
+        * Sets the object's read-through mode to the specified status. When
         * switching read-through mode on, the object's value is updated from
         * the data source.
         * 
         * @param readThrough Boolean value to indicate if the object should be
         * in read-through mode after the call.
         * 
-        * @throws SourceException if the operation fails because of an 
+        * @throws SourceException If the operation fails because of an 
         * exception is thrown by the data source. The cause is included in the
         * exception.
         */
        public void setReadThrough(boolean readThrough) throws SourceException;
 
-       /** Tests if the value stored in the object has been modified since it
+       /** 
+        * Tests if the value stored in the object has been modified since it
         * was last updated from the data source.
         * 
         * @return <code>true</code> if the value in the object has been
@@ -128,8 +147,10 @@ public interface Buffered {
         */
        public boolean isModified();
 
-       /** An exception that signals that one or more exceptions occurred
-        * while a buffered object tried to access its data source.
+       /**
+        * An exception that signals that one or more exceptions occurred
+        * while a buffered object tried to access its data source 
+        * or if there is a problem in processing a data source.
         * @author IT Mill Ltd.
         * @version @VERSION@
         * @since 3.0
@@ -150,7 +171,8 @@ public interface Buffered {
                private Throwable[] causes = {
                };
 
-               /** Creates a source exception that does not include a cause.
+               /** 
+                * Creates a source exception that does not include a cause.
                 * 
                 * @param source the source object implementing the Buffered interface.
                 */
@@ -158,7 +180,8 @@ public interface Buffered {
                        this.source = source;
                }
 
-               /** Creates a source exception from a cause exception.
+               /** 
+                * Creates a source exception from a cause exception.
                 * 
                 * @param source the source object implementing the Buffered
                 * interface.
@@ -169,7 +192,8 @@ public interface Buffered {
                        causes = new Throwable[] { cause };
                }
 
-               /** Creates a source exception from multiplse causes.
+               /** 
+                * Creates a source exception from multiple causes.
                 * 
                 * @param source the source object implementing the Buffered
                 * interface.
@@ -180,7 +204,8 @@ public interface Buffered {
                        this.causes = causes;
                }
 
-               /** Get the cause of the exception.
+               /** 
+                * Gets the cause of the exception.
                 * 
                 * @return The cause for the exception.
                 * @throws MoreThanOneCauseException  if there is more than one cause
@@ -193,7 +218,8 @@ public interface Buffered {
                        return causes[0];
                }
 
-               /** Get all the causes for this exception. 
+               /** 
+                * Gets all the causes for this exception. 
                 * 
                 * @return throwables that caused this exception
                 */
@@ -201,7 +227,8 @@ public interface Buffered {
                        return causes;
                }
 
-               /** Get the source of the exception.
+               /** 
+                * Gets the source of the exception.
                 * 
                 * @return the Buffered object which generated this exception.
                 */
@@ -209,12 +236,15 @@ public interface Buffered {
                        return source;
                }
 
-               /** Get the error level of this buffered source exception. The 
+               /** 
+                * Gets the error level of this buffered source exception. The 
                 * level of the exception is maximum error level of all the contained
-                * causes. The causes that do not specify error level default to 
+                * causes.
+                * <p> 
+                * The causes that do not specify error level default to 
                 * <code>ERROR</code> level. Also source exception without any causes
                 * are of level <code>ERROR</code>.
-                * 
+                * </p>
                 * @see com.itmill.toolkit.terminal.ErrorMessage#getErrorLevel()
                 */
                public int getErrorLevel() {
index f5cc18f0de2aabdba6ae482b0b52b08429da75fe..de3a6edac51be9c5d63615833409b2171df429e0 100644 (file)
 package com.itmill.toolkit.data;
 
 
-/** <p>This interface defines the combination of Validatable and Buffered interfaces.
- * The combination of the interfaces defines if the invalid data is committed to 
- * datasource.</p>
+/** <p>
+ * This interface defines the combination of <code>Validatable</code> and
+ * <code>Buffered</code> interfaces. The combination of the interfaces defines
+ * if the invalid data is committed to datasource.
+ * </p>
  * 
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -39,11 +41,15 @@ package com.itmill.toolkit.data;
  */
 public interface BufferedValidatable extends Buffered, Validatable {
 
-       /** Is the invalid data committed to datasource. 
-        * The default is false. */
+       /** 
+        * Tests if the invalid data is committed to datasource. 
+        * The default is <code>false</code>.
+        */
        public boolean isInvalidCommitted();
        
-       /** Set if the invalid data should be committed to datasource. 
-        * The default is false. */     
+       /** 
+        * Sets if the invalid data should be committed to datasource. 
+        * The default is <code>false</code>.
+        */     
        public void setInvalidCommitted(boolean isCommitted);
 }
index 048a5da590ac3a51ea9d2647ea62002a4e6b3e41..6dd819719b7575fa65fdb04abe1e0e8572ccb994 100644 (file)
@@ -296,7 +296,7 @@ public interface Container {
         public boolean isLastId(Object itemId);
 
         /**
-         * Add new item after the given item.
+         * Adds new item after the given item.
          * <p>
          * Adding an item after null item adds the item as first item of the
          * ordered container.
@@ -311,7 +311,7 @@ public interface Container {
                 throws UnsupportedOperationException;
 
         /**
-         * Add new item after the given item.
+         * Adds new item after the given item.
          * <p>
          * Adding an item after null item adds the item as first item of the
          * ordered container.
@@ -334,13 +334,13 @@ public interface Container {
         /**
          * Sort method.
          * 
-         * Sort the container items.
+         * Sorts the container items.
          * 
          * @param propertyId
          *            Array of container property IDs, which values are used to
          *            sort the items in container as primary, secondary, ... 
          *                      sorting criterion. All of the item IDs must be in the 
-         *            collection returned by <code>getSortableContainerPropertyIds()</code>
+         *            collection returned by <code>getSortableContainerPropertyIds</code>
          * @param ascending
          *                     Array of sorting order flags corresponding to each property ID
          *                     used in sorting. If this array is shorter than propertyId array,
@@ -352,7 +352,7 @@ public interface Container {
         void sort(Object[] propertyId, boolean[] ascending);
 
         /**
-         * Get the container property IDs, which can be used to sort the item.
+         * Gets the container property IDs, which can be used to sort the item.
          * 
          * @return The sortable field ids.
          */
@@ -364,8 +364,8 @@ public interface Container {
     public interface Indexed extends Ordered {
 
         /**
-         * Gets the index of the Item corresponding to <code>itemId</code>.
-         * The following is true for the returned index: 0 <= index < size().
+         * Gets the index of the Item corresponding to the itemId.
+         * The following is <code>true</code> for the returned index: 0 <= index < size().
          * 
          * @param itemId
          *            ID of an Item in the Container
@@ -375,8 +375,7 @@ public interface Container {
         public int indexOfId(Object itemId);
 
         /**
-         * Get the ID of an Item by an index number. The following is true for
-         * the index: 0 <= index < size().
+         * Gets the ID of an Item by an index number. 
          * 
          * @param index
          *            Index of the requested id in the Container
@@ -385,7 +384,7 @@ public interface Container {
         public Object getIdByIndex(int index);
 
         /**
-         * Add new item at given index.
+         * Adds new item at given index.
          * <p>
          * The indexes of the item currently in the given position and all the
          * following items are incremented.
@@ -399,7 +398,7 @@ public interface Container {
         public Object addItemAt(int index) throws UnsupportedOperationException;
 
         /**
-         * Add new item at given index.
+         * Adds new item at given index.
          * <p>
          * The indexes of the item currently in the given position and all the
          * following items are incremented.
@@ -493,8 +492,7 @@ public interface Container {
          * Container also implements the <code>Managed</code> interface, the
          * items created with <code>newItem</code> can have children by
          * default.
-         * </p>
-         * 
+         *  
          * @param itemId
          *            ID of the Item in the container whose child capability is
          *            to be tested
@@ -509,8 +507,10 @@ public interface Container {
          * Sets the given Item's capability to have children. If the Item
          * identified with <code>itemId</code> already has children and
          * <code>areChildrenAllowed</code> is false this method fails and
-         * <code>false</code> is returned; the children must be first
-         * explicitly removed with
+         * <code>false</code> is returned.
+         * </p>
+         * <p>
+         * The children must be first explicitly removed with
          * {@link #setParent(Object itemId, Object newParentId)}or
          * {@link com.itmill.toolkit.data.Container#removeItem(Object itemId)}.
          * </p>
@@ -575,7 +575,7 @@ public interface Container {
     public interface Viewer {
 
         /**
-         * Set the Container that serves as the data source of the viewer.
+         * Sets the Container that serves as the data source of the viewer.
          * 
          * @param newDataSource
          *            The new data source Item
@@ -583,7 +583,7 @@ public interface Container {
         public void setContainerDataSource(Container newDataSource);
 
         /**
-         * Get the Container serving as the data source of the viewer.
+         * Gets the Container serving as the data source of the viewer.
          * 
          * @return data source Container
          */
@@ -592,11 +592,15 @@ public interface Container {
     }
 
     /**
+     * <p>
      * Interface implemented by the editor classes supporting editing the
      * Container. Implementing this interface means that the Container serving
-     * as the data source of the editor can be modified through it. Note that
-     * not implementing the <code>Container.Editor</code> interface does not
+     * as the data source of the editor can be modified through it.
+     * </p>
+     * <p>
+     *  Note that not implementing the <code>Container.Editor</code> interface does not
      * restrict the class from editing the Container contents internally.
+     * </p>
      */
     public interface Editor extends Container.Viewer {
 
@@ -607,7 +611,7 @@ public interface Container {
     /**
      * An <code>Event</code> object specifying the Container whose Item set
      * has changed. Note that these events are triggered only through succesful
-     * calls to the <code>newItem()</code> and <code>removeAllItems</code>
+     * calls to the <code>newItem</code> and <code>removeAllItems</code>
      * methods in the Container.Managed interface.
      */
     public interface ItemSetChangeEvent {
@@ -637,18 +641,19 @@ public interface Container {
      * listeners. By implementing this interface a class explicitly announces
      * that it will generate a <code>ItemSetChangeEvent</code> when its
      * contents are modified.
-     * 
-     * Note that the general Java convention is not to explicitly declare that a
+     * <p>
+     * Note: The general Java convention is not to explicitly declare that a
      * class generates events, but to directly define the
      * <code>addListener</code> and <code>removeListener</code> methods.
      * That way the caller of these methods has no real way of finding out if
      * the class really will send the events, or if it just defines the methods
      * to be able to implement an interface.
+     * </p>
      */
     public interface ItemSetChangeNotifier {
 
         /**
-         * Adds a Item set change listener for the object.
+         * Adds an Item set change listener for the object.
          * 
          * @param listener
          *            listener to be added
@@ -656,7 +661,7 @@ public interface Container {
         public void addListener(Container.ItemSetChangeListener listener);
 
         /**
-         * Removes a Item set change listener from the object.
+         * Removes the Item set change listener from the object.
          * 
          * @param listener
          *            listener to be removed
@@ -668,9 +673,12 @@ public interface Container {
 
     /**
      * An <code>Event</code> object specifying the Container whose Property
-     * set has changed. Note that these events are triggered only through
-     * succesful calls to the <code>addProperty</code> and
+     * set has changed.
+     *<p>
+     * Note: These events are triggered only through succesful calls to
+     * the <code>addProperty</code> and
      * <code>removeProperty</code> methods in the Container.Managed interface.
+     * </p>
      */
     public interface PropertySetChangeEvent {
 
@@ -699,17 +707,20 @@ public interface Container {
     }
 
     /**
+     * <p>
      * The interface for adding and removing <code>PropertySetChangeEvent</code>
      * listeners. By implementing this interface a class explicitly announces
      * that it will generate a <code>PropertySetChangeEvent</code> when its
      * contents are modified.
-     * 
+     * </p>
+     * <p>
      * Note that the general Java convention is not to explicitly declare that a
      * class generates events, but to directly define the
      * <code>addListener</code> and <code>removeListener</code> methods.
      * That way the caller of these methods has no real way of finding out if
      * the class really will send the events, or if it just defines the methods
      * to be able to implement an interface.
+     * </p>
      */
     public interface PropertySetChangeNotifier {
 
index 04f44885258046e9d571ce0d2989c76d7ee5ad12..d59e94edf473d1f89bf959f5d99095f56602a8f1 100644 (file)
@@ -30,9 +30,12 @@ package com.itmill.toolkit.data;
 
 import java.util.Collection;
 
-/** <p>Provides a mechanism for handling a set of Properties, each associated
+/** 
+ * <p>
+ * Provides a mechanism for handling a set of Properties, each associated
  * to a locally unique identifier. The interface is split into subinterfaces
- * to enable a class to implement only the functionalities it needs.</p>
+ * to enable a class to implement only the functionalities it needs.
+ * </p>
  * 
  * @author  IT Mill Ltd
  * @version @VERSION@
@@ -40,7 +43,8 @@ import java.util.Collection;
  */
 public interface Item {
 
-       /** Gets the Property corresponding to the given Property ID stored in
+       /** 
+        * Gets the Property corresponding to the given Property ID stored in
         * the Item. If the Item does not contain the Property, 
         * <code>null</code> is returned.
         * 
@@ -49,62 +53,72 @@ public interface Item {
         */
        public Property getItemProperty(Object id);
 
-       /** Gets the collection of IDs of all Properties stored in the Item.
+       /**
+        * Gets the collection of IDs of all Properties stored in the Item.
         * 
         * @return unmodifiable collection containing IDs of the Properties
         * stored the Item
         */
        public Collection getItemPropertyIds();
 
-       /** Tries to add a new Property into the Item.
+       /** 
+        * Tries to add a new Property into the Item.
         * 
         * <p>This functionality is optional.</p>
         * 
         * @param id ID of the new Property
-        * @param property the Property to be added and associated with
-        * <code>id</code>
-        * @throws UnsupportedOperationException if the operation is not supported.
+        * @param property the Property to be added and associated with the id   
         * @return <code>true</code> if the operation succeeded,
         * <code>false</code> if not
+        * @throws UnsupportedOperationException if the operation is not supported.
         */
        public boolean addItemProperty(Object id, Property property)
        throws UnsupportedOperationException;
 
-       /** Removes the Property identified by ID from the Item. 
-
-        * <p>This functionality is optional.</p>
+       /**
+        * Removes the Property identified by ID from the Item. 
+        *  
+        * <p>
+        * This functionality is optional.
+        * </p>
         *
         * @param id ID of the Property to be removed
-        * @throws UnsupportedOperationException if the operation is not supported.
         * @return <code>true</code> if the operation succeeded
+        * @throws UnsupportedOperationException if the operation is not supported.
         * <code>false</code> if not
         */
        public boolean removeItemProperty(Object id)
        throws UnsupportedOperationException;
 
-       /** Interface implemented by viewer classes capable of using an Item as
+       /** 
+        * Interface implemented by viewer classes capable of using an Item as
         * a data source.
         */
        public interface Viewer {
 
-               /** Sets the Item that serves as the data source of the viewer.
+               /**
+                * Sets the Item that serves as the data source of the viewer.
                 * 
                 * @param newDataSource The new data source Item
                 */
                public void setItemDataSource(Item newDataSource);
 
-               /** Gets the Item serving as the data source of the viewer.
+               /**
+                * Gets the Item serving as the data source of the viewer.
                 * 
                 * @return data source Item
                 */
                public Item getItemDataSource();
        }
 
-       /** Interface implemented by the editor classes capable of editing the
+       /**
+        * Interface implemented by the <code>Editor</code> classes capable of editing the
         * Item. Implementing this interface means that the Item serving as the
-        * data source of the editor can be modified through it. Note that
-        * not implementing the <code>Item.Editor</code> interface does not
+        * data source of the editor can be modified through it.
+        * <p> 
+        * Note : Not implementing the <code>Item.Editor</code> interface does not
         * restrict the class from editing the contents of an internally.
+        * </p>
         */
        public interface Editor extends Item.Viewer {
 
@@ -112,54 +126,63 @@ public interface Item {
 
        /* Property set change event ******************************************** */
 
-       /** An <code>Event</code> object specifying the Item whose contents
-        * has been changed through the Property.Managed interface. Note that
-        * the values stored in the Properties may change without triggering
+       /**
+        * An <code>Event</code> object specifying the Item whose contents
+        * has been changed through the <code>Property</code> interface.
+        * <p>
+        * Note: The values stored in the Properties may change without triggering
         * this event.
+        * </p>
         */
        public interface PropertySetChangeEvent {
 
-               /** Retrieves the Item whose contents has been modified.
+               /** 
+                * Retrieves the Item whose contents has been modified.
                 * 
                 * @return source Item of the event
                 */
                public Item getItem();
        }
 
-       /** The listener interface for receiving
+       /** 
+        * The listener interface for receiving
         * <code>PropertySetChangeEvent</code> objects.
         */
        public interface PropertySetChangeListener {
 
-               /** Notifies this listener that the Item's property set has changed.
+               /**
+                *  Notifies this listener that the Item's property set has changed.
                 * 
                 * @param event Property set change event object
                 */
                public void itemPropertySetChange(Item.PropertySetChangeEvent event);
        }
 
-       /** The interface for adding and removing
-        * <code>PropertySetChangeEvent</code> listeners. By implementing this
-        * interface a class explicitly announces that it will generate a
-        * <code>PropertySetChangeEvent</code> when its Property set is
-        * modified.
-        * 
-        * Note that the general Java convention is not to explicitly declare
+       /** 
+        * The interface for adding and removing <code>PropertySetChangeEvent</code> 
+        * listeners. By implementing this interface a class explicitly announces that
+        * it will generate a <code>PropertySetChangeEvent</code> when its Property 
+        * set is modified.
+        * <p>
+        * Note : The general Java convention is not to explicitly declare
         * that a class generates events, but to directly define the
         * <code>addListener</code> and <code>removeListener</code> methods.
         * That way the caller of these methods has no real way of finding out
         * if the class really will send the events, or if it just defines the
         * methods to be able to implement an interface.
+        * </p>
         */
        public interface PropertySetChangeNotifier {
 
-               /** Registers a new property set change listener for this Item.
+               /**
+                *  Registers a new property set change listener for this Item.
                 * 
                 * @param listener The new Listener to be registered.
                 */
                public void addListener(Item.PropertySetChangeListener listener);
 
-               /** Removes a previously registered property set change listener.
+               /**
+                *  Removes a previously registered property set change listener.
                 * 
                 * @param listener Listener to be removed.
                 */
index 8f5e40a1f36b5a5096f9de30a65677e5e4905fda..2f2f27638ddd160311d87f1fc19da8151e6e32e0 100644 (file)
 
 package com.itmill.toolkit.data;
 
-/** Property is a simple data object that contains one typed value. This
+/** 
+ * <p>
+ * The <code>Property</code> is a simple data object that contains one typed value. This
  * interface contains methods to inspect and modify the stored value and its
  * type, and the object's read-only state.  
+ * </p>
  * 
- * Property also defines the events ReadOnlyStatusChangeEvent and
- * ValueChangeEvent, and the associated listener and notifier interfaces.
- *
- * The Property.Viewer interface should be used to attach the Property to
+ * <p>
+ * The <code>Property</code> also defines the events <code>ReadOnlyStatusChangeEvent</code> and
+ * <code>ValueChangeEvent</code>, and the associated <code>listener</code> and <code>notifier</code> interfaces.
+ * </p>
+ * 
+ *<p>
+ * The <code>Property.Viewer</code> interface should be used to attach the Property to
  * an external data source. This way the value in the data source can be
- * inspected using the Property interface.
+ * inspected using the <code>Property</code> interface.
+ * </p>
  * 
- * The Property.editor interface should be implemented if the value needs to
+ * <p>
+ * The <code>Property.editor</code> interface should be implemented if the value needs to
  * be changed through the implementing class.
- * 
+ * </p>
  * @author  IT Mill Ltd
  * @version @VERSION@
  * @since 3.0
  */
 public interface Property {
     
-    /** Gets the value stored in the Property.
+    /** 
+     * Gets the value stored in the Property.
      * 
      * @return the value stored in the Property
      */
     public Object getValue();
     
-    /** Sets the value of the Property.
-     *
+    /** 
+     * Sets the value of the Property.
+     * <p>
      * Implementing this functionality is optional. If the functionality
      * is missing, one should declare the Property to be in read-only mode
-     * and throw Property.ReadOnlyException in this function.
-     *
-     * It is not required, but highly recommended to support setting
+     * and throw <code>Property.ReadOnlyException</code> in this function.
+     * </p>
+     * Note : It is not required, but highly recommended to support setting
      * the value also as a <code>String</code> in addition to the native
      * type of the Property (as given by the <code>getType</code> method).
      * If the <code>String</code> conversion fails or is unsupported, the
-     * method should throw </code>Property.ConversionException</code>. The
+     * method should throw <code>Property.ConversionException</code>. The
      * string conversion should at least understand the format returned by
-     * the <code>toString()</code> method of the Property.
+     * the <code>toString</code> method of the Property.
      *
      * @param newValue New value of the Property. This should be assignable
-     * to the type returned by <code>getType</code>, but also String type
+     * to the type returned by getType, but also String type
      * should be supported
      *
      * @throws Property.ReadOnlyException if the object is in read-only
      * mode
-     * @throws Property.ConversionException if <code>newValue</code> can't
+     * @throws Property.ConversionException if newValue can't
      * be converted into the Property's native type directly or through
      * String
      */
     public void setValue(Object newValue)
     throws Property.ReadOnlyException, Property.ConversionException;
     
-    /** Returns the value of the Property in human readable textual format.
+    /** 
+     * Returns the value of the Property in human readable textual format.
      * The return value should be assignable to the <code>setValue</code>
      * method if the Property is not in read-only mode.
      * 
@@ -90,7 +101,8 @@ public interface Property {
      */
     public String toString();
     
-    /** Returns the type of the Property. The methods <code>getValue</code>
+    /** 
+     * Returns the type of the Property. The methods <code>getValue</code>
      * and <code>setValue</code> must be compatible with this type: one
      * must be able to safely cast the value returned from
      * <code>getValue</code> to the given type and pass any variable
@@ -100,9 +112,10 @@ public interface Property {
      */
     public Class getType();
     
-    /** Tests if the Property is in read-only mode. In read-only mode calls
+    /** 
+     * Tests if the Property is in read-only mode. In read-only mode calls
      * to the method <code>setValue</code> will throw
-     * <code>ReadOnlyException</code>s and will not modify the value of the
+     * <code>ReadOnlyException</code> and will not modify the value of the
      * Property.
      *
      * @return <code>true</code> if the Property is in read-only mode,
@@ -110,16 +123,18 @@ public interface Property {
      */
     public boolean isReadOnly();
     
-    /** Sets the Property's read-only mode to the specified status.
+    /** 
+     * Sets the Property's read-only mode to the specified status.
      * 
      * This functionality is optional, but all properties must implement
-     * the <code>isReadOnly()</code> mode query correctly.
+     * the <code>isReadOnly</code> mode query correctly.
      * 
      * @param newStatus new read-only status of the Property
      */        
     public void setReadOnly(boolean newStatus);
     
-    /** <code>Exception</code> object that signals that a requested
+    /** 
+     * <code>Exception</code> object that signals that a requested
      * Property modification failed because it's in read-only mode.
      * @author IT Mill Ltd.
      * @version @VERSION@
@@ -132,13 +147,15 @@ public interface Property {
          */
         private static final long serialVersionUID = 3257571702287119410L;
 
-    /** Constructs a new <code>ReadOnlyException</code> without a detail
+        /** 
+         * Constructs a new <code>ReadOnlyException</code> without a detail
          * message.
          */
         public ReadOnlyException() {
         }
         
-        /** Constructs a new <code>ReadOnlyException</code> with the
+        /** 
+         * Constructs a new <code>ReadOnlyException</code> with the
          * specified detail message.
          * 
          * @param msg the detail message
@@ -148,8 +165,9 @@ public interface Property {
         }
     }
     
-    /** An exception that signals that the value passed to the
-     * <code>setValue()</code> method couldn't be converted to the native
+    /** 
+     * An exception that signals that the value passed to the
+     * <code>setValue</code> method couldn't be converted to the native
      * type of the Property.
      * @author IT Mill Ltd
      * @version @VERSION@
@@ -162,13 +180,15 @@ public interface Property {
          */
         private static final long serialVersionUID = 3257571706666366008L;
 
-        /** Constructs a new <code>ConversionException</code> without a
+        /** 
+         * Constructs a new <code>ConversionException</code> without a
          * detail message.
          */
         public ConversionException() {
         }
         
-        /** Constructs a new <code>ConversionException</code> with the
+        /** 
+         * Constructs a new <code>ConversionException</code> with the
          * specified detail message.
          * 
          * @param msg the detail message
@@ -177,7 +197,8 @@ public interface Property {
             super(msg);
         }
         
-        /** Constructs a new <code>ConversionException</code> from another
+        /** 
+         * Constructs a new <code>ConversionException</code> from another
          * exception.
          * 
          * @param cause The cause of the the conversion failure
@@ -187,7 +208,8 @@ public interface Property {
         }
     }
     
-    /** Interface implemented by the viewer classes capable of using a
+    /** 
+     * Interface implemented by the viewer classes capable of using a
      * Property as a data source.
      * @author IT Mill Ltd.
      * @version @VERSION@
@@ -195,25 +217,31 @@ public interface Property {
      */
     public interface Viewer {
         
-        /** Set the Property that serves as the data source of the viewer.
+        /** 
+         * Sets the Property that serves as the data source of the viewer.
          * 
          * @param newDataSource the new data source Property
          */
         public void setPropertyDataSource(Property newDataSource);
         
-        /** Get the Property serving as the data source of the viewer.
+        /** 
+         * Gets the Property serving as the data source of the viewer.
          * 
          * @return the Property serving as the viewers data source
          */
         public Property getPropertyDataSource();
     }
     
-    /** Interface implemented by the editor classes capable of editing the
-     * Property. Implementing this interface means that the Property serving
+    /** 
+     * Interface implemented by the editor classes capable of editing the
+     * Property. 
+     * <p>
+     * Implementing this interface means that the Property serving
      * as the data source of the editor can be modified through the editor.
      * It does not restrict the editor from editing the Property internally,
      * though if the Property is in a read-only mode, attempts to modify it
      * will result in the <code>ReadOnlyException</code> being thrown.
+     * </p>
      * @author IT Mill Ltd.
      * @version @VERSION@
      * @since 3.0
@@ -224,7 +252,8 @@ public interface Property {
     
     /* Value change event ******************************************* */
     
-    /** An <code>Event</code> object specifying the Property whose value
+    /** 
+     * An <code>Event</code> object specifying the Property whose value
      * has been changed.
      * @author IT Mill Ltd.
      * @version @VERSION@
@@ -232,51 +261,58 @@ public interface Property {
      */
     public interface ValueChangeEvent {
         
-        /** Retrieves the Property that has been modified.
+        /** 
+         * Retrieves the Property that has been modified.
          * 
          * @return source Property of the event
          */
         public Property getProperty();
     }
     
-    /** The listener interface for receiving ValueChangeEvent objects.
+    /** 
+     * The <code>listener</code> interface for receiving <code>ValueChangeEvent</code> objects.
      * @author IT Mill Ltd.
      * @version @VERSION@
      * @since 3.0
      **/
     public interface ValueChangeListener {
         
-        /** Notifies this listener that the Property's value has changed.
+        /** 
+         * Notifies this listener that the Property's value has changed.
          * 
          * @param event value change event object
          */
         public void valueChange(Property.ValueChangeEvent event);
     }
     
-    /** The interface for adding and removing <code>ValueChangeEvent</code>
+    /** 
+     * The interface for adding and removing <code>ValueChangeEvent</code>
      * listeners. If a Property wishes to allow other objects to receive
-     * <code>ValueChangeEvent</code>s generated by it, it must implement
+     * <code>ValueChangeEvent</code> generated by it, it must implement
      * this interface.
-     * 
-     * Note that the general Java convention is not to explicitly declare
+     * <p>
+     * Note : The general Java convention is not to explicitly declare
      * that a class generates events, but to directly define the
      * <code>addListener</code> and <code>removeListener</code> methods.
      * That way the caller of these methods has no real way of finding out
      * if the class really will send the events, or if it just defines the
      * methods to be able to implement an interface.
+     * </p>
      * @author IT Mill Ltd.
      * @version @VERSION@
      * @since 3.0
      */
     public interface ValueChangeNotifier {
         
-        /** Registers a new value change listener for this Property.
+        /** 
+         * Registers a new value change listener for this Property.
          * 
          * @param listener the new Listener to be registered
          */
         public void addListener(Property.ValueChangeListener listener);
         
-        /** Removes a previously registered value change listener.
+        /** 
+         * Removes a previously registered value change listener.
          * 
          * @param listener listener to be removed
          */
@@ -285,7 +321,8 @@ public interface Property {
     
     /* ReadOnly Status change event ***************************************** */
     
-    /** An <code>Event</code> object specifying the Property whose read-only
+    /** 
+     * An <code>Event</code> object specifying the Property whose read-only
      * status has been changed.
      * @author IT Mill Ltd.
      * @version @VERSION@
@@ -293,14 +330,16 @@ public interface Property {
      */
     public interface ReadOnlyStatusChangeEvent {
         
-        /** Property whose read-only state has changed.
+        /** 
+         * Property whose read-only state has changed.
          * 
          * @return source Property of the event.
          */
         public Property getProperty();
     }
     
-    /** The listener interface for receiving ReadOnlyStatusChangeEvent
+    /** 
+     * The listener interface for receiving <code>ReadOnlyStatusChangeEvent</code>
      * objects. 
      * @author IT Mill Ltd.
      * @version @VERSION@
@@ -308,7 +347,8 @@ public interface Property {
      * */
     public interface ReadOnlyStatusChangeListener {
         
-        /** Notifies this listener that a Property's read-only status has
+        /** 
+         * Notifies this listener that a Property's read-only status has
          * changed.
          * 
          * @param event Read-only status change event object
@@ -317,32 +357,35 @@ public interface Property {
         Property.ReadOnlyStatusChangeEvent event);
     }
     
-    /** The interface for adding and removing
-     * <code>ReadOnlyStatusChangeEvent</code> listeners. If a Property
-     * wishes to allow other objects to receive
-     * <code>ReadOnlyStatusChangeEvent</code>s generated by it, it must
+    /** 
+     * The interface for adding and removing <code>ReadOnlyStatusChangeEvent</code> 
+     * listeners. If a Property wishes to allow other objects to receive
+     * <code>ReadOnlyStatusChangeEvent</code> generated by it, it must
      * implement this interface.
-     * 
-     * Note that the general Java convention is not to explicitly declare
+     * <p>
+     * Note : The general Java convention is not to explicitly declare
      * that a class generates events, but to directly define the
      * <code>addListener</code> and <code>removeListener</code> methods.
      * That way the caller of these methods has no real way of finding out
      * if the class really will send the events, or if it just defines the
      * methods to be able to implement an interface.
+     * </p>
      * @author IT Mill Ltd.
      * @version @VERSION@
      * @since 3.0
      */
     public interface ReadOnlyStatusChangeNotifier {
         
-        /** Registers a new read-only status change listener for this
+        /** 
+         * Registers a new read-only status change listener for this
          * Property.
          * 
          * @param listener the new Listener to be registered
          */
         public void addListener(Property.ReadOnlyStatusChangeListener listener);
         
-        /** Remove a previously registered read-only status change listener.
+        /** 
+         * Removes a previously registered read-only status change listener.
          * 
          * @param listener listener to be removed
          */
index 67501c4a0a16a1e86dade409fc6f19f2ada40547..b60ee46b54a037cf3652b6fc1006fb94fa335c7e 100644 (file)
@@ -30,9 +30,12 @@ package com.itmill.toolkit.data;
 
 import java.util.Collection;
 
-/** <p>Interface for validatable objects. Defines methods to verify if the
+/** 
+ * <p>
+ * Interface for validatable objects. Defines methods to verify if the
  * object's value is valid or not, and to add, remove and list registered
- * validators of the object.</p>
+ * validators of the object.
+ * </p>
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -41,57 +44,86 @@ import java.util.Collection;
  */ 
 public interface Validatable {
     
-    /** Adds a new validator for this object.  The validator's
+    /**
+     * <p>
+     * Adds a new validator for this object. The validator's
      * {@link Validator#validate(Object)} method is activated every time the
      * object's value needs to be verified, that is, when the
      * {@link #isValid()} method is called. This usually happens when the
      * object's value changes.
+     * </p>
      * 
      * @param validator the new validator
      */
     void addValidator(Validator validator);
     
-    /** Removes a previously registered validator from the object. The
-     * specified validator is removed from the object and its
-     * <code>validate</code> method is no longer called in {@link #isValid()}.
+    /** 
+     * <p>
+     * Removes a previously registered validator from the object. The specified
+     * validator is removed from the object and its <code>validate</code> method
+     * is no longer called in {@link #isValid()}.
+     * </p>
      * 
      * @param validator the validator to remove
      */
     void removeValidator(Validator validator);
     
-    /** List all validators currently registered for the object. If no
+    /** 
+     * <p>
+     * Lists all validators currently registered for the object. If no
      * validators are registered, returns <code>null</code>.
+     * </p>
      * 
      * @return collection of validators or <code>null</code>
      */
     public Collection getValidators();
     
-    /** Tests the current value of the object against all registered
+    /** 
+     * <p>
+     * Tests the current value of the object against all registered
      * validators. The registered validators are iterated and for each the
      * {@link Validator#validate(Object)} method is called. If any validator
      * throws the {@link Validator.InvalidValueException} this method
      * returns <code>false</code>.
+     * </p>
      * 
      * @return <code>true</code> if the registered validators concur that
      * the value is valid, <code>false</code> otherwise
      */
     public boolean isValid(); 
 
-    /** Checks the validity of the validatable. If the validatable is valid
+    /**
+     * <p> 
+     * Checks the validity of the validatable. If the validatable is valid
      * this method should do nothing, and if it's not valid, it should throw
      * <code>Validator.InvalidValueException</code>
+     * </p>
      * 
      * @throws Validator.InvalidValueException if the value is not valid
      */
     public void validate()
     throws Validator.InvalidValueException;
 
-       /** Does the validabtable object accept invalid values. The default is true. */
+       /** 
+        * <p>
+        * Checks the validabtable object accept invalid values.The default value
+        * is <code>true</code>.
+        * </p>
+        * 
+        */
     public boolean isInvalidAllowed();
 
-       /** Should the validabtable object accept invalid values. Supporting
+       /**
+        * <p>
+        * Should the validabtable object accept invalid values. Supporting
         * this configuration possibility is optional. By default invalid values are
-        * alloved.
+        * allowed.
+        * </p>
+        * 
+        * @param invalidValueAllowed
+        * 
+        * @throws UnsupportedOperationException
+        *                                                                              if the setInvalidAllowed is not supported.
         */
     public void setInvalidAllowed(boolean invalidValueAllowed)
     throws UnsupportedOperationException;
index 4894adce42e7e34df73d34e1fee58bf2cc14cfde..9ae86006a7b3eb3b5c04cf8f80aef7e34139f382 100644 (file)
@@ -32,7 +32,8 @@ import com.itmill.toolkit.terminal.ErrorMessage;
 import com.itmill.toolkit.terminal.PaintException;
 import com.itmill.toolkit.terminal.PaintTarget;
 
-/** Object validator interface. Implementors of this class can be added to
+/** 
+ * Object validator interface. Implementors of this class can be added to
  * any {@link com.itmill.toolkit.data.Validatable} object to verify
  * its value. The <code>Validatable#isValid(Object)</code> iterates all
  * registered <code>Validator</code>s, calling their {@link #validate(Object)}
@@ -46,7 +47,8 @@ import com.itmill.toolkit.terminal.PaintTarget;
  */
 public interface Validator {
 
-       /** Checks the given value against this validator. If the value is valid
+       /** 
+        * Checks the given value against this validator. If the value is valid
         * this method should do nothing, and if it's not valid, it should throw
         * <code>Validator.InvalidValueException</code>
         * 
@@ -55,12 +57,15 @@ public interface Validator {
         */
        public void validate(Object value) throws Validator.InvalidValueException;
 
-       /** Test if the the given value is valid.
+       /** 
+        * Tests if the given value is valid.
         * @param value the value to check
+        * @return <code>true</code> for valid value, otherwise <code>false</code>.
         */
        public boolean isValid(Object value);
 
-       /** Adds the proposing functionality to a {@link Validator}. A
+       /** 
+        * Adds the proposing functionality to a {@link Validator}. A
         * <code>Suggestive</code> validator can propose a valid value for the
         * object it is attached to validate. This way the {@link Validatable}
         * object may avoid situations where it contains a value that could
@@ -71,8 +76,9 @@ public interface Validator {
         */
        public interface Suggestive extends Validator {
 
-               /** Suggest another value that can be used instead of
-                * <code>proposedValue</code> if it is invalid. If it is valid
+               /** 
+                * Suggests another value that can be used instead of the
+                * proposedValue if it is invalid. If it is valid
                 * in the opinion of this validator, however, it is returned as is.
                 * 
                 * @param proposedValue Originally proposed value that could be
@@ -82,7 +88,8 @@ public interface Validator {
                public Object suggestValidValue(Object proposedValue);
        }
 
-       /** Invalid value exception can be thrown by {@link Validator} when a
+       /** 
+        * Invalid value exception can be thrown by {@link Validator} when a
         * given value is not valid.
         * @author IT Mill Ltd.
         * @version @VERSION@
@@ -99,7 +106,8 @@ public interface Validator {
         /** Array of validation errors that are causing the problem. */
                private InvalidValueException[] causes = null;
 
-               /** Constructs a new <code>InvalidValueException</code> with the
+               /** 
+                * Constructs a new <code>InvalidValueException</code> with the
                 * specified detail message.
                 * 
                 * @param message The detail message of the problem.
@@ -109,10 +117,11 @@ public interface Validator {
                        });
                }
 
-               /** Constructs a new <code>InvalidValueException</code> with a set 
-                * of causing validation exceptions. The
-                * error message contains first the given message and then a list
-                * of validation errors in the given validatables. 
+               /** 
+                * Constructs a new <code>InvalidValueException</code> with a set 
+                * of causing validation exceptions. The error message contains
+                * first the given message and then a list of validation errors 
+                * in the given validatables. 
                 * 
                 * @param message The detail message of the problem.
                 * @param causes Array of validatables whos invalidities are possiblity causing the invalidity.
index eb7ca89addd6f149e845810a7d4cba5b5120c415..4ab7026c106e8d493627715c3ad54dd3d6f5c653 100644 (file)
@@ -37,7 +37,8 @@ import java.util.Iterator;
 
 import com.itmill.toolkit.data.Property;
 
-/** A wrapper class for adding the Item interface to any Java Bean.
+/** 
+ * A wrapper class for adding the Item interface to any Java Bean.
  * 
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -45,18 +46,26 @@ import com.itmill.toolkit.data.Property;
  */
 public class BeanItem extends PropertysetItem {
 
-       /** The bean wich this Item is based on. */
+       /**
+        * The bean which this Item is based on. 
+        */
        private Object bean;
 
-       /** <p>Creates a new instance of BeanItem and adds all properties of a
+       /** 
+        * <p>
+        * Creates a new instance of <code>BeanItem</code> and adds all properties of a
         * Java Bean to it. The properties are identified by their respective
-        * bean names.</p>
+        * bean names.
+        * </p>
+        * 
+        * <p>
+        * Note : This version only supports introspectable bean
+        * properties and their getter and setter methods. Stand-alone <code>is</code> and
+        * <code>are</code> methods are not supported.
+        * </p>
         * 
-        * <p>Note that this version only supports introspectable bean
-        * properties and their getter and setter methods. Stand-alone "is" and
-        * "are" methods are not supported.</p>
+        * @param bean the Java Bean to copy properties from.
         * 
-        * @param bean the Java Bean to copy properties from
         */
        public BeanItem(Object bean) {
 
@@ -83,15 +92,22 @@ public class BeanItem extends PropertysetItem {
                }
        }
 
-       /** <p>Creates a new instance of BeanItem and adds all listed properties of a
+       /** 
+        * <p>
+        * Creates a new instance of <code>BeanItem</code> and adds all listed properties of a
         * Java Bean to it - in specified order. The properties are identified by their 
-        * respective bean names.</p>
+        * respective bean names.
+        * </p>
         * 
-        * <p>Note that this version only supports introspectable bean
-        * properties and their getter and setter methods. Stand-alone "is" and
-        * "are" methods are not supported.</p>
+        * <p>
+        * Note : This version only supports introspectable bean properties and their getter
+        * and setter methods. Stand-alone <code>is</code> and <code>are</code> methods
+        * are not supported.
+        * </p>
         * 
-        * @param bean the Java Bean to copy properties from
+        * @param bean the Java Bean to copy properties from.
+        * @param propertyIds
+        *                                      id of the property.
         */
        public BeanItem(Object bean, Collection propertyIds) {
                
@@ -129,7 +145,8 @@ public class BeanItem extends PropertysetItem {
 
        }
 
-       /** Get the underlying JavaBean object. 
+       /** 
+        * Gets the underlying JavaBean object. 
         * @return the bean object.
         */
        public Object getBean() {
index 24adf5672c96c4e6f331a220c2451c2a7df48df1..b275fb7a22d63a11784c9ecf44acf47be94e5613 100644 (file)
@@ -39,13 +39,18 @@ import com.itmill.toolkit.data.Container;
 import com.itmill.toolkit.data.Item;
 import com.itmill.toolkit.data.Property;
 
-/** <p>A wrapper class for adding external hierarchy to containers not
+/** 
+ * <p>
+ * A wrapper class for adding external hierarchy to containers not
  * implementing the {@link com.itmill.toolkit.data.Container.Hierarchical}
- * interface.</p>
+ * interface.
+ * </p>
  * 
- * <p>If the wrapped container is changed directly (that is, not through
+ * <p>
+ * If the wrapped container is changed directly (that is, not through
  * the wrapper), the hierarchy information must be updated with the
- * {@link #updateHierarchicalWrapper()} method.</p>
+ * {@link #updateHierarchicalWrapper()} method.
+ * </p>
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -75,12 +80,14 @@ public class ContainerHierarchicalWrapper
        /** Is the wrapped container hierarchical by itself ? */
        private boolean hierarchical;
 
-       /** Constructs a new hierarchical wrapper for an existing Container.
+       /** 
+        * Constructs a new hierarchical wrapper for an existing Container.
         * Works even if the to-be-wrapped container already implements the
-        * Container.Hierarchical interface.
+        * <code>Container.Hierarchical</code> interface.
         * 
         * @param toBeWrapped the container that needs to be accessed
         * hierarchically
+        * @see #updateHierarchicalWrapper()
         */
        public ContainerHierarchicalWrapper(Container toBeWrapped) {
 
@@ -102,7 +109,8 @@ public class ContainerHierarchicalWrapper
                updateHierarchicalWrapper();
        }
 
-       /** Updates the wrapper's internal hierarchy data to include all Items
+       /** 
+        * Updates the wrapper's internal hierarchy data to include all Items
         * in the underlying container. If the contents of the wrapped container
         * change without the wrapper's knowledge, this method needs to be
         * called to update the hierarchy information of the Items.
@@ -151,11 +159,14 @@ public class ContainerHierarchicalWrapper
                }
        }
 
-       /** Removes the specified Item from the wrapper's internal hierarchy
-        * structure. Note that the Item is not removed from the underlying
+       /**
+        * Removes the specified Item from the wrapper's internal hierarchy
+        * structure.
+        * <p> 
+        * Note : The Item is not removed from the underlying
         * Container.
-        * 
-        * @param itemId ID of the item to remove from the hierarchy
+        * </p>
+        * @param itemId the ID of the item to remove from the hierarchy. 
         */
        private void removeFromHierarchyWrapper(Object itemId) {
 
@@ -172,11 +183,12 @@ public class ContainerHierarchicalWrapper
                noChildrenAllowed.remove(itemId);
        }
 
-       /** Adds the specified Item specified to the internal hierarchy
+       /** 
+        * Adds the specified Item specified to the internal hierarchy
         * structure. The new item is added as a root Item. The underlying
         * container is not modified.
         * 
-        * @param itemId ID of the item to add to the hierarchy
+        * @param itemId the ID of the item to add to the hierarchy. 
         */
        private void addToHierarchyWrapper(Object itemId) {
                roots.add(itemId);
@@ -195,7 +207,7 @@ public class ContainerHierarchicalWrapper
                return !noChildrenAllowed.contains(itemId);
        }
 
-       /* Get the IDs of the children of the specified Item.
+       /* Gets the IDs of the children of the specified Item.
         * Don't add a JavaDoc comment here, we use the default documentation
         * from implemented interface.
         */
@@ -211,7 +223,7 @@ public class ContainerHierarchicalWrapper
                return Collections.unmodifiableCollection(c);
        }
 
-       /* Get the ID of the parent of the specified Item.
+       /* Gets the ID of the parent of the specified Item.
         * Don't add a JavaDoc comment here, we use the default documentation
         * from implemented interface.
         */
@@ -250,7 +262,7 @@ public class ContainerHierarchicalWrapper
                return parent.get(itemId) == null;
        }
 
-       /* Get the IDs of the root elements in the container.
+       /* Gets the IDs of the root elements in the container.
         * Don't add a JavaDoc comment here, we use the default documentation
         * from implemented interface.
         */
@@ -263,17 +275,20 @@ public class ContainerHierarchicalWrapper
                return Collections.unmodifiableCollection(roots);
        }
 
-       /** <p>Sets the given Item's capability to have children. If the Item
-        * identified with <code>itemId</code> already has children and
-        * <code>areChildrenAllowed</code> is false this method fails and
+       /** 
+        * <p>
+        * Sets the given Item's capability to have children. If the Item
+        * identified with the itemId already has children and the 
+        * areChildrenAllowed is false this method fails and
         * <code>false</code> is returned; the children must be first explicitly
         * removed with {@link #setParent(Object itemId, Object newParentId)} or
-        * {@link com.itmill.toolkit.data.Container#removeItem(Object itemId)}.</p>
+        * {@link com.itmill.toolkit.data.Container#removeItem(Object itemId)}.
+        * </p>
         * 
-        * @param itemId ID of the Item in the container whose child
-        * capability is to be set
-        * @param childrenAllowed boolean value specifying if the Item
-        * can have children or not
+        * @param itemId the ID of the Item in the container whose child
+        * capability is to be set
+        * @param childrenAllowed the boolean value specifying if the Item
+        * can have children or not
         * @return <code>true</code> if the operation succeeded,
         * <code>false</code> if not
         */
@@ -298,16 +313,19 @@ public class ContainerHierarchicalWrapper
                return true;
        }
 
-       /** <p>Sets the parent of an Item. The new parent item must exist and be
+       /** 
+        * <p>
+        * Sets the parent of an Item. The new parent item must exist and be
         * able to have children.
         * (<code>canHaveChildren(newParentId) == true</code>). It is also 
         * possible to detach a node from the hierarchy (and thus make it root)
-        * by setting the parent <code>null</code>.</p>
+        * by setting the parent <code>null</code>.
+        * </p>
         * 
-        * @param itemId ID of the item to be set as the child of the Item
-        * identified with <code>newParentId</code>
-        * @param newParentId ID of the Item that's to be the new parent
-        * of the Item identified with <code>itemId</code>
+        * @param itemId the ID of the item to be set as the child of the Item
+        * identified with newParentId. 
+        * @param newParentId the ID of the Item that's to be the new parent
+        * of the Item identified with itemId. 
         * @return <code>true</code> if the operation succeeded,
         * <code>false</code> if not
         */
@@ -388,11 +406,14 @@ public class ContainerHierarchicalWrapper
                return true;
        }
 
-       /** Creates a new Item into the Container, assigns it an
+       /** 
+        * Creates a new Item into the Container, assigns it an
         * automatic ID, and adds it to the hierarchy. 
         * 
         * @return the autogenerated ID of the new Item or <code>null</code>
         * if the operation failed
+        * @throws UnsupportedOperationException
+        *                                                              if the addItem is not supported.
         */
        public Object addItem() throws UnsupportedOperationException {
 
@@ -402,10 +423,14 @@ public class ContainerHierarchicalWrapper
                return id;
        }
 
-       /** Adds a new Item by its ID to the underlying container and to the
+       /** 
+        * Adds a new Item by its ID to the underlying container and to the
         * hierarchy.
-        * 
-        * @return the added Item or <code>null</code> if the operation failed
+        * @param itemId
+        *                              the ID of the Item to be created.
+        * @return the added Item or <code>null</code> if the operation failed.
+        * @throws UnsupportedOperationException
+        *                                                                      if the addItem is not supported.
         */
        public Item addItem(Object itemId) throws UnsupportedOperationException {
 
@@ -415,11 +440,14 @@ public class ContainerHierarchicalWrapper
                return item;
        }
 
-       /** Removes all items from the underlying container and from the
+       /** 
+        * Removes all items from the underlying container and from the
         * hierarcy. 
         * 
         * @return <code>true</code> if the operation succeeded,
         * <code>false</code> if not
+        * @throws UnsupportedOperationException
+        *                                                                              if the removeAllItems is not supported.
         */
        public boolean removeAllItems() throws UnsupportedOperationException {
 
@@ -434,11 +462,15 @@ public class ContainerHierarchicalWrapper
                return success;
        }
 
-       /** Removes an Item specified by <code>itemId</code> from the underlying
+       /** 
+        * Removes an Item specified by the itemId from the underlying
         * container and from the hierarcy.
-        * 
+        * @param itemId
+        *                              the ID of the Item to be removed.
         * @return <code>true</code> if the operation succeeded,
         * <code>false</code> if not
+        * @throws UnsupportedOperationException
+        *                                                                      if the removeItem is not supported.
         */
        public boolean removeItem(Object itemId)
                throws UnsupportedOperationException {
@@ -451,14 +483,17 @@ public class ContainerHierarchicalWrapper
                return success;
        }
 
-       /** Adds a new Property to all Items in the Container.
+       /** 
+        * Adds a new Property to all Items in the Container.
         *
-        * @param propertyId ID of the new Property
-        * @param type Data type of the new Property
-        * @param defaultValue The value all created Properties are
-        * initialized to
+        * @param propertyId the ID of the new Property.
+        * @param type the Data type of the new Property.
+        * @param defaultValue the value all created Properties are
+        * initialized to.
         * @return <code>true</code> if the operation succeeded,
         * <code>false</code> if not
+        * @throws UnsupportedOperationException
+        *                                                                      if the addContainerProperty is not supported.
         */
        public boolean addContainerProperty(
                Object propertyId,
@@ -469,13 +504,18 @@ public class ContainerHierarchicalWrapper
                return container.addContainerProperty(propertyId, type, defaultValue);
        }
 
-       /** Removes the specified Property from the underlying container and
-        * from the hierarchy. Note that the Property will be removed from all
+       /** 
+        * Removes the specified Property from the underlying container and
+        * from the hierarchy.
+        * <p> 
+        * Note : The Property will be removed from all
         * Items in the Container.
-        *
-        * @param propertyId ID of the Property to remove
+        *</p>
+        * @param propertyId the ID of the Property to remove.
         * @return <code>true</code> if the operation succeeded,
         * <code>false</code> if not
+        * @throws UnsupportedOperationException
+        *                                                                      if the removeContainerProperty is not supported.
         */
        public boolean removeContainerProperty(Object propertyId)
                throws UnsupportedOperationException {
index 51e5bc4e20f54aac97b36d66480972af09311bd3..da54d2b2c89832f2a19ced34921d1f9f5f7e9237 100644 (file)
@@ -37,13 +37,18 @@ import com.itmill.toolkit.data.Container;
 import com.itmill.toolkit.data.Item;
 import com.itmill.toolkit.data.Property;
 
-/** <p>A wrapper class for adding external ordering to containers not
+/** 
+ * <p>
+ * A wrapper class for adding external ordering to containers not
  * implementing the {@link com.itmill.toolkit.data.Container.Ordered}
- * interface.</p>
+ * interface.
+ * </p>
  * 
- * <p>If the wrapped container is changed directly (that is, not through
+ * <p>
+ * If the wrapped container is changed directly (that is, not through
  * the wrapper), the ordering must be updated with the
- * {@link #updateOrderWrapper()} method.</p>
+ * {@link #updateOrderWrapper()} method.
+ * </p>
  * 
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -55,55 +60,67 @@ public class ContainerOrderedWrapper
                Container.ItemSetChangeNotifier,
                Container.PropertySetChangeNotifier {
 
-       /** The wrapped container */
+       /**
+        * The wrapped container 
+        */
        private Container container;
 
-       /** Ordering information, ie. the mapping from Item ID to the next
+       /** 
+        * Ordering information, ie. the mapping from Item ID to the next
         * item ID
         */
        private Hashtable next;
 
-       /** Reverse ordering information for convenience and performance
+       /** 
+        * Reverse ordering information for convenience and performance
         * reasons.
         */
        private Hashtable prev;
 
-       /** ID of the first Item in the container. */
+       /** 
+        * ID of the first Item in the container. 
+        */
        private Object first;
 
-       /** ID of the last Item in the container. */
+       /**
+        * ID of the last Item in the container. 
+        */
        private Object last;
 
-       /** Is the wrapped container ordered by itself, ie. does it implement
+       /** 
+        * Is the wrapped container ordered by itself, ie. does it implement
         * the Container.Ordered interface by itself? If it does, this class
         * will use the methods of the underlying container directly.
         */
        private boolean ordered = false;
 
-       /** Constructs a new ordered wrapper for an existing Container. Works
+       /** 
+        * Constructs a new ordered wrapper for an existing Container. Works
         * even if the to-be-wrapped container already implements the
         * Container.Ordered interface.
         * 
-        * @param toBeWrapped the container whose contents need to be ordered
+        * @param toBeWrapped the container whose contents need to be ordered.
         */
        public ContainerOrderedWrapper(Container toBeWrapped) {
 
                container = toBeWrapped;
                ordered = container instanceof Container.Ordered;
 
-               // Check arguments
+               // Checks arguments
                if (container == null)
                        throw new NullPointerException("Null can not be wrapped");
 
-               // Create initial order if needed
+               // Creates initial order if needed
                updateOrderWrapper();
        }
 
-       /** Removes the specified Item from the wrapper's internal hierarchy
-        * structure. Note that the Item is not removed from the underlying
-        * Container.
-        * 
-        * @param id ID of the Item to be removed from the ordering
+       /** 
+        * Removes the specified Item from the wrapper's internal hierarchy
+        * structure. 
+        * <p>
+        * Note : The Item is not removed from the underlying Container.
+        * </p>
+        * @param id the ID of the Item to be removed from the ordering.
         */
        private void removeFromOrderWrapper(Object id) {
                if (id != null) {
@@ -122,14 +139,15 @@ public class ContainerOrderedWrapper
                }
        }
 
-       /** Adds the specified Item to the last position in the wrapper's
+       /** 
+        * Registers the specified Item to the last position in the wrapper's
         * internal ordering. The underlying container is not modified.
         * 
-        * @param id ID of the Item to be added to the ordering
+        * @param id the ID of the Item to be added to the ordering.
         */
        private void addToOrderWrapper(Object id) {
 
-               // Add the if to tail
+               // Adds the if to tail
                if (last != null) {
                        next.put(last, id);
                        prev.put(id, last);
@@ -139,11 +157,13 @@ public class ContainerOrderedWrapper
                }
        }
 
-       /** Adds the specified Item after the specified itemId in the wrapper's
+       /** 
+        * Registers the specified Item after the specified itemId in the wrapper's
         * internal ordering. The underlying container is not modified.
         * Given item id must be in the container, or must be null.
         * 
-        * @param id ID of the Item to be added to the ordering
+        * @param id the ID of the Item to be added to the ordering.
+        * @param previousItemId the Id of the previous item.
         */
        private void addToOrderWrapper(Object id, Object previousItemId) {
 
@@ -163,10 +183,14 @@ public class ContainerOrderedWrapper
                }
        }
 
-       /** Updates the wrapper's internal ordering information to include all
-        * Items in the underlying container. If the contents of the wrapped
-        * container change without the wrapper's knowledge, this method needs
-        * to be called to update the ordering information of the Items.
+       /** 
+        * Updates the wrapper's internal ordering information to include all
+        * Items in the underlying container. 
+        * <p>
+        * Note : If the contents of the wrapped container change without the 
+        * wrapper's knowledge, this method needs to be called to update
+        * the ordering information of the Items.
+        * </p>
         */
        public void updateOrderWrapper() {
 
@@ -174,7 +198,7 @@ public class ContainerOrderedWrapper
 
                        Collection ids = container.getItemIds();
 
-                       // Recreate ordering if some parts of it are missing
+                       // Recreates ordering if some parts of it are missing
                        if (next == null
                                || first == null
                                || last == null
@@ -193,7 +217,7 @@ public class ContainerOrderedWrapper
                                        removeFromOrderWrapper(id);
                        }
 
-                       // Add missing items
+                       // Adds missing items
                        for (Iterator i = ids.iterator(); i.hasNext();) {
                                Object id = i.next();
                                if (!next.containsKey(id))
@@ -212,7 +236,7 @@ public class ContainerOrderedWrapper
                return first;
        }
 
-       /* Test if the given item is the first item in the container
+       /* Tests if the given item is the first item in the container
         * Don't add a JavaDoc comment here, we use the default documentation
         * from implemented interface.
         */
@@ -222,7 +246,7 @@ public class ContainerOrderedWrapper
                return first != null && first.equals(itemId);
        }
 
-       /* Test if the given item is the last item in the container
+       /* Tests if the given item is the last item in the container
         * Don't add a JavaDoc comment here, we use the default documentation
         * from implemented interface.
         */
@@ -242,7 +266,7 @@ public class ContainerOrderedWrapper
                return last;
        }
 
-       /* Get the item that is next from the specified item.
+       /* Gets the item that is next from the specified item.
         * Don't add a JavaDoc comment here, we use the default documentation
         * from implemented interface.
         */
@@ -252,7 +276,7 @@ public class ContainerOrderedWrapper
                return next.get(itemId);
        }
 
-       /* Get the item that is previous from the specified item.
+       /* Gets the item that is previous from the specified item.
         * Don't add a JavaDoc comment here, we use the default documentation
         * from implemented interface.
         */
@@ -262,12 +286,13 @@ public class ContainerOrderedWrapper
                return prev.get(itemId);
        }
 
-       /** Adds a new Property to all Items in the Container.
+       /** 
+        * Registers a new Property to all Items in the Container.
         *
-        * @param propertyId ID of the new Property
-        * @param type Data type of the new Property
-        * @param defaultValue The value all created Properties are
-        * initialized to
+        * @param propertyId the ID of the new Property.
+        * @param type the Data type of the new Property.
+        * @param defaultValue the value all created Properties are
+        * initialized to.
         * @return <code>true</code> if the operation succeeded,
         * <code>false</code> if not
         */
@@ -280,11 +305,14 @@ public class ContainerOrderedWrapper
                return container.addContainerProperty(propertyId, type, defaultValue);
        }
 
-       /** Creates a new Item into the Container, assigns it an
+       /** 
+        * Creates a new Item into the Container, assigns it an
         * automatic ID, and adds it to the ordering.
         * 
         * @return the autogenerated ID of the new Item or <code>null</code>
         * if the operation failed
+        * @throws UnsupportedOperationException
+        *                                                                      if the addItem is not supported.
         */
        public Object addItem() throws UnsupportedOperationException {
 
@@ -294,10 +322,14 @@ public class ContainerOrderedWrapper
                return id;
        }
 
-       /** Adds a new Item by its ID to the underlying container and to the
+       /** 
+        * Registers a new Item by its ID to the underlying container and to the
         * ordering.
-        * 
+        * @param itemId
+        *                              the ID of the Item to be created.
         * @return the added Item or <code>null</code> if the operation failed
+        * @throws UnsupportedOperationException
+        *                                                                              if the addItem is not supported.
         */
        public Item addItem(Object itemId) throws UnsupportedOperationException {
                Item item = container.addItem(itemId);
@@ -306,11 +338,14 @@ public class ContainerOrderedWrapper
                return item;
        }
 
-       /** Removes all items from the underlying container and from the
+       /** 
+        * Removes all items from the underlying container and from the
         * ordering.
         * 
-        * @return <code>true</code> if the operation succeeded,
-        * <code>false</code> if not
+        * @return <code>true</code> if the operation succeeded, otherwise
+        * <code>false</code> 
+        * @throws UnsupportedOperationException
+        *                                                                              if the removeAllItems is not supported.
         */
        public boolean removeAllItems() throws UnsupportedOperationException {
                boolean success = container.removeAllItems();
@@ -322,11 +357,15 @@ public class ContainerOrderedWrapper
                return success;
        }
 
-       /** Removes an Item specified by <code>itemId</code> from the underlying
+       /** 
+        * Removes an Item specified by the itemId from the underlying
         * container and from the ordering.
-        * 
+        * @param itemId
+        *                              the ID of the Item to be removed.
         * @return <code>true</code> if the operation succeeded,
         * <code>false</code> if not
+        * @throws UnsupportedOperationException
+        *                                                                      if the removeItem is not supported.
         */
        public boolean removeItem(Object itemId)
                throws UnsupportedOperationException {
@@ -337,13 +376,17 @@ public class ContainerOrderedWrapper
                return success;
        }
 
-       /** Removes the specified Property from the underlying container and
-        * from the ordering. Note that the Property will be removed from all
-        * Items in the Container.
-        *
-        * @param propertyId ID of the Property to remove
+       /** 
+        * Removes the specified Property from the underlying container and
+        * from the ordering.
+        * <p> 
+        * Note : The Property will be removed from all the Items in the Container.
+        * </p>
+        * @param propertyId the ID of the Property to remove.
         * @return <code>true</code> if the operation succeeded,
         * <code>false</code> if not
+        * @throws UnsupportedOperationException
+        *                                                              if the removeContainerProperty is not supported.
         */
        public boolean removeContainerProperty(Object propertyId)
                throws UnsupportedOperationException {
@@ -456,10 +499,10 @@ public class ContainerOrderedWrapper
                if (previousItemId != null && !containsId(previousItemId))
                        return null;
 
-               // Add the item to container
+               // Adds the item to container
                Item item = container.addItem(newItemId);
 
-               // Put the new item to its correct place
+               // Puts the new item to its correct place
                if (item != null)
                        addToOrderWrapper(newItemId, previousItemId);
 
@@ -476,10 +519,10 @@ public class ContainerOrderedWrapper
                if (previousItemId != null && !containsId(previousItemId))
                        return null;
 
-               // Add the item to container
+               // Adds the item to container
                Object id = container.addItem();
 
-               // Put the new item to its correct place
+               // Puts the new item to its correct place
                if (id != null)
                        addToOrderWrapper(id, previousItemId);
 
index 41eee1fe8485b73086ec72a81ef76a92c26dc180..7658d2f1d724689fb6ed26c513ac25cd5861642a 100644 (file)
@@ -47,7 +47,8 @@ import com.itmill.toolkit.data.Property;
 import com.itmill.toolkit.service.FileTypeResolver;
 import com.itmill.toolkit.terminal.Resource;
 
-/** A hierarchical container wrapper for a filesystem.
+/**
+ * A hierarchical container wrapper for a filesystem.
  * 
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -55,19 +56,29 @@ import com.itmill.toolkit.terminal.Resource;
  */
 public class FilesystemContainer implements Container.Hierarchical {
 
-       /** String identifier of a file's "name" property. */
+       /** 
+        * String identifier of a file's "name" property. 
+        */
        public static String PROPERTY_NAME = "Name";
 
-       /** String identifier of a file's "size" property. */
+       /**
+        * String identifier of a file's "size" property. 
+        */
        public static String PROPERTY_SIZE = "Size";
 
-       /** String identifier of a file's "icon" property. */
+       /** 
+        * String identifier of a file's "icon" property. 
+        */
        public static String PROPERTY_ICON = "Icon";
 
-       /** String identifier of a file's "last modified" property. */
+       /**
+        * String identifier of a file's "last modified" property.
+        */
        public static String PROPERTY_LASTMODIFIED = "Last Modified";
 
-       /** List of the string identifiers for the available properties */
+       /**
+        * List of the string identifiers for the available properties. 
+        */
        public static Collection FILE_PROPERTIES;
 
        private static Method FILEITEM_LASTMODIFIED;
@@ -104,10 +115,11 @@ public class FilesystemContainer implements Container.Hierarchical {
        private FilenameFilter filter = null;
        private boolean recursive = true;
 
-       /** Construct a new <code>FileSystemContainer</code> with the specified
+       /** 
+        * Constructs a new <code>FileSystemContainer</code> with the specified
         * file as the root of the filesystem. The files are included recursively.
         * 
-        * @param root root file for the new file-system container. Null values are ignored.
+        * @param root the root file for the new file-system container. Null values are ignored.
         */
        public FilesystemContainer(File root) {
                if (root != null) {
@@ -115,10 +127,11 @@ public class FilesystemContainer implements Container.Hierarchical {
                }
        }
 
-       /** Construct a new <code>FileSystemContainer</code> with the specified
+       /** 
+        * Constructs a new <code>FileSystemContainer</code> with the specified
         * file as the root of the filesystem. The files are included recursively.
         * 
-        * @param root root file for the new file-system container
+        * @param root the root file for the new file-system container.
         * @param recursive should the container recursively contain subdirectories.
         */
        public FilesystemContainer(File root, boolean recursive) {
@@ -126,11 +139,12 @@ public class FilesystemContainer implements Container.Hierarchical {
                this.setRecursive(recursive);
        }
 
-       /** Construct a new <code>FileSystemContainer</code> with the specified
+       /** 
+        * Constructs a new <code>FileSystemContainer</code> with the specified
         * file as the root of the filesystem.
         * 
-        * @param root root file for the new file-system container
-        * @param extension Filename extension (w/o separator) to limit the files in container.
+        * @param root the root file for the new file-system container.
+        * @param extension the Filename extension (w/o separator) to limit the files in container.
         * @param recursive should the container recursively contain subdirectories.
         */
        public FilesystemContainer(
@@ -142,11 +156,12 @@ public class FilesystemContainer implements Container.Hierarchical {
                this.setRecursive(recursive);
        }
 
-       /** Construct a new <code>FileSystemContainer</code> with the specified
+       /** 
+        * Constructs a new <code>FileSystemContainer</code> with the specified
         * root and recursivity status.
         * 
-        * @param root root file for the new file-system container
-        * @param filter Filename filter to limit the files in container.
+        * @param root the root file for the new file-system container.
+        * @param filter the Filename filter to limit the files in container.
         * @param recursive should the container recursively contain subdirectories.
         */
        public FilesystemContainer(
@@ -158,9 +173,10 @@ public class FilesystemContainer implements Container.Hierarchical {
                this.setRecursive(recursive);
        }
 
-       /** Add new root file directory. 
-        *  Adds a file to be included as root file directory in the FilesystemContainer.
-        *  @param root File to be added as root directory. Null values are ignored.
+       /** 
+        * Adds new root file directory. 
+        * Adds a file to be included as root file directory in the <code>FilesystemContainer</code>.
+        * @param root the File to be added as root directory. Null values are ignored.
         */
        public void addRoot(File root) {
                if (root != null) {
@@ -173,11 +189,12 @@ public class FilesystemContainer implements Container.Hierarchical {
                }
        }
 
-       /** Tests if the specified Item in the container may have children.
+       /** 
+        * Tests if the specified Item in the container may have children.
         * Since a <code>FileSystemContainer</code> contains files and
         * directories, this method returns <code>true</code> for directory
         * Items only.
-        * 
+        * @param itemId the id of the item.
         * @return <code>true</code> if the specified Item is a directory,
         * <code>false</code> otherwise.
         */
@@ -187,7 +204,7 @@ public class FilesystemContainer implements Container.Hierarchical {
                        && ((File) itemId).isDirectory();
        }
 
-       /* Get the ID's of all Items who are children of the specified Item.
+       /* Gets the ID's of all Items who are children of the specified Item.
         * Don't add a JavaDoc comment here, we use the default documentation
         * from implemented interface.
         */
@@ -210,7 +227,7 @@ public class FilesystemContainer implements Container.Hierarchical {
                return Collections.unmodifiableCollection(l);
        }
 
-       /* Get the parent item of the specified Item.
+       /* Gets the parent item of the specified Item.
         * Don't add a JavaDoc comment here, we use the default documentation
         * from implemented interface.
         */
@@ -221,7 +238,7 @@ public class FilesystemContainer implements Container.Hierarchical {
                return ((File) itemId).getParentFile();
        }
 
-       /* Test if the specified Item has any children.
+       /* Tests if the specified Item has any children.
         * Don't add a JavaDoc comment here, we use the default documentation
         * from implemented interface.
         */
@@ -237,7 +254,7 @@ public class FilesystemContainer implements Container.Hierarchical {
                return (l != null) && (l.length > 0);
        }
 
-       /* Test if the specified Item is the root of the filesystem.
+       /* Tests if the specified Item is the root of the filesystem.
         * Don't add a JavaDoc comment here, we use the default documentation
         * from implemented interface.
         */
@@ -252,7 +269,7 @@ public class FilesystemContainer implements Container.Hierarchical {
                return false;
        }
 
-       /* Get the ID's of all root Items in the container.
+       /* Gets the ID's of all root Items in the container.
         * Don't add a JavaDoc comment here, we use the default documentation
         * from implemented interface.
         */
@@ -279,10 +296,17 @@ public class FilesystemContainer implements Container.Hierarchical {
                return Collections.unmodifiableCollection(l);
        }
 
-       /** Return false - conversion from files to directories is not
+       /** 
+        * Returns <code>false</code> when conversion from files to directories is not
         * supported.
-        * 
-        * @return <code>false</code>
+        * @param itemId 
+        *                              the ID of the item.
+        * @param areChildrenAllowed 
+        *                              the boolean value specifying if the Item can have children or not. 
+        * @return <code>true</code> if the operaton is successful otherwise 
+        * <code>false</code>.
+        * @throws UnsupportedOperationException
+        *                                                                      if the setChildrenAllowed is not supported.
         */
        public boolean setChildrenAllowed(
                Object itemId,
@@ -292,10 +316,16 @@ public class FilesystemContainer implements Container.Hierarchical {
                throw new UnsupportedOperationException("Conversion file to/from directory is not supported");
        }
 
-       /** Return false - moving files around in the filesystem is not
+       /** 
+        * Returns <code>false</code> when moving files around in the filesystem is not
         * supported.
-        * 
-        * @return <code>false</code>
+        * @param itemId the ID of the item.
+        * @param newParentId the ID of the Item that's to be the new parent
+        * of the Item identified with itemId.
+        * @return <code>true</code> if the operation is successful otherwise
+        * <code>false</code>.
+        * @throws UnsupportedOperationException
+        *                                                                              if the setParent is not supported.
         */
        public boolean setParent(Object itemId, Object newParentId)
                throws UnsupportedOperationException {
@@ -303,7 +333,7 @@ public class FilesystemContainer implements Container.Hierarchical {
                throw new UnsupportedOperationException("File moving is not supported");
        }
 
-       /* Test if the filesystem contains the specified Item.
+       /* Tests if the filesystem contains the specified Item.
         * Don't add a JavaDoc comment here, we use the default documentation
         * from implemented interface.
         */
@@ -343,7 +373,8 @@ public class FilesystemContainer implements Container.Hierarchical {
                return new FileItem((File) itemId);
        }
 
-       /** Internal recursive method to add the files under the specified
+       /** 
+        * Internal recursive method to add the files under the specified
         * directory to the collection.
         * 
         * @param col the collection where the found items are added
@@ -402,13 +433,14 @@ public class FilesystemContainer implements Container.Hierarchical {
                
        }
 
-       /** Gets the specified property of the specified file Item. The
+       /** 
+        * Gets the specified property of the specified file Item. The
         * available file properties are "Name", "Size" and "Last Modified".
-        * If <code>propertyId</code> is not one of those, <code>null</code> is
+        * If propertyId is not one of those, <code>null</code> is
         * returned.
         * 
-        * @param itemId ID of the file whose property is requested
-        * @param propertyId The property's ID
+        * @param itemId the ID of the file whose property is requested.
+        * @param propertyId the property's ID.
         * @return the requested property's value, or <code>null</code>
         */
        public Property getContainerProperty(Object itemId, Object propertyId) {
@@ -447,7 +479,8 @@ public class FilesystemContainer implements Container.Hierarchical {
                return null;
        }
 
-       /** Gets the collection of available file properties.
+       /** 
+        * Gets the collection of available file properties.
         * 
         * @return Unmodifiable collection containing all available file
         * properties.
@@ -456,12 +489,13 @@ public class FilesystemContainer implements Container.Hierarchical {
                return FILE_PROPERTIES;
        }
 
-       /** Gets the specified property's data type. "Name" is a
+       /** 
+        * Gets the specified property's data type. "Name" is a
         * <code>String</code>, "Size" is a <code>Long</code>, "Last Modified"
-        * is a <code>Date</code>. If <code>propertyId</code> is not one of
+        * is a <code>Date</code>. If propertyId is not one of
         * those, <code>null</code> is returned.
         * 
-        * @param propertyId ID of the property whose type is requested.
+        * @param propertyId the ID of the property whose type is requested.
         * @return data type of the requested property, or <code>null</code>
         */
        public Class getType(Object propertyId) {
@@ -477,7 +511,8 @@ public class FilesystemContainer implements Container.Hierarchical {
                return null;
        }
 
-       /** Internal method to recursively calculate the number of files under
+       /** 
+        * Internal method to recursively calculate the number of files under
         * a root directory.
         * 
         * @param f the root to start counting from.
@@ -499,7 +534,8 @@ public class FilesystemContainer implements Container.Hierarchical {
                return ret;
        }
 
-       /** Gets the number of Items in the container. In effect, this is the
+       /** 
+        * Gets the number of Items in the container. In effect, this is the
         * combined amount of files and directories.
         * 
         * @return Number of Items in the container.
@@ -529,22 +565,27 @@ public class FilesystemContainer implements Container.Hierarchical {
                }
        }
 
-       /** A Item wrapper for files in a filesystem.
+       /** 
+        * A Item wrapper for files in a filesystem.
         * @author IT Mill Ltd.
         * @version @VERSION@
         * @since 3.0
         */
        public class FileItem implements Item {
 
-               /** The wrapped file. */
+               /** 
+                * The wrapped file. 
+                */
                private File file;
 
-               /** Construct a FileItem from a existing file. */
+               /** 
+                * Constructs a FileItem from a existing file. 
+                */
                private FileItem(File file) {
                        this.file = file;
                }
 
-               /* Get the specified property of this file.
+               /* Gets the specified property of this file.
                 * Don't add a JavaDoc comment here, we use the default documentation
                 * from implemented interface.
                 */
@@ -552,7 +593,7 @@ public class FilesystemContainer implements Container.Hierarchical {
                        return FilesystemContainer.this.getContainerProperty(file, id);
                }
 
-               /* Get the IDs of all properties available for this item
+               /* Gets the IDs of all properties available for this item
                 * Don't add a JavaDoc comment here, we use the default documentation
                 * from implemented interface.
                 */
@@ -560,7 +601,8 @@ public class FilesystemContainer implements Container.Hierarchical {
                        return FilesystemContainer.this.getContainerPropertyIds();
                }
 
-               /* Calculates a integer hash-code for the Property that's unique
+               /**
+                * Calculates a integer hash-code for the Property that's unique
                 * inside the Item containing the Property. Two different Properties
                 * inside the same Item contained in the same list always have
                 * different hash-codes, though Properties in different Items may
@@ -572,10 +614,11 @@ public class FilesystemContainer implements Container.Hierarchical {
                        return file.hashCode() ^ FilesystemContainer.this.hashCode();
                }
 
-               /* Tests if the given object is the same as the this object.
+               /**
+                * Tests if the given object is the same as the this object.
                 * Two Properties got from an Item with the same ID are equal.
                 * 
-                * @param obj an object to compare with this object
+                * @param obj an object to compare with this object.
                 * @return <code>true</code> if the given object is the same as
                 * this object, <code>false</code> if not
                 */
@@ -585,23 +628,37 @@ public class FilesystemContainer implements Container.Hierarchical {
                        FileItem fi = (FileItem) obj;
                        return fi.getHost() == getHost() && fi.file.equals(file);
                }
-
+               /**
+                * Gets the host of this file.
+                */
                private FilesystemContainer getHost() {
                        return FilesystemContainer.this;
                }
-
+               /**
+                * Gets the last modified date of this file.
+                * @return Date
+                */
                public Date lastModified() {
                        return new Date(this.file.lastModified());
                }
-
+               /**
+                * Gets the name of this file.
+                * @return file name of this file.
+                */
                public String getName() {
                        return this.file.getName();
                }
-
+               /**
+                * Gets the icon of this file.
+                * @return the icon of this file.
+                */
                public Resource getIcon() {
                        return FileTypeResolver.getIcon(this.file);
                }
-
+               /**
+                * Gets the size of this file.
+                * @return size
+                */
                public long getSize() {
                        if (this.file.isDirectory())
                                return 0;
@@ -617,7 +674,8 @@ public class FilesystemContainer implements Container.Hierarchical {
                        return file.getName();
                }
 
-               /** Filesystem container does not support adding new properties.
+               /** 
+                * Filesystem container does not support adding new properties.
                 * @see com.itmill.toolkit.data.Item#addItemProperty(Object, Property)
                 */
                public boolean addItemProperty(Object id, Property property)
@@ -627,7 +685,8 @@ public class FilesystemContainer implements Container.Hierarchical {
                                        + "does not support adding new properties");
                }
 
-               /** Filesystem container does not support removing properties.
+               /**
+                * Filesystem container does not support removing properties.
                 * @see com.itmill.toolkit.data.Item#removeItemProperty(Object)
                 */
                public boolean removeItemProperty(Object id)
@@ -637,7 +696,8 @@ public class FilesystemContainer implements Container.Hierarchical {
 
        }
 
-       /** Generic file extension filter for displaying only files having certain extension.
+       /** 
+        * Generic file extension filter for displaying only files having certain extension.
         * @author IT Mill Ltd.
         * @version @VERSION@
         * @since 3.0
@@ -646,14 +706,16 @@ public class FilesystemContainer implements Container.Hierarchical {
 
                private String filter;
 
-               /** Construct new FileExtensionFilter using given extension.
-                * @param fileExtension File extension without the separator (dot).
-                * */
+               /** 
+                * Constructs new FileExtensionFilter using given extension.
+                * @param fileExtension the File extension without the separator (dot).
+                */
                public FileExtensionFilter(String fileExtension) {
                        this.filter = "." + fileExtension;
                }
 
-               /** Allow only files with the extension and directories.
+               /** 
+                * Allows only files with the extension and directories.
                 * @see java.io.FilenameFilter#accept(File, String)
                 */
                public boolean accept(File dir, String name) {
@@ -663,38 +725,45 @@ public class FilesystemContainer implements Container.Hierarchical {
                }
 
        }
-       /** Returns the file filter used to limit the files in this container.
+       /**
+        * Returns the file filter used to limit the files in this container.
         * @return Used filter instance or null if no filter is assigned.
         */
        public FilenameFilter getFilter() {
                return filter;
        }
 
-       /** Sets the file filter used to limit the files in this container.
+       /**
+        * Sets the file filter used to limit the files in this container.
         * @param filter The filter to set. <code>null</code> disables filtering.
         */
        public void setFilter(FilenameFilter filter) {
                this.filter = filter;
        }
 
-       /** Sets the file filter used to limit the files in this container.
-        * @param extension Filename extension (w/o separator) to limit the files in container.
+       /**
+        * Sets the file filter used to limit the files in this container.
+        * @param extension the Filename extension (w/o separator) to limit the files in container.
         */
        public void setFilter(String extension) {
                this.filter = new FileExtensionFilter(extension);
        }
 
-       /**Is this container recursive filesystem.
-        * @return true if container is recursive, false otherwise.
+       /**
+        * Is this container recursive filesystem.
+        * @return <code>true</code> if container is recursive, <code>false</code> otherwise.
         */
        public boolean isRecursive() {
                return recursive;
        }
 
-       /** Sets the container recursive property.
-        *  Set this to false to limit the files directly under the root file.
-        *  Note, that this is meaningful only if the root really is a directory.
-        * @param New value for recursive property.
+       /**
+        * Sets the container recursive property.
+        * Set this to false to limit the files directly under the root file.
+        * <p>
+        * Note : This is meaningful only if the root really is a directory.
+        * </p>
+        * @param recursive the  New value for recursive property.
         */
        public void setRecursive(boolean recursive) {
                this.recursive = recursive;
index 426b8726f326ca38c73b7c117e30089e182d9755..1c7a773d6dd6afd9b6c22df940918fcec2622163 100644 (file)
@@ -37,7 +37,8 @@ import java.util.HashSet;
 import com.itmill.toolkit.data.Container;
 import com.itmill.toolkit.data.Item;
 
-/** A specialized Container whose contents can be accessed like it was a
+/** 
+ * A specialized Container whose contents can be accessed like it was a
  * tree-like structure.
  *  
  * @author IT Mill Ltd.
@@ -48,16 +49,24 @@ public class HierarchicalContainer
        extends IndexedContainer
        implements Container.Hierarchical {
 
-       /** Set of IDs of those contained Items that can't have children. */
+       /**
+        * Set of IDs of those contained Items that can't have children.
+        */
        private HashSet noChildrenAllowed = new HashSet();
 
-       /** Mapping from Item ID to parent Item */
+       /** 
+        * Mapping from Item ID to parent Item.
+        */
        private Hashtable parent = new Hashtable();
 
-       /** Mapping from Item ID to a list of child IDs */
+       /** 
+        * Mapping from Item ID to a list of child IDs. 
+        */
        private Hashtable children = new Hashtable();
 
-       /** List that contains all root elements of the container. */
+       /** 
+        * List that contains all root elements of the container.
+        */
        private LinkedList roots = new LinkedList();
 
        /* Can the specified Item have any children?
@@ -68,7 +77,7 @@ public class HierarchicalContainer
                return !noChildrenAllowed.contains(itemId);
        }
 
-       /* Get the IDs of the children of the specified Item.
+       /* Gets the IDs of the children of the specified Item.
         * Don't add a JavaDoc comment here, we use the default documentation
         * from implemented interface.
         */
@@ -79,7 +88,7 @@ public class HierarchicalContainer
                return Collections.unmodifiableCollection(c);
        }
 
-       /* Get the ID of the parent of the specified Item.
+       /* Gets the ID of the parent of the specified Item.
         * Don't add a JavaDoc comment here, we use the default documentation
         * from implemented interface.
         */
@@ -103,7 +112,7 @@ public class HierarchicalContainer
                return parent.get(itemId) == null;
        }
 
-       /* Get the IDs of the root elements in the container.
+       /* Gets the IDs of the root elements in the container.
         * Don't add a JavaDoc comment here, we use the default documentation
         * from implemented interface.
         */
@@ -111,27 +120,30 @@ public class HierarchicalContainer
                return Collections.unmodifiableCollection(roots);
        }
 
-    /** <p>Sets the given Item's capability to have children. If the Item
-     * identified with <code>itemId</code> already has children and
-     * <code>areChildrenAllowed</code> is false this method fails and
+    /** 
+     * <p>
+     * Sets the given Item's capability to have children. If the Item
+     * identified with the itemId already has children and the 
+     * areChildrenAllowed is false this method fails and
      * <code>false</code> is returned; the children must be first explicitly
      * removed with {@link #setParent(Object itemId, Object newParentId)} or
-     * {@link com.itmill.toolkit.data.Container#removeItem(Object itemId)}.</p>
+     * {@link com.itmill.toolkit.data.Container#removeItem(Object itemId)}.
+     * </p>
      * 
-     * @param itemId ID of the Item in the container whose child
-     * capability is to be set
-     * @param childrenAllowed boolean value specifying if the Item
-     * can have children or not
+     * @param itemId the ID of the Item in the container whose child
+     * capability is to be set.
+     * @param childrenAllowed the boolean value specifying if the Item
+     * can have children or not.
      * @return <code>true</code> if the operation succeeded,
      * <code>false</code> if not
      */
        public boolean setChildrenAllowed(Object itemId, boolean childrenAllowed) {
 
-               // Check that the item is in the container
+               // Checks that the item is in the container
                if (!containsId(itemId))
                        return false;
 
-               // Update status
+               // Updates status
                if (childrenAllowed)
                        noChildrenAllowed.remove(itemId);
                else
@@ -140,29 +152,32 @@ public class HierarchicalContainer
                return true;
        }
 
-       /** <p>Sets the parent of an Item. The new parent item must exist and be
+       /** 
+        * <p>
+        * Sets the parent of an Item. The new parent item must exist and be
         * able to have children.
         * (<code>canHaveChildren(newParentId) == true</code>). It is also 
         * possible to detach a node from the hierarchy (and thus make it root)
-        * by setting the parent <code>null</code>.</p>
+        * by setting the parent <code>null</code>.
+        * </p>
         * 
-        * @param itemId ID of the item to be set as the child of the Item
-        * identified with <code>newParentId</code>
-        * @param newParentId ID of the Item that's to be the new parent
-        * of the Item identified with <code>itemId</code>
+        * @param itemId the ID of the item to be set as the child of the Item
+        * identified with newParentId.
+        * @param newParentId the ID of the Item that's to be the new parent
+        * of the Item identified with itemId.
      * @return <code>true</code> if the operation succeeded,
      * <code>false</code> if not
         */
        public boolean setParent(Object itemId, Object newParentId) {
 
-               // Check that the item is in the container
+               // Checks that the item is in the container
                if (!containsId(itemId))
                        return false;
 
-               // Get the old parent
+               // Gets the old parent
                Object oldParentId = parent.get(itemId);
 
-               // Check if no change is necessary              
+               // Checks if no change is necessary             
                if ((newParentId == null && oldParentId == null)
                        || newParentId.equals(oldParentId))
                        return true;
@@ -170,7 +185,7 @@ public class HierarchicalContainer
                // Making root          
                if (newParentId == null) {
 
-                       // Remove from old parents children list
+                       // Removes from old parents children list
                        LinkedList l = (LinkedList) children.get(itemId);
                        if (l != null) {
                                l.remove(itemId);
@@ -181,24 +196,24 @@ public class HierarchicalContainer
                        // Add to be a root
                        roots.add(itemId);
 
-                       // Update parent
+                       // Updates parent
                        parent.remove(itemId);
 
                        return true;
                }
 
-               // Check that the new parent exists in container and can have
+               // Checks that the new parent exists in container and can have
                // children
                if (!containsId(newParentId)
                        || noChildrenAllowed.contains(newParentId))
                        return false;
 
-               // Check that setting parent doesn't result to a loop
+               // Checks that setting parent doesn't result to a loop
                Object o = newParentId;
                while (o != null && !o.equals(itemId)) o = parent.get(o);
                if (o != null) return false;
 
-               // Update parent
+               // Updates parent
                parent.put(itemId, newParentId);
                LinkedList pcl = (LinkedList) children.get(newParentId);
                if (pcl == null) {
@@ -207,7 +222,7 @@ public class HierarchicalContainer
                }
                pcl.add(itemId);
 
-               // Remove from old parent or root
+               // Removes from old parent or root
                if (oldParentId == null)
                        roots.remove(itemId);
                else {
index e11b6193c11f5485d08431530a7cd611c336d063..589557a38570f9c4c2c7998e6b569dd30022dbb6 100644 (file)
@@ -38,7 +38,7 @@ import com.itmill.toolkit.data.Property;
 /**
  * Indexed container implementation.
  * <p>
- * A list implementation of the com.itmill.toolkit.data.Container interface. A
+ * A list implementation of the <code>com.itmill.toolkit.data.Container</code> interface. A
  * list is a ordered collection wherein the user has a precise control over
  * where in the list each new Item is inserted. The user may access the Items by
  * their integer index (position in the list) or by their Item ID.
@@ -58,13 +58,19 @@ public class IndexedContainer implements Container, Container.Indexed,
 
     /* Internal structure *************************************************** */
 
-    /** Linked list of ordered Item IDs */
+    /** 
+     * Linked list of ordered Item IDs. 
+     */
     private ArrayList itemIds = new ArrayList();
 
-    /** Linked list of ordered Property IDs */
+    /** 
+     * Linked list of ordered Property IDs. 
+     */
     private ArrayList propertyIds = new ArrayList();
 
-    /** Property ID to type mapping */
+    /** 
+     * Property ID to type mapping. 
+     */
     private Hashtable types = new Hashtable();
 
     /**
@@ -80,7 +86,7 @@ public class IndexedContainer implements Container, Container.Indexed,
 
     /**
      * List of all Property value change event listeners listening all the
-     * properties
+     * properties.
      */
     private LinkedList propertyValueChangeListeners = null;
 
@@ -92,16 +98,24 @@ public class IndexedContainer implements Container, Container.Indexed,
      */
     private Hashtable singlePropertyValueChangeListeners = null;
 
-    /** List of all Property set change event listeners */
+    /**
+     * List of all Property set change event listeners. 
+     */
     private LinkedList propertySetChangeListeners = null;
 
-    /** List of all container Item set change event listeners */
+    /** 
+     * List of all container Item set change event listeners. 
+     */
     private LinkedList itemSetChangeListeners = null;
 
-    /** Temporary store for sorting property ids */
+    /** 
+     * Temporary store for sorting property ids. 
+     */
     private Object[] sortPropertyId;
 
-    /** Temporary store for sorting direction */
+    /** 
+     * Temporary store for sorting direction. 
+     */
     private boolean[] sortDirection;
 
     /* Container constructors *********************************************** */
@@ -124,7 +138,7 @@ public class IndexedContainer implements Container, Container.Indexed,
      * contain the requested Item, <code>null</code> is returned.
      * 
      * @param itemId
-     *            ID of the Item to retrieve
+     *            the ID of the Item to retrieve.
      * @return the Item with the given ID or <code>null</code> if the Item is
      *         not found in the list
      */
@@ -158,7 +172,7 @@ public class IndexedContainer implements Container, Container.Indexed,
      * Gets the type of a Property stored in the list.
      * 
      * @param id
-     *            ID of the Property
+     *            the ID of the Property.
      * @return Type of the requested Property
      */
     public Class getType(Object propertyId) {
@@ -171,9 +185,9 @@ public class IndexedContainer implements Container, Container.Indexed,
      * is returned.
      * 
      * @param itemId
-     *            ID of the Item which contains the requested Property
+     *            the ID of the Item which contains the requested Property.
      * @param propertyId
-     *            ID of the Property to retrieve
+     *            the ID of the Property to retrieve.
      * @return Property with the given ID or <code>null</code>
      * 
      * @see com.itmill.toolkit.data.Container#getContainerProperty(Object,
@@ -198,7 +212,7 @@ public class IndexedContainer implements Container, Container.Indexed,
      * Tests if the list contains the specified Item
      * 
      * @param itemId
-     *            ID the of Item to be tested for
+     *            the ID the of Item to be tested for.
      * @return <code>true</code> if the operation succeeded,
      *         <code>false</code> if not
      */
@@ -207,15 +221,15 @@ public class IndexedContainer implements Container, Container.Indexed,
     }
 
     /**
-     * Add a new Property to all Items in the list. The Property ID, data type
+     * Adds a new Property to all Items in the list. The Property ID, data type
      * and default value of the new Property are given as parameters.
      * 
      * @param propertyId
-     *            ID of the new Property
+     *            the ID of the new Property.
      * @param type
-     *            Data type of the new Property
+     *            the Data type of the new Property.
      * @param defaultValue
-     *            The value all created Properties are initialized to
+     *            the value all created Properties are initialized to.
      * @return <code>true</code> if the operation succeeded,
      *         <code>false</code> if not
      */
@@ -230,7 +244,7 @@ public class IndexedContainer implements Container, Container.Indexed,
         if (propertyIds.contains(propertyId))
             return false;
 
-        // Add the Property to Property list and types
+        // Adds the Property to Property list and types
         propertyIds.add(propertyId);
         types.put(propertyId, type);
 
@@ -240,33 +254,34 @@ public class IndexedContainer implements Container, Container.Indexed,
                 getItem(i.next()).getItemProperty(propertyId).setValue(
                         defaultValue);
 
-        // Send a change event
+        // Sends a change event
         fireContainerPropertySetChange();
 
         return true;
     }
 
     /**
-     * Remove all Items from the list. Note that Property ID and type
-     * information is preserved.
-     * 
+     * Removes all Items from the list. 
+     * <p>
+     * Note : The Property ID and type information is preserved.
+     * </p>
      * @return <code>true</code> if the operation succeeded,
      *         <code>false</code> if not
      */
     public boolean removeAllItems() {
 
-        // Remove all Items
+        // Removes all Items
         itemIds.clear();
         items.clear();
 
-        // Send a change event
+        // Sends a change event
         fireContentsChange();
 
         return true;
     }
 
     /**
-     * Create a new Item into the list, and assign it an automatic ID. The new
+     * Creates a new Item into the list, and assign it an automatic ID. The new
      * ID is returned, or <code>null</code> if the operation fails. After a
      * successful call you can use the
      * {@link #getItem(Object ItemId) <code>getItem</code>}method to fetch the
@@ -277,46 +292,46 @@ public class IndexedContainer implements Container, Container.Indexed,
      */
     public Object addItem() {
 
-        // Create a new id
+        // Creates a new id
         Object id = new Object();
 
-        // Add the Item into container
+        // Adds the Item into container
         addItem(id);
 
         return id;
     }
 
     /**
-     * Create a new Item with the given ID into the list. The new Item is
+     * Creates a new Item with the given ID into the list. The new Item is
      * returned, and it is ready to have its Properties modified. Returns
      * <code>null</code> if the operation fails or the Container already
      * contains a Item with the given ID.
      * 
      * @param itemId
-     *            ID of the Item to be created
+     *            the ID of the Item to be created.
      * @return Created new Item, or <code>null</code> in case of a failure
      */
     public Item addItem(Object itemId) {
 
-        // Make sure that the Item has not been created yet
+        // Makes sure that the Item has not been created yet
         if (items.containsKey(itemId))
             return null;
 
-        // Add the Item to container
+        // Adds the Item to container
         itemIds.add(itemId);
         items.put(itemId, new Hashtable());
 
-        // Send the event
+        // Sends the event
         fireContentsChange();
 
         return getItem(itemId);
     }
 
     /**
-     * Remove the Item corresponding to the given Item ID from the list.
+     * Removes the Item corresponding to the given Item ID from the list.
      * 
      * @param itemId
-     *            ID of the Item to remove
+     *            the ID of the Item to remove.
      * @return <code>true</code> if the operation succeeded,
      *         <code>false</code> if not
      */
@@ -332,11 +347,11 @@ public class IndexedContainer implements Container, Container.Indexed,
     }
 
     /**
-     * Remove a Property specified by the given Property ID from the list. Note
+     * Removes a Property specified by the given Property ID from the list. Note
      * that the Property will be removed from all Items in the list.
      * 
      * @param propertyId
-     *            ID of the Property to remove
+     *            the ID of the Property to remove.
      * @return <code>true</code> if the operation succeeded,
      *         <code>false</code> if not
      */
@@ -346,7 +361,7 @@ public class IndexedContainer implements Container, Container.Indexed,
         if (!propertyIds.contains(propertyId))
             return false;
 
-        // Remove the Property to Property list and types
+        // Removes the Property to Property list and types
         propertyIds.remove(propertyId);
         types.remove(propertyId);
 
@@ -354,7 +369,7 @@ public class IndexedContainer implements Container, Container.Indexed,
         for (Iterator i = itemIds.iterator(); i.hasNext();)
             ((Hashtable) items.get(i.next())).remove(propertyId);
 
-        // Send a change event
+        // Sends a change event
         fireContainerPropertySetChange();
 
         return true;
@@ -390,11 +405,11 @@ public class IndexedContainer implements Container, Container.Indexed,
 
     /**
      * Gets the ID of the Item following the Item that corresponds to
-     * <code>itemId</code>. If the given Item is the last or not found in the
+     * the itemId. If the given Item is the last or not found in the
      * list, <code>null</code> is returned.
      * 
      * @param itemId
-     *            ID of an Item in the list
+     *            the ID of an Item in the list.
      * @return ID of the next Item or <code>null</code>
      */
     public Object nextItemId(Object itemId) {
@@ -407,11 +422,11 @@ public class IndexedContainer implements Container, Container.Indexed,
 
     /**
      * Gets the ID of the Item preceding the Item that corresponds to
-     * <code>itemId</code>. If the given Item is the first or not found in
+     * the itemId. If the given Item is the first or not found in
      * the list, <code>null</code> is returned.
      * 
      * @param itemId
-     *            ID of an Item in the list
+     *            the ID of an Item in the list.
      * @return ID of the previous Item or <code>null</code>
      */
     public Object prevItemId(Object itemId) {
@@ -427,7 +442,7 @@ public class IndexedContainer implements Container, Container.Indexed,
      * the list.
      * 
      * @param itemId
-     *            ID of an Item in the list
+     *            the ID of an Item in the list.
      * @return <code>true</code> if the Item is first in the list,
      *         <code>false</code> if not
      */
@@ -440,7 +455,7 @@ public class IndexedContainer implements Container, Container.Indexed,
      * the list.
      * 
      * @param itemId
-     *            ID of an Item in the list
+     *            the ID of an Item in the list.
      * @return <code>true</code> if the Item is last in the list,
      *         <code>false</code> if not
      */
@@ -483,7 +498,7 @@ public class IndexedContainer implements Container, Container.Indexed,
     }
 
     /**
-     * Get ID with the index. The following is true for the index: 0 <= index <
+     * Gets ID with the index. The following is true for the index: 0 <= index <
      * size().
      * 
      * @return ID in the given index.
@@ -495,7 +510,7 @@ public class IndexedContainer implements Container, Container.Indexed,
     }
 
     /**
-     * Get the index of an id. The following is true for the index: 0 <= index <
+     * Gets the index of an id. The following is true for the index: 0 <= index <
      * size().
      * 
      * @return Index of the Item or -1 if the Item is not in the container.
@@ -515,11 +530,11 @@ public class IndexedContainer implements Container, Container.Indexed,
         if (items.containsKey(newItemId))
             return null;
 
-        // Add the Item to container
+        // Adds the Item to container
         itemIds.add(index, newItemId);
         items.put(newItemId, new Hashtable());
 
-        // Send the event
+        // Sends the event
         fireContentsChange();
 
         return getItem(newItemId);
@@ -530,10 +545,10 @@ public class IndexedContainer implements Container, Container.Indexed,
      */
     public Object addItemAt(int index) {
 
-        // Create a new id
+        // Creates a new id
         Object id = new Object();
 
-        // Add the Item into container
+        // Adds the Item into container
         addItemAt(index, id);
 
         return id;
@@ -640,7 +655,7 @@ public class IndexedContainer implements Container, Container.Indexed,
      * Registers a new Property set change listener for this list.
      * 
      * @param listener
-     *            the new Listener to be registered
+     *            the new Listener to be registered.
      */
     public void addListener(Container.PropertySetChangeListener listener) {
         if (propertySetChangeListeners == null)
@@ -652,7 +667,7 @@ public class IndexedContainer implements Container, Container.Indexed,
      * Removes a previously registered Property set change listener.
      * 
      * @param listener
-     *            listener to be removed
+     *            the listener to be removed.
      */
     public void removeListener(Container.PropertySetChangeListener listener) {
         if (propertySetChangeListeners != null)
@@ -663,7 +678,7 @@ public class IndexedContainer implements Container, Container.Indexed,
      * Adds a Item set change listener for the list.
      * 
      * @param listener
-     *            listener to be added
+     *            the listener to be added.
      */
     public void addListener(Container.ItemSetChangeListener listener) {
         if (itemSetChangeListeners == null)
@@ -675,7 +690,7 @@ public class IndexedContainer implements Container, Container.Indexed,
      * Removes a Item set change listener from the object.
      * 
      * @param listener
-     *            listener to be removed
+     *            the listener to be removed.
      */
     public void removeListener(Container.ItemSetChangeListener listener) {
         if (itemSetChangeListeners != null)
@@ -698,17 +713,20 @@ public class IndexedContainer implements Container, Container.Indexed,
      * Removes a previously registered value change listener.
      * 
      * @param listener
-     *            listener to be removed
+     *            the listener to be removed.
      */
     public void removeListener(Property.ValueChangeListener listener) {
         if (propertyValueChangeListeners != null)
             propertyValueChangeListeners.remove(listener);
     }
 
-    /** Send a Property value change event to all interested listeners */
+    /** 
+     * Sends a Property value change event to all interested listeners.
+     * @param source the IndexedContainerProperty object.
+     */
     private void firePropertyValueChange(IndexedContainerProperty source) {
 
-        // Send event to listeners listening all value changes
+        // Sends event to listeners listening all value changes
         if (propertyValueChangeListeners != null) {
             Object[] l = propertyValueChangeListeners.toArray();
             Property.ValueChangeEvent event = new IndexedContainer.PropertyValueChangeEvent(
@@ -717,7 +735,7 @@ public class IndexedContainer implements Container, Container.Indexed,
                 ((Property.ValueChangeListener) l[i]).valueChange(event);
         }
 
-        // Send event to single property value change listeners
+        // Sends event to single property value change listeners
         if (singlePropertyValueChangeListeners != null) {
             Hashtable propertySetToListenerListMap = (Hashtable) singlePropertyValueChangeListeners
                     .get(source.propertyId);
@@ -736,7 +754,9 @@ public class IndexedContainer implements Container, Container.Indexed,
 
     }
 
-    /** Send a Property set change event to all interested listeners */
+    /** 
+     * Sends a Property set change event to all interested listeners.
+     */
     private void fireContainerPropertySetChange() {
         if (propertySetChangeListeners != null) {
             Object[] l = propertySetChangeListeners.toArray();
@@ -748,7 +768,9 @@ public class IndexedContainer implements Container, Container.Indexed,
         }
     }
 
-    /** Send Item set change event to all registered interested listeners */
+    /** 
+     * Sends Item set change event to all registered interested listeners. 
+     */
     private void fireContentsChange() {
         if (itemSetChangeListeners != null) {
             Object[] l = itemSetChangeListeners.toArray();
@@ -760,7 +782,15 @@ public class IndexedContainer implements Container, Container.Indexed,
         }
     }
 
-    /** Add new single Property change listener */
+    /** 
+     * Adds new single Property change listener.
+     * @param propertyId
+     *                                         the ID of the Property to add.
+     * @param itemId
+     *                                 the ID of the Item .
+     * @param listener
+     *                                 the listener to be added.
+     */
     private void addSinglePropertyChangeListener(Object propertyId,
             Object itemId, Property.ValueChangeListener listener) {
         if (listener != null) {
@@ -783,7 +813,15 @@ public class IndexedContainer implements Container, Container.Indexed,
         }
     }
 
-    /** Remove a previously registered single Property change listener */
+    /** 
+     * Removes a previously registered single Property change listener.
+     * @param propertyId
+     *                                 the ID of the Property to remove.
+     * @param itemId
+     *                                 the ID of the Item.
+     * @param listener
+     *                                 the listener to be removed.
+     */
     private void removeSinglePropertyChangeListener(Object propertyId,
             Object itemId, Property.ValueChangeListener listener) {
         if (listener != null && singlePropertyValueChangeListeners != null) {
@@ -816,21 +854,21 @@ public class IndexedContainer implements Container, Container.Indexed,
      */
     class IndexedContainerItem implements Item {
 
-        /** Item ID in the host container for this Item */
+        /** 
+         * Item ID in the host container for this Item. 
+         */
         private Object itemId;
 
         /**
          * Constructs a new ListItem instance and connects it to a host
          * container.
          * 
-         * @param host
-         *            the list that contains this Item
          * @param itemId
-         *            Item ID of the new Item
+         *            the Item ID of the new Item.
          */
         private IndexedContainerItem(Object itemId) {
 
-            // Get the item contents from the host
+            // Gets the item contents from the host
             if (itemId == null)
                 throw new NullPointerException();
             this.itemId = itemId;
@@ -842,7 +880,7 @@ public class IndexedContainer implements Container, Container.Indexed,
          * <code>null</code> is returned.
          * 
          * @param id
-         *            identifier of the Property to get
+         *            the identifier of the Property to get.
          * @return the Property with the given ID or <code>null</code>
          */
         public Property getItemProperty(Object id) {
@@ -909,7 +947,10 @@ public class IndexedContainer implements Container, Container.Indexed,
             IndexedContainerItem li = (IndexedContainerItem) obj;
             return getHost() == li.getHost() && itemId.equals(li.itemId);
         }
-
+        /**
+         * 
+         * @return
+         */
         private IndexedContainer getHost() {
             return IndexedContainer.this;
         }
@@ -938,7 +979,7 @@ public class IndexedContainer implements Container, Container.Indexed,
 
     }
 
-    /*
+    /**
      * A class implementing the com.itmill.toolkit.data.Property interface to be
      * contained in the Items contained in the list. @author IT Mill Ltd.
      * 
@@ -948,10 +989,14 @@ public class IndexedContainer implements Container, Container.Indexed,
     private class IndexedContainerProperty implements Property,
             Property.ValueChangeNotifier {
 
-        /** ID of the Item, where the Property resides */
+        /** 
+         * ID of the Item, where the Property resides. 
+         */
         private Object itemId;
 
-        /** Id of the Property */
+        /** 
+         * Id of the Property. 
+         */
         private Object propertyId;
 
         /**
@@ -959,12 +1004,12 @@ public class IndexedContainer implements Container, Container.Indexed,
          * a ListContainer.
          * 
          * @param itemId
-         *            ID of the Item to connect the new Property to
+         *            the ID of the Item to connect the new Property to.
          * @param propertyId
-         *            Property ID of the new Property
+         *            the Property ID of the new Property.
          * @param host
          *            the list that contains the Item to contain the new
-         *            Property
+         *            Property.
          */
         private IndexedContainerProperty(Object itemId, Object propertyId) {
             if (itemId == null || propertyId == null)
@@ -974,13 +1019,13 @@ public class IndexedContainer implements Container, Container.Indexed,
         }
 
         /**
-         * Return the type of the Property. The methods <code>getValue</code>
+         * Returns the type of the Property. The methods <code>getValue</code>
          * and <code>setValue</code> must be compatible with this type: one
          * must be able to safely cast the value returned from
          * <code>getValue</code> to the given type and pass any variable
          * assignable to this type as a parameter to <code>setValue</code.
          * 
-         * @return type of the Property
+         * @return the type of the Property.
          */
         public Class getType() {
             return (Class) types.get(propertyId);
@@ -989,7 +1034,7 @@ public class IndexedContainer implements Container, Container.Indexed,
         /**
          * Gets the value stored in the Property.
          * 
-         * @return the value stored in the Property
+         * @return the value stored in the Property.
          */
         public Object getValue() {
             return ((Hashtable) items.get(itemId)).get(propertyId);
@@ -997,24 +1042,24 @@ public class IndexedContainer implements Container, Container.Indexed,
 
         /**
          * <p>
-         * Test if the Property is in read-only mode. In read-only mode calls to
+         * Tests if the Property is in read-only mode. In read-only mode calls to
          * the method <code>setValue</code> will throw
          * <code>ReadOnlyException</code> s and will not modify the value of
          * the Property.
          * </p>
          * 
          * @return <code>true</code> if the Property is in read-only mode,
-         *         <code>false</code> if it's not
+         *         <code>false</code> if it's not.
          */
         public boolean isReadOnly() {
             return readOnlyProperties.contains(this);
         }
 
         /**
-         * Set the Property's read-only mode to the specified status.
+         * Sets the Property's read-only mode to the specified status.
          * 
          * @param newStatus
-         *            new read-only status of the Property
+         *            the new read-only status of the Property.
          */
         public void setReadOnly(boolean newStatus) {
             if (newStatus)
@@ -1030,7 +1075,7 @@ public class IndexedContainer implements Container, Container.Indexed,
          * to assign the value,
          * 
          * @param newValue
-         *            New value of the Property. This should be assignable to
+         *            the New value of the Property. This should be assignable to
          *            the Property's internal type or support
          *            <code>toString</code>.
          * 
@@ -1044,7 +1089,7 @@ public class IndexedContainer implements Container, Container.Indexed,
         public void setValue(Object newValue)
                 throws Property.ReadOnlyException, Property.ConversionException {
 
-            // Get the Property set
+            // Gets the Property set
             Hashtable propertySet = (Hashtable) items.get(itemId);
 
             // Support null values on all types
@@ -1059,11 +1104,11 @@ public class IndexedContainer implements Container, Container.Indexed,
             else
                 try {
 
-                    // Get the string constructor
+                    // Gets the string constructor
                     Constructor constr = getType().getConstructor(
                             new Class[] { String.class });
 
-                    // Create new object from the string
+                    // Creates new object from the string
                     propertySet.put(propertyId, constr
                             .newInstance(new Object[] { newValue.toString() }));
 
@@ -1078,7 +1123,7 @@ public class IndexedContainer implements Container, Container.Indexed,
         }
 
         /**
-         * Return the value of the Property in human readable textual format.
+         * Returns the value of the Property in human readable textual format.
          * The return value should be assignable to the <code>setValue</code>
          * method if the Property is not in read-only mode.
          * 
@@ -1129,7 +1174,7 @@ public class IndexedContainer implements Container, Container.Indexed,
          * Registers a new value change listener for this Property.
          * 
          * @param listener
-         *            the new Listener to be registered
+         *            the new Listener to be registered.
          * @see com.itmill.toolkit.data.Property.ValueChangeNotifier#addListener(ValueChangeListener)
          */
         public void addListener(Property.ValueChangeListener listener) {
@@ -1153,15 +1198,13 @@ public class IndexedContainer implements Container, Container.Indexed,
 
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /**
      * @see com.itmill.toolkit.data.Container.Sortable#sort(java.lang.Object[],
      *      boolean[])
      */
     public synchronized void sort(Object[] propertyId, boolean[] ascending) {
 
-        // Remove any non-sortable property ids
+        // Removes any non-sortable property ids
         ArrayList ids = new ArrayList();
         ArrayList orders = new ArrayList();
         Collection sortable = getSortableContainerPropertyIds();
@@ -1189,9 +1232,7 @@ public class IndexedContainer implements Container, Container.Indexed,
 
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /**
      * @see com.itmill.toolkit.data.Container.Sortable#getSortableContainerPropertyIds()
      */
     public Collection getSortableContainerPropertyIds() {
@@ -1210,7 +1251,7 @@ public class IndexedContainer implements Container, Container.Indexed,
     }
 
     /**
-     * Compare two items for sorting.
+     * Compares two items for sorting.
      * 
      * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
      * @see #sort((java.lang.Object[], boolean[])
@@ -1255,10 +1296,15 @@ public class IndexedContainer implements Container, Container.Indexed,
         return 0;
     }
 
-    /* Support cloning of the IndexedContainer cleanly */
+    /**
+     * Supports cloning of the IndexedContainer cleanly. 
+     * @throws CloneNotSupportedException
+     *                                                                  if an object cannot be cloned.
+.
+     */
     public Object clone() throws CloneNotSupportedException {
 
-        // Create the clone
+        // Creates the clone
         IndexedContainer nc = new IndexedContainer();
 
         // Clone the shallow properties
@@ -1304,7 +1350,10 @@ public class IndexedContainer implements Container, Container.Indexed,
 
         return nc;
     }
-
+    
+       /**
+        * @see java.lang.Object#equals(java.lang.Object)
+        */
     public boolean equals(Object obj) {
 
         // Only ones of the objects of the same class can be equal
@@ -1312,7 +1361,7 @@ public class IndexedContainer implements Container, Container.Indexed,
             return false;
         IndexedContainer o = (IndexedContainer) obj;
 
-        // Check the properties one by one
+        // Checks the properties one by one
         if (itemIds != o.itemIds && o.itemIds != null
                 && !o.itemIds.equals(this.itemIds))
             return false;
@@ -1356,7 +1405,10 @@ public class IndexedContainer implements Container, Container.Indexed,
 
         return true;
     }
-
+    
+       /**
+        * @see java.lang.Object#hashCode()
+        */
     public int hashCode() {
 
         // The hash-code is calculated as combination hash of the members
index e80a27de8597c62ec5fbd16d118ca73bb3da7041..d058feb029d9e4602e9d431740a6e4f10474c424 100644 (file)
@@ -35,19 +35,26 @@ import java.util.LinkedList;
 
 import com.itmill.toolkit.data.Property;
 
-/** <p>Proxy class for creating Properties from pairs of getter and setter
+/** 
+ * <p>
+ * Proxy class for creating Properties from pairs of getter and setter
  * methods of a Bean property. An instance of this class can be thought as
  * having been attached to a field of an object. Accessing the object
  * through the Property interface directly manipulates the underlying
- * field.</p>
+ * field.
+ * </p>
  * 
- * <p>It's assumed that the return value returned by the getter method 
+ * <p>
+ * It's assumed that the return value returned by the getter method 
  * is assignable to the type of the property, and the setter method
- * parameter is assignable to that value.</p>
+ * parameter is assignable to that value.
+ * </p>
  * 
- * <p>A valid getter method must always be available, but instance of this
+ * <p>
+ * A valid getter method must always be available, but instance of this
  * class can be constructed with a <code>null</code> setter method in which
- * case the resulting MethodProperty is read-only.</p>
+ * case the resulting MethodProperty is read-only.
+ * </p>
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -55,48 +62,70 @@ import com.itmill.toolkit.data.Property;
  */
 public class MethodProperty implements Property {
 
-       /** The object that includes the property the MethodProperty is bound to */
+       /** 
+        * The object that includes the property the MethodProperty is bound to. 
+        */
        private Object instance;
 
-       /** Argument arrays for the getter and setter methods */
+       /** 
+        * Argument arrays for the getter and setter methods. 
+        */
        private Object[] setArgs, getArgs;
 
-       /** Is the MethodProperty read-only? */
+       /**
+        * Is the MethodProperty read-only? 
+        */
        private boolean readOnly;
 
-       /** The getter and setter methods */
+       /**
+        * The getter and setter methods. 
+        */
        private Method setMethod, getMethod;
 
-       /** Index of the new value in the argument list for the setter method.
+       /** 
+        * Index of the new value in the argument list for the setter method.
         * If the setter method requires several parameters, this index tells
         * which one is the actual value to change.
         */
        private int setArgumentIndex;
 
-       /** Type of the property */
+       /** 
+        * Type of the property. 
+        */
        private Class type;
 
-       /** List of listeners who are interested in the read-only status changes
+       /** 
+        * List of listeners who are interested in the read-only status changes
         * of the MethodProperty
         */
        private LinkedList readOnlyStatusChangeListeners = null;
 
-       /** <p>Creates a new instance of MethodProperty from a named bean
+       /** 
+        * <p>
+        * Creates a new instance of <code>MethodProperty</code> from a named bean
         * property. This constructor takes an object and the name of a bean
         * property and initializes itself with the accessor methods for the
-        * property. The getter method of a MethodProperty instantiated
+        * property.
+        *</p> 
+        * <p>
+        * The getter method of a <code>MethodProperty</code> instantiated
         * with this constructor will be called with no arguments, and the
-        * setter method with only the new value as the sole argument.</p>
+        * setter method with only the new value as the sole argument.
+        * </p>
         * 
-        * <p>If the setter method is unavailable, the resulting MethodProperty
-        * will be read-only, otherwise it will be read-write.</p>
+        * <p>
+        * If the setter method is unavailable, the resulting <code>MethodProperty</code>
+        * will be read-only, otherwise it will be read-write.
+        * </p>
         * 
-        * <p>Method names are constucted from the bean property by adding
+        * <p>
+        * Method names are constucted from the bean property by adding
         * get/is/are/set prefix and capitalising the first character in the 
-        * name of the given bean property</p>
+        * name of the given bean property.
+        * </p>
         * 
-        * @param instance object that includes the property
-        * @param beanPropertyName name of the property to bind to
+        * @param instance the object that includes the property.
+        * @param beanPropertyName the name of the property to bind to.
         */
        public MethodProperty(Object instance, String beanPropertyName) {
 
@@ -139,7 +168,7 @@ public class MethodProperty implements Property {
                // In case the get method is found, resolve the type
                type = getMethod.getReturnType();
 
-               // Find the set method
+               // Finds the set method
                setMethod = null;
                try {
                        setMethod =
@@ -149,7 +178,7 @@ public class MethodProperty implements Property {
                } catch (java.lang.NoSuchMethodException skipped) {
                }
 
-               // Get the return type from get method
+               // Gets the return type from get method
                if (type.isPrimitive()) {
                        if (type.equals(Boolean.TYPE))
                                type = Boolean.class;
@@ -175,19 +204,24 @@ public class MethodProperty implements Property {
                this.instance = instance;
        }
 
-       /** <p>Creates a new instance of MethodProperty from named getter and
-        * setter methods. The getter method of a MethodProperty instantiated
+       /** 
+        * <p>
+        * Creates a new instance of <code>MethodProperty</code> from named getter and
+        * setter methods. The getter method of a <code>MethodProperty</code> instantiated
         * with this constructor will be called with no arguments, and the
-        * setter method with only the new value as the sole argument.</p>
+        * setter method with only the new value as the sole argument.
+        * </p>
         *
-        * <p>If the setter method is <code>null</code>, the resulting
-        * MethodProperty will be read-only, otherwise it will be
-        * read-write.</p>
+        * <p>
+        * If the setter method is <code>null</code>, the resulting
+        * <code>MethodProperty</code> will be read-only, otherwise it will be
+        * read-write.
+        * </p>
         * 
-        * @param type type of the property
-        * @param instance object that includes the property
-        * @param getMethodName name of the getter method
-        * @param setMethodName name of the setter method
+        * @param type the type of the property.
+        * @param instance the object that includes the property.
+        * @param getMethodName the name of the getter method.
+        * @param setMethodName the name of the setter method.
         *
         */
        public MethodProperty(
@@ -199,19 +233,24 @@ public class MethodProperty implements Property {
                }, new Object[] { null }, 0);
        }
 
-       /** <p>Creates a new instance of MethodProperty with the getter and
-        * setter methods. The getter method of a MethodProperty instantiated
+       /** 
+        * <p>
+        * Creates a new instance of <code>MethodProperty</code> with the getter and
+        * setter methods. The getter method of a <code>MethodProperty</code> instantiated
         * with this constructor will be called with no arguments, and the
-        * setter method with only the new value as the sole argument.</p>
+        * setter method with only the new value as the sole argument.
+        * </p>
         *
-        * <p>If the setter method is <code>null</code>, the resulting
-        * MethodProperty will be read-only, otherwise it will be
-        * read-write.</p>
+        * <p>
+        * If the setter method is <code>null</code>, the resulting
+        * <code>MethodProperty</code> will be read-only, otherwise it will be
+        * read-write.
+        * </p>
         *
-        * @param type type of the property
-        * @param instance object that includes the property
-        * @param getMethod the getter method
-        * @param setMethod the setter method
+        * @param type the type of the property.
+        * @param instance the object that includes the property.
+        * @param getMethod the getter method.
+        * @param setMethod the setter method.
         */
        public MethodProperty(
                Class type,
@@ -222,29 +261,34 @@ public class MethodProperty implements Property {
                }, new Object[] { null }, 0);
        }
 
-       /** <p>Creates a new instance of MethodProperty from named getter and
+       /** 
+        * <p>
+        * Creates a new instance of <code>MethodProperty</code> from named getter and
         * setter methods and argument lists. The getter method of a
-        * MethodProperty instantiated with this constructor will be called with
-        * <code>getArgs</code> as arguments. <code>setArgs</code> will be used
+        * <code>MethodProperty</code> instantiated with this constructor will be called with
+        * the getArgs as arguments. The setArgs will be used
         * as the arguments for the setter method, though the argument indexed
-        * by <code>setArgumentIndex</code> will be replaced with the argument
-        * passed to the {@link #setValue(Object newValue)} method.</p>
+        * by the setArgumentIndex will be replaced with the argument
+        * passed to the {@link #setValue(Object newValue)} method.
+        * </p>
         * 
-        * <p>For example, if the <code>setArgs</code> contains <code>A</code>,
+        * <p>
+        * For example, if the <code>setArgs</code> contains <code>A</code>,
         * <code>B</code> and <code>C</code>, and <code>setArgumentIndex =
         * 1</code>, the call <code>methodProperty.setValue(X)</code> would
         * result in the setter method to be called with the parameter set of
-        * <code>{A, X, C}</code></p>
+        * <code>{A, X, C}</code>
+        * </p>
         *
-        * @param type type of the property
-        * @param instance object that includes the property
-        * @param getMethodName the name of the getter method
-        * @param setMethodName the name of the setter method
-        * @param getArgs fixed argument list to be passed to the getter method
-        * @param setArgs fixed argument list to be passed to the setter method
+        * @param type the type of the property.
+        * @param instance the object that includes the property.
+        * @param getMethodName the name of the getter method.
+        * @param setMethodName the name of the setter method.
+        * @param getArgs the fixed argument list to be passed to the getter method.
+        * @param setArgs the fixed argument list to be passed to the setter method.
         * @param setArgumentIndex the index of the argument in
         * <code>setArgs</code> to be replaced with <code>newValue</code> when
-        * {@link #setValue(Object newValue)} is called
+        * {@link #setValue(Object newValue)} is called.
         */
        public MethodProperty(
                Class type,
@@ -267,22 +311,22 @@ public class MethodProperty implements Property {
                // Find set and get -methods    
                Method[] m = instance.getClass().getMethods();
 
-               // Find get method
+               // Finds get method
                boolean found = false;
                for (int i = 0; i < m.length; i++) {
 
-                       // Test the name of the get Method
+                       // Tests the name of the get Method
                        if (!m[i].getName().equals(getMethodName)) {
 
                                // name does not match, try next method
                                continue;
                        }
 
-                       // Test return type
+                       // Tests return type
                        if (!type.equals(m[i].getReturnType()))
                                continue;
 
-                       // Test the parameter types
+                       // Tests the parameter types
                        Class[] c = m[i].getParameterTypes();
                        if (c.length != getArgs.length) {
 
@@ -318,21 +362,21 @@ public class MethodProperty implements Property {
                                "Could not find " + getMethodName + "-method");
                }
 
-               // Find set method
+               // Finds set method
                if (setMethodName != null) {
 
-                       // Find setMethod
+                       // Finds setMethod
                        found = false;
                        for (int i = 0; i < m.length; i++) {
 
-                               // Check name
+                               // Checks name
                                if (!m[i].getName().equals(setMethodName)) {
 
                                        // name does not match, try next method
                                        continue;
                                }
 
-                               // Check parameter compatibility
+                               // Checks parameter compatibility
                                Class[] c = m[i].getParameterTypes();
                                if (c.length != setArgs.length) {
 
@@ -373,7 +417,7 @@ public class MethodProperty implements Property {
                        }
                }
 
-               // Get the return type from get method
+               // Gets the return type from get method
                if (type.isPrimitive()) {
                        if (type.equals(Boolean.TYPE))
                                type = Boolean.class;
@@ -398,23 +442,28 @@ public class MethodProperty implements Property {
                this.instance = instance;
        }
 
-       /** <p>Creates a new instance of MethodProperty from the getter and
-        * setter methods, and argument lists. This constructor behaves exctly
-        * like {@link #MethodProperty(Class type, Object instance, String
+       /** 
+        * <p>
+        * Creates a new instance of <code>MethodProperty</code> from the getter and
+        * setter methods, and argument lists. 
+        * </p>
+        * <p>
+        * This constructor behaves exactly like {@link #MethodProperty(Class type, Object instance, String
         * getMethodName, String setMethodName, Object [] getArgs, Object []
         * setArgs, int setArgumentIndex)} except that instead of names of
         * the getter and setter methods this constructor is given the actual
-        * methods themselves.</p>
+        * methods themselves.
+        * </p>
         *
-        * @param type type of the property
-        * @param instance object that includes the property
-        * @param getMethod the getter method
-        * @param setMethod the setter method
-        * @param getArgs fixed argument list to be passed to the getter method
-        * @param setArgs fixed argument list to be passed to the setter method
+        * @param type the type of the property.
+        * @param instance the object that includes the property.
+        * @param getMethod the getter method.
+        * @param setMethod the setter method.
+        * @param getArgs the fixed argument list to be passed to the getter method.
+        * @param setArgs the fixed argument list to be passed to the setter method.
         * @param setArgumentIndex the index of the argument in
         * <code>setArgs</code> to be replaced with <code>newValue</code> when
-        * {@link #setValue(Object newValue)} is called
+        * {@link #setValue(Object newValue)} is called.
         */
        public MethodProperty(
                Class type,
@@ -433,7 +482,7 @@ public class MethodProperty implements Property {
                if (setMethod != null && ( setArgumentIndex < 0 || setArgumentIndex >= setArgs.length))
                        throw new IndexOutOfBoundsException("The setArgumentIndex must be >= 0 and < setArgs.length");
 
-               // Get the return type from get method
+               // Gets the return type from get method
                if (type.isPrimitive()) {
                        if (type.equals(Boolean.TYPE))
                                type = Boolean.class;
@@ -461,7 +510,8 @@ public class MethodProperty implements Property {
                this.type = type;
        }
 
-       /** Returns the type of the Property. The methods <code>getValue</code>
+       /** 
+        * Returns the type of the Property. The methods <code>getValue</code>
         * and <code>setValue</code> must be compatible with this type: one
         * must be able to safely cast the value returned from
         * <code>getValue</code> to the given type and pass any variable
@@ -473,8 +523,9 @@ public class MethodProperty implements Property {
                return type;
        }
 
-       /** Tests if the object is in read-only mode. In read-only mode calls
-        * to <code>setValue</code> will throw <code>ReadOnlyException</code>s
+       /** 
+        * Tests if the object is in read-only mode. In read-only mode calls
+        * to <code>setValue</code> will throw <code>ReadOnlyException</code>
         * and will not modify the value of the Property.
         *
         * @return <code>true</code> if the object is in read-only mode,
@@ -484,7 +535,8 @@ public class MethodProperty implements Property {
                return readOnly;
        }
 
-       /** Gets the value stored in the Property. The value is resolved by
+       /** 
+        * Gets the value stored in the Property. The value is resolved by
         * calling the specified getter method with the argument specified
         * at instantiation.
         *  
@@ -498,7 +550,8 @@ public class MethodProperty implements Property {
                }
        }
 
-       /** Returns the value of the MethodProperty in human readable textual
+       /** 
+        * Returns the value of the <code>MethodProperty</code> in human readable textual
         * format. The return value should be assignable to the
         * <code>setValue</code> method if the Property is not in read-only
         * mode.
@@ -512,13 +565,16 @@ public class MethodProperty implements Property {
                return value.toString();
        }
 
-       /** <p>Sets the setter method and getter method argument lists.</p>
+       /** 
+        * <p>
+        * Sets the setter method and getter method argument lists.
+        * </p>
         *
-        * @param getArgs fixed argument list to be passed to the getter method
-        * @param setArgs fixed argument list to be passed to the setter method
+        * @param getArgs the fixed argument list to be passed to the getter method.
+        * @param setArgs the fixed argument list to be passed to the setter method.
         * @param setArgumentIndex the index of the argument in
         * <code>setArgs</code> to be replaced with <code>newValue</code> when
-        * {@link #setValue(Object newValue)} is called
+        * {@link #setValue(Object newValue)} is called.
         */
        public void setArguments(
                Object[] getArgs,
@@ -533,22 +589,24 @@ public class MethodProperty implements Property {
                this.setArgumentIndex = setArgumentIndex;
        }
 
-       /** Set the value of the property. This method supports setting from
+       /** 
+        * Sets the value of the property. This method supports setting from
         * <code>String</code>s if either <code>String</code> is directly
         * assignable to property type, or the type class contains a string
         * constructor.
         *
-        * @param newValue New value of the property.
+        * @param newValue the New value of the property.
         * @throws <code>Property.ReadOnlyException</code> if the object is in
-        * read-only mode
+        * read-only mode.
         * @throws <code>Property.ConversionException</code> if
         * <code>newValue</code> can't be converted into the Property's native
-        * type directly or through <code>String</code>
+        * type directly or through <code>String</code>.
+        * @see #invokeSetMethod(Object)
         */
        public void setValue(Object newValue)
                throws Property.ReadOnlyException, Property.ConversionException {
 
-               // Check the mode
+               // Checks the mode
                if (isReadOnly())
                        throw new Property.ReadOnlyException();
 
@@ -562,7 +620,7 @@ public class MethodProperty implements Property {
                        Object value;
                        try {
 
-                               // Get the string constructor
+                               // Gets the string constructor
                                Constructor constr =
                                        getType().getConstructor(new Class[] { String.class });
 
@@ -572,13 +630,15 @@ public class MethodProperty implements Property {
                                throw new Property.ConversionException(e);
                        }
 
-                       // Create new object from the string
+                       // Creates new object from the string
                        invokeSetMethod(value);
                }
        }
 
-       /** Internal method to actually call the setter method of the wrapped
+       /** 
+        * Internal method to actually call the setter method of the wrapped
         * property.
+        * @param value 
         */
        private void invokeSetMethod(Object value) {
 
@@ -588,7 +648,7 @@ public class MethodProperty implements Property {
                                setMethod.invoke(instance, new Object[] { value });
                        else {
 
-                               // Set the value to argument array
+                               // Sets the value to argument array
                                Object[] args = new Object[setArgs.length];
                                for (int i = 0; i < setArgs.length; i++)
                                        args[i] = (i == setArgumentIndex) ? value : setArgs[i];
@@ -602,10 +662,11 @@ public class MethodProperty implements Property {
                }
        }
 
-       /** Sets the Property's read-only mode to the specified status.
-         * 
-         * @param newStatus new read-only status of the Property
-         */
+       /** 
+        * Sets the Property's read-only mode to the specified status.
+        * 
+        * @param newStatus the new read-only status of the Property.
+        */
        public void setReadOnly(boolean newStatus) {
                boolean prevStatus = readOnly;
                if (newStatus)
@@ -616,7 +677,8 @@ public class MethodProperty implements Property {
                        fireReadOnlyStatusChange();
        }
 
-       /** <code>Exception</code> object that signals that there were
+       /** 
+        * <code>Exception</code> object that signals that there were
         * problems calling or finding the specified getter or setter methods
         * of the property.
         * @author IT Mill Ltd.
@@ -629,22 +691,26 @@ public class MethodProperty implements Property {
          * Serial generated by eclipse.
          */
         private static final long serialVersionUID = 3690473623827855153L;
-        /** Cause of the method exception */
+        /** 
+         * Cause of the method exception 
+         */
                private Throwable cause;
 
-               /** Constructs a new <code>MethodException</code> with the
+               /** 
+                * Constructs a new <code>MethodException</code> with the
                 * specified detail message.
                 * 
-                * @param msg the detail message
+                * @param msg the detail message.
                 */
                public MethodException(String msg) {
                        super(msg);
                }
 
-               /** Constructs a new <code>MethodException</code> from another
+               /** 
+                * Constructs a new <code>MethodException</code> from another
                 * exception.
                 * 
-                * @param exception cause of the exception
+                * @param cause the cause of the exception.
                 */
                public MethodException(Throwable cause) {
                        this.cause = cause;
@@ -656,7 +722,9 @@ public class MethodProperty implements Property {
                        return cause;
                }
 
-               /** Get the method property this exception originates from */
+               /** 
+                * Gets the method property this exception originates from. 
+                */
                public MethodProperty getMethodProperty() {
                        return MethodProperty.this;
                }
@@ -664,7 +732,8 @@ public class MethodProperty implements Property {
 
        /* Events *************************************************************** */
 
-       /** An <code>Event</code> object specifying the Property whose read-only
+       /** 
+        * An <code>Event</code> object specifying the Property whose read-only
         * status has been changed.
         * @author IT Mill Ltd.
         * @version @VERSION@
@@ -679,15 +748,17 @@ public class MethodProperty implements Property {
          */
         private static final long serialVersionUID = 3258129163305955896L;
 
-        /** Constructs a new read-only status change event for this object.
+        /** 
+         * Constructs a new read-only status change event for this object.
                 * 
-                * @param source source object of the event
+                * @param source source object of the event.
                 */
                protected ReadOnlyStatusChangeEvent(MethodProperty source) {
                        super(source);
                }
 
-               /** Gets the Property whose read-only state has changed.
+               /** 
+                * Gets the Property whose read-only state has changed.
                 * 
                 * @return source Property of the event.
                 */
@@ -697,9 +768,10 @@ public class MethodProperty implements Property {
 
        }
 
-       /** Registers a new read-only status change listener for this Property.
+       /** 
+        * Registers a new read-only status change listener for this Property.
         * 
-        * @param listener the new Listener to be registered
+        * @param listener the new Listener to be registered.
         */
        public void addListener(Property.ReadOnlyStatusChangeListener listener) {
                if (readOnlyStatusChangeListeners == null)
@@ -707,9 +779,10 @@ public class MethodProperty implements Property {
                readOnlyStatusChangeListeners.add(listener);
        }
 
-       /** Remove a previously registered read-only status change listener.
+       /** 
+        * Removes a previously registered read-only status change listener.
         * 
-        * @param listener listener to be removed
+        * @param listener the listener to be removed.
         */
        public void removeListener(
                Property.ReadOnlyStatusChangeListener listener) {
@@ -717,7 +790,8 @@ public class MethodProperty implements Property {
                        readOnlyStatusChangeListeners.remove(listener);
        }
 
-       /** Send a read only status change event to all registered listeners.
+       /** 
+        * Sends a read only status change event to all registered listeners.
         */
        private void fireReadOnlyStatusChange() {
                if (readOnlyStatusChangeListeners != null) {
index c8b8abef4d262c8fc23a37723c4bbb7584fa3da2..21a7669bf6183649de793eb6f16b6a84b2669f55 100644 (file)
@@ -33,7 +33,8 @@ import com.itmill.toolkit.data.Property;
 import java.lang.reflect.Constructor;
 import java.util.LinkedList;
 
-/** A simple data object containing one typed value. This class is a
+/** 
+ * A simple data object containing one typed value. This class is a
  * straightforward implementation of the the
  * {@link com.itmill.toolkit.data.Property} interface.
  *
@@ -44,39 +45,50 @@ import java.util.LinkedList;
 public class ObjectProperty implements Property, Property.ValueChangeNotifier,
 Property.ReadOnlyStatusChangeNotifier {
   
-       /** A boolean value storing the Property's read-only status
+       /** 
+        * A boolean value storing the Property's read-only status
         * information.
         */  
     private boolean readOnly = false;
   
-       /** The value contained by the Property. */  
+       /** 
+        * The value contained by the Property. 
+        */  
     private Object value;
   
-       /** Data type of the Property's value */  
+       /** 
+        * Data type of the Property's value. 
+        */  
     private Class type;
   
-       /** Internal list of registered value change listeners. */  
+       /** 
+        * Internal list of registered value change listeners. 
+        */  
     private LinkedList valueChangeListeners = null;
   
-       /** Internal list of registered read-only status change listeners. */
+       /** 
+        * Internal list of registered read-only status change listeners. 
+        */
     private LinkedList readOnlyStatusChangeListeners = null;
     
-    /** Creates a new instance of ObjectProperty with the given value.
+    /** 
+     * Creates a new instance of ObjectProperty with the given value.
      * The type of the property is automatically initialized to be
      * the type of the given value.
      *
-     * @param value Initial value of the Property
+     * @param value the Initial value of the Property.
      */
     public ObjectProperty(Object value) {
         this(value,value.getClass());
     }
     
-    /** Creates a new instance of ObjectProperty with the given value and
+    /** 
+     * Creates a new instance of ObjectProperty with the given value and
      * type.
      * 
-     * @param value Initial value of the Property
-     * @param type The type of the value. The value must be assignable to
-     * given type
+     * @param value the Initial value of the Property.
+     * @param type the type of the value. The value must be assignable to
+     * given type.
      */
     public ObjectProperty(Object value, Class type) {
         
@@ -85,20 +97,22 @@ Property.ReadOnlyStatusChangeNotifier {
         setValue(value);
     }
     
-    /** Creates a new instance of ObjectProperty with the given value, type
+    /** 
+     * Creates a new instance of ObjectProperty with the given value, type
      * and read-only mode status.
      * 
-     * @param value Initial value of the property.
-     * @param type The type of the value. <code>value</code> must be
+     * @param value the Initial value of the property.
+     * @param type the type of the value. <code>value</code> must be
      * assignable to this type.
-     * @param readOnly Sets the read-only mode.
+     * @param readOnly  Sets the read-only mode.
      */
     public ObjectProperty(Object value, Class type, boolean readOnly) {
         this(value,type);
         setReadOnly(readOnly);
     }
     
-    /** Returns the type of the ObjectProperty. The methods
+    /** 
+     * Returns the type of the ObjectProperty. The methods
      * <code>getValue</code> and <code>setValue</code> must be compatible
      * with this type: one must be able to safely cast the value returned
      * from <code>getValue</code> to the given type and pass any variable
@@ -110,7 +124,8 @@ Property.ReadOnlyStatusChangeNotifier {
         return type;
     }
     
-    /** Gets the value stored in the Property.
+    /** 
+     * Gets the value stored in the Property.
      * 
      * @return the value stored in the Property
      */
@@ -118,7 +133,8 @@ Property.ReadOnlyStatusChangeNotifier {
         return value;
     }
     
-    /** Returns the value of the ObjectProperty in human readable textual
+    /** 
+     * Returns the value of the ObjectProperty in human readable textual
      * format. The return value should be assignable to the
      * <code>setValue</code> method if the Property is not in read-only
      * mode.
@@ -134,7 +150,8 @@ Property.ReadOnlyStatusChangeNotifier {
                return null;
     }
     
-    /** Tests if the Property is in read-only mode. In read-only mode calls
+    /** 
+     * Tests if the Property is in read-only mode. In read-only mode calls
      * to the method <code>setValue</code> will throw
      * <code>ReadOnlyException</code>s and will not modify the value of the
      * Property.
@@ -146,9 +163,10 @@ Property.ReadOnlyStatusChangeNotifier {
         return readOnly;
     }
     
-    /** Sets the Property's read-only mode to the specified status.
+    /** 
+     * Sets the Property's read-only mode to the specified status.
      * 
-     * @param newStatus new read-only status of the Property
+     * @param newStatus the new read-only status of the Property.
      */        
     public void setReadOnly(boolean newStatus) {
        if (newStatus != readOnly) {
@@ -157,36 +175,37 @@ Property.ReadOnlyStatusChangeNotifier {
        }
     }
     
-    /** Set the value of the property. This method supports setting from
-     * <code>String</code>s if either <code>String</code> is directly
+    /** 
+     * Sets the value of the property. This method supports setting from
+     * <code>String</code> if either <code>String</code> is directly
      * assignable to property type, or the type class contains a string
      * constructor.
      *
-     * @param newValue New value of the property.
+     * @param newValue the New value of the property.
      * @throws <code>Property.ReadOnlyException</code> if the object is in
      * read-only mode
-     * @throws <code>Property.ConversionException</code> if
-     * <code>newValue</code> can't be converted into the Property's native
+     * @throws <code>Property.ConversionException</code> if the 
+     * newValue can't be converted into the Property's native
      * type directly or through <code>String</code>
      */
     public void setValue(Object newValue)
     throws Property.ReadOnlyException, Property.ConversionException {
         
-        // Check the mode
+        // Checks the mode
         if (isReadOnly()) throw new Property.ReadOnlyException();
         
-        // Try to assign the compatible value directly
+        // Tries to assign the compatible value directly
         if (newValue == null || type.isAssignableFrom(newValue.getClass()))
             value = newValue;
         
         // Otherwise try to convert the value trough string constructor
         else try {
             
-            // Get the string constructor
+            // Gets the string constructor
             Constructor constr =
             getType().getConstructor(new Class[] { String.class });
             
-            // Create new object from the string
+            // Creates new object from the string
             value = constr.newInstance(new Object[] {newValue.toString()});
             
         } catch (java.lang.Exception e) {
@@ -198,7 +217,8 @@ Property.ReadOnlyStatusChangeNotifier {
 
     /* Events *************************************************************** */
     
-    /** An <code>Event</code> object specifying the ObjectProperty whose value
+    /** 
+     * An <code>Event</code> object specifying the ObjectProperty whose value
      * has changed.
      * @author IT Mill Ltd.
      * @version @VERSION@
@@ -212,24 +232,27 @@ Property.ReadOnlyStatusChangeNotifier {
          */
         private static final long serialVersionUID = 3256718468479725873L;
 
-        /** Constructs a new value change event for this object.
+        /** 
+         * Constructs a new value change event for this object.
          * 
-         * @param source source object of the event
+         * @param source the source object of the event.
          */
         protected ValueChangeEvent(ObjectProperty source) {
             super(source);
         }
         
-        /** Gets the Property whose read-only state has changed.
+        /** 
+         * Gets the Property whose read-only state has changed.
          * 
-         * @return source Property of the event.
+         * @return source the Property of the event.
          */
         public Property getProperty() {
             return (Property) getSource();
         }
     }
     
-   /** An <code>Event</code> object specifying the Property whose read-only
+   /** 
+    * An <code>Event</code> object specifying the Property whose read-only
      * status has been changed.
      * @author IT Mill Ltd.
      * @version @VERSION@
@@ -243,7 +266,8 @@ Property.ReadOnlyStatusChangeNotifier {
          */
         private static final long serialVersionUID = 3907208273529616696L;
 
-        /** Constructs a new read-only status change event for this object.
+        /** 
+         * Constructs a new read-only status change event for this object.
          * 
          * @param source source object of the event
          */
@@ -251,7 +275,8 @@ Property.ReadOnlyStatusChangeNotifier {
             super(source);
         }
         
-        /** Gets the Property whose read-only state has changed.
+        /** 
+         * Gets the Property whose read-only state has changed.
          * 
          * @return source Property of the event.
          */
@@ -260,16 +285,18 @@ Property.ReadOnlyStatusChangeNotifier {
         }
     }
     
-    /** Remove a previously registered value change listener.
+    /** 
+     * Removes a previously registered value change listener.
      * 
-     * @param listener listener to be removed
+     * @param listener the listener to be removed.
      */
     public void removeListener(Property.ValueChangeListener listener) {
         if (valueChangeListeners != null) 
             valueChangeListeners.remove(listener);
     }
     
-    /** Registers a new value change listener for this ObjectProperty.
+    /** 
+     * Registers a new value change listener for this ObjectProperty.
      * 
      * @param listener the new Listener to be registered
      */
@@ -279,7 +306,8 @@ Property.ReadOnlyStatusChangeNotifier {
         valueChangeListeners.add(listener);
     }
     
-    /** Registers a new read-only status change listener for this Property.
+    /** 
+     * Registers a new read-only status change listener for this Property.
      * 
      * @param listener the new Listener to be registered
      */
@@ -289,16 +317,18 @@ Property.ReadOnlyStatusChangeNotifier {
         readOnlyStatusChangeListeners.add(listener);
     }
     
-    /** Remove a previously registered read-only status change listener.
+    /** 
+     * Removes a previously registered read-only status change listener.
      * 
-     * @param listener listener to be removed
+     * @param listener the listener to be removed.
      */
     public void removeListener(Property.ReadOnlyStatusChangeListener listener) {
         if (readOnlyStatusChangeListeners != null)
             readOnlyStatusChangeListeners.remove(listener);
     }
     
-    /** Send a value change event to all registered listeners.
+    /** 
+     * Sends a value change event to all registered listeners.
      */
     private void fireValueChange() {
         if (valueChangeListeners != null) {
@@ -310,7 +340,8 @@ Property.ReadOnlyStatusChangeNotifier {
         }
     }
 
-    /** Send a read only status change event to all registered listeners.
+    /** 
+     * Sends a read only status change event to all registered listeners.
      */
     private void fireReadOnlyStatusChange() {
         if (readOnlyStatusChangeListeners != null) {
index 744a9c9d8e6a9a9c7f9ed780b3865afa2911b502..f2fb4c9279355155f71de581e9174fe088a09c9f 100644 (file)
@@ -40,7 +40,7 @@ import com.itmill.toolkit.data.Property;
 
 /**
  * Class for handling a set of identified Properties. The elements contained in
- * a</code> MapItem</code> can be referenced using locally unique identifiers.
+ * a </code>MapItem</code> can be referenced using locally unique identifiers.
  * The class supports listeners who are interested in changes to the Property
  * set managed by the class.
  * 
@@ -54,13 +54,19 @@ public class PropertysetItem implements Item, Item.PropertySetChangeNotifier,
 
     /* Private representation of the item *********************************** */
 
-    /** Mapping from property id to property */
+    /** 
+     * Mapping from property id to property.
+     */
     private HashMap map = new HashMap();
 
-    /** List of all property ids to maintain the order */
+    /** 
+     * List of all property ids to maintain the order. 
+     */
     private LinkedList list = new LinkedList();
 
-    /** List of property set modification listeners */
+    /** 
+     * List of property set modification listeners. 
+     */
     private LinkedList propertySetChangeListeners = null;
 
     /* Item methods ******************************************************** */
@@ -71,7 +77,7 @@ public class PropertysetItem implements Item, Item.PropertySetChangeNotifier,
      * returned.
      * 
      * @param id
-     *            identifier of the Property to get
+     *            the identifier of the Property to get.
      * @return the Property with the given ID or <code>null</code>
      */
     public Property getItemProperty(Object id) {
@@ -96,7 +102,7 @@ public class PropertysetItem implements Item, Item.PropertySetChangeNotifier,
      * <code>false</code>.
      * 
      * @param id
-     *            ID of the Property to be removed
+     *            the ID of the Property to be removed.
      * @return <code>true</code> if the operation succeeded <code>false</code>
      *         if not
      */
@@ -118,9 +124,9 @@ public class PropertysetItem implements Item, Item.PropertySetChangeNotifier,
      * Tries to add a new Property into the Item.
      * 
      * @param id
-     *            ID of the new Property
+     *            the ID of the new Property.
      * @param property
-     *            the Property to be added and associated with <code>id</code>
+     *            the Property to be added and associated with the id.
      * @return <code>true</code> if the operation succeeded,
      *         <code>false</code> if not
      */
@@ -198,7 +204,7 @@ public class PropertysetItem implements Item, Item.PropertySetChangeNotifier,
      * Registers a new property set change listener for this Item.
      * 
      * @param listener
-     *            The new Listener to be registered.
+     *            the new Listener to be registered.
      */
     public void addListener(Item.PropertySetChangeListener listener) {
         if (propertySetChangeListeners == null)
@@ -210,14 +216,16 @@ public class PropertysetItem implements Item, Item.PropertySetChangeNotifier,
      * Removes a previously registered property set change listener.
      * 
      * @param listener
-     *            Listener to be removed.
+     *            the Listener to be removed.
      */
     public void removeListener(Item.PropertySetChangeListener listener) {
         if (propertySetChangeListeners != null)
             propertySetChangeListeners.remove(listener);
     }
 
-    /** Send a Property set change event to all interested listeners */
+    /** 
+     * Sends a Property set change event to all interested listeners.
+     */
     private void fireItemPropertySetChange() {
         if (propertySetChangeListeners != null) {
             Object[] l = propertySetChangeListeners.toArray();
@@ -228,7 +236,25 @@ public class PropertysetItem implements Item, Item.PropertySetChangeNotifier,
                         .itemPropertySetChange(event);
         }
     }
-
+    
+       /**
+        * Creates and returns a copy of this object.
+        * <p>
+        * The method <code>clone</code> performs a shallow copy of the <code>PropertysetItem</code>.
+        * </p>
+        * <p>
+        * Note : All arrays are considered to implement the interface Cloneable. 
+        * Otherwise, this method creates a new instance of the class of this object 
+        * and initializes all its fields with exactly the contents of the corresponding 
+        * fields of this object, as if by assignment, the contents of the fields are not
+        * themselves cloned. Thus, this method performs a "shallow copy"  of this object,
+        * not a "deep copy" operation. 
+        * </p>
+        * @throws CloneNotSupportedException
+        *                                                      if the object's class does not support the Cloneable interface.
+        * 
+        * @see java.lang.Object#clone()
+        */
     public Object clone() throws CloneNotSupportedException {
 
         PropertysetItem npsi = new PropertysetItem();
@@ -241,7 +267,14 @@ public class PropertysetItem implements Item, Item.PropertySetChangeNotifier,
 
         return npsi;
     }
-
+    
+       /**
+        * Returns <code>true</code> if and only if the argument is not <code>null</code> and is a 
+        * Boolean object that represents the same boolean value as this object.
+        * @param obj the object to compare with.
+        * @return <code>true</code> if the Boolean objects represent the same value otherwise <code>false</code>.
+        * @see java.lang.Object#equals(java.lang.Object)
+        */
     public boolean equals(Object obj) {
 
         if (obj == null || !(obj instanceof PropertysetItem))
@@ -271,7 +304,12 @@ public class PropertysetItem implements Item, Item.PropertySetChangeNotifier,
 
         return true;
     }
-
+    
+       /**
+        * Returns the hash code value for this list.
+        * @return the hash code value.
+        * @see java.lang.Object#hashCode()
+        */
     public int hashCode() {
 
         return (list == null ? 0 : list.hashCode())
index 33febfe58c8bb2001f7fa00dd5f5390d604cfafe..e7ab940892cbd7e04f4981b9058f8a0f31d182dd 100644 (file)
@@ -99,7 +99,7 @@ public class QueryContainer implements Container, Container.Ordered,
 
        /**
         * Constructs a new <code>QueryContainer</code> with the specified
-        * queryStatement
+        * <code>queryStatement</code>.
         * 
         * @param queryStatement
         *            Database query
@@ -121,7 +121,7 @@ public class QueryContainer implements Container, Container.Ordered,
 
        /**
         * Constructs a new <code>QueryContainer</code> with the specified  
-        * queryStatement using the default resultset type and default resultset concurrency 
+        * queryStatement using the default resultset type and default resultset concurrency. 
         * 
         * @param queryStatement
         *            Database query
@@ -140,9 +140,11 @@ public class QueryContainer implements Container, Container.Ordered,
        
        /**
         * <p>
-        * The <code>init</code> method s invoked by the constructor. This 
-        * method fills the container with the items and properties
+        * Fills the container with the items and properties. Invoked by the constructor.
         * </p>
+        * @throws SQLException
+        *             when parameter initialization fails.
+        * @see QueryContainer#QueryContainer(String, Connection, int, int).
         */
        private void init() throws SQLException {
                refresh();
@@ -162,8 +164,7 @@ public class QueryContainer implements Container, Container.Ordered,
 
        /**
         * <p>
-        * The <code>refresh</code> method refreshes the items in the container.
-        * This method will update the latest data to the container. 
+        * Restores the items in the container. This method will update the latest data to the container. 
         * </p>
         * Note : This method should be used to update the container with the latest items.
         * @throws SQLException
@@ -181,8 +182,7 @@ public class QueryContainer implements Container, Container.Ordered,
        }
 
        /**
-        * The <code>close</code> method closes the statement and nullify the
-        * statement.
+        * Releases and nullify the statement.
         * 
         * @throws SQLException
         *             when database operation fails
@@ -195,8 +195,7 @@ public class QueryContainer implements Container, Container.Ordered,
        }
 
        /**
-        * The <code>getItem</code> method gets the Item with the given Item ID
-        * from the Container.
+        * Gets the Item with the given Item ID from the Container.
         * 
         * @param id
         *            ID of the Item to retrieve
@@ -209,8 +208,7 @@ public class QueryContainer implements Container, Container.Ordered,
 
        /**
         * <p>
-        * The <code>getContainerPropertyIds</code> method gets the collection of
-        * propertyId from the Container.
+        * Gets the collection of propertyId from the Container.
         * </p>
         * 
         * @return Collection of Property ID.
@@ -221,9 +219,7 @@ public class QueryContainer implements Container, Container.Ordered,
        }
 
        /**
-        * <p>
-        * The <code>getItemIds</code> method gets the collection of all the item id in the container.
-        * </p>
+        * Gets the collection of all the item id in the container.
         * 
         * @return collection of Item IDs
         */
@@ -236,8 +232,7 @@ public class QueryContainer implements Container, Container.Ordered,
 
        /**
         * <p>
-        * The <code>getContainerProperty</code> method gets the property
-        * identified by the given itemId and propertyId from the container.If the
+        * Gets the property identified by the given itemId and propertyId from the container.If the
         * container does not contain the property <code>null</code> is returned.
         * </p>
         * 
@@ -266,11 +261,7 @@ public class QueryContainer implements Container, Container.Ordered,
        }
 
        /**
-        * <p>
-        * The <code>getType</code> gets the data type of all properties
-        * identified by the given type ID.
-        * </p>
-        * 
+        * Gets the data type of all properties identified by the given type ID.
         * @param id
         *            ID identifying the Properties
         * 
@@ -282,21 +273,17 @@ public class QueryContainer implements Container, Container.Ordered,
        }
 
        /**
-        * The <code>size</code> method gets the number of items in the container.
+        * Gets the number of items in the container.
         * 
         * @return the number of items in the container.
         */
-
        public int size() {
                return size;
        }
 
        /**
-        * <p>
-        * The <code>containsId</code> method returns <code>true</code> if given
-        * id is there in container else <code>false</code>.
-        * <p>
-        * 
+        * Tests if the list contains the specified Item. Returns <code>true</code> if 
+        * given id is there in container else <code>false</code>.
         * @param id
         *            ID the of Item to be tested.
         */
@@ -312,23 +299,23 @@ public class QueryContainer implements Container, Container.Ordered,
        }
 
        /**
-        * The <code>addItem</code> method creates a new Item with the given ID
-        * into the Container.
+        * Creates a new Item with the given ID into the Container.
         * 
-        * @param arg0
+        * @param itemId
         *            ID of the Item to be created.
+        *            
+        * @return Created new Item, or <code>null</code> if it fails.
         * 
         * @throws UnsupportedOperationException
         *             if the addItem method is not supported.
         */
-       public Item addItem(Object arg0) throws UnsupportedOperationException {
+       public Item addItem(Object itemId) throws UnsupportedOperationException {
                throw new UnsupportedOperationException();
        }
 
        /**
-        * The <code>addItem</code> method creates a new Item into the Container,
-        * and assign it an ID.
-        * 
+        * Creates a new Item into the Container, and assign it an ID.
+        * @return ID of the newly created Item, or <code>null</code> if it fails.
         * @throws UnsupportedOperationException
         *             if the addItem method is not supported.
         */
@@ -337,54 +324,52 @@ public class QueryContainer implements Container, Container.Ordered,
        }
 
        /**
-        * The <code>addItem</code> method removes the Item identified by ItemId
-        * from the Container.
-        * 
+        * Removes the Item identified by ItemId from the Container.
+        * @param itemId 
+        *                              ID of the Item to remove. 
+        * @return <code>true</code> if the operation succeeded, otherwise <code>false</code>.
         * @throws UnsupportedOperationException
         *             if the removeItem method is not supported.
         */
-       public boolean removeItem(Object arg0) throws UnsupportedOperationException {
+       public boolean removeItem(Object itemId) throws UnsupportedOperationException {
                throw new UnsupportedOperationException();
        }
 
        /**
-        * The <code>addContainerProperty</code> method adds a new Property to all
-        * Items in the Container.
+        * Adds a new Property to all Items in the Container.
         * 
-        * @param arg0
+        * @param propertyId
         *            ID of the Property
-        * @param arg1
+        * @param type
         *            Data type of the new Property
-        * @param arg2
-        *            The value all created Properties are initialized to
-        * 
+        * @param defaultValue
+        *            The value all created Properties are initialized to.
+        * @return <code>true</code> if the operation succeeded, otherwise <code>false</code>.
         * @throws UnsupportedOperationException
         *             if the addContainerProperty method is not supported.
         */
-       public boolean addContainerProperty(Object arg0, Class arg1, Object arg2)
+       public boolean addContainerProperty(Object propertyId, Class type, Object defaultValue)
                        throws UnsupportedOperationException {
                throw new UnsupportedOperationException();
        }
 
        /**
-        * The <code>removeContainerProperty</code> method removes a Property
-        * specified by the given Property ID from the Container.
+        * Removes a Property specified by the given Property ID from the Container.
         * 
-        * @param arg0
+        * @param propertyId
         *            ID of the Property to remove
-        * 
+        * @return <code>true</code> if the operation succeeded, otherwise <code>false</code>.
         * @throws UnsupportedOperationException
         *             if the removeContainerProperty method is not supported.
         */
-       public boolean removeContainerProperty(Object arg0)
+       public boolean removeContainerProperty(Object propertyId)
                        throws UnsupportedOperationException {
                throw new UnsupportedOperationException();
        }
 
        /**
-        * The <code>removeAllItems</code> method removes all Items from the
-        * Container
-        * 
+        * Removes all Items from the Container.
+        * @return <code>true</code> if the operation succeeded, otherwise <code>false</code>.
         * @throws UnsupportedOperationException
         *             if the removeAllItems method is not supported.
         */
@@ -393,36 +378,38 @@ public class QueryContainer implements Container, Container.Ordered,
        }
 
        /**
-        * The <code>addItemAfter</code> method add new item after the given item.
+        * Adds new item after the given item.
         * 
-        * @param arg0
+        * @param previousItemId
         *            Id of the previous item in ordered container.
-        * @param arg1
+        * @param newItemId
         *            Id of the new item to be added.
+        * @return Returns new item or <code>null</code> if the operation fails.           
         * @throws UnsupportedOperationException
         *             if the addItemAfter method is not supported.
         */
-       public Item addItemAfter(Object arg0, Object arg1)
+       public Item addItemAfter(Object previousItemId, Object newItemId)
                        throws UnsupportedOperationException {
                throw new UnsupportedOperationException();
        }
 
        /**
-        * The <code>addItemAfter</code> method add new item after the given item.
+        * Adds new item after the given item.
         * 
-        * @param arg0
+        * @param previousItemId
         *            Id of the previous item in ordered container.
+        * @return Returns item id  created new item or <code>null</code> if the operation fails.
+        * @throws UnsupportedOperationException
+        *                                                              if the addItemAfter method is not supported.          
         */
-       public Object addItemAfter(Object arg0)
+       public Object addItemAfter(Object previousItemId)
                        throws UnsupportedOperationException {
                throw new UnsupportedOperationException();
        }
 
        /**
-        * <p>
-        * The <code>firstItemId</code> method returns id of first item in the
-        * Container.
-        * </p>
+        * Returns id of first item in the Container.
+        * @return ID of the first Item in the list.
         */
        public Object firstItemId() {
                if (size < 1)
@@ -431,10 +418,7 @@ public class QueryContainer implements Container, Container.Ordered,
        }
 
        /**
-        * <p>
-        * The <code>isFirstId</code> method return <code>true</code> if given
-        * id is first id at first index.
-        * </p>
+        * Returns <code>true</code> if given id is first id at first index.
         * 
         * @param id
         *            ID of an Item in the Container.
@@ -445,13 +429,11 @@ public class QueryContainer implements Container, Container.Ordered,
        }
 
        /**
-        * <p>
-        * The <code>isLastId</code> method return <code>true</code> if given id
-        * is last id at last index
-        * </p>
+        * Returns <code>true</code> if given id is last id at last index.
         * 
         * @param id
         *            ID of an Item in the Container
+        *            
         */
        public boolean isLastId(Object id) {
                return size > 0 && (id instanceof Integer)
@@ -459,10 +441,8 @@ public class QueryContainer implements Container, Container.Ordered,
        }
 
        /**
-        * <p>
-        * The <code>lastItemId</code> method returns id of last item in the
-        * Container.
-        * </p>
+        * Returns id of last item in the Container.
+        * @return ID of the last Item. 
         */
        public Object lastItemId() {
                if (size < 1)
@@ -471,13 +451,11 @@ public class QueryContainer implements Container, Container.Ordered,
        }
 
        /**
-        * <p>
-        * The <code>nextItemId</code> method return id of next item in container
-        * at next index.
-        * </p>
+        * Returns id of next item in container at next index.
         * 
         * @param id
         *            ID of an Item in the Container.
+        * @return ID of the next Item or null.         
         */
        public Object nextItemId(Object id) {
                if (size < 1 || !(id instanceof Integer))
@@ -489,14 +467,12 @@ public class QueryContainer implements Container, Container.Ordered,
        }
 
        /**
-        * <p>
-        * The <code>prevItemId</code> method return id of previous item in
-        * container at previous index.
-        * </p>
+        * Returns id of previous item in container at previous index.
         * 
         * @param id
         *            ID of an Item in the Container.
-        */
+        * @return ID of the previous Item or null.
+        */
        public Object prevItemId(Object id) {
                if (size < 1 || !(id instanceof Integer))
                        return null;
@@ -507,9 +483,7 @@ public class QueryContainer implements Container, Container.Ordered,
        }
 
        /**
-        * <p>
         * The <code>Row</code> class implements methods of Item.
-        * </p>
         */
        /** Query result row */
        class Row implements Item {
@@ -521,30 +495,23 @@ public class QueryContainer implements Container, Container.Ordered,
                }
 
                /**
-                * <p>
-                * The <code>addItemProperty</code> method adds the item property.
-                * </p>
-                * 
-                * @param arg0
+                * Adds the item property.
+                * @param id
                 *            ID of the new Property.
-                * @param arg1
+                * @param property
                 *            Property to be added and associated with ID.
+                * @return <code>true</code> if the operation succeeded, otherwise <code>false</code>.          
                 * @throws UnsupportedOperationException
                 *             if the addItemProperty method is not supported.
                 */
-               public boolean addItemProperty(Object arg0, Property arg1)
+               public boolean addItemProperty(Object id, Property property)
                                throws UnsupportedOperationException {
                        throw new UnsupportedOperationException();
                }
 
                /**
-                * <p>
-                * The <code>getItemProperty</code> gets the property corresponding to
-                * the given property ID stored in the Item. If the Item does not
-                * contain the Property, <code>null</code> is returned.
-                * </p>
-                * 
-                * @param id
+                * Gets the property corresponding to the given property ID stored in the Item. 
+                * @param propertyId
                 *            identifier of the Property to get
                 * @return the Property with the given ID or <code>null</code>
                 */
@@ -553,11 +520,7 @@ public class QueryContainer implements Container, Container.Ordered,
                }
 
                /**
-                * <p>
-                * The <code>getItemPropertyIds</code> method gets the collection of
-                * property IDs stored in the Item.
-                * </p>
-                * 
+                * Gets the collection of property IDs stored in the Item.
                 * @return unmodifiable collection containing IDs of the Properties
                 *         stored the Item.
                 */
@@ -567,15 +530,14 @@ public class QueryContainer implements Container, Container.Ordered,
 
                /**
                 * <p>
-                * The <code>removeItemProperty</code> method removes given item
-                * property return <code>true</code> if the item property is removed
+                * Removes given item property return <code>true</code> if the item property is removed
                 * <code>false</code> if not.
                 * </p>
-                * 
+                * @param id ID of the Property to be removed.
                 * @throws UnsupportedOperationException
                 *             if the removeItemProperty is not supported.
                 */
-               public boolean removeItemProperty(Object arg0)
+               public boolean removeItemProperty(Object id)
                                throws UnsupportedOperationException {
                        throw new UnsupportedOperationException();
                }
@@ -583,7 +545,7 @@ public class QueryContainer implements Container, Container.Ordered,
        }
 
        /**
-        * The <code>finalize</code> method closes the statement.
+        * Closes the statement.
         * 
         * @see #close()
         */
@@ -596,42 +558,42 @@ public class QueryContainer implements Container, Container.Ordered,
        }
 
        /**
-        * The <code>addItemAt</code> method adds the given item at the position
-        * of given index.
+        * Adds the given item at the position of given index.
         * 
-        * @param arg0
+        * @param index
         *            Index to add the new item.
-        * @param arg1
+        * @param newItemId
         *            Id of the new item to be added.
-        * 
+        * @return Returns new item or <code>null</code> if the operation fails.
         * @throws UnsupportedOperationException
+        *                                                      if the addItemAt is not supported.
         */
-       public Item addItemAt(int arg0, Object arg1)
+       public Item addItemAt(int index, Object newItemId)
                        throws UnsupportedOperationException {
                throw new UnsupportedOperationException();
        }
 
        /**
-        * The <code>addItemAt</code> method adds the item at the position of
-        * provided index in the container.
+        * Adds the item at the position of provided index in the container.
         * 
-        * @param arg0
+        * @param index
         *            Index to add the new item.
+        * @return Returns item id created new item or <code>null</code> if the operation fails.           
         * 
         * @throws UnsupportedOperationException
         *             if the addItemAt is not supported.
         */
 
-       public Object addItemAt(int arg0) throws UnsupportedOperationException {
+       public Object addItemAt(int index) throws UnsupportedOperationException {
                throw new UnsupportedOperationException();
        }
 
        /**
-        * The <code>getIdByIndex</code> method gets the Index id in the
-        * container.
+        * Gets the Index id in the container.
         * 
         * @param index
         *            Index Id.
+        * @return ID in the given index.           
         */
        public Object getIdByIndex(int index) {
                if (size < 1 || index < 0 || index >= size)
@@ -640,8 +602,7 @@ public class QueryContainer implements Container, Container.Ordered,
        }
 
        /**
-        * The <code>indexOfId</code> gets the index of the Item corresponding to
-        * <code>id</code> in the container.
+        * Gets the index of the Item corresponding to id in the container.
         * 
         * @param id
         *            ID of an Item in the Container
index 90c01f9eed5df54ab1c3c529dd7c36aaf40e2518..cb3bbae900212a9da39456b72eaf8e0202a15af6 100644 (file)
@@ -35,13 +35,12 @@ import java.util.LinkedList;
 
 import com.itmill.toolkit.data.*;
 
-/** Composite validator.
- * 
- * This validator allows you to chain (compose) many validators
+/** 
+ * The <code>CompositeValidator</code> allows you to chain (compose) many validators
  * to validate one field. The contained validators may be required
  * to all validate the value to validate or it may be enough that
  * one contained validator validates the value. This behaviour is
- * controlled by the modes AND and OR.
+ * controlled by the modes <code>AND</code> and <code>OR</code>.
  * 
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -49,43 +48,58 @@ import com.itmill.toolkit.data.*;
  */
 public class CompositeValidator implements Validator {
 
-       /** The validators are combined with AND clause: validity of the
+       /** 
+        * The validators are combined with <code>AND</code> clause: validity of the
         * composite implies validity of the all validators it is composed of
         * must be valid.
         */
        public static final int MODE_AND = 0;
 
-       /** The validators are combined with OR clause: validity of the
+       /** 
+        * The validators are combined with <code>OR</code> clause: validity of the
         * composite implies that some of validators it is composed of
         * must be valid.
         */
        public static final int MODE_OR = 1;
 
-       /** The validators are combined with and clause: validity of the
+       /** 
+        * The validators are combined with and clause: validity of the
         * composite implies validity of the all validators it is composed of
         */
        public static final int MODE_DEFAULT = MODE_AND;
 
-       /** Operation mode */
+       /** 
+        * Operation mode. 
+        */
        private int mode = MODE_DEFAULT;
 
-       /** List of contained validators */
+       /** 
+        * List of contained validators. 
+        */
        private LinkedList validators = new LinkedList();
 
-       /** Error message */
+       /** 
+        * Error message. 
+        */
        private String errorMessage;
 
-       /** Construct composite validator in AND mode without error message */
+       /** 
+        * Construct composite validator in <code>AND</code> mode without error message. 
+        */
        public CompositeValidator() {
        }
 
-       /** Construct composite validator in given mode */
+       /** 
+        * Constructs composite validator in given mode. 
+        */
        public CompositeValidator(int mode, String errorMessage) {
                setMode(mode);
                setErrorMessage(errorMessage);
        }
 
-       /** Validate the the given value.
+       /** 
+        * Validates the given value.
+        * <p>
         * The value is valid, if:
         * <ul>
         * <li><code>MODE_AND</code>: All of the sub-validators are valid
@@ -95,6 +109,10 @@ public class CompositeValidator implements Validator {
         * If the value is invalid, validation error is thrown. If the
         * error message is set (non-null), it is used. If the error message
         * has not been set, the first error occurred is thrown.
+        * </p>
+        * @param value the value to check.
+        * @throws Validator.InvalidValueException
+        *                                                                              if the value is not valid.
         */
        public void validate(Object value) throws Validator.InvalidValueException {
                switch (mode) {
@@ -117,15 +135,17 @@ public class CompositeValidator implements Validator {
                                if (em != null) throw new Validator.InvalidValueException(em);
                                else throw first;
                }
-               throw new IllegalStateException("The valitor is in unsupported operation mode");
+               throw new IllegalStateException("The validator is in unsupported operation mode");
        }
 
-       /** Check the validity of the the given value.
+       /** 
+        * Checks the validity of the the given value.
         * The value is valid, if:
         * <ul>
         * <li><code>MODE_AND</code>: All of the sub-validators are valid
         * <li><code>MODE_OR</code>: Any of the sub-validators are valid
         * </ul>
+        * @param value the value to check.
         */
        public boolean isValid(Object value) {
                switch (mode) {
@@ -148,7 +168,8 @@ public class CompositeValidator implements Validator {
                throw new IllegalStateException("The valitor is in unsupported operation mode");
        }
 
-       /** Get the mode of the validator.
+       /** 
+        * Gets the mode of the validator.
         * @return Operation mode of the validator: 
         * <code>MODE_AND</code> or <code>MODE_OR</code>.
         */
@@ -156,11 +177,13 @@ public class CompositeValidator implements Validator {
                return mode;
        }
 
-       /** Set the mode of the validator. The valid modes are:
+       /** 
+        * Sets the mode of the validator. The valid modes are:
         * <ul>
         * <li><code>MODE_AND</code>  (default)
         * <li><code>MODE_OR</code>
         * </ul>
+        * @param mode the mode to set.
         */
        public void setMode(int mode) {
                if (mode != MODE_AND && mode != MODE_OR)
@@ -168,7 +191,8 @@ public class CompositeValidator implements Validator {
                this.mode = mode;
        }
 
-       /** Get the error message for the composite validator. 
+       /** 
+        * Gets the error message for the composite validator. 
         * If the error message is null, original error messages of the 
         * sub-validators are used instead.
         */
@@ -180,37 +204,48 @@ public class CompositeValidator implements Validator {
                return null;
        }
 
-       /** Set the error message for the composite validator. 
+       /** 
+        * Sets the error message for the composite validator. 
         * If the error message is null, original error messages of the 
         * sub-validators are used instead.
+        * @param errorMessage the Error Message to set.
         */
        public void setErrorMessage(String errorMessage) {
                this.errorMessage = errorMessage;
        }
 
-       /** Add validator to the interface */
+       /** 
+        * Adds validator to the interface.
+        * @param validator the Validator object which performs validation checks
+        *  on this set of data field values.
+        */
        public void addValidator(Validator validator) {
                if (validator == null)
                        return;
                validators.add(validator);
        }
 
-       /** Remove a validator from the composite */
+       /**
+        * Removes a validator from the composite.
+        * @param validator  the Validator object which performs validation checks
+        *  on this set of data field values.
+        */
        public void removeValidator(Validator validator) {
                validators.remove(validator);
        }
 
-       /** Get sub-validators by class. 
+       /** 
+        * Gets sub-validators by class. 
         * 
         * <p>If the component contains
         * directly or recursively (it contains another composite 
         * containing the validator) validators compatible with given type they
-        * are returned. This only applies to AND mode composite 
+        * are returned. This only applies to <code>AND</code> mode composite 
         * validators.</p>
         * 
-        * <p>If the validator is in OR mode or does not contain any
+        * <p>If the validator is in <code>OR</code> mode or does not contain any
         * validators of given type null is returned. </p>
-        * 
+        *  
         * @return Collection of validators compatible with given type that 
         * must apply or null if none fould.
         */
index 29ee031a91331fcf248ecfd640eeca0e8c784d07..948c2906aeedacecef252bac6eef0063581bf187 100644 (file)
@@ -31,7 +31,8 @@ package com.itmill.toolkit.data.validator;
 import com.itmill.toolkit.data.*;
 
 
-/* This validator is used for validating properties that 
+/** 
+ * This validator is used for validating properties that 
  * do or do not allow null values.
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -42,53 +43,64 @@ public class NullValidator implements Validator {
        private boolean allowNull;
        private String errorMessage;
 
-       /** Create a new NullValidator
-        * @param errorMessage - The error message to display on invalidation.
-        * @param allowNull - Are nulls allowed?
+       /** 
+        * Creates a new NullValidator
+        * @param errorMessage the error message to display on invalidation.
+        * @param allowNull Are nulls allowed?
         */
        public NullValidator(String errorMessage,boolean allowNull) {
                setErrorMessage(errorMessage);
                setNullAllowed(allowNull);
        }
 
-       /** Validate the data given in value.
-        * @param value - The value to validate.
-        * @throws Validator.InvalidValueException - The value was invalid.
+       /** 
+        * Validates the data given in value.
+        * @param value the value to validate.
+        * @throws Validator.InvalidValueException if the value was invalid.
         */
        public void validate(Object value) throws Validator.InvalidValueException {
                if ((allowNull && value != null) || (!allowNull && value == null))
                        throw new Validator.InvalidValueException(errorMessage);
        }
 
-       /** True of the value is valid.
-        * @param value - The value to validate.
+       /** 
+        * Tests if the given value is valid.
+        * @param value the value to validate.
+        * @returns <code>true</code> for valid value, otherwise <code>false</code>.
         */
        public boolean isValid(Object value) {
                return allowNull ? value == null : value != null;
        }
 
-       /** True if nulls are allowed.
+       /** 
+        * Returns <code>true</code> if nulls are allowed otherwise <code>false</code>.
         */
        public final boolean isNullAllowed() {
                return allowNull;
        }
 
-       /** Sets if nulls are to be allowed.
-        * @param allowNull - Do we allow nulls?
+       /** 
+        * Sets if nulls are to be allowed.
+        * @param allowNull Do we allow nulls?
         */
        public void setNullAllowed(boolean allowNull) {
                this.allowNull = allowNull;
        }
        
-       /** Get the error message that is displayed in case the
+       /** 
+        * Gets the error message that is displayed in case the
         * value is invalid.
+        * @return the Error Message.
         */
        public String getErrorMessage() {
                return errorMessage;
        }
 
-       /** Set the error message to be displayed on invalid
+       /** 
+        * Sets the error message to be displayed on invalid
         * value.
+        * @param errorMessage
+        *                                              the Error Message to set.
         */
        public void setErrorMessage(String errorMessage) {
                this.errorMessage = errorMessage;
index 63dd22f200b1d667e4c335bf4f6acc51a8461cc9..bfeb55b5b921e648d7285eb6b35a0ef65fd5933c 100644 (file)
@@ -30,16 +30,8 @@ package com.itmill.toolkit.data.validator;
 
 import com.itmill.toolkit.data.*;
 
-
-/**
- * @author IT Mill Ltd.
- *
- * To change this generated comment edit the template variable "typecomment":
- * Window>Preferences>Java>Templates.
- * To enable and disable the creation of type comments go to
- * Window>Preferences>Java>Code Generation.
- */
-/** This validator is used to validate the lenght of strings.
+/** 
+ * This <code>StringLengthValidator</code> is used to validate the length of strings.
  * 
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -52,21 +44,23 @@ public class StringLengthValidator implements Validator {
        private boolean allowNull = true;
        private String errorMessage;
 
-       /** Create a new StringLengthValidator with a given error message.
+       /** 
+        * Creates a new StringLengthValidator with a given error message.
         * 
-        * @param errorMessage - The message to display in case the value does not validate.
+        * @param errorMessage  the message to display in case the value does not validate.
         */
        public StringLengthValidator(String errorMessage) {
                setErrorMessage(errorMessage);
        }
 
-       /** Create a new StringLenghtValidator with a given error message,
-        * permissable lenghts and null-string allowance.
+       /** 
+        * Creates a new StringLengthValidator with a given error message,
+        * permissable lengths and null-string allowance.
         * 
-        * @param errorMessage - The message to display in case the value does not validate.
-        * @param minLenght - The minimum permissable lenght of the string.
-        * @param maxLenght - The maximum permissable lenght of the string.
-        * @param allowNull - Are null strings permissable?
+        * @param errorMessage the message to display in case the value does not validate.
+        * @param minLength the minimum permissable length of the string.
+        * @param maxLength the maximum permissable length of the string.
+        * @param allowNull  Are null strings permissable?
         */
        public StringLengthValidator(
                String errorMessage,
@@ -79,8 +73,11 @@ public class StringLengthValidator implements Validator {
                setNullAllowed(allowNull);
        }
 
-       /** Validate the value.
-        * @param value - The value to validate.
+       /** 
+        * Validates the value.
+        * @param value the value to validate.
+        * @throws Validator.InvalidValueException
+        *                                                                              if the value was invalid.
         */
        public void validate(Object value) throws Validator.InvalidValueException {
                if (value == null && !allowNull)
@@ -94,8 +91,10 @@ public class StringLengthValidator implements Validator {
                        throw new Validator.InvalidValueException(errorMessage);
        }
 
-       /** True if the value is valid.
-        * @param value - The value to validate.
+       /** 
+        * Checks if the given value is valid.
+        * @param value the value to validate.
+        * @return <code>true</code> for valid value, otherwise <code>false</code>.
         */
        public boolean isValid(Object value) {
                if (value == null && !allowNull)
@@ -110,32 +109,40 @@ public class StringLengthValidator implements Validator {
                return true;
        }
 
-       /** True if null strings are allowed.
+       /** 
+        * Returns <code>true</code> if null strings are allowed.
+        * @return <code>true</code> if allows null string, otherwise <code>false</code>.
         */
        public final boolean isNullAllowed() {
                return allowNull;
        }
 
-       /** Get the maximum permissable length of the string.
+       /** 
+        * Gets the maximum permissable length of the string.
+        * @return the maximum length of the string.
         */
        public final int getMaxLength() {
                return maxLength;
        }
 
-       /** Get the minimum permissable lenght of the string.
+       /** 
+        * Gets the minimum permissable length of the string.
+        * @return the minimum length of the string.
         */
        public final int getMinLength() {
                return minLength;
        }
 
-       /** Sets wheter null-strings are to be allowed.
+       /**
+        * Sets whether null-strings are to be allowed.
         */
        public void setNullAllowed(boolean allowNull) {
                this.allowNull = allowNull;
        }
        
-       /** Set the maximum permissable length of the string.
-        * @param maxLenght - The lenght to set.
+       /** 
+        * Sets the maximum permissable length of the string.
+        * @param maxLength the length to set.
         */
        public void setMaxLength(int maxLength) {
                if (maxLength < -1)
@@ -143,8 +150,9 @@ public class StringLengthValidator implements Validator {
                this.maxLength = maxLength;
        }
 
-       /** Sets the minimum permissable lenght.
-        * @param minLenght - The lenght to set.
+       /** 
+        * Sets the minimum permissable length.
+        * @param minLength the length to set.
         */
        public void setMinLength(int minLength) {
                if (minLength < -1)
@@ -152,15 +160,20 @@ public class StringLengthValidator implements Validator {
                this.minLength = minLength;
        }
 
-       /** Gets the message to be displayed in case the
+       /** 
+        * Gets the message to be displayed in case the
         * value does not validate.
+        * @return the Error Message.
         */
        public String getErrorMessage() {
                return errorMessage;
        }
 
-       /** Sets the message to be displayer in case the
+       /** 
+        * Sets the message to be displayer in case the
         * value does not validate.
+        * @param errorMessage
+        *                                              the Error Message to set.
         */
        public void setErrorMessage(String errorMessage) {
                this.errorMessage = errorMessage;
index 91d093e54f498dd39cbad7bc9461df2e9db7509d..34ccd8a192a7450d3d5685ab99b3b500c0c8e40e 100644 (file)
@@ -30,7 +30,8 @@ package com.itmill.toolkit.event;
 
 import com.itmill.toolkit.terminal.*;
 
-/** Implements the action framework. This class contains
+/** 
+ * Implements the action framework. This class contains
  * subinterfaces for action handling and listing, and for action handler
  * registrations and unregistration.
  *
@@ -40,108 +41,125 @@ import com.itmill.toolkit.terminal.*;
  */
 public class Action {
 
-       /** Action title */     
+       /**
+        * Action title. 
+        */     
        private String caption;
        
-       /** Action icon */
+       /** 
+        * Action icon.
+        */
        private Resource icon = null;
 
-       /** Constructs a new action with the given caption.
+       /** 
+        * Constructs a new action with the given caption.
         * 
-        * @param caption caption for the new action.
+        * @param caption the caption for the new action.
         */
        public Action(String caption) {
                this.caption = caption;
        }
 
-       /** Constructs a new action with the given caption string and icon.
+       /** 
+        * Constructs a new action with the given caption string and icon.
         * 
-        * @param caption caption for the new action.
-        * @param icon icon for the new action
+        * @param caption the caption for the new action.
+        * @param icon the icon for the new action.
         */
        public Action(String caption, Resource icon) {
                this.caption = caption;
                this.icon = icon;
        }
 
-       /** Returns the action's caption.
+       /** 
+        * Returns the action's caption.
         * 
-        * @return the action's caption as a <code>String</code>
+        * @return the action's caption as a <code>String</code>.
         */
        public String getCaption() {
                return caption;
        }
 
-       /** Returns the action's icon.
+       /** 
+        * Returns the action's icon.
         * 
-        * @return Icon
+        * @return the action's Icon.
         */
        public Resource getIcon() {
                return icon;
        }
 
-       /** Interface implemented by classes who wish to handle actions.
+       /** 
+        * Interface implemented by classes who wish to handle actions.
         * @author IT Mill Ltd.
      * @version @VERSION@
      * @since 3.0
      */
        public interface Handler {
        
-               /** Returns the list of actions applicable to this handler.
+               /** 
+                * Gets the list of actions applicable to this handler.
                 *
-                * @param target The target handler to list actions for. For item 
+                * @param target the target handler to list actions for. For item 
                 * containers this is the item id.
-                * @param sender The party that would be sending the actions. 
+                * @param sender the party that would be sending the actions. 
                 * Most of this is the action container.
+                * @return the list of Action
                 */
                public Action[] getActions(Object target, Object sender);
                
-               /** Handles an action for the given target. The handler method
+               /** 
+                * Handles an action for the given target. The handler method
                 * may just discard the action if it's not suitable.
                 * 
-                * @param action The action to be handled
-                * @param sender The sender of the action. This is most often the 
+                * @param action the action to be handled.
+                * @param sender the sender of the action. This is most often the 
                 * action container.
-                * @param target The target of the <code>action</code>. For item 
+                * @param target the target of the action. For item 
                 * containers this is the item id.
                 */
                public void handleAction(Action action, Object sender, Object target);
        }
        
-       /** Interface implemented by all components where actions can be
+       /** 
+        * Interface implemented by all components where actions can be
         * registered. This means that the components lets others to register
         * as action handlers to it. When the component receives an action
         * targeting its contents it should loop all action handlers registered
-        * to it and let them hanle the action.
+        * to it and let them handle the action.
         * @author IT Mill Ltd.
      * @version @VERSION@
      * @since 3.0
         */
        public interface Container {
                
-               /** Registers a new action handler for this container
+               /** 
+                * Registers a new action handler for this container
                 * 
                 * @param actionHandler the new handler to be added.
                 */
                public void addActionHandler(Action.Handler actionHandler);
 
-               /** Remove a previously registered action handler for the contents
+               /** 
+                * Removes a previously registered action handler for the contents
                 * of this container.
                 * 
-                * @param actionHandler the handler to be removed
+                * @param actionHandler the handler to be removed.
                 */
                public void removeActionHandler(Action.Handler actionHandler);
        }
        
-       /** Sets the caption.
-        * @param caption The caption to set
+       /** 
+        * Sets the caption.
+        * @param caption the caption to set.
         */
        public void setCaption(String caption) {
                this.caption = caption;
        }
 
-       /** Sets the icon.
-        * @param icon The icon to set
+       /** 
+        * Sets the icon.
+        * @param icon the icon to set.
         */
        public void setIcon(Resource icon) {
                this.icon = icon;
index 0c04f52a83d3823c6c7ba8e68b3748a163b5115b..d3c1042acd3283cf96d0b3aa48dd89a365861180 100644 (file)
@@ -33,7 +33,8 @@ import java.util.LinkedList;
 import java.util.Iterator;
 import java.lang.reflect.Method;
 
-/** Event router class implementing the inheritable event
+/** 
+ * <code>EventRouter</code> class implementing the inheritable event
  * listening model. For more information on the event model see the
  * {@link com.itmill.toolkit.event package documentation}.
  *
@@ -43,7 +44,9 @@ import java.lang.reflect.Method;
  */
 public class EventRouter implements MethodEventSource {
     
-    /** List of registered listeners. */
+    /** 
+     * List of registered listeners. 
+     */
     private LinkedList listenerList =  null;
     
        /* Registers a new listener with the specified activation method to
@@ -143,15 +146,18 @@ public class EventRouter implements MethodEventSource {
         }
     }
     
-    /** Remove all listeners from event router */
+    /** 
+     * Removes all listeners from event router. 
+     */
     public void removeAllListeners() {
        listenerList = null;    
     }
     
-    /** Send an event to all registered listeners. The listeners will decide
+    /** 
+     * Sends an event to all registered listeners. The listeners will decide
      * if the activation method should be called or not.
      * 
-     * @param event Event to be sent to all listeners
+     * @param event the Event to be sent to all listeners.
      */
     public void fireEvent(EventObject event) {
         
index e73becf66b0acb010b93203bbe813b026bc9d663..66ab99868c630e9373d21f201b7491597144e057 100644 (file)
@@ -32,18 +32,26 @@ import java.util.EventListener;
 import java.util.EventObject;
 import java.lang.reflect.Method;
 
-/** <p>One registered event listener. This class contains the listener
+/** 
+ * <p>
+ * One registered event listener. This class contains the listener
  * object reference, listened event type, the trigger method to call when
  * the event fires, and the optional argument list to pass to the method and
- * the index of the argument to replace with the event object. It provides
- * several constructors that allow omission of the optional arguments, and
- * giving the listener method directly, or having the constructor to reflect
- * it using merely the name of the method.</p>
+ * the index of the argument to replace with the event object. 
+ * </p>
  * 
- * <p>It should be pointed out that the method
+ * <p>
+ * This Class provides several constructors that allow omission of the optional
+ * arguments, and giving the listener method directly, or having the constructor
+ * to reflect it using merely the name of the method.
+ * </p>
+ * 
+ * <p>
+ * It should be pointed out that the method
  * {@link #receiveEvent(EventObject event)} is the one that filters out the
  * events that do not match with the given event type and thus do not result
- * in calling of the trigger method.</p>
+ * in calling of the trigger method.
+ * </p>
  * 
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -51,45 +59,57 @@ import java.lang.reflect.Method;
  */
 public class ListenerMethod implements EventListener {
 
-       /** Type of the event that should trigger this listener. Also the
+       /** 
+        * Type of the event that should trigger this listener. Also the
         * subclasses of this class are accepted to trigger the listener.
         */
        private Class eventType;
 
-       /** The object containing the trigger method, */
+       /** 
+        * The object containing the trigger method. 
+        */
        private Object object;
 
-       /** The trigger method to call when an event passing the given criteria
+       /** 
+        * The trigger method to call when an event passing the given criteria
         * fires.
         */
        private Method method;
 
-       /** Optional argument set to pass to the trigger method. */
+       /** 
+        * Optional argument set to pass to the trigger method. 
+        */
        private Object[] arguments;
 
-       /** Optional index to <code>arguments</code> that point out which one
+       /** 
+        * Optional index to <code>arguments</code> that point out which one
         * should be replaced with the triggering event object and thus be
         * passed to the trigger method.
         */
        private int eventArgumentIndex;
 
-       /** <p>Constructs a new event listener from a trigger method, it's
+       /** 
+        * <p>
+        * Constructs a new event listener from a trigger method, it's
         * arguments and the argument index specifying which one is replaced
-        * with the event object when the trigger method is called.</p>
+        * with the event object when the trigger method is called.
+        * </p>
         * 
-        * <p>This constructor gets the trigger method as a parameter so it
-        * does not need to reflect to find it out.</p>
+        * <p>
+        * This constructor gets the trigger method as a parameter so it
+        * does not need to reflect to find it out.
+        * </p>
         * 
-        * @param eventType The event type that is listener listens to. All
+        * @param eventType the event type that is listener listens to. All
         * events of this kind (or its subclasses) result in calling the trigger
         * method.
-        * @param object The object instance that contains the trigger method
+        * @param object the object instance that contains the trigger method
         * @param method the trigger method
-        * @param arguments arguments to be passed to the trigger method
+        * @param arguments the arguments to be passed to the trigger method
         * @param eventArgumentIndex An index to the argument list. This index
         * points out the argument that is replaced with the event object before
         * the argument set is passed to the trigger method. If 
-        * <code>eventArgumentIndex</code> is negative, the triggering event
+        * the eventArgumentIndex is negative, the triggering event
         * object will not be passed to the trigger method, though it is still
         * called.
         * @throws java.lang.IllegalArgumentException if <code>method</code>
@@ -103,15 +123,15 @@ public class ListenerMethod implements EventListener {
                int eventArgumentIndex)
                throws java.lang.IllegalArgumentException {
 
-               // Check that the object is of correct type
+               // Checks that the object is of correct type
                if (!method.getDeclaringClass().isAssignableFrom(object.getClass()))
                        throw new java.lang.IllegalArgumentException();
 
-               // Check that the event argument is null
+               // Checks that the event argument is null
                if (eventArgumentIndex >= 0 && arguments[eventArgumentIndex] != null)
                        throw new java.lang.IllegalArgumentException();
 
-               // Check the event type is supported by the method
+               // Checks the event type is supported by the method
                if (eventArgumentIndex >= 0
                        && !method.getParameterTypes()[eventArgumentIndex].isAssignableFrom(
                                eventType))
@@ -124,26 +144,28 @@ public class ListenerMethod implements EventListener {
                this.eventArgumentIndex = eventArgumentIndex;
        }
 
-       /** <p>Constructs a new event listener from a trigger method name, it's
+       /** 
+        * <p>
+        * Constructs a new event listener from a trigger method name, it's
         * arguments and the argument index specifying which one is replaced
         * with the event object. The actual trigger method is reflected from
         * <code>object</code>, and
         * <code>java.lang.IllegalArgumentException</code> is thrown unless
         * exactly one match is found.
-        * 
-        * @param eventType The event type that is listener listens to. All
+        * </p>
+        * @param eventType the event type that is listener listens to. All
         * events of this kind (or its subclasses) result in calling the trigger
         * method.
-        * @param object The object instance that contains the trigger method
-        * @param methodName The name of the trigger method. If
-        * <code>object</code> does not contain the method or it contains more
+        * @param object the object instance that contains the trigger method.
+        * @param methodName the name of the trigger method. If the 
+        * object does not contain the method or it contains more
         * than one matching methods
         * <code>java.lang.IllegalArgumentException</code> is thrown.
-        * @param arguments arguments to be passed to the trigger method
+        * @param arguments the arguments to be passed to the trigger method.
         * @param eventArgumentIndex An index to the argument list. This index
         * points out the argument that is replaced with the event object before
-        * the argument set is passed to the trigger method. If 
-        * <code>eventArgumentIndex</code> is negative, the triggering event
+        * the argument set is passed to the trigger method. If the 
+        * eventArgumentIndex is negative, the triggering event
         * object will not be passed to the trigger method, though it is still
         * called.
         * @throws java.lang.IllegalArgumentException unless exactly one match
@@ -157,7 +179,7 @@ public class ListenerMethod implements EventListener {
                int eventArgumentIndex)
                throws java.lang.IllegalArgumentException {
 
-               // Find the correct method
+               // Finds the correct method
                Method[] methods = object.getClass().getMethods();
                Method method = null;
                for (int i = 0; i < methods.length; i++)
@@ -166,11 +188,11 @@ public class ListenerMethod implements EventListener {
                if (method == null)
                        throw new IllegalArgumentException();
 
-               // Check that the event argument is null
+               // Checks that the event argument is null
                if (eventArgumentIndex >= 0 && arguments[eventArgumentIndex] != null)
                        throw new java.lang.IllegalArgumentException();
 
-               // Check the event type is supported by the method
+               // Checks the event type is supported by the method
                if (eventArgumentIndex >= 0
                        && !method.getParameterTypes()[eventArgumentIndex].isAssignableFrom(
                                eventType))
@@ -183,20 +205,25 @@ public class ListenerMethod implements EventListener {
                this.eventArgumentIndex = eventArgumentIndex;
        }
 
-       /** <p>Constructs a new event listener from the trigger method and it's
+       /** 
+        * <p>
+        * Constructs a new event listener from the trigger method and it's
         * arguments. Since the the index to the replaced parameter is not
         * specified the event triggering this listener will not be passed to
-        * the trigger method.</p>
+        * the trigger method.
+        * </p>
         * 
-        * <p>This constructor gets the trigger method as a parameter so it
-        * does not need to reflect to find it out.</p>
+        * <p>
+        * This constructor gets the trigger method as a parameter so it
+        * does not need to reflect to find it out.
+        * </p>
         * 
-        * @param eventType The event type that is listener listens to. All
+        * @param eventType the event type that is listener listens to. All
         * events of this kind (or its subclasses) result in calling the trigger
         * method.
-        * @param object The object instance that contains the trigger method
-        * @param method the trigger method
-        * @param arguments arguments to be passed to the trigger method
+        * @param object the object instance that contains the trigger method.
+        * @param method the trigger method.
+        * @param arguments the arguments to be passed to the trigger method.
         * @throws java.lang.IllegalArgumentException if <code>method</code>
         * is not a member of <code>object</code>.
         */
@@ -218,24 +245,29 @@ public class ListenerMethod implements EventListener {
                this.eventArgumentIndex = -1;
        }
 
-       /** <p>Constructs a new event listener from a trigger method name and
+       /** 
+        * <p>
+        * Constructs a new event listener from a trigger method name and
         * it's arguments. Since the the index to the replaced parameter is not
         * specified the event triggering this listener will not be passed to
-        * the trigger method.</p>
+        * the trigger method.
+        * </p>
         * 
-        * <p>The actual trigger method is reflected from <code>object</code>,
+        * <p>
+        * The actual trigger method is reflected from <code>object</code>,
         * and <code>java.lang.IllegalArgumentException</code> is thrown unless
-        * exactly one match is found.</p>
+        * exactly one match is found.
+        * </p>
         * 
-        * @param eventType The event type that is listener listens to. All
+        * @param eventType the event type that is listener listens to. All
         * events of this kind (or its subclasses) result in calling the trigger
         * method.
-        * @param object The object instance that contains the trigger method
-        * @param methodName The name of the trigger method. If
-        * <code>object</code> does not contain the method or it contains more
+        * @param object the object instance that contains the trigger method.
+        * @param methodName the name of the trigger method. If the 
+        * object does not contain the method or it contains more
         * than one matching methods
         * <code>java.lang.IllegalArgumentException</code> is thrown.
-        * @param arguments arguments to be passed to the trigger method
+        * @param arguments the arguments to be passed to the trigger method.
         * @throws java.lang.IllegalArgumentException unless exactly one match
         * <code>methodName</code> is found in <code>object</code>.
         */
@@ -262,25 +294,30 @@ public class ListenerMethod implements EventListener {
                this.eventArgumentIndex = -1;
        }
 
-       /** <p>Constructs a new event listener from a trigger method. Since the
+       /** 
+        * <p>
+        * Constructs a new event listener from a trigger method. Since the
         * argument list is unspecified no parameters are passed to the trigger
-        * method when the listener is triggered.</p>
+        * method when the listener is triggered.
+        * </p>
         * 
-        * <p>This constructor gets the trigger method as a parameter so it
-        * does not need to reflect to find it out.</p>
+        * <p>
+        * This constructor gets the trigger method as a parameter so it
+        * does not need to reflect to find it out.
+        * </p>
         * 
-        * @param eventType The event type that is listener listens to. All
+        * @param eventType the event type that is listener listens to. All
         * events of this kind (or its subclasses) result in calling the trigger
         * method.
-        * @param object The object instance that contains the trigger method
-        * @param method the trigger method
+        * @param object the object instance that contains the trigger method.
+        * @param method the trigger method.
         * @throws java.lang.IllegalArgumentException if <code>method</code>
         * is not a member of <code>object</code>.
         */
        public ListenerMethod(Class eventType, Object object, Method method)
                throws java.lang.IllegalArgumentException {
 
-               // Check that the object is of correct type
+               // Checks that the object is of correct type
                if (!method.getDeclaringClass().isAssignableFrom(object.getClass()))
                        throw new java.lang.IllegalArgumentException();
 
@@ -300,20 +337,25 @@ public class ListenerMethod implements EventListener {
                        throw new IllegalArgumentException();
        }
 
-       /** <p>Constructs a new event listener from a trigger method name. Since
+       /** 
+        * <p>
+        * Constructs a new event listener from a trigger method name. Since
         * the argument list is unspecified no parameters are passed to the
-        * trigger method when the listener is triggered.</p>
+        * trigger method when the listener is triggered.
+        * </p>
         * 
-        * <p>The actual trigger method is reflected from <code>object</code>,
+        * <p>
+        * The actual trigger method is reflected from <code>object</code>,
         * and <code>java.lang.IllegalArgumentException</code> is thrown unless
-        * exactly one match is found.</p>
+        * exactly one match is found.
+        * </p>
         * 
-        * @param eventType The event type that is listener listens to. All
+        * @param eventType the event type that is listener listens to. All
         * events of this kind (or its subclasses) result in calling the trigger
         * method.
-        * @param object The object instance that contains the trigger method
-        * @param methodName The name of the trigger method. If
-        * <code>object</code> does not contain the method or it contains more
+        * @param object the object instance that contains the trigger method.
+        * @param methodName the name of the trigger method. If the 
+        * object does not contain the method or it contains more
         * than one matching methods
         * <code>java.lang.IllegalArgumentException</code> is thrown.
         * @throws java.lang.IllegalArgumentException unless exactly one match
@@ -322,7 +364,7 @@ public class ListenerMethod implements EventListener {
        public ListenerMethod(Class eventType, Object object, String methodName)
                throws java.lang.IllegalArgumentException {
 
-               // Find the correct method
+               // Finds the correct method
                Method[] methods = object.getClass().getMethods();
                Method method = null;
                for (int i = 0; i < methods.length; i++)
@@ -347,12 +389,13 @@ public class ListenerMethod implements EventListener {
                        throw new IllegalArgumentException();
        }
 
-       /** Receives one event from the EventRouter and calls the trigger
+       /** 
+        * Receives one event from the <code>EventRouter</code> and calls the trigger
         * method if it matches with the criteria defined for the listener.
         * Only the events of the same or subclass of the specified event
         * class result in the trigger method to be called.
         * 
-        * @param event The fired event. Unless the trigger method's
+        * @param event the fired event. Unless the trigger method's
         * argument list and the index to the to be replaced argument is
         * specified, this event will not be passed to the trigger method.
         */
@@ -387,13 +430,14 @@ public class ListenerMethod implements EventListener {
                }
        }
 
-       /** Checks if the given object and event match with the ones stored
+       /** 
+        * Checks if the given object and event match with the ones stored
         * in this listener.
         * 
-        * @param target object to be matched against the object stored by this
-        * listener
-        * @param eventType type to be tested for equality against the type
-        * stored by this listener
+        * @param target the object to be matched against the object stored by this
+        * listener.
+        * @param eventType the type to be tested for equality against the type
+        * stored by this listener.
         * @return <code>true</code> if <code>target</code> is the same object
         * as the one stored in this object and <code>eventType</code> equals
         * the event type stored in this object.
@@ -402,15 +446,16 @@ public class ListenerMethod implements EventListener {
                return (target == object) && (eventType.equals(this.eventType));
        }
 
-       /** Checks if the given object, event and method match with the ones
+       /** 
+        * Checks if the given object, event and method match with the ones
         * stored in this listener.
         * 
-        * @param target object to be matched against the object stored by this
-        * listener
-        * @param eventType type to be tested for equality against the type
-        * stored by this listener
-        * @param method method to be tested for equality against the method
-        * stored by this listener
+        * @param target the object to be matched against the object stored by this
+        * listener.
+        * @param eventType the type to be tested for equality against the type
+        * stored by this listener.
+        * @param method the method to be tested for equality against the method
+        * stored by this listener.
         * @return <code>true</code> if <code>target</code> is the same object
         * as the one stored in this object, <code>eventType</code> equals
         * with the event type stored in this object and <code>method</code>
@@ -421,10 +466,11 @@ public class ListenerMethod implements EventListener {
                        && (eventType.equals(this.eventType) && method.equals(this.method));
        }
 
-       /** Exception that wraps an exception thrown by an invoked method. 
-        *  When ListenerMethod invokes the target method, it may throw arbitrary
-        *  exception. The original exception is wrapped into MethodException instance and
-        *  rethrown by the ListenerMethod.
+       /** 
+        * Exception that wraps an exception thrown by an invoked method. 
+        * When <code>ListenerMethod</code> invokes the target method, it may throw arbitrary
+        * exception. The original exception is wrapped into MethodException instance and
+        * rethrown by the <code>ListenerMethod</code>.
         * @author IT Mill Ltd.
      * @version @VERSION@
      * @since 3.0
@@ -443,18 +489,27 @@ public class ListenerMethod implements EventListener {
                        super(message);
                        this.cause = cause;
                }
-
+               /**
+                * Retrieves the cause of this throwable or <code>null</code> if the cause does not exist or not known.
+                * @return the cause of this throwable or <code>null</code> if the cause is nonexistent or unknown.
+                * @see java.lang.Throwable#getCause()
+                */
                public Throwable getCause() {
                        return this.cause;
                }
 
                /**
+                * Returns the error message string of this throwable object.
+                * @return the error message.
                 * @see java.lang.Throwable#getMessage()
                 */
                public String getMessage() {
                        return message;
                }
-
+               
+               /**
+                * @see java.lang.Throwable#toString()
+                */
                public String toString() {
                        String msg = super.toString();
                        if (cause != null)
index a98213daa490916993f0ffd05ca3b4d182d88bf5..4df6d9674fe4b5903de50644dab5e94e6a1448c2 100644 (file)
@@ -30,12 +30,17 @@ package com.itmill.toolkit.event;
 
 import java.lang.reflect.Method;
 
-/** <p>Interface for classes supporting registeration of methods as event 
- * receivers.</p>
+/** 
+ * <p>
+ * Interface for classes supporting registeration of methods as event 
+ * receivers.
+ * </p>
  * 
- * <p>For more information on the inheritable event mechanism
+ * <p>
+ * For more information on the inheritable event mechanism
  * see the 
- * {@link com.itmill.toolkit.event com.itmill.toolkit.event package documentation}.</p>
+ * {@link com.itmill.toolkit.event com.itmill.toolkit.event package documentation}.
+ * </p>
  * 
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -43,97 +48,122 @@ import java.lang.reflect.Method;
  */
 public interface MethodEventSource {
     
-       /** <p>Registers a new event listener with the specified activation
+       /** 
+        * <p>
+        * Registers a new event listener with the specified activation
         * method to listen events generated by this component. If the
         * activation method does not have any arguments the event object will
-        * not be passed to it when it's called.</p>
+        * not be passed to it when it's called.
+        * </p>
         * 
-        * <p>For more information on the inheritable event mechanism
+        * <p>
+        * For more information on the inheritable event mechanism
         * see the 
-        * {@link com.itmill.toolkit.event com.itmill.toolkit.event package documentation}.</p>
+        * {@link com.itmill.toolkit.event com.itmill.toolkit.event package documentation}.
+        * </p>
         * 
-        * @param eventType type of the listened event. Events of this type or
+        * @param eventType the type of the listened event. Events of this type or
         * its subclasses activate the listener.
-        * @param object the object instance who owns the activation method
-        * @param method the activation method
+        * @param object the object instance who owns the activation method.
+        * @param method the activation method.
         * @throws java.lang.IllegalArgumentException unless <code>method</code>
         * has exactly one match in <code>object</code>
         */
     public void addListener(Class eventType, Object object, Method method);
     
-       /** <p>Registers a new listener with the specified activation method to
+       /** 
+        * <p>
+        * Registers a new listener with the specified activation method to
         * listen events generated by this component. If the activation method
         * does not have any arguments the event object will not be passed to it
-        * when it's called.</p>
+        * when it's called.
+        * </p>
         * 
-        * <p>This version of <code>addListener</code> gets the name of the
+        * <p>
+        * This version of <code>addListener</code> gets the name of the
         * activation method as a parameter. The actual method is reflected from
         * <code>object</code>, and unless exactly one match is found,
-        * <code>java.lang.IllegalArgumentException</code> is thrown.</p>
+        * <code>java.lang.IllegalArgumentException</code> is thrown.
+        * </p>
         * 
-        * <p>For more information on the inheritable event mechanism
+        * <p>
+        * For more information on the inheritable event mechanism
         * see the 
-        * {@link com.itmill.toolkit.event com.itmill.toolkit.event package documentation}.</p>
+        * {@link com.itmill.toolkit.event com.itmill.toolkit.event package documentation}.
+        * </p>
         * 
-        * @param eventType type of the listened event. Events of this type or
+        * @param eventType the type of the listened event. Events of this type or
         * its subclasses activate the listener.
-        * @param object the object instance who owns the activation method
-        * @param methodName the name of the activation method
+        * @param object the object instance who owns the activation method.
+        * @param methodName the name of the activation method.
         * @throws java.lang.IllegalArgumentException unless <code>method</code>
         * has exactly one match in <code>object</code>
         */
     public void addListener(Class eventType, Object object, String methodName);
     
-       /** Removes all registered listeners matching the given parameters.
+       /** 
+        * Removes all registered listeners matching the given parameters.
         * Since this method receives the event type and the listener object as
         * parameters, it will unregister all <code>object</code>'s methods that
         * are registered to listen to events of type <code>eventType</code>
         * generated by this component.
         * 
-        * <p>For more information on the inheritable event mechanism
+        * <p>
+        * For more information on the inheritable event mechanism
         * see the 
-        * {@link com.itmill.toolkit.event com.itmill.toolkit.event package documentation}.</p>
+        * {@link com.itmill.toolkit.event com.itmill.toolkit.event package documentation}.
+        * </p>
         * 
-        * @param eventType exact event type the <code>object</code> listens to
-        * @param target target object that has registered to listen to events
-        * of type <code>eventType</code> with one or more methods
+        * @param eventType the exact event type the <code>object</code> listens to.
+        * @param target the target object that has registered to listen to events
+        * of type <code>eventType</code> with one or more methods.
         */
     public void removeListener(Class eventType, Object target);
     
-       /** Removes one registered listener method. The given method owned by
+       /** 
+        * Removes one registered listener method. The given method owned by
         * the given object will no longer be called when the specified events
         * are generated by this component.
         * 
-        * <p>For more information on the inheritable event mechanism
+        * <p>
+        * For more information on the inheritable event mechanism
         * see the 
-        * {@link com.itmill.toolkit.event com.itmill.toolkit.event package documentation}.</p>
+        * {@link com.itmill.toolkit.event com.itmill.toolkit.event package documentation}.
+        * </p>
         * 
-        * @param eventType exact event type the <code>object</code> listens to
-        * @param target target object that has registered to listen to events
-        * of type <code>eventType</code> with one or more methods
-        * @param method the method owned by <code>target</code> that's
-        * registered to listen to events of type <code>eventType</code>
+        * @param eventType the exact event type the <code>object</code> listens to.
+        * @param target the target object that has registered to listen to events
+        * of type eventType with one or more methods.
+        * @param method the method owned by the target that's
+        * registered to listen to events of type eventType.
         */
     public void removeListener(Class eventType, Object target, Method method);
 
-       /** <p>Removes one registered listener method. The given method owned by
+       /** 
+        * <p>
+        * Removes one registered listener method. The given method owned by
         * the given object will no longer be called when the specified events
-        * are generated by this component.</p>
+        * are generated by this component.
+        * </p>
         * 
-        * <p>This version of <code>removeListener</code> gets the name of the
+        * <p>
+        * This version of <code>removeListener</code> gets the name of the
         * activation method as a parameter. The actual method is reflected from
-        * <code>target</code>, and unless exactly one match is found,
-        * <code>java.lang.IllegalArgumentException</code> is thrown.</p>
+        * the target, and unless exactly one match is found,
+        * <code>java.lang.IllegalArgumentException</code> is thrown.
+        * </p>
         * 
-        * <p>For more information on the inheritable event mechanism
+        * <p>
+        * For more information on the inheritable event mechanism
         * see the 
-        * {@link com.itmill.toolkit.event com.itmill.toolkit.event package documentation}.</p>
+        * {@link com.itmill.toolkit.event com.itmill.toolkit.event package documentation}.
+        * </p>
         * 
-        * @param eventType exact event type the <code>object</code> listens to
-        * @param target target object that has registered to listen to events
-        * of type <code>eventType</code> with one or more methods
-        * @param methodName name of the method owned by <code>target</code>
-        * that's registered to listen to events of type <code>eventType</code>
+        * @param eventType the exact event type the <code>object</code> listens to.
+        * @param target the target object that has registered to listen to events
+        * of type <code>eventType</code> with one or more methods.
+        * @param methodName the name of the method owned by <code>target</code>
+        * that's registered to listen to events of type <code>eventType</code>.
         */
     public void removeListener(Class eventType, Object target, String methodName);
 }
index d5f413dc35f150a127fe5a9d328d247fa817d955..5486c4189f39f8c0cfb8a2269c2fdf086c188e89 100644 (file)
@@ -33,7 +33,8 @@ import java.util.Collection;
 
 import com.itmill.toolkit.Application;
 
-/** Application context provides information about the running context of
+/** 
+ * <code>ApplicationContext</code> provides information about the running context of
  * the application. Each context is shared by all applications that are open
  * for one user. In web-environment this corresponds to HttpSession.
  * 
@@ -43,7 +44,8 @@ import com.itmill.toolkit.Application;
  */
 public interface ApplicationContext {
        
-       /** Returns application context base directory.
+       /** 
+        * Returns application context base directory.
         * 
         * Typically an application is deployed in a such way that is 
         * has application directory. For web applications this directory is the
@@ -55,9 +57,10 @@ public interface ApplicationContext {
         */
        public File getBaseDirectory();
        
-       /** Get the applications in this context.
+       /** 
+        * Gets the applications in this context.
         * 
-        * Get all applications in this context. Each application context contains
+        * Gets all applications in this context. Each application context contains
         * all applications that are open for one user.
         * 
         * @return Collection containing all applications in this context
@@ -65,33 +68,40 @@ public interface ApplicationContext {
        public Collection getApplications();
        
        
-       /** Add transaction listener to this context.
-        * @param listener The listener to be added.
+       /** 
+        * Adds transaction listener to this context.
+        * @param listener the listener to be added.
         * @see TransactionListener
         */
        public void addTransactionListener(TransactionListener listener);
 
-       /** Remove transaction listener from this context.
-        * @param listener The listener to be removed.
+       /** 
+        * Removes transaction listener from this context.
+        * @param listener the listener to be removed.
         * @see TransactionListener
         */
        public void removeTransactionListener(TransactionListener listener);
        
-       /** Interface for listening the application transaction events. 
-        *  Implementations of this interface can be used to listen all 
-        *  transactions between the client and the application.
+       /** 
+        * Interface for listening the application transaction events. 
+        * Implementations of this interface can be used to listen all 
+        * transactions between the client and the application.
         *  
         */
        public interface TransactionListener {
        
-               /** Invoked at the beginning of every transaction.
-                * @param transactionData Data identifying the transaction.
+               /** 
+                * Invoked at the beginning of every transaction.
+                * @param application the Application object.
+                * @param transactionData the Data identifying the transaction.
                 */
                public void transactionStart(Application application, Object transactionData);
                
 
-               /** Invoked at the end of every transaction.
-                * @param transactionData Data identifying the transaction.
+               /** 
+                * Invoked at the end of every transaction.
+                * @param applcation the Application object.
+                * @param transactionData the Data identifying the transaction.
                 */
                public void transactionEnd(Application application, Object transactionData);
 
index b584c9f57a527b163df525b31ebe997ac630c441..9e19d41cad80997a41768706852b6b83c8cd0d64 100644 (file)
@@ -37,23 +37,31 @@ import java.util.StringTokenizer;
 import com.itmill.toolkit.terminal.Resource;
 import com.itmill.toolkit.terminal.ThemeResource;
 
-/** Utility class that can figure out mime-types and icons related to files.
- * Note that the icons are associated purely to mime-types, so a file
+/** 
+ * Utility class that can figure out mime-types and icons related to files.
+ * <p>
+ * Note : The icons are associated purely to mime-types, so a file
  * may not have a custom icon accessible with this class.
- * 
+ * </p>
  * @author IT Mill Ltd.
  * @version @VERSION@
  * @since 3.0
  */
 public class FileTypeResolver {
 
-       /** Default icon given if no icon is specified for a mime-type. */
+       /** 
+        * Default icon given if no icon is specified for a mime-type. 
+        */
        static public Resource DEFAULT_ICON = new ThemeResource("icon/files/file.gif");
        
-       /** Default mime-type. */
+       /** 
+        * Default mime-type. 
+        */
        static public  String DEFAULT_MIME_TYPE = "application/octet-stream";
 
-       /** Initial file extension to mime-type mapping. */
+       /** 
+        * Initial file extension to mime-type mapping. 
+        */
        static private String initialExtToMIMEMap =
                "application/cu-seeme                            csm cu,"
                        + "application/dsptype                             tsp,"
@@ -203,10 +211,14 @@ public class FileTypeResolver {
                        + "video/x-sgi-movie                               movie,"
                        + "x-world/x-vrml                                  vrm vrml wrl";
 
-       /** File extension to MIME type mapping. */
+       /** 
+        * File extension to MIME type mapping. 
+        */
        static private Hashtable extToMIMEMap = new Hashtable();
 
-       /** MIME type to Icon mapping. */
+       /** 
+        * MIME type to Icon mapping. 
+        */
        static private Hashtable MIMEToIconMap = new Hashtable();
 
        static {
@@ -228,19 +240,20 @@ public class FileTypeResolver {
                addIcon("inode/directory", new ThemeResource("icon/files/folder.gif"));
        }
 
-       /** Gets the mime-type of a file. Currently the mime-type is resolved
+       /** 
+        * Gets the mime-type of a file. Currently the mime-type is resolved
         * based only on the file name extension.
         * 
-        * @param fileName name of the file whose mime-type is requested
+        * @param fileName the name of the file whose mime-type is requested.
         * @return mime-type <code>String</code> for the given filename
         */
        public static String getMIMEType(String fileName) {
 
-               // Check for nulls
+               // Checks for nulls
                if (fileName == null) 
                        throw new NullPointerException("Filename can not be null");
 
-               // Calculate the extension of the file
+               // Calculates the extension of the file
                int dotIndex = fileName.indexOf(".");
                while (dotIndex >= 0 && fileName.indexOf(".",dotIndex+1) >= 0) 
                        dotIndex = fileName.indexOf(".",dotIndex+1);
@@ -257,12 +270,13 @@ public class FileTypeResolver {
                return DEFAULT_MIME_TYPE;
        }
 
-       /** Gets the descriptive icon representing file, based on the filename.
+       /** 
+        * Gets the descriptive icon representing file, based on the filename.
         * First the mime-type for the given filename is resolved, and then the
         * corresponding icon is fetched from the internal icon storage. If it
         * is not found the default icon is returned.
         * 
-        * @param fileName name of the file whose icon is requested
+        * @param fileName the name of the file whose icon is requested.
         * @return the icon corresponding to the given file
         */
        public static Resource getIcon(String fileName) {
@@ -276,12 +290,13 @@ public class FileTypeResolver {
                return DEFAULT_ICON;
        }
 
-       /** Gets the descriptive icon representing a file. First the mime-type
+       /** 
+        * Gets the descriptive icon representing a file. First the mime-type
         * for the given file name is resolved, and then the corresponding
         * icon is fetched from the internal icon storage. If it is not found
         * the default icon is returned.
         * 
-        * @param file the file whose icon is requested
+        * @param file the file whose icon is requested.
         * @return the icon corresponding to the given file
         */
        public static Resource getIcon(File file) {
@@ -295,15 +310,16 @@ public class FileTypeResolver {
                return DEFAULT_ICON;
        }
 
-       /** Gets the mime-type for a file. Currently the returned file type is
+       /** 
+        * Gets the mime-type for a file. Currently the returned file type is
         * resolved by the filename extension only.
         * 
-        * @param file the file whose mime-type is requested
+        * @param file the file whose mime-type is requested.
         * @return the files mime-type <code>String</code>
         */
        public static String getMIMEType(File file) {
 
-               // Check for nulls
+               // Checks for nulls
                if (file == null) 
                        throw new NullPointerException("File can not be null");
 
@@ -317,28 +333,31 @@ public class FileTypeResolver {
                return getMIMEType(file.getName());
        }
 
-       /** Adds a mime-type mapping for the given filename extension. If
+       /** 
+        * Adds a mime-type mapping for the given filename extension. If
         * the extension is already in the internal mapping it is overwritten.
         * 
         * @param extension the filename extension to be associated with
-        * <code>MIMEType</code>
-        * @param MIMEType the new mime-type for <code>extension</code>
+        * <code>MIMEType</code>.
+        * @param MIMEType the new mime-type for <code>extension</code>.
         */
        public static void addExtension(String extension, String MIMEType) {
                extToMIMEMap.put(extension, MIMEType);
        }
 
-       /** Adds a icon for the given mime-type. If the mime-type also has a
+       /** 
+        * Adds a icon for the given mime-type. If the mime-type also has a
         * corresponding icon, it is replaced with the new icon.
         * 
-        * @param MIMEType the mime-type whose icon is to be changed
-        * @param icon the new icon to be associated with <code>MIMEType</code>
+        * @param MIMEType the mime-type whose icon is to be changed.
+        * @param icon the new icon to be associated with <code>MIMEType</code>.
         */
        public static void addIcon(String MIMEType, Resource icon) {
                MIMEToIconMap.put(MIMEType, icon);
        }
        
-       /** Gets the internal file extension to mime-type mapping.
+       /** 
+        * Gets the internal file extension to mime-type mapping.
         * 
         * @return unmodifiable map containing the current file extension to
         * mime-type mapping
@@ -347,7 +366,8 @@ public class FileTypeResolver {
                return Collections.unmodifiableMap(extToMIMEMap);
        }
 
-       /** Gets the internal mime-type to icon mapping.
+       /** 
+        * Gets the internal mime-type to icon mapping.
         * 
         * @return unmodifiable map containing the current mime-type to icon
         * mapping
index 61ceea2ff5b1973e5d09f23032d69d6557be01c3..3be858666c2062aa69609fcc42dceffefdcc9e5c 100644 (file)
@@ -59,7 +59,9 @@ import org.xml.sax.SAXException;
 
 public class License {
 
-       /** IT Mill License Manager certificate */
+       /**
+        *  IT Mill License Manager certificate.
+        */
        private static String certificate = "-----BEGIN CERTIFICATE-----\n"
                        + "MIIDJjCCAuQCBEVqxNwwCwYHKoZIzjgEAwUAMHkxCzAJBgNVBAYTAkZJMRAwDgYDVQQIEwdVbmtu\n"
                        + "b3duMQ4wDAYDVQQHEwVUdXJrdTEUMBIGA1UEChMLSVQgTWlsbCBMdGQxEDAOBgNVBAsTB1Vua25v\n"
@@ -77,14 +79,18 @@ public class License {
                        + "LwAkKye6dzALBgcqhkjOOAQDBQADLwAwLAIUDgvWt7ItRyZfpWNEeJ0P9yaxOwoCFC21LRtwLi1t\n"
                        + "c+yomHtX+mpxF7VO\n" + "-----END CERTIFICATE-----\n";
 
-       /** License XML Document */
+       /** 
+        * License XML Document. 
+        */
        private Document licenseXML = null;
 
-       /** The signature has already been checked and is valid */
+       /** 
+        * The signature has already been checked and is valid. 
+        */
        private boolean signatureIsValid = false;
 
        /**
-        * Read the license-file from input stream.
+        * Reads the license-file from input stream.
         * 
         * License file can only ne read once, after it has been read it stays.
         * 
@@ -139,7 +145,18 @@ public class License {
 
                return "true".equalsIgnoreCase(print);
        }
-
+       /**
+        * Gets the description for this license.
+        * @return
+        *                      the description.
+        * @throws LicenseFileHasNotBeenRead
+        *                                                                      if the license file has not been read.
+        * @throws InvalidLicenseFile
+        *                                                      if the license file is not of correct XML format.
+        * @throws LicenseSignatureIsInvalid
+        *                                                      if the license file has been changed or signature is
+        *                                      otherwise invalid.
+        */
        public String getDescription() throws LicenseFileHasNotBeenRead,
                        InvalidLicenseFile, LicenseSignatureIsInvalid {
 
@@ -220,7 +237,7 @@ public class License {
        }
 
        /**
-        * Check if the license valid for given usage?
+        * Checks if the license valid for given usage?
         * 
         * Checks that the license is valid for specified usage. Throws an exception
         * if there is something wrong with the license or use.
@@ -495,14 +512,24 @@ public class License {
                        return null;
                return name;
        }
-
+       
+       /**
+        * Gets the purpose for this license. 
+        * @return the purpose.
+        */
        private String getPurpose() {
                NodeList purposeL = licenseXML.getElementsByTagName("purpose");
                if (purposeL == null || purposeL.getLength() == 0)
                        return null;
                return getTextContent(purposeL.item(0));
        }
-
+       
+       /**
+        * Gets the license number for this license. 
+        * @return the license number of this license, or <code>null</code> if not set.
+        * @throws InvalidLicenseFile
+        *                                              if the license file is not of correct XML format.
+        */
        private String getLicenseNumber() throws InvalidLicenseFile {
                Element lic = (Element) licenseXML.getElementsByTagName("license")
                                .item(0);
@@ -600,7 +627,18 @@ public class License {
                return base64_decode(base64);
 
        }
-
+       
+       /**
+        * Returns whether the signature is valid or not.
+        * @return <code>true</code> if the signature is valid otherwise <code>false</code> .
+        * @throws InvalidLicenseFile 
+        *                                              if the license file is not of correct XML format.
+        * @throws LicenseFileHasNotBeenRead 
+        *                                              if the license file has not been read.
+        * @throws LicenseSignatureIsInvalid
+        *                                              if the license file has been changed or signature is
+        *                              otherwise invalid.
+        */
        private boolean isSignatureValid() throws InvalidLicenseFile,
                        LicenseFileHasNotBeenRead, LicenseSignatureIsInvalid {
 
@@ -712,10 +750,14 @@ public class License {
        }
 
        /* ****** BASE64 implementation created by Robert Harder ****** */
-       /** The equals sign (=) as a byte. */
+       /** 
+        * The equals sign (=) as a byte. 
+        */
        private final static byte Base64_EQUALS_SIGN = (byte) '=';
 
-       /** Preferred encoding. */
+       /** 
+        * Preferred encoding. 
+        */
        private final static String Base64_PREFERRED_ENCODING = "UTF-8";
 
        /**
@@ -765,22 +807,23 @@ public class License {
         * Decodes four bytes from array <var>source</var> and writes the resulting
         * bytes (up to three of them) to <var>destination</var>. The source and
         * destination arrays can be manipulated anywhere along their length by
-        * specifying <var>srcOffset</var> and <var>destOffset</var>. This method
-        * does not check to make sure your arrays are large enough to accomodate
-        * <var>srcOffset</var> + 4 for the <var>source</var> array or
+        * specifying <var>srcOffset</var> and <var>destOffset</var>. 
+        * <p>
+        * This method does not check to make sure your arrays are large enough
+        * to accomodate <var>srcOffset</var> + 4 for the <var>source</var> array or
         * <var>destOffset</var> + 3 for the <var>destination</var> array. This
         * method returns the actual number of bytes that were converted from the
         * Base64 encoding.
-        * 
+        * </p>
         * 
         * @param source
-        *            the array to convert
+        *            the array to convert
         * @param srcOffset
-        *            the index where conversion begins
+        *            the index where conversion begins
         * @param destination
-        *            the array to hold the conversion
+        *            the array to hold the conversion
         * @param destOffset
-        *            the index where output will be put
+        *            the index where output will be put
         * @return the number of decoded bytes converted
         * @since 1.3
         */
@@ -855,11 +898,11 @@ public class License {
         * features.
         * 
         * @param source
-        *            The Base64 encoded data
+        *            the Base64 encoded data.
         * @param off
-        *            The offset of where to begin decoding
+        *            the offset of where to begin decoding.
         * @param len
-        *            The length of characters to decode
+        *            the length of characters to decode.
         * @return decoded data
         * @since 1.3
         */
@@ -912,7 +955,7 @@ public class License {
         * gzip-compressed data and decompressing it.
         * 
         * @param s
-        *            the string to decode
+        *            the string to decode.
         * @return the decoded data
         * @since 1.4
         */
index 2307b1e58f518a404511aceeb15dc86adf6bb8f7..22f286ef666bdfc2432d348f85de188d78138354 100644 (file)
@@ -30,46 +30,63 @@ package com.itmill.toolkit.terminal;
 
 import com.itmill.toolkit.Application;
 
-/** This interface must be implemented by classes wishing to provide Application resources.
- * 
- * Application resources are a set of named resources (pictures, sounds, etc) associated
+/** 
+ * This interface must be implemented by classes wishing to provide Application resources.
+ * <p>
+ * <code>ApplicationResource</code> are a set of named resources (pictures, sounds, etc) associated
  * with some specific application. Having named application resources provides a convenient 
  * method for having inter-theme common resources for an application.
- * 
+ * </p>
  * @author IT Mill Ltd.
  * @version @VERSION@
  * @since 3.0
  */
 public interface ApplicationResource extends Resource {
 
-       /** Default cache time. */
+       /** 
+        * Default cache time. 
+        */
        public static final long DEFAULT_CACHETIME = 1000*60*60*24;
 
-       /** Get resource as stream */
+       /** 
+        * Gets resource as stream. 
+        */
        public DownloadStream getStream();
                
-       /** Get the application of the resource */
+       /** 
+        * Gets the application of the resource. 
+        */
        public Application getApplication();
 
-       /** Get virtual filename for the resource */
+       /** 
+        * Gets the virtual filename for this resource. 
+        * @return the file name associated to this resource.
+        */
        public String getFilename();
        
-       /** Get lenght of cache expiration time.
+       /** 
+        * Gets the length of cache expiration time.
         * 
-        * <p>This gives the adapter the possibility cache streams sent to the 
+        * <p>
+        * This gives the adapter the possibility cache streams sent to the 
         * client. The caching may be made in adapter or at the client if the 
-        * client supports caching. Default is DEFAULT_CACHETIME.</p>
+        * client supports caching. Default is <code>DEFAULT_CACHETIME</code>.
+        * </p>
         * 
         * @return Cache time in milliseconds
         */
        public long getCacheTime();
 
-       /** Get the size of the download buffer used for this resource.
+       /** 
+        * Gets the size of the download buffer used for this resource.
         * 
-        * <p>If the buffer size is 0, the buffer size is decided by the 
-        * terminal adapter. The default value is 0.</p>
+        * <p>
+        * If the buffer size is 0, the buffer size is decided by the 
+        * terminal adapter. The default value is 0.
+        * </p>
         * 
-        * @return int The size of the buffer in bytes.
+        * @return int 
+        *                      the size of the buffer in bytes.
         */
        public int getBufferSize();
 
index dd71c36739be6329633599d2e62c8989b62042a2..fece5b75df40dd867f19052b1ff52883713e0c1b 100644 (file)
@@ -31,10 +31,11 @@ package com.itmill.toolkit.terminal;
 import com.itmill.toolkit.Application;
 import com.itmill.toolkit.service.FileTypeResolver;
 
-/** Class resource is a named resource accessed with the class loader.
+/** 
+ * <code>ClassResource</code> is a named resource accessed with the class loader.
  *  
- *  This can be used to access resources such as icons, files, etc.
- *  @see java.lang.Class#getResource(java.lang.String)
+ * This can be used to access resources such as icons, files, etc.
+ * @see java.lang.Class#getResource(java.lang.String)
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -42,26 +43,37 @@ import com.itmill.toolkit.service.FileTypeResolver;
  */
 public class ClassResource implements ApplicationResource {
 
-       /** Default buffer size for this stream resource */
+       /** 
+        * Default buffer size for this stream resource. 
+        */
        private int bufferSize = 0;
 
-       /** Default cache time for this stream resource */
+       /** 
+        * Default cache time for this stream resource. 
+        */
        private long cacheTime = DEFAULT_CACHETIME;     
 
-       /** Associated class used for indetifying the source of the resource */
+       /** 
+        * Associated class used for indetifying the source of the resource. 
+        */
        private Class associatedClass;
        
-       /** Name of the resource is relative to the associated class */
+       /** 
+        * Name of the resource is relative to the associated class. 
+        */
        private String resourceName;
        
-       /** Application used for serving the class */
+       /** 
+        * Application used for serving the class. 
+        */
        private Application application;
 
-       /** Create new application resource instance. 
+       /** 
+        * Creates new application resource instance. 
         * The resource id is relative to the location of the application class.
         * 
-        * @param resourceName Unique identifier of the resource within the application.
-        * @param application The application this resource will be added to.
+        * @param resourceName the Unique identifier of the resource within the application.
+        * @param application the application this resource will be added to.
         * */
        public ClassResource(String resourceName, Application application) {
                this.associatedClass = application.getClass();
@@ -72,12 +84,13 @@ public class ClassResource implements ApplicationResource {
                application.addResource(this);
        }
 
-       /** Create new application resource instance. 
+       /** 
+        * Creates new application resource instance. 
         * 
-        * @param associatedClass The class of the which the resource is associated.
-        * @param resourceName Unique identifier of the resource within the application.
-        * @param application The application this resource will be added to.
-        * */
+        * @param associatedClass the class of the which the resource is associated.
+        * @param resourceName the Unique identifier of the resource within the application.
+        * @param application the application this resource will be added to.
+        */
        public ClassResource(
                Class associatedClass,
                String resourceName,
@@ -89,15 +102,25 @@ public class ClassResource implements ApplicationResource {
                        throw new NullPointerException();
                application.addResource(this);
        }
-
+       /**
+        * Gets the MIME type of this resource.
+        * @see com.itmill.toolkit.terminal.Resource#getMIMEType()
+        */
        public String getMIMEType() {
                return FileTypeResolver.getMIMEType(this.resourceName);
        }
-
+       /**
+        * Gets the application of this resource.
+        * @see com.itmill.toolkit.terminal.ApplicationResource#getApplication()
+        */
        public Application getApplication() {
                return application;
        }
-
+       /**
+        * Gets the virtual filename for this resource.
+        * @return the file name associated to this resource.
+        * @see com.itmill.toolkit.terminal.ApplicationResource#getFilename()
+        */
        public String getFilename() {
                int index = 0;
                int next = 0;
@@ -106,7 +129,10 @@ public class ClassResource implements ApplicationResource {
                        index = next + 1;
                return resourceName.substring(index);
        }
-
+       /**
+        * Gets resource as stream.
+        * @see com.itmill.toolkit.terminal.ApplicationResource#getStream()
+        */
        public DownloadStream getStream() {
                DownloadStream ds = new DownloadStream(
                        associatedClass.getResourceAsStream(resourceName),
@@ -122,8 +148,9 @@ public class ClassResource implements ApplicationResource {
                return bufferSize;
        }
 
-       /** Set the size of the download buffer used for this resource.
-        * @param bufferSize The size of the buffer in bytes.
+       /** 
+        * Sets the size of the download buffer used for this resource.
+        * @param bufferSize the size of the buffer in bytes.
         */
        public void setBufferSize(int bufferSize) {
                this.bufferSize = bufferSize;
@@ -134,14 +161,17 @@ public class ClassResource implements ApplicationResource {
                return cacheTime;
        }
 
-       /** Set lenght of cache expiration time.
+       /** 
+        * Sets the length of cache expiration time.
         * 
-        * <p>This gives the adapter the possibility cache streams sent to the
+        * <p>
+        * This gives the adapter the possibility cache streams sent to the
         * client. The caching may be made in adapter or at the client if the 
         * client supports caching. Zero or negavive value disbales the 
-        * caching of this stream.</p>
+        * caching of this stream.
+        * </p>
         * 
-        * @param cacheTime The cache time in milliseconds.
+        * @param cacheTime the cache time in milliseconds.
         * 
         */
        public void setCacheTime(long cacheTime) {
index 8ef96c982ce8261936e85cc6c8419aba458f7f7c..778df1a41edff742f6cc07c89fe6c9c46710d537 100644 (file)
@@ -33,7 +33,8 @@ import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 
-/** Class for combining multiple error messages together.
+/** 
+ * Class for combining multiple error messages together.
  *
  * @author  IT Mill Ltd
  * @version @VERSION@
@@ -41,19 +42,22 @@ import java.util.List;
  */
 public class CompositeErrorMessage implements ErrorMessage {
 
-       /** Array of all the errors */
+       /** 
+        * Array of all the errors. 
+        */
        private List errors;
 
-       /** Level of the error */
+       /** 
+        * Level of the error. 
+        */
        private int level;
 
-       /** Constructor for CompositeErrorMessage.
+       /** 
+        * Constructor for CompositeErrorMessage.
         * 
-        * @param errorMessages Array of error messages that are listed togeter. 
+        * @param errorMessages the Array of error messages that are listed togeter. 
         * Nulls are ignored, but at least one message is required.
-        * @throws NullPointerException if errorMessages is null.
-        *       * @throws IllegalArgumentException if the array was empty.      
-         */
+        */
        public CompositeErrorMessage(ErrorMessage[] errorMessages) {
                errors = new ArrayList(errorMessages.length);
                level = Integer.MIN_VALUE;
@@ -67,11 +71,10 @@ public class CompositeErrorMessage implements ErrorMessage {
 
        }
 
-       /** Constructor for CompositeErrorMessage.
-        * @param errorMessages Collection of error messages that are listed
+       /** 
+        * Constructor for CompositeErrorMessage.
+        * @param errorMessages the Collection of error messages that are listed
         * togeter. At least one message is required.
-        * @throws NullPointerException if the collection is null.
-        * @throws IllegalArgumentException if the collection was empty.
         */
        public CompositeErrorMessage(Collection errorMessages) {
                errors = new ArrayList(errorMessages.size());
@@ -85,16 +88,18 @@ public class CompositeErrorMessage implements ErrorMessage {
                        throw new IllegalArgumentException("Composite error message must have at least one error");
        }
 
-       /** The error level is the largest error level in 
+       /** 
+        * The error level is the largest error level in 
         * @see com.itmill.toolkit.terminal.ErrorMessage#getErrorLevel()
         */
        public final int getErrorLevel() {
                return level;
        }
 
-       /** Add a error message into this composite message.
-        *  Updates the level field.
-        * @param error The error message to be added. Duplicate errors are ignored.
+       /** 
+        * Adds a error message into this composite message.
+        * Updates the level field.
+        * @param error the error message to be added. Duplicate errors are ignored.
         */
        private void addErrorMessage(ErrorMessage error) {
                if (error != null && !errors.contains(error)) {
@@ -105,11 +110,17 @@ public class CompositeErrorMessage implements ErrorMessage {
                }
        }
 
-       /** Get Error Iterator. */
+       /** 
+        * Gets Error Iterator.
+        * @return the error iterator. 
+        */
        public Iterator iterator() {
                return errors.iterator();
        }
-
+       
+       /**
+        * @see com.itmill.toolkit.terminal.Paintable#paint(com.itmill.toolkit.terminal.PaintTarget)
+        */
        public void paint(PaintTarget target) throws PaintException {
 
                if (errors.size() == 1)
@@ -153,7 +164,8 @@ public class CompositeErrorMessage implements ErrorMessage {
        public void requestRepaintRequests() {
        }
 
-       /** Returns a comma separated list of the error messages.
+       /** 
+        * Returns a comma separated list of the error messages.
         * @return String, comma separated list of error messages.
         */
        public String toString() {
index 74473ff4db964a678728c280646890a65b772674..c4b481e70e5d1dc900bc7636940db08a3ff4a3dd 100644 (file)
@@ -33,7 +33,8 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
 
-/** Downloadable stream.
+/** 
+ * Downloadable stream.
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -41,10 +42,14 @@ import java.util.Map;
  */
 public class DownloadStream {
 
-       /** Maximum cache time. */
+       /** 
+        * Maximum cache time. 
+        */
        public static final long MAX_CACHETIME = Long.MAX_VALUE;
        
-       /** Default cache time. */
+       /** 
+        * Default cache time. 
+        */
        public static final long DEFAULT_CACHETIME = 1000*60*60*24;
        
        private InputStream stream;
@@ -54,7 +59,9 @@ public class DownloadStream {
        private long cacheTime = DEFAULT_CACHETIME;
        private int bufferSize = 0;
 
-       /** Creates a new instance of DownloadStream */
+       /** 
+        * Creates a new instance of DownloadStream. 
+        */
        public DownloadStream(
                InputStream stream,
                String contentType,
@@ -64,57 +71,64 @@ public class DownloadStream {
                setFileName(fileName);
        }
 
-       /** Get downloadable stream.
+       /** 
+        * Gets downloadable stream.
         * @return output stream.
         */
        public InputStream getStream() {
                return this.stream;
        }
 
-       /** Sets the stream.
+       /** 
+        * Sets the stream.
         * @param stream The stream to set
         */
        public void setStream(InputStream stream) {
                this.stream = stream;
        }
 
-       /** Get stream content type.
+       /** 
+        * Gets stream content type.
         * @return type of the stream content.
         */
        public String getContentType() {
                return this.contentType;
        }
 
-       /** Set stream content type.
-        * @param contentType The contentType to set
+       /** 
+        * Sets stream content type.
+        * @param contentType the contentType to set
         */
        public void setContentType(String contentType) {
                this.contentType = contentType;
        }
 
-       /** Returns the file name.
-        * @return The name of the file.
+       /** 
+        * Returns the file name.
+        * @return the name of the file.
         */
        public String getFileName() {
                return fileName;
        }
 
-       /** Sets the file name.
-        * @param fileName The file name to set
+       /** 
+        * Sets the file name.
+        * @param fileName the file name to set.
         */
        public void setFileName(String fileName) {
                this.fileName = fileName;
        }
 
-       /** Set a paramater for download stream.
-        *  Parameters are optional information about the downloadable stream
-        *  and their meaning depends on the used adapter. For example in
-        *  WebAdapter they are interpreted as HTTP response headers.
+       /** 
+        * Sets a paramater for download stream.
+        * Parameters are optional information about the downloadable stream
+        * and their meaning depends on the used adapter. For example in
+        * WebAdapter they are interpreted as HTTP response headers.
         *      
-        *      If the parameters by this name exists, the old value is replaced.
+        * If the parameters by this name exists, the old value is replaced.
         * 
-        *  @param name Name of the parameter to set.
-        *  @param value Value of the parameter to set.
+        * @param name the Name of the parameter to set.
+        * @param value the Value of the parameter to set.
         */
        public void setParameter(String name, String value) {
                if (this.params == null) {
@@ -123,12 +137,13 @@ public class DownloadStream {
                this.params.put(name, value);
        }
 
-       /** Get a paramater for download stream.
-        *  Parameters are optional information about the downloadable stream
-        *  and their meaning depends on the used adapter. For example in
-        *  WebAdapter they are interpreted as HTTP response headers.
-        *  @param name Name of the parameter to set.
-        *  @return Value of the parameter or null if the parameter does not exist.
+       /** 
+        * Gets a paramater for download stream.
+        * Parameters are optional information about the downloadable stream
+        * and their meaning depends on the used adapter. For example in
+        * WebAdapter they are interpreted as HTTP response headers.
+        * @param name the Name of the parameter to set.
+        * @return Value of the parameter or null if the parameter does not exist.
         */
        public String getParameter(String name) {
                if (this.params != null)
@@ -136,8 +151,9 @@ public class DownloadStream {
                return null;
        }
 
-       /** Get the names of the parameters.
-        * @return Iteraror of names or null if no parameters are set.
+       /** 
+        * Gets the names of the parameters.
+        * @return Iterator of names or null if no parameters are set.
         */
        public Iterator getParameterNames() {
                if (this.params != null)
@@ -145,35 +161,39 @@ public class DownloadStream {
                return null;
        }
        
-       /** Get lenght of cache expiration time.
-        *  This gives the adapter the possibility cache streams sent to the client.
-        *  The caching may be made in adapter or at the client if the client supports
-        *  caching. Default is DEFAULT_CACHETIME.
+       /** 
+        * Gets length of cache expiration time.
+        * This gives the adapter the possibility cache streams sent to the client.
+        * The caching may be made in adapter or at the client if the client supports
+        * caching. Default is <code>DEFAULT_CACHETIME</code>.
         * @return Cache time in milliseconds
         */
        public long getCacheTime() {
                return cacheTime;
        }
 
-       /** Set lenght of cache expiration time.
-        *  This gives the adapter the possibility cache streams sent to the client.
-        *  The caching may be made in adapter or at the client if the client supports
-        *  caching. Zero or negavive value disbales the caching of this stream.
-        * @param cacheTime The cache time in milliseconds.
+       /** 
+        * Sets length of cache expiration time.
+        * This gives the adapter the possibility cache streams sent to the client.
+        * The caching may be made in adapter or at the client if the client supports
+        * caching. Zero or negavive value disbales the caching of this stream.
+        * @param cacheTime the cache time in milliseconds.
         */
        public void setCacheTime(long cacheTime) {
                this.cacheTime = cacheTime;
        }
 
-       /** Get the size of the download buffer.
+       /** 
+        * Gets the size of the download buffer.
         * @return int The size of the buffer in bytes.
         */
        public int getBufferSize() {
                return bufferSize;
        }
 
-       /** Set the size of the download buffer.
-        * @param bufferSize The size of the buffer in bytes.
+       /** 
+        * Sets the size of the download buffer.
+        * @param bufferSize the size of the buffer in bytes.
         */
        public void setBufferSize(int bufferSize) {
                this.bufferSize = bufferSize;
index c6a6463e6b18515a1c46568840a639706af008a2..5e0d52f296aa303896a3f4c215ad5ee041171af2 100644 (file)
@@ -28,7 +28,8 @@
 
 package com.itmill.toolkit.terminal;
 
-/** Interface for rendering error messages to terminal. All the visible errors
+/** 
+ * Interface for rendering error messages to terminal. All the visible errors
  * shown to user must implement this interface.
  *
  * @author IT Mill Ltd.
@@ -37,42 +38,56 @@ package com.itmill.toolkit.terminal;
  */
 public interface ErrorMessage extends Paintable {
 
-       /** Error code for system errors and bugs. */
+       /** 
+        * Error code for system errors and bugs. 
+        */
        public static final int SYSTEMERROR = 5000;
 
-       /** Error code for critical error messages. */
+       /** 
+        * Error code for critical error messages. 
+        */
        public static final int CRITICAL = 4000;
 
-       /** Error code for regular error messages. */
+       /** 
+        * Error code for regular error messages. 
+        */
        public static final int ERROR = 3000;
 
-       /** Error code for warning messages. */
+       /** 
+        * Error code for warning messages. 
+        */
        public static final int WARNING = 2000;
 
-       /** Error code for informational messages. */
+       /** 
+        * Error code for informational messages. 
+        */
        public static final int INFORMATION = 1000;
 
-       /** Gets the errors level.
+       /** 
+        * Gets the errors level.
         * 
-        *  @return the level of error as an integer.
+        * @return the level of error as an integer.
         */
        public int getErrorLevel();
 
-       /** Error messages are inmodifiable and thus listeners are not needed. This
+       /** 
+        * Error messages are inmodifiable and thus listeners are not needed. This
         * method should be implemented as empty.
-        * 
+        * @param listener the listener to be added.
         * @see com.itmill.toolkit.terminal.Paintable#addListener(Paintable.RepaintRequestListener)
         */
        public void addListener(RepaintRequestListener listener);
 
-       /** Error messages are inmodifiable and thus listeners are not needed. This
+       /** 
+        * Error messages are inmodifiable and thus listeners are not needed. This
         * method should be implemented as empty.
-        *
+        * @param listener the listener to be removed.
         * @see com.itmill.toolkit.terminal.Paintable#removeListener(Paintable.RepaintRequestListener)
         */
        public void removeListener(RepaintRequestListener listener);
 
-       /** Error messages are inmodifiable and thus listeners are not needed. This
+       /** 
+        * Error messages are inmodifiable and thus listeners are not needed. This
         * method should be implemented as empty.
         *
         * @see com.itmill.toolkit.terminal.Paintable#requestRepaint()
index 2c6b95cc64f576df010bbbac70637d6ede6878d6..6b3df1b35ae536fa207a3c252993ffc16b2574f5 100644 (file)
@@ -32,7 +32,8 @@ import java.net.URL;
 
 import com.itmill.toolkit.service.FileTypeResolver;
 
-/** External resource implements source for resources fetched from 
+/** 
+ * <code>ExternalResource</code> implements source for resources fetched from 
  * location specified by URL:s. The resources are fetched directly by the
  * client terminal and are not fetched trough the terminal adapter.
  * 
@@ -42,12 +43,16 @@ import com.itmill.toolkit.service.FileTypeResolver;
  */
 public class ExternalResource implements Resource {
 
-       /** Url of the download */
+       /** 
+        * Url of the download. 
+        */
        private String sourceURL = null;
 
 
-       /** Create new download component for downloading directly from given URL. 
-        * */
+       /** 
+        * Creates new download component for downloading directly from given URL.
+        * @param sourceURL the source URL. 
+        */
        public ExternalResource(URL sourceURL) {
                if (sourceURL == null) 
                        throw new RuntimeException("Source must be non-null");
@@ -55,8 +60,10 @@ public class ExternalResource implements Resource {
                this.sourceURL = sourceURL.toString();
        }
 
-       /** Create new download component for downloading directly from given URL. 
-        * */
+       /** 
+        * Creates new download component for downloading directly from given URL.
+        * @param  sourceURL the source URL.
+        */
        public ExternalResource(String sourceURL) {
                if (sourceURL == null) 
                        throw new RuntimeException("Source must be non-null");
@@ -64,11 +71,18 @@ public class ExternalResource implements Resource {
                this.sourceURL = sourceURL.toString();
        }
 
-       /** Get the URL of the external resource */
+       /** 
+        * Gets the URL of the external resource.
+        * @return the URL of the external resource. 
+        */
        public String getURL() {
                return sourceURL;
        }
        
+       /**
+        * Gets the MIME type of the resource.
+        * @see com.itmill.toolkit.terminal.Resource#getMIMEType()
+        */
        public String getMIMEType() {
                return FileTypeResolver.getMIMEType(getURL().toString());
        }
index dcc06cbed52a7739d626c9610d2bcd2096bd0919..351edb7377498e032e1092763f9f45049b1c69f7 100644 (file)
@@ -35,8 +35,9 @@ import java.io.FileNotFoundException;
 import com.itmill.toolkit.Application;
 import com.itmill.toolkit.service.FileTypeResolver;
 
-/** File resources are files or directories on local filesystem. The files and directories
- * are served trough URI:s to the client terminal and thus must be registered to an 
+/** 
+ * <code>FileResources</code> are files or directories on local filesystem. The files and directories
+ * are served through URI:s to the client terminal and thus must be registered to an 
  * URI context before they can be used. The resource is automatically registered
  * to the application when it is created.
  *
@@ -46,19 +47,28 @@ import com.itmill.toolkit.service.FileTypeResolver;
  */
 public class FileResource implements ApplicationResource {
 
-       /** Default buffer size for this stream resource */
+       /** 
+        * Default buffer size for this stream resource. 
+        */
        private int bufferSize = 0;
 
-       /** File where the downloaded content is fetched from. */
+       /** 
+        * File where the downloaded content is fetched from. 
+        */
        private File sourceFile;
 
-       /** Application */
+       /** 
+        * Application. 
+        */
        private Application application;
 
-       /** Default cache time for this stream resource */
+       /** 
+        * Default cache time for this stream resource. 
+        */
        private long cacheTime = DownloadStream.DEFAULT_CACHETIME;              
 
-       /** Create new file resource for providing given file for
+       /** 
+        * Creates new file resource for providing given file for
         * client terminals.
         */
        public FileResource(File sourceFile, Application application) {
@@ -66,7 +76,11 @@ public class FileResource implements ApplicationResource {
                setSourceFile(sourceFile);
                application.addResource(this);
        }
-
+       
+       /**
+        * Gets the resource as stream.
+        * @see com.itmill.toolkit.terminal.ApplicationResource#getStream()
+        */
        public DownloadStream getStream() {
                try {
                        DownloadStream ds = new DownloadStream(
@@ -81,15 +95,17 @@ public class FileResource implements ApplicationResource {
                }
        }
 
-       /** Returns the source file.
-        * @return File
+       /** 
+        * Gets the source file.
+        * @return the source File.
         */
        public File getSourceFile() {
                return sourceFile;
        }
 
-       /** Sets the source file.
-        * @param sourceFile The source file to set
+       /** 
+        * Sets the source file.
+        * @param sourceFile the source file to set.
         */
        public void setSourceFile(File sourceFile) {
                this.sourceFile = sourceFile;
@@ -116,21 +132,23 @@ public class FileResource implements ApplicationResource {
                return FileTypeResolver.getMIMEType(sourceFile);
        }
        
-       /** Get lenght of cache expiration time.
-        *  This gives the adapter the possibility cache streams sent to the client.
-        *  The caching may be made in adapter or at the client if the client supports
-        *  caching. Default is DownloadStream.DEFAULT_CACHETIME.
-        * @return Cache time in milliseconds
+       /** 
+        * Gets the length of cache expiration time.
+        * This gives the adapter the possibility cache streams sent to the client.
+        * The caching may be made in adapter or at the client if the client supports
+        * caching. Default is <code>DownloadStream.DEFAULT_CACHETIME</code>.
+        * @return Cache time in milliseconds.
         */
        public long getCacheTime() {
                return cacheTime;
        }
 
-       /** Set lenght of cache expiration time.
-        *  This gives the adapter the possibility cache streams sent to the client.
-        *  The caching may be made in adapter or at the client if the client supports
-        *  caching. Zero or negavive value disbales the caching of this stream.
-        * @param cacheTime The cache time in milliseconds.
+       /** 
+        * Sets the length of cache expiration time.
+        * This gives the adapter the possibility cache streams sent to the client.
+        * The caching may be made in adapter or at the client if the client supports
+        * caching. Zero or negavive value disbales the caching of this stream.
+        * @param cacheTime the cache time in milliseconds.
         */
        public void setCacheTime(long cacheTime) {
                this.cacheTime = cacheTime;
@@ -141,8 +159,9 @@ public class FileResource implements ApplicationResource {
                return bufferSize;
        }
 
-       /** Set the size of the download buffer used for this resource.
-        * @param bufferSize The size of the buffer in bytes.
+       /** 
+        * Sets the size of the download buffer used for this resource.
+        * @param bufferSize the size of the buffer in bytes.
         */
        public void setBufferSize(int bufferSize) {
                this.bufferSize = bufferSize;
index cc220b630d4608d1dce9bb944dd01c4f07a3e818..871fa107519b7c9066d3b33ae6e1ec037da3d29e 100644 (file)
@@ -30,8 +30,9 @@ package com.itmill.toolkit.terminal;
 
 import java.util.Hashtable;
 
-/** Simple two-way map for generating textual keys for objects and
- * retrieving the objects later with the key.
+/** 
+ * <code>KeyMapper</code> is the simple two-way map for generating textual 
+ * keys for objects and retrieving the objects later with the key.
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -43,7 +44,10 @@ public class KeyMapper {
     private Hashtable objectKeyMap = new Hashtable();
     private Hashtable keyObjectMap = new Hashtable();
     
-    /** Get key for an object */
+    /** 
+     * Gets key for an object.
+     * @param o the object. 
+     */
     public String key(Object o) {
         
         if (o == null) return "null";
@@ -60,32 +64,44 @@ public class KeyMapper {
         return key;
     }
 
-       /** Check if the key belongs to a new id. 
+       /** 
+        * Checks if the key belongs to a new id. 
         * <p>Usage of new id:s are specific to components, but for example Select
         * component uses newItemId:s for selection of newly added items in 
-        * <code>allowNewItems</code>-mode
+        * <code>allowNewItems</code>-mode.
+        * @param key
+        * @return <code>true</code> if the key belongs to the new id,otherwise <code>false</code>.
         */ 
        public boolean isNewIdKey(String key) {
                return "NEW".equals(key);
        }
     
-    /** Retrieve object with the key*/
+    /** 
+     * Retrieves object with the key.
+     * @param key the name with the desired value.
+     * @return the object with the key.
+     */
     public Object get(String key) {
 
         return keyObjectMap.get(key);
     }
     
-    /** Remove object from the mapper. */
-    public void remove(Object o) {
-        String key = (String) objectKeyMap.get(o);
+    /** 
+     * Removes object from the mapper.
+     * @param  removeobj the object to be removed.
+     */
+    public void remove(Object removeobj) {
+        String key = (String) objectKeyMap.get(removeobj);
         
         if (key != null) {
             objectKeyMap.remove(key);
-            keyObjectMap.remove(o);
+            keyObjectMap.remove(removeobj);
         }
     }
     
-    /** Remove all objects from the mapper. */
+    /** 
+     * Removes all objects from the mapper. 
+     */
     public void removeAll() {
        objectKeyMap.clear();
        keyObjectMap.clear();
index 5f3154aa4332e33277c40169676296d6c500647b..766e964b2210fee3e76f516a9237bc33582ae4d8 100644 (file)
@@ -30,7 +30,8 @@ package com.itmill.toolkit.terminal;
 
 import java.io.IOException;
 
-/** Paint exepction is trown if painting of a component fails.
+/** 
+ * <code>PaintExcepection</code> is thrown if painting of a component fails.
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -43,15 +44,17 @@ public class PaintException extends IOException {
      */
     private static final long serialVersionUID = 3762535607221891897L;
 
-    /** Constructs an instance of <code>PaintExecption</code> with the specified detail message.
+    /** 
+     * Constructs an instance of <code>PaintExeception</code> with the specified detail message.
      * @param msg the detail message.
      */
     public PaintException(String msg) {
         super(msg);
     }
     
-    /** Constructs an instance of <code>PaintExecption</code> from IOException.
-     * @param exception The original exception.
+    /** 
+     * Constructs an instance of <code>PaintExeception</code> from IOException.
+     * @param exception the original exception.
      */
     public PaintException(IOException exception) {
         super(exception.getMessage());
index 645ac0a4fd90098d6efb84f5de289e529158328f..6202b2c399ab050226a083d8e84cd5b26801b707 100644 (file)
@@ -28,8 +28,9 @@
 
 package com.itmill.toolkit.terminal;
 
-/** This interface defines the methods for 
- *  painting XML to the UIDL stream. 
+/** 
+ * This interface defines the methods for 
+ * painting XML to the UIDL stream. 
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -37,27 +38,33 @@ package com.itmill.toolkit.terminal;
  */
 public interface PaintTarget {
 
-       /** Print single XMLsection.
+       /** 
+        * Prints single XMLsection.
         *
         * Prints full XML section. The section data is escaped from XML tags and
         * surrounded by XML start and end-tags.
+        * @param sectionTagName the name of the tag.
+        * @param sectionData the scetion data.
+        * @throws PaintException if the paint operation failed.
         */
        public void addSection(String sectionTagName, String sectionData)
                throws PaintException;
 
-       /**  Print element start tag of a paintable section.
+       /**  
+        * Prints element start tag of a paintable section.
         * Starts a paintable section using the given tag. The PaintTarget may
         * implement a caching scheme, that checks the paintable has actually
         * changed or can a cached version be used instead. This method should call
         * the startTag method.
-        *
+        * <p>
         * If the Paintable is found in cache and this function returns true it may
         * omit the content and close the tag, in which case cached content should
         * be used.
-        *
-        * @param paintable The paintable to start
-        * @param tagName The name of the start tag
-        * @return true if paintable found in cache, false otherwise.
+        * </p>
+        * @param paintable the paintable to start.
+        * @param tag the name of the start tag.
+        * @return <code>true</code> if paintable found in cache, <code>false</code> otherwise.
+        * @throws PaintException if the paint operation failed.
         * @see #startTag(String)
         * @since 3.1
         */
@@ -65,141 +72,175 @@ public interface PaintTarget {
                throws PaintException;
 
 
-       /**  Print element start tag.
+       /**  
+        * Prints element start tag.
         *
         * <pre>Todo:
         * Checking of input values
         * </pre>
         *
-        * @param tagName The name of the start tag
-        *
+        * @param tagName the name of the start tag.
+        * @throws PaintException if the paint operation failed.
         */
        public void startTag(String tagName) throws PaintException;
 
-       /** Print element end tag.
+       /** 
+        * Prints element end tag.
         *
         * If the parent tag is closed before
         * every child tag is closed an PaintException is raised.
         *
-        * @param tag The name of the end tag
-        * @exception IOException The writing failed due to input/output error
+        * @param tagName the name of the end tag.
+        * @throws PaintException if the paint operation failed.
         */
        public void endTag(String tagName) throws PaintException;
 
-       /** Adds a boolean attribute to component.
-        *  Atributes must be added before any content is written.
+       /** 
+        * Adds a boolean attribute to component.
+        * Atributes must be added before any content is written.
         *
-        *  @param name Attribute name
-        *  @param value Attribute value
-        *  @return this object
+        * @param name the Attribute name.
+        * @param value the Attribute value.
+        * 
+        * @throws PaintException if the paint operation failed.
         */
        public void addAttribute(String name, boolean value) throws PaintException;
 
-       /** Adds a integer attribute to component.
-        *  Atributes must be added before any content is written.
+       /** 
+        * Adds a integer attribute to component.
+        * Atributes must be added before any content is written.
         *
-        *  @param name Attribute name
-        *  @param value Attribute value
-        *  @return this object
+        * @param name the Attribute name.
+        * @param value the Attribute value.
+        * 
+        * @throws PaintException if the paint operation failed.
         */
        public void addAttribute(String name, int value) throws PaintException;
 
-       /** Adds a resource attribute to component.
-        *  Atributes must be added before any content is written.
+       /** 
+        * Adds a resource attribute to component.
+        * Atributes must be added before any content is written.
         *
-        *  @param name Attribute name
-        *  @param value Attribute value
-        *  @return this object
+        * @param name the Attribute name
+        * @param value the Attribute value
+        * 
+        * @throws PaintException if the paint operation failed.
         */
        public void addAttribute(String name, Resource value)
                throws PaintException;
 
-       /** Adds a long attribute to component.
-        *  Atributes must be added before any content is written.
+       /** 
+        * Adds a long attribute to component.
+        * Atributes must be added before any content is written.
         *
-        *  @param name Attribute name
-        *  @param value Attribute value
-        *  @return this object
+        * @param name the Attribute name.
+        * @param value the Attribute value.
+        * 
+        * @throws PaintException if the paint operation failed.
         */
        public void addAttribute(String name, long value) throws PaintException;
 
-       /** Adds a string attribute to component.
-        *  Atributes must be added before any content is written.
+       /** 
+        * Adds a string attribute to component.
+        * Atributes must be added before any content is written.
         *
-        *  @param name Boolean attribute name
-        *  @param value Boolean attribute value
-        *  @return this object
+        * @param name the Boolean attribute name.
+        * @param value the Boolean attribute value.
+        * 
+        * @throws PaintException if the paint operation failed.
         */
        public void addAttribute(String name, String value) throws PaintException;
 
-       /** Add a string type variable.
-        *  @param owner Listener for variable changes
-        *  @param name Variable name
-        *  @param value Variable initial value
-        *  @return Reference to this.
+       /** 
+        * Adds a string type variable.
+        * @param owner the Listener for variable changes.
+        * @param name the Variable name.
+        * @param value the Variable initial value.
+        * 
+        * @throws PaintException if the paint operation failed.
         */
        public void addVariable(VariableOwner owner, String name, String value)
                throws PaintException;
 
-       /** Add a int type variable.
-        *  @param owner Listener for variable changes
-        *  @param name Variable name
-        *  @param value Variable initial value
-        *  @return Reference to this.
+       /** 
+        * Adds a int type variable.
+        * @param owner the Listener for variable changes.
+        * @param name the Variable name.
+        * @param value the Variable initial value.
+        * 
+        * @throws PaintException if the paint operation failed.
         */
        public void addVariable(VariableOwner owner, String name, int value)
                throws PaintException;
 
-       /** Add a boolean type variable.
-        *  @param owner Listener for variable changes
-        *  @param name Variable name
-        *  @param value Variable initial value
-        *  @return Reference to this.
+       /** 
+        * Adds a boolean type variable.
+        * @param owner the Listener for variable changes.
+        * @param name the Variable name.
+        * @param value the Variable initial value.
+        * 
+        * @throws PaintException if the paint operation failed.
         */
        public void addVariable(VariableOwner owner, String name, boolean value)
                throws PaintException;
 
-       /** Add a string array type variable.
-        *  @param owner Listener for variable changes
-        *  @param name Variable name
-        *  @param value Variable initial value
-        *  @return Reference to this.
+       /** 
+        * Adds a string array type variable.
+        * @param owner the Listener for variable changes.
+        * @param name the Variable name.
+        * @param value the Variable initial value.
+        * 
+        * @throws PaintException if the paint operation failed.
         */
        public void addVariable(VariableOwner owner, String name, String[] value)
                throws PaintException;
 
-       /** Add a upload stream type variable.
-        *  @param owner Listener for variable changes
-        *  @param name Variable name
-        *  @param value Variable initial value
-        *  @return Reference to this.
+       /** 
+        * Adds a upload stream type variable.
+        * @param owner the Listener for variable changes.
+        * @param name the Variable name.
+        * 
+        * @throws PaintException if the paint operation failed.
         */
        public void addUploadStreamVariable(VariableOwner owner, String name)
                throws PaintException;
 
-       /** Print single XML section.
-       *
-       * Prints full XML section. The section data must be XML and it is
-       * surrounded by XML start and end-tags.
-       */
+       /** 
+        * Prints single XML section.
+        * <p>
+        * Prints full XML section. The section data must be XML and it is
+        * surrounded by XML start and end-tags.
+        * </p>
+        * @param sectionTagName the tag name.
+        * @param sectionData the section data to be printed.
+        * @param namespace the namespace.
+        * @throws PaintException if the paint operation failed.
+        */
        public void addXMLSection(
                String sectionTagName,
                String sectionData,
                String namespace)
                throws PaintException;
 
-       /** Add UIDL directly. 
+       /** 
+        * Adds UIDL directly. 
         * The UIDL must be valid in accordance with the UIDL.dtd
+        * @param uidl the UIDL to be added.
+        * @throws PaintException if the paint operation failed.
         */
        public void addUIDL(java.lang.String uidl) throws PaintException;
 
-       /** Add text node. All the contents of the text are XML-escaped.
-        * @param text Text to add
+       /** 
+        * Adds text node. All the contents of the text are XML-escaped.
+        * @param text the Text to add
+        * @throws PaintException if the paint operation failed.
         */
        void addText(String text) throws PaintException;
 
-       /** Add CDATA node to target UIDL-tree.
-        * @param text Character data to add
+       /** 
+        * Adds CDATA node to target UIDL-tree.
+        * @param text the Character data to add
+        * @throws PaintException if the paint operation failed.
         * @since 3.1
         */
        void addCharacterData(String text) throws PaintException;
index 2f91a81bddcc339519e77ef0715d81548d615d3c..65b25e0247518186e01dad66f4610d7e99037bcb 100644 (file)
@@ -30,7 +30,8 @@ package com.itmill.toolkit.terminal;
 
 import java.util.EventObject;
 
-/** Interface implemented by all classes that can be painted. 
+/** 
+ * Interface implemented by all classes that can be painted. 
  * Classes implementing this interface know how to output themselves 
  * to a UIDL stream and that way describing to the terminal how it 
  * should be displayed in the UI.
@@ -41,28 +42,33 @@ import java.util.EventObject;
  */
 public interface Paintable extends java.util.EventListener {
     
-       /** <p>Paints the paintable into a UIDL stream. This method creates
+       /** 
+        * <p>
+        * Paints the paintable into a UIDL stream. This method creates
         * the UIDL sequence describing it and outputs it to the given UIDL
-        * stream.</p>
+        * stream.
+        * </p>
         * 
-        * <p>It's is called when the contents of the component should be
+        * <p>
+        * It is called when the contents of the component should be
         * painted in response to the component first being shown or having been
-        * altered so that its visual representation is changed.</p>
+        * altered so that its visual representation is changed.
+        * </p>
         * 
-        * @param target target UIDL stream where the component should paint
-        * itself to
-        * @throws PaintException if the paint operation failed
-        * @throws InvalidUIDLException if incorrect UIDL is writted, and
-        * the error can be dealt with inside this method call.
+        * @param target the target UIDL stream where the component should paint
+        * itself to.
+        * @throws PaintException if the paint operation failed.
         */
     public void paint(PaintTarget target) throws PaintException;
     
-       /** Requests that the paintable should be repainted as soon as possible.
+       /** 
+        * Requests that the paintable should be repainted as soon as possible.
         */
        public void requestRepaint();
        
-       /** Repaint request event is thrown when the paintable needs to be repainted. 
-        * This is typically done when the paint() method would return dissimilar
+       /** 
+        * Repaint request event is thrown when the paintable needs to be repainted. 
+        * This is typically done when the <code>paint</code> method would return dissimilar
         * UIDL from the previous call of the method. 
         */
        public class RepaintRequestEvent extends EventObject {
@@ -72,15 +78,17 @@ public interface Paintable extends java.util.EventListener {
          */
         private static final long serialVersionUID = 3256725095530442805L;
 
-        /** Construct new event.
-                * @param source The paintable needing repaint
+        /** 
+         * Constructs new event.
+                * @param source the paintable needing repaint.
                 */
                public RepaintRequestEvent(Paintable source) {
                        super(source);  
                }
                
-               /** Get the paintable needing repainting. 
-                * @return Paintable for which the paint() method will return 
+               /** 
+                * Gets the paintable needing repainting. 
+                * @return Paintable for which the <code>paint</code> method will return 
                 * dissimilar UIDL from the previous call of the method. 
                 */
                public Paintable getPaintable() {
@@ -88,41 +96,47 @@ public interface Paintable extends java.util.EventListener {
                }
        }
        
-       /** Listen repaint requests. The repaintRequested() method is called when the 
+       /** 
+        * Listens repaint requests. The <code>repaintRequested</code> method is called when the 
         * paintable needs to be repainted. 
-        * This is typically done when the paint() method would return dissimilar
+        * This is typically done when the <code>paint</code> method would return dissimilar
         * UIDL from the previous call of the method. 
         */
        public interface RepaintRequestListener {
 
-               /** Receive repaint request events. 
-                * @param event The repaint request event specifying the paintable source. 
+               /** 
+                * Receives repaint request events. 
+                * @param event the repaint request event specifying the paintable source. 
                 */
                public void repaintRequested(RepaintRequestEvent event);
        }
        
-       /** Add repaint request listener. In order to assure that no repaint requests are
+       /** 
+        * Adds repaint request listener. In order to assure that no repaint requests are
         * missed, the new repaint listener should paint the paintable right after adding
         * itself as listener.
-        * @param listener to be added
+        * @param listener the listener to be added.
         */
        public void addListener(RepaintRequestListener listener);
 
-       /** Remove repaint request listener. 
-        * @param listener to be removed
+       /** 
+        * Removes repaint request listener. 
+        * @param listener the listener to be removed.
         */
        public void removeListener(RepaintRequestListener listener);
        
-       /** Request sending of repaint events on any further visible changes.
+       /** 
+        * Request sending of repaint events on any further visible changes.
         * Normally the paintable only send up to one repaint request
         * for listeners after paint as the paintable as the paintable
         * assumes that the listeners already know about the repaint need.
         * This method resets the assumtion. Paint implicitly does the
         * assumtion reset functionality implemented by this method.
-        * 
+        * <p>
         * This method is normally used only by the terminals to note
         * paintables about implicit repaints (painting the component
         * without actually invoking paint method).
+        * </p>
         */
        public void requestRepaintRequests();
 }
index f9ff314092077f9fb2420bee375f6f1a50b3285b..f46c67e0a42410617b4377c946557dc8e5af4c06 100644 (file)
@@ -30,14 +30,17 @@ package com.itmill.toolkit.terminal;
 
 import java.util.Map;
 
-/** Interface implemented by all the classes capable of handling external parameters.
+/** 
+ * Interface implemented by all the classes capable of handling external parameters.
  * 
- * <p>Some terminals can provide external parameters for application. For example
+ * <p>
+ * Some terminals can provide external parameters for application. For example
  * GET and POST parameters are passed to application as external parameters on 
  * Web Adapter. The parameters can be received at any time during the application 
  * lifecycle. All the parameter handlers implementing this interface and registered
  * to {@link com.itmill.toolkit.ui.Window} receive all the parameters got from
- * the terminal in the given window.</p>
+ * the terminal in the given window.
+ * </p>
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -45,21 +48,27 @@ import java.util.Map;
  */
 public interface ParameterHandler {
     
-    /** Handle parameters. 
-     * 
-     * <p>Handle the given parameters. The parameters are given as inmodifieable 
+    /** 
+     * <p>
+     * Handles the given parameters. The parameters are given as inmodifieable 
      * name to value map. All parameters names are of type: {@link java.lang.String}.
-     * All the parameter values are arrays of strings.</p>
+     * All the parameter values are arrays of strings.
+     * </p>
      * 
-     * @param parameters Inmodifiable name to value[] mapping.
+     * @param parameters the Inmodifiable name to value[] mapping.
      * 
      */
     public void handleParameters(Map parameters);
 
-       /** ParameterHandler error event */
+       /** 
+        * ParameterHandler error event. 
+        */
        public interface ErrorEvent extends Terminal.ErrorEvent {
 
-               /** Get the source ParameterHandler. */
+               /** 
+                * Gets the source ParameterHandler.
+                * @return  the source Parameter Handler.
+                */
                public ParameterHandler getParameterHandler();
 
        }
index 66eb23f8bc271d4e402cbf19f93a7bee1a4c4ad5..74163b8ef57d546dbca67018799c754a3e1820b8 100644 (file)
@@ -28,8 +28,9 @@
 
 package com.itmill.toolkit.terminal;
 
-/** Resource provided to the client terminal. Support for actually displaying the resource type
- *  is left to the terminal.
+/** 
+ * <code>Resource</code> provided to the client terminal. Support for actually
+ * displaying the resource type is left to the terminal.
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -37,6 +38,9 @@ package com.itmill.toolkit.terminal;
  */
 public interface Resource {
        
-       /** Get the MIME type of the resource. */
+       /** 
+        * Gets the MIME type of the resource.
+        * @return the MIME type of the resource. 
+        */
        public String getMIMEType();
 }
index 87ece18c5d5a089f99847fa4534a85e32c9fa93c..dcc1528e665771ddacf334d8697a27a6ed1b0f9d 100644 (file)
 
 package com.itmill.toolkit.terminal;
 
-/** Scrollable interface. 
- * 
- * <p>This interface is implemented by all visual objects that can be scrolled.
- * The unit of scrolling is pixel.</p>
+/** 
+ * <p>
+ * This interface is implemented by all visual objects that can be scrolled.
+ * The unit of scrolling is pixel.
+ * </p>
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -40,7 +41,8 @@ package com.itmill.toolkit.terminal;
 public interface Scrollable {
 
 
-       /** Get scroll X offset. 
+       /** 
+        * Gets scroll X offset. 
         * 
         * <p>Scrolling offset is the number of pixels this scrollable has
         * been scrolled to left.</p>
@@ -49,16 +51,18 @@ public interface Scrollable {
         */
        public int getScrollOffsetX();
 
-       /** Set scroll X offset.
+       /** 
+        * Sets scroll X offset.
         * 
         * <p>Scrolling offset is the number of pixels this scrollable has
         * been scrolled to left.</p>
         * 
-        * @param xOffset.
+        * @param pixelsScrolledLeft the xOffset.
         */
        public void setScrollOffsetX(int pixelsScrolledLeft);
 
-       /** Get scroll Y offset. 
+       /** 
+        * Gets scroll Y offset. 
         * 
         * <p>Scrolling offset is the number of pixels this scrollable has
         * been scrolled to down.</p>
@@ -67,30 +71,33 @@ public interface Scrollable {
         */
        public int getScrollOffsetY();
 
-       /** Set scroll Y offset.
+       /** 
+        * Sets scroll Y offset.
         * 
         * <p>Scrolling offset is the number of pixels this scrollable has
         * been scrolled to down.</p>
         * 
-        * @param yOffset.
+        * @param pixelsScrolledDown the yOffset.
         */
        public void setScrollOffsetY(int pixelsScrolledDown);
 
-       /** Is the scrolling enabled.
+       /** 
+        * Is the scrolling enabled.
         * 
         * <p>Enabling scrolling allows the user to scroll the scrollable view
         * interactively</p>
         * 
-        * @return True iff the scrolling is allowed.
+        * @return <code>true</code> if the scrolling is allowed, otherwise <code>false</code>.
         */
        public boolean isScrollable();
 
-       /** Enable or disable scrolling..
+       /** 
+        * Enables or disables scrolling..
         * 
         * <p>Enabling scrolling allows the user to scroll the scrollable view
         * interactively</p>
         *
-        * @param isScrollingEnabled True iff the scrolling is allowed.
+        * @param isScrollingEnabled true if the scrolling is allowed.
         */
        public void setScrollable(boolean isScrollingEnabled);
 
index 92e64d274da75b0eb041773e4fa3292801cdfd54..3a191b52f35a4a789cf655de8ac2340771c02244 100644 (file)
 
 package com.itmill.toolkit.terminal;
 
-/** Interface to be implemented by components wishing to
- *  display some object that may be dynamically 
- *  resized during runtime.
+/** 
+ * Interface to be implemented by components wishing to
+ * display some object that may be dynamically 
+ * resized during runtime.
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -38,100 +39,127 @@ package com.itmill.toolkit.terminal;
  */
 public interface Sizeable {
 
-       /** Unit code representing pixels. */
+       /** 
+        * Unit code representing pixels. 
+        */
        public static final int UNITS_PIXELS = 0;
 
-       /** Unit code representing points (1/72nd of an inch). */
+       /** 
+        * Unit code representing points (1/72nd of an inch). 
+        */
        public static final int UNITS_POINTS = 1;
 
-       /** Unit code representing picas (12 points). */
+       /** 
+        * Unit code representing picas (12 points). 
+        */
        public static final int UNITS_PICAS = 2;
 
-       /** Unit code representing the font-size of the relevant font. */
+       /** 
+        * Unit code representing the font-size of the relevant font. 
+        */
        public static final int UNITS_EM = 3;
 
-       /** Unit code representing the x-height of the relevant font. */
+       /** 
+        * Unit code representing the x-height of the relevant font. 
+        */
        public static final int UNITS_EX = 4;
 
-       /** Unit code representing millimetres. */
+       /** 
+        * Unit code representing millimetres. 
+        */
        public static final int UNITS_MM = 5;
 
-       /** Unit code representing centimetres. */
+       /** 
+        * Unit code representing centimetres. 
+        */
        public static final int UNITS_CM = 6;
 
-       /** Unit code representing inches. */
+       /** 
+        * Unit code representing inches. 
+        */
        public static final int UNITS_INCH = 7;
 
-       /** Unit code representing in percentage of the containing element 
-        *  defined by terminal. 
+       /** 
+        * Unit code representing in percentage of the containing element 
+        * defined by terminal. 
         */
        public static final int UNITS_PERCENTAGE = 8;
 
-       /** Unit code representing in rows of text. This unit is only applicaple 
+       /** 
+        * Unit code representing in rows of text. This unit is only applicaple 
         * to some components can it's meaning is specified by component implementation.
         */
        public static final int UNITS_ROWS = 9;
 
-       /** Textual representations of units symbols.
-        *  Supported units and their symbols are:
-        *  <ul>
-        *  <li><code>UNITS_PIXELS</code>: "" (unit is omitted for pixels)</li>
-        *  <li><code>UNITS_POINTS</code>: "pt"</li>
-        *  <li><code>UNITS_PICAS</code>: "pc"</li>
-        *  <li><code>UNITS_EM</code>: "em"</li>
-        *  <li><code>UNITS_EX</code>: "ex"</li>
-        *  <li><code>UNITS_MM</code>: "mm"</li>
-        *  <li><code>UNITS_CM</code>. "cm"</li>
-        *  <li><code>UNITS_INCH</code>: "in"</li>
-        *  <li><code>UNITS_PERCENTAGE</code>: "%"</li>
-        *  <li><code>UNITS_ROWS</code>: "rows"</li>
-        *  </ul>
-        *  These can be used like <code>Sizeable.UNIT_SYMBOLS[UNITS_PIXELS]</code>.
+       /** 
+        * Textual representations of units symbols.
+        * Supported units and their symbols are:
+        * <ul>
+        * <li><code>UNITS_PIXELS</code>: "" (unit is omitted for pixels)</li>
+        * <li><code>UNITS_POINTS</code>: "pt"</li>
+        * <li><code>UNITS_PICAS</code>: "pc"</li>
+        * <li><code>UNITS_EM</code>: "em"</li>
+        * <li><code>UNITS_EX</code>: "ex"</li>
+        * <li><code>UNITS_MM</code>: "mm"</li>
+        * <li><code>UNITS_CM</code>. "cm"</li>
+        * <li><code>UNITS_INCH</code>: "in"</li>
+        * <li><code>UNITS_PERCENTAGE</code>: "%"</li>
+        * <li><code>UNITS_ROWS</code>: "rows"</li>
+        * </ul>
+        * These can be used like <code>Sizeable.UNIT_SYMBOLS[UNITS_PIXELS]</code>.
         */
        public static final String[] UNIT_SYMBOLS =
                { "", "pt", "pc", "em", "ex", "mm", "cm", "in", "%", "rows" };
 
-       /** Get width of the object. Negative number implies unspecified size
+       /** 
+        * Gets the width of the object. Negative number implies unspecified size
         * (terminal is free to set the size).
         * @return width of the object in units specified by widthUnits property.
         */
        public int getWidth();
 
-       /** Set width of the object. Negative number implies unspecified size
+       /** 
+        * Sets the width of the object. Negative number implies unspecified size
         * (terminal is free to set the size).
-        * @param width width of the object in units specified by widthUnits property.
+        * @param width the width of the object in units specified by widthUnits property.
         */
        public void setWidth(int width);
 
-       /** Get height of the object. Negative number implies unspecified size
+       /** 
+        * Gets the height of the object. Negative number implies unspecified size
         * (terminal is free to set the size).
         * @return height of the object in units specified by heightUnits property.
         */
        public int getHeight();
 
-       /** Set height of the object. Negative number implies unspecified size
+       /** 
+        * Sets the height of the object. Negative number implies unspecified size
         * (terminal is free to set the size).
-        * @param height height of the object in units specified by heightUnits property.
+        * @param height the height of the object in units specified by heightUnits property.
         */
        public void setHeight(int height);
 
-       /** Get width property units. 
+       /** 
+        * Gets the width property units. 
         * @return units used in width property.
         */
        public int getWidthUnits();
 
-       /** Set width property units. 
-        * @param units units used in width property.
+       /** 
+        * Sets the width property units. 
+        * @param units the units used in width property.
         */
        public void setWidthUnits(int units);
 
-       /** Get height property units. 
+       /** 
+        * Gets the height property units. 
         * @return units used in height property.
         */
        public int getHeightUnits();
 
-       /** Set height property units. 
-        * @param units units used in height property.
+       /** 
+        * Sets the height property units. 
+        * @param units the units used in height property.
         */
        public void setHeightUnits(int units);
 
index 8d2a38e004d7184b29dfd4f45880de70f0bc288d..af0201c0c22e1fd9c0d3c0114c7d7419615876e5 100644 (file)
@@ -33,35 +33,54 @@ import java.io.InputStream;
 import com.itmill.toolkit.Application;
 import com.itmill.toolkit.service.FileTypeResolver;
 
-/** Stream resource is a resource provided to the client directly
+/** 
+ * <code>StreamResource</code> is a resource provided to the client directly
  * by the application. The strean resource is fetched from URI
  * that is most often in the context of the application or window.
  * The resource is automatically registered to window in creation.
+ * 
  * @author IT Mill Ltd.
  * @version @VERSION@
  * @since 3.0
  */
 public class StreamResource implements ApplicationResource {
 
-       /** Source streamthe downloaded content is fetched from */
+       /** 
+        * Source stream the downloaded content is fetched from. 
+        */
        private StreamSource streamSource = null;
 
-       /** Explicit mime-type */
+       /** 
+        * Explicit mime-type. 
+        */
        private String MIMEType = null;
 
-       /** Filename */
+       /**
+        * Filename. 
+        */
        private String filename;
 
-       /** Application */
+       /** 
+        * Application. 
+        */
        private Application application;
 
-       /** Default buffer size for this stream resource */
+       /** 
+        * Default buffer size for this stream resource. 
+        */
        private int bufferSize = 0;
 
-       /** Default cache time for this stream resource */
+       /** 
+        * Default cache time for this stream resource. 
+        */
        private long cacheTime = DEFAULT_CACHETIME;     
 
-       /** Create new stream resource for downloading from stream. */
+       /** 
+        * Creates new stream resource for downloading from stream.
+        * @param streamSource the source Stream.
+        * @param filename the name of the file.
+        * @param application the Application object.
+        */
        public StreamResource(
                StreamSource streamSource,
                String filename,
@@ -75,45 +94,54 @@ public class StreamResource implements ApplicationResource {
                application.addResource(this);
 
        }
-
+       /**
+        * @see com.itmill.toolkit.terminal.Resource#getMIMEType()
+        */
        public String getMIMEType() {
                if (MIMEType != null)
                        return MIMEType;
                return FileTypeResolver.getMIMEType(filename);
        }
 
-       /** Set the mime type of the resource */
+       /** 
+        * Sets the mime type of the resource.
+        * @param MIMEType the MIME type to be set. 
+        */
        public void setMIMEType(String MIMEType) {
                this.MIMEType = MIMEType;
        }
 
-       /** Returns the source for this StreamResource.
-        *  StreamSource is queried when the resource is about to be streamed 
-        *  to the client.
+       /** 
+        * Returns the source for this <code>StreamResource</code>.
+        * StreamSource is queried when the resource is about to be streamed 
+        * to the client.
         * @return Source of the StreamResource.
         */
        public StreamSource getStreamSource() {
                return streamSource;
        }
 
-       /** Sets the source for this StreamResource.
-        *  StreamSource is queried when the resource is about to be streamed 
-        *  to the client.
-        * @param streamSource The source to set
+       /**
+        * Sets the source for this <code>StreamResource</code>.
+        * <code>StreamSource</code> is queried when the resource is about to be streamed 
+        * to the client.
+        * @param streamSource the source to set.
         */
        public void setStreamSource(StreamSource streamSource) {
                this.streamSource = streamSource;
        }
 
-       /** Returns the filename.
-        * @return String
+       /** 
+        * Gets the filename.
+        * @return the filename.
         */
        public String getFilename() {
                return filename;
        }
 
-       /** Sets the filename.
-        * @param filename The filename to set
+       /** 
+        * Sets the filename.
+        * @param filename the filename to set.
         */
        public void setFilename(String filename) {
                this.filename = filename;
@@ -139,15 +167,18 @@ public class StreamResource implements ApplicationResource {
                return ds;
        }
 
-       /** Interface implemented by the source of a StreamResource.
+       /** 
+        * Interface implemented by the source of a StreamResource.
         * @author IT Mill Ltd.
      * @version @VERSION@
      * @since 3.0
         */
        public interface StreamSource {
 
-               /** Return new input stream that is used for reading
-                * the resource */
+               /** 
+                * Returns new input stream that is used for reading
+                * the resource. 
+                */
                public InputStream getStream();
        }
 
@@ -156,8 +187,9 @@ public class StreamResource implements ApplicationResource {
                return bufferSize;
        }
 
-       /** Set the size of the download buffer used for this resource.
-        * @param bufferSize The size of the buffer in bytes.
+       /** 
+        * Sets the size of the download buffer used for this resource.
+        * @param bufferSize the size of the buffer in bytes.
         */
        public void setBufferSize(int bufferSize) {
                this.bufferSize = bufferSize;
@@ -168,14 +200,15 @@ public class StreamResource implements ApplicationResource {
                return cacheTime;
        }
 
-       /** Set lenght of cache expiration time.
+       /** 
+        * Sets the length of cache expiration time.
         * 
         * <p>This gives the adapter the possibility cache streams sent to the
         * client. The caching may be made in adapter or at the client if the 
         * client supports caching. Zero or negavive value disbales the 
         * caching of this stream.</p>
         * 
-        * @param cacheTime The cache time in milliseconds.
+        * @param cacheTime the cache time in milliseconds.
         * 
         */
        public void setCacheTime(long cacheTime) {
index c6dfe77c49d7b3e4d55e5d5ba6c9a454f0290b10..617bfe43b4b8ef5beb3efbc662c657eb2aefa9a7 100644 (file)
@@ -31,8 +31,9 @@ package com.itmill.toolkit.terminal;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 
-/** System error is a runtime exception caused by error in system. The system
- * error can be shown to the user as it implements ErrorMessage interface,
+/** 
+ * <code>SystemError</code> is a runtime exception caused by error in system. The system
+ * error can be shown to the user as it implements <code>ErrorMessage</code> interface,
  * but contains technical information such as stack trace and exception.
  *
  * @author IT Mill Ltd.
@@ -46,37 +47,48 @@ public class SystemError extends RuntimeException implements ErrorMessage {
      */
     private static final long serialVersionUID = 3256445789512675891L;
     
-    /** The cause of the system error. The cause is stored separately as 
-        * JDK 1.3 does not support causes natively */
+    /** 
+     * The cause of the system error. The cause is stored separately as 
+        * JDK 1.3 does not support causes natively. 
+        */
        private Throwable cause = null;
 
-       /** Constructor for SystemError with error message specified.
-        * @param message Textual error description.
+       /** 
+        * Constructor for SystemError with error message specified.
+        * @param message the Textual error description.
         */
        public SystemError(String message) {
                super(message);
        }
 
-       /** Constructor for SystemError with causing exception and error message.
-        * @param message Textual error description.
-        * @param cause The throwable causing the system error.
+       /** 
+        * Constructor for SystemError with causing exception and error message.
+        * @param message the Textual error description.
+        * @param cause the throwable causing the system error.
         */
        public SystemError(String message, Throwable cause) {
                super(message);
                this.cause = cause;
        }
 
-       /** Constructor for SystemError with cause.
-        * @param cause The throwable causing the system error.
+       /** 
+        * Constructor for SystemError with cause.
+        * @param cause the throwable causing the system error.
         */
        public SystemError(Throwable cause) {
                this.cause = cause;
        }
-
+       
+       /**
+        * @see com.itmill.toolkit.terminal.ErrorMessage#getErrorLevel()
+        */
        public final int getErrorLevel() {
                return ErrorMessage.SYSTEMERROR;
        }
-
+       
+       /**
+        * @see com.itmill.toolkit.terminal.Paintable#paint(com.itmill.toolkit.terminal.PaintTarget)
+        */
        public void paint(PaintTarget target) throws PaintException {
 
                target.startTag("error");
@@ -100,10 +112,14 @@ public class SystemError extends RuntimeException implements ErrorMessage {
                }
 
                target.endTag("error");
-
+               
        }
 
-       /** Get cause for the error */
+       /**
+        * Gets cause for the error.
+        * @return the cause.
+        * @see java.lang.Throwable#getCause()
+        */
        public Throwable getCause() {
                return cause;
        }
index b9dfd4bb5d472d1c57b89a21cd45ae6a682b4cb4..d1ab02239eac46c8b1d4cb41b3f77f4acc3bc44f 100644 (file)
@@ -28,7 +28,8 @@
 
 package com.itmill.toolkit.terminal;
 
-/** Interface for different terminal types.
+/** 
+ * Interface for different terminal types.
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -37,33 +38,45 @@ package com.itmill.toolkit.terminal;
 public interface Terminal {
  
  
-    /** Get name of the default theme
-     * @return Name of the terminal window
+    /** 
+     * Gets the name of the default theme.
+     * @return the Name of the terminal window.
      */    
     public String getDefaultTheme();
     
-    /** Get width of the terminal window in pixels
-     * @return Width of the terminal window
+    /** 
+     * Gets the width of the terminal window in pixels.
+     * @return the Width of the terminal window.
      */    
     public int getScreenWidth();
     
-    /** Get height of the terminal window in pixels
-     * @return Height of the terminal window
+    /** 
+     * Gets the height of the terminal window in pixels.
+     * @return the Height of the terminal window.
      */    
     public int getScreenHeight();    
     
-       /** Terminal error event */
+       /** 
+        * Terminal error event. 
+        */
        public interface ErrorEvent {
 
-               /** Get the contained throwable */
+               /** 
+                * Gets the contained throwable. 
+                */
                public Throwable getThrowable();
 
        }
 
-       /** Terminal error listener interface */
+       /** 
+        * Terminal error listener interface. 
+        */
        public interface ErrorListener {
 
-               /** Invoked when terminal error occurs. */
+               /** 
+                * Invoked when terminal error occurs.
+                * @param event the fired event. 
+                */
                public void terminalError(Terminal.ErrorEvent event);
        }    
 }
index 3f1c518bbb374040550af0a8372e64b1c7b7f63e..5215ade6ab004d53b72dbb10ab5df752bc300065 100644 (file)
@@ -30,7 +30,8 @@ package com.itmill.toolkit.terminal;
 
 import com.itmill.toolkit.service.FileTypeResolver;
 
-/** Theme resource is a named theme dependant resource provided and 
+/** 
+ * <code>ThemeResource</code> is a named theme dependant resource provided and 
  * managed by a theme. The actual resource contents are dynamically
  * resolved to comply with the used theme by the terminal adapter.
  * This is commonly used to provide  static images, flash, 
@@ -42,10 +43,15 @@ import com.itmill.toolkit.service.FileTypeResolver;
  */
 public class ThemeResource implements Resource {
 
-       /** Id of the terminal managed resource. */
+       /** 
+        * Id of the terminal managed resource. 
+        */
        private String resourceID = null; 
 
-       /** Create a resource. */
+       /** 
+        * Creates a resource. 
+        * @param resourceId the Id of the resource.
+        */
        public ThemeResource(String resourceId) {
                if (resourceId == null) 
                        throw new NullPointerException("Resource ID must not be null");
@@ -59,11 +65,12 @@ public class ThemeResource implements Resource {
                this.resourceID = resourceId;
        }
 
-       /** Tests if the given object equals this Resource.
+       /** 
+        * Tests if the given object equals this Resource.
         * 
-        * @param obj the object to be tested for equality
+        * @param obj the object to be tested for equality.
         * @return <code>true</code> if the given object equals this Icon,
-        * <code>false</code> if not
+        * <code>false</code> if not.
         * @see java.lang.Object#equals(Object)
         */
        public boolean equals(Object obj) {
@@ -71,21 +78,31 @@ public class ThemeResource implements Resource {
                        resourceID.equals(((ThemeResource)obj).resourceID);
        }
 
-       /** @see java.lang.Object#hashCode()
+       /** 
+        * @see java.lang.Object#hashCode()
         */
        public int hashCode() {
                return resourceID.hashCode();
        }
        
+       /**
+        * @see java.lang.Object#toString()
+        */
        public String toString() {
                return resourceID.toString();
        }
        
-       /** Get the resource id */
+       /** 
+        * Gets the resource id.
+        * @return the resource id. 
+        */
        public String getResourceId() {
                return resourceID;      
        }
        
+       /**
+        * @see com.itmill.toolkit.terminal.Resource#getMIMEType()
+        */
        public String getMIMEType() {
                return FileTypeResolver.getMIMEType(getResourceId());
        }
index 77ebea96889d206e9321471ecd684710e741b17a..0f709191c4bb3cc41933568903773f9d27909988 100644 (file)
@@ -30,10 +30,13 @@ package com.itmill.toolkit.terminal;
 
 import java.net.URL;
 
-/** Interface implemented by all the classes capable of handling URI:s.
+/** 
+ * Interface implemented by all the classes capable of handling URI:s.
  * 
- * <p>URI handlers can provide <code>DownloadStream</code>
- * for transferring data for client.</p>
+ * <p>
+ * <code>URIHandler</code> can provide <code>DownloadStream</code> 
+ * for transferring data for client.
+ * </p>
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -41,19 +44,25 @@ import java.net.URL;
  */
 public interface URIHandler {
     
-    /** Handle uri. 
-     * 
-     * Handle the given relative URI. If the URI handling wants to emit
+    /** 
+     * Handles the given relative URI. If the URI handling wants to emit
      * a downloadable stream it can return download stream object. If no
      * emitting stream is necessary, null should be returned instead.
-     * 
+     * @param context  the URl.
+     * @param relativeUri the relative uri.
+     * @return the download stream object.
      */
     public DownloadStream handleURI(URL context, String relativeUri);
 
-       /** URIHandler error event */
+       /** 
+        * URIHandler error event. 
+        */
        public interface ErrorEvent extends Terminal.ErrorEvent {
 
-               /** Get the source URIHandler. */
+               /** 
+                * Gets the source URIHandler. 
+                * @return the URIHandler.
+                */
                public URIHandler getURIHandler();
 
        }
index cc7e8c1e0a4cbd26f36c8323ed2a031c24a4eb72..5877800233cc526bf8b66929343c2a0cc2a34420 100644 (file)
@@ -30,7 +30,8 @@ package com.itmill.toolkit.terminal;
 
 import java.io.InputStream;
 
-/** Defines a variable type, that is used for passing uploaded files from
+/** 
+ * Defines a variable type, that is used for passing uploaded files from
  * terminal. Most often, file upload is implented using the 
  * {@link com.itmill.toolkit.ui.Upload Upload} component.
  *
@@ -40,25 +41,29 @@ import java.io.InputStream;
  */
 public interface UploadStream  {
                 
-    /** Get the name of the stream.
-     * @return name of the stream.
+    /** 
+     * Gets the name of the stream.
+     * @return the name of the stream.
      */
     public String getStreamName();
         
-    /** Get input stream.
-     * @return Input stream.
+    /** 
+     * Gets the input stream.
+     * @return the Input stream.
      */
     public InputStream getStream();
 
-    /** Get input stream content type.
-     * @return content type of the input stream.
+    /** 
+     * Gets the input stream content type.
+     * @return the content type of the input stream.
      */
     public String getContentType();
     
-    /** Get stream content name.
-     *  Stream content name usually differs from the actual stream name.
-     *  it is used toi identify the content of the stream.
-     * @return Name of the stream content.
+    /** 
+     * Gets stream content name.
+     * Stream content name usually differs from the actual stream name.
+     * It is used to identify the content of the stream.
+     * @return the Name of the stream content.
      */
     public String getContentName();
 }
index f71d40ab17f1ecbd9623d95cd2524a1b2d5323f1..2a838d0b8a1f746def7c2cd259a9237ca62ca331 100644 (file)
@@ -28,7 +28,8 @@
 
 package com.itmill.toolkit.terminal;
 
-/** User error is a controlled error occurred in application. User errors
+/** 
+ * <code>UserError</code> is a controlled error occurred in application. User errors
  * are occur in normal usage of the application and guide the user.
  *
  * @author IT Mill Ltd.
@@ -37,37 +38,51 @@ package com.itmill.toolkit.terminal;
  */
 public class UserError implements ErrorMessage {
 
-       /** Content mode, where the error contains only plain text. 
+       /** 
+        * Content mode, where the error contains only plain text. 
         */
        public static final int CONTENT_TEXT = 0;
 
-       /** Content mode, where the error contains preformatted text.
+       /** 
+        * Content mode, where the error contains preformatted text.
         */
        public static final int CONTENT_PREFORMATTED = 1;
 
-       /** Formatted content mode, where the contents is XML restricted to the
+       /** 
+        * Formatted content mode, where the contents is XML restricted to the
         * UIDL 1.0 formatting markups.
         */
        public static final int CONTENT_UIDL = 2;
 
-       /** Content mode */
+       /** 
+        * Content mode. 
+        */
        private int mode = CONTENT_TEXT;
 
-       /** Message in content mode */
+       /** 
+        * Message in content mode. 
+        */
        private String msg;
 
-       /** Error level */
+       /** 
+        * Error level. 
+        */
        private int level = ErrorMessage.ERROR;
 
-       /** Create a textual error message of level ERROR.
+       /** 
+        * Creates a textual error message of level ERROR.
         * 
-        * @param textErrorMessage The text of the error message. 
+        * @param textErrorMessage the text of the error message. 
         */
        public UserError(String textErrorMessage) {
                this.msg = textErrorMessage;
        }
 
-       /** Create error message with level and content mode.
+       /** 
+        * Creates error message with level and content mode.
+        * @param message the error message.
+        * @param contentMode the content Mode.
+        * @param errorLevel the level of error.
         */
        public UserError(String message, int contentMode, int errorLevel) {
 
index d44255771664c11fa304355befee2f67b081d995..a56460c5173d44f3945d713ecff77b80d2407841 100644 (file)
@@ -31,22 +31,29 @@ package com.itmill.toolkit.terminal;
 import java.util.Map;
 import java.util.Set;
 
-/** <p>Listener interface for UI variable changes. The user communicates
+/** 
+ * <p>
+ * Listener interface for UI variable changes. The user communicates
  * with the application using the so-called <i>variables</i>. When the user
  * makes a change using the UI the terminal trasmits the changed variables
  * to the application, and the components owning those variables may then
- * process those changes.</p>
+ * process those changes.
+ * </p>
  * 
- * <p>The variable-owning components can be linked with <i>dependency
+ * <p>
+ * The variable-owning components can be linked with <i>dependency
  * relationships</i>. A dependency between two components means that all
  * variable change events to the depended component will be handled
- * before any such events to the depending component.</p>
+ * before any such events to the depending component.
+ * </p>
  * 
- * <p>For example, the commit button for a text field will depend on that
+ * <p>
+ * For example, the commit button for a text field will depend on that
  * text field. This is because we want to handle any pending changes the
- * user makes to the contents on the text field before before we accept the
+ * user makes to the contents on the text field before we accept the
  * click of the commit button which starts processing the text field
- * contents.</p>
+ * contents.
+ * </p>
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -54,47 +61,53 @@ import java.util.Set;
  */
 public interface VariableOwner {
     
-    /** Gets the variable change listeners this <code>VariableOwner</code>
+    /** 
+     * Gets the variable change listeners this <code>VariableOwner</code>
      * directly depends on. This list does not contain any indirect
      * dependencies, for example, if A depends on B and B depends on C,
      * the dependency list of A does not include C.
      *
-     * @return Set of <code>VariableOwner</code>s this component directly
+     * @return Set of <code>VariableOwners</code> this component directly
      * depend on, <code>null</code> if this component does not depend on
      * anybody.
      */
     public Set getDirectDependencies();
     
-    /** Called when one or more variables handled by the implementing class
+    /** 
+     * Called when one or more variables handled by the implementing class
      * are changed.
      * 
-     * @param source Source of the variable change. This is the origin of the
+     * @param source the Source of the variable change. This is the origin of the
      * event. For example in Web Adapter this is the request.
-     * @param variables Mapping from variable names to new variable values
+     * @param variables the Mapping from variable names to new variable values.
      */
     public void changeVariables(Object source, Map variables);
     
-    /** Makes this <code>VariableOwner</code> depend on the given 
+    /** 
+     * Makes this <code>VariableOwner</code> depend on the given 
      * <code>VariableOwner</code>. This means that any variable change
      * events relating to <code>depended</code> must be sent before any
      * such events that relate to this object.
      *
-     * @param denpended the <code>VariableOwner</code> component who
-     * this component depends on
+     * @param depended the <code>VariableOwner</code> component who
+     * this component depends on.
      */
     public void dependsOn(VariableOwner depended);
     
-    /** Removes the given component from this component's dependency list.
+    /** 
+     * Removes the given component from this component's dependency list.
      * After the call this component will no longer depend on
      * <code>depended</code> wdepende direct dependency from the component.
      * Indirect dependencies are not removed.
      *
-     * @param denpended the component to be removed from this component's
+     * @param depended the component to be removed from this component's
      * dependency list.
      */
     public void removeDirectDependency(VariableOwner depended);
     
-       /** <p>Tests if the variable owner is enabled or not. The terminal
+       /** 
+        * <p>
+        * Tests if the variable owner is enabled or not. The terminal
         * should not send any variable changes to disabled variable owners.
         * </p>
         * 
@@ -103,26 +116,35 @@ public interface VariableOwner {
         */
        public boolean isEnabled();
 
-       /** <p>Tests if the variable owner is in immediate mode or not. Being in
+       /** 
+        * <p>
+        * Tests if the variable owner is in immediate mode or not. Being in
         * immediate mode means that all variable changes are required to be sent
         * back from the terminal immediately when they occur.
         * </p>
         *
-        * <p><strong>Note:</strong> <code>VariableOwner</code> does not include a
+        * <p>
+        * <strong>Note:</strong> <code>VariableOwner</code> does not include a
         * set- method for the immediateness property. This is because not all
         * VariableOwners wish to offer the functionality. Such VariableOwners are
         * never in the immediate mode, thus they always return <code>false</code>
-        * in {@link #isImmediate()}.</p>
+        * in {@link #isImmediate()}.
+        * </p>
         *
         * @return <code>true</code> if the component is in immediate mode,
-        * <code>false</code> if not
+        * <code>false</code> if not.
         */
        public boolean isImmediate();
        
-       /** VariableOwner error event */
+       /** 
+        * VariableOwner error event. 
+        */
        public interface ErrorEvent extends Terminal.ErrorEvent {
 
-               /** Get the source VariableOwner. */
+               /** 
+                * Gets the source VariableOwner.
+                * @return the variable owner. 
+                */
                public VariableOwner getVariableOwner();
 
        }
index bf8bbf96297c5cf6293298cea36ccf3573151976..2e43005574e8080da7194fb7246bbbd14ef6f39f 100644 (file)
@@ -61,8 +61,9 @@ import com.itmill.toolkit.ui.Component;
 import com.itmill.toolkit.ui.FrameWindow;
 import com.itmill.toolkit.ui.Window;
 
-/** Application manager processes changes and paints for single
- *  application instance.
+/** 
+ * Application manager processes changes and paints for single
+ * application instance.
  * 
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -94,7 +95,11 @@ public class AjaxApplicationManager implements Paintable.RepaintRequestListener,
     public AjaxApplicationManager(Application application) {
         this.application = application;
     }
-
+    
+/**
+ * 
+ * @return
+ */
     private AjaxVariableMap getVariableMap() {
         AjaxVariableMap vm = (AjaxVariableMap) applicationToVariableMapMap
                 .get(application);
@@ -104,18 +109,32 @@ public class AjaxApplicationManager implements Paintable.RepaintRequestListener,
         }
         return vm;
     }
-
+    
+/**
+ * 
+ *
+ */
     public void takeControl() {
         application.addListener((Application.WindowAttachListener) this);
         application.addListener((Application.WindowDetachListener) this);
 
     }
-
+    
+/**
+ * 
+ *
+ */
     public void releaseControl() {
         application.removeListener((Application.WindowAttachListener) this);
         application.removeListener((Application.WindowDetachListener) this);
     }
-
+    
+/**
+ * 
+ * @param request the HTTP Request.
+ * @param response the HTTP Response.
+ * @throws IOException if the writing failed due to input/output error.
+ */
     public void handleUidlRequest(HttpServletRequest request,
             HttpServletResponse response) throws IOException {
 
@@ -138,35 +157,35 @@ public class AjaxApplicationManager implements Paintable.RepaintRequestListener,
                 Map unhandledParameters = getVariableMap().handleVariables(
                         request, application);
 
-                // Handle the URI if the application is still running
+                // Handles the URI if the application is still running
                 if (application.isRunning())
                     download = handleURI(application, request, response);
 
                 // If this is not a download request
                 if (download == null) {
                     
-                    // Find the window within the application
+                    // Finds the window within the application
                     Window window = null;
                     if (application.isRunning())
                         window = getApplicationWindow(request, application);
 
-                    // Handle the unhandled parameters if the application is
+                    // Handles the unhandled parameters if the application is
                     // still running
                     if (window != null && unhandledParameters != null
                             && !unhandledParameters.isEmpty())
                         window.handleParameters(unhandledParameters);
 
-                    // Remove application if it has stopped
+                    // Removes application if it has stopped
                     if (!application.isRunning()) {
                         endApplication(request, response, application);
                         return;
                     }
 
-                    // Return if no window found
+                    // Returns if no window found
                     if (window == null)
                         return;
 
-                    // Set the response type
+                    // Sets the response type
                     response.setContentType("application/xml; charset=UTF-8");
 
                     paintTarget = new AjaxPaintTarget(
@@ -190,13 +209,13 @@ public class AjaxApplicationManager implements Paintable.RepaintRequestListener,
                         }
                     }
 
-                    // Paint components
+                    // Paints components
                     Set paintables;
                     if (repaintAll) {
                         paintables = new LinkedHashSet();
                                paintables.add(window);
                         
-                        // Add all non-native windows
+                        // Adds all non-native windows
                         for (Iterator i=window.getApplication().getWindows().iterator(); i.hasNext();) {
                                Window w = (Window) i.next();
                                if (!"native".equals(w.getStyle()) && w != window)
@@ -206,10 +225,10 @@ public class AjaxApplicationManager implements Paintable.RepaintRequestListener,
                         paintables = getDirtyComponents();
                     if (paintables != null) {
 
-                        // Create "working copy" of the current state.
+                        // Creates "working copy" of the current state.
                         List currentPaintables = new ArrayList(paintables);
 
-                        // Sort the paintable so that parent windows
+                        // Sorts the paintable so that parent windows
                         // are always painted before child windows
                         Collections.sort(currentPaintables, new Comparator() {
 
@@ -304,7 +323,7 @@ public class AjaxApplicationManager implements Paintable.RepaintRequestListener,
             out.close();
 
         } catch (Throwable e) {
-            // Write the error report to client
+            // Writes the error report to client
             OutputStreamWriter w = new OutputStreamWriter(out);
             PrintWriter err = new PrintWriter(w);
             err
@@ -320,14 +339,16 @@ public class AjaxApplicationManager implements Paintable.RepaintRequestListener,
     }
 
     /**
-     * Get the existing application or create a new one. Get a window within an
+     * Gets the existing application or create a new one. Get a window within an
      * application based on the requested URI.
      * 
      * @param request
-     *            HTTP Request.
+     *            the HTTP Request.
      * @param application
-     *            Application to query for window.
+     *            the Application to query for window.
      * @return Window mathing the given URI or null if not found.
+     * @throws ServletException if an exception has occurred that interferes with the
+        *                                      servlet's normal operation.
      */
     private Window getApplicationWindow(HttpServletRequest request,
             Application application) throws ServletException {
@@ -365,21 +386,20 @@ public class AjaxApplicationManager implements Paintable.RepaintRequestListener,
     }
 
     /**
-     * Handle the requested URI. An application can add handlers to do special
+     * Handles the requested URI. An application can add handlers to do special
      * processing, when a certain URI is requested. The handlers are invoked
      * before any windows URIs are processed and if a DownloadStream is returned
      * it is sent to the client.
      * 
-     * @see com.itmill.toolkit.terminal.URIHandler
-     * 
      * @param application
-     *            Application owning the URI
+     *            the Application owning the URI.
      * @param request
-     *            HTTP request instance
+     *            the HTTP request instance.
      * @param response
-     *            HTTP response to write to.
-     * @return boolean True if the request was handled and further processing
-     *         should be suppressed, false otherwise.
+     *            the HTTP response to write to.
+     * @return boolean <code>true</code> if the request was handled and further processing
+     *         should be suppressed, otherwise <code>false</code>.
+     * @see com.itmill.toolkit.terminal.URIHandler
      */
     private DownloadStream handleURI(Application application,
             HttpServletRequest request, HttpServletResponse response) {
@@ -406,21 +426,18 @@ public class AjaxApplicationManager implements Paintable.RepaintRequestListener,
     }
 
     /**
-     * Handle the requested URI. An application can add handlers to do special
+     * Handles the requested URI. An application can add handlers to do special
      * processing, when a certain URI is requested. The handlers are invoked
      * before any windows URIs are processed and if a DownloadStream is returned
      * it is sent to the client.
-     * 
-     * @see com.itmill.toolkit.terminal.URIHandler
-     * 
-     * @param application
-     *            Application owning the URI
+     * @param stream the downloadable stream.
+     *            
      * @param request
-     *            HTTP request instance
+     *            the HTTP request instance.
      * @param response
-     *            HTTP response to write to.
-     * @return boolean True if the request was handled and further processing
-     *         should be suppressed, false otherwise.
+     *            the HTTP response to write to.
+     * 
+     * @see com.itmill.toolkit.terminal.URIHandler
      */
     private void handleDownload(DownloadStream stream,
             HttpServletRequest request, HttpServletResponse response) {
@@ -429,10 +446,10 @@ public class AjaxApplicationManager implements Paintable.RepaintRequestListener,
         InputStream data = stream.getStream();
         if (data != null) {
 
-            // Set content type
+            // Sets content type
             response.setContentType(stream.getContentType());
 
-            // Set cache headers
+            // Sets cache headers
             long cacheTime = stream.getCacheTime();
             if (cacheTime <= 0) {
                 response.setHeader("Cache-Control", "no-cache");
@@ -480,7 +497,13 @@ public class AjaxApplicationManager implements Paintable.RepaintRequestListener,
 
     }
 
-    /** End application */
+   /**
+    * Ends the Application.
+    * @param request the HTTP request instance.
+    * @param response the HTTP response to write to.
+    * @param application the Application to end.
+    * @throws IOException if the writing failed due to input/output error.
+    */
     private void endApplication(HttpServletRequest request,
             HttpServletResponse response, Application application)
             throws IOException {
@@ -497,10 +520,11 @@ public class AjaxApplicationManager implements Paintable.RepaintRequestListener,
         out.println("</redirect>");
     }
 
-    /**
-     * @param window
-     * @return
-     */
+   /**
+    * Gets the Paintable Id.
+    * @param paintable
+    * @return the paintable Id.
+    */
     public synchronized String getPaintableId(Paintable paintable) {
 
         String id = (String) paintableIdMap.get(paintable);
@@ -511,7 +535,11 @@ public class AjaxApplicationManager implements Paintable.RepaintRequestListener,
 
         return id;
     }
-
+    
+/**
+ * 
+ * @return
+ */
     public synchronized Set getDirtyComponents() {
         
         // Remove unnecessary repaints from the list
@@ -536,11 +564,18 @@ public class AjaxApplicationManager implements Paintable.RepaintRequestListener,
         
         return Collections.unmodifiableSet(dirtyPaintabletSet);
     }
-
+    
+       /**
+        * Clears the Dirty Components.
+        *
+        */
     public synchronized void clearDirtyComponents() {
         dirtyPaintabletSet.clear();
     }
-
+    
+       /**
+        * @see com.itmill.toolkit.terminal.Paintable.RepaintRequestListener#repaintRequested(com.itmill.toolkit.terminal.Paintable.RepaintRequestEvent)
+        */
     public void repaintRequested(RepaintRequestEvent event) {
         Paintable p = event.getPaintable();
         dirtyPaintabletSet.add(p);
@@ -552,9 +587,10 @@ public class AjaxApplicationManager implements Paintable.RepaintRequestListener,
         }
     }
 
-    /** Recursively request repaint for all frames in frameset.
+    /** 
+     * Recursively request repaint for all frames in frameset.
      * 
-     * @param fs Framewindow.Frameset
+     * @param fs the Framewindow.Frameset.
      */
     private void repaintFrameset(FrameWindow.Frameset fs) {
         List frames = fs.getFrames();
@@ -570,43 +606,73 @@ public class AjaxApplicationManager implements Paintable.RepaintRequestListener,
             }
         }               
     }
-
+    
+/**
+ * 
+ * @param p
+ */
     public void paintablePainted(Paintable p) {
         dirtyPaintabletSet.remove(p);
         p.requestRepaintRequests();
     }
-
+    
+/**
+ * 
+ * @param paintable
+ * @return
+ */
     public boolean isDirty(Paintable paintable) {
         return (dirtyPaintabletSet.contains(paintable));
     }
-
+    
+       /**
+        * @see com.itmill.toolkit.Application.WindowAttachListener#windowAttached(com.itmill.toolkit.Application.WindowAttachEvent)
+        */
     public void windowAttached(WindowAttachEvent event) {
         event.getWindow().addListener(this);
         dirtyPaintabletSet.add(event.getWindow());
     }
-
+    
+       /**
+        * @see com.itmill.toolkit.Application.WindowDetachListener#windowDetached(com.itmill.toolkit.Application.WindowDetachEvent)
+        */
     public void windowDetached(WindowDetachEvent event) {
         event.getWindow().removeListener(this);
         // Notify client of the close operation
         removedWindows.add(event.getWindow());
     }
-
+    
+/**
+ * 
+ * @return
+ */
     public synchronized Set getRemovedWindows() {
         return Collections.unmodifiableSet(removedWindows);
 
     }
-
+    
+/**
+ * 
+ * @param w
+ */
     private void removedWindowNotified(Window w) {
         this.removedWindows.remove(w);
     }
 
-    /** Implementation of URIHandler.ErrorEvent interface. */
+    /** 
+     * Implementation of URIHandler.ErrorEvent interface. 
+     */
     public class URIHandlerErrorImpl implements URIHandler.ErrorEvent {
 
         private URIHandler owner;
 
         private Throwable throwable;
-
+        
+/**
+ * 
+ * @param owner
+ * @param throwable
+ */
         private URIHandlerErrorImpl(URIHandler owner, Throwable throwable) {
             this.owner = owner;
             this.throwable = throwable;
index 80529d6de8b87ae50ff9b725d8176f1a34c9acf3..29a9abc1921ccf0264631c5c745b819779a1d32f 100644 (file)
@@ -30,7 +30,8 @@ package com.itmill.toolkit.terminal.web;
 
 import java.io.InputStream;
 
-/** AjaxAdapter implementation of the UploadStream interface.
+/** 
+ * AjaxAdapter implementation of the UploadStream interface.
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -39,22 +40,24 @@ import java.io.InputStream;
 public class AjaxHttpUploadStream
        implements com.itmill.toolkit.terminal.UploadStream {
 
-       /** Holds value of property variableName. */
+       /** 
+        * Holds value of property variableName. 
+        */
        private String streamName;
        private String contentName;
        private String contentType;
 
-       /** Holds value of property variableValue. */
+       /** 
+        * Holds value of property variableValue. 
+        */
        private InputStream stream;
 
-       /** Creates a new instance of UploadStreamImpl
-        *  @param name of the stream
-        *  @param stream input stream
-        *  @param contentName name of the content
-        *  @param contentType type of the content
-        *  @param time Time of event creation 
-        *       (for parallel events (for example in 
-        *       same http request), times are equal)
+       /** 
+        * Creates a new instance of UploadStreamImpl.
+        * @param name the name of the stream.
+        * @param stream the input stream.
+        * @param contentName the name of the content.
+        * @param contentType the type of the content.
         */
        public AjaxHttpUploadStream(
                String name,
@@ -67,31 +70,35 @@ public class AjaxHttpUploadStream
                this.contentType = contentType;
        }
 
-       /** Get the name of the stream.
-        * @return name of the stream.
+       /** 
+        * Gets the name of the stream.
+        * @return the name of the stream.
         */
        public String getStreamName() {
                return this.streamName;
        }
 
-       /** Get input stream.
-        * @return Input stream.
+       /** 
+        * Gets the input stream.
+        * @return the Input stream.
         */
        public InputStream getStream() {
                return this.stream;
        }
 
-       /** Get input stream content type.
-        * @return content type of the input stream.
+       /** 
+        * Gets the input stream content type.
+        * @return the content type of the input stream.
         */
        public String getContentType() {
                return this.contentType;
        }
 
-       /** Get stream content name.
-        *  Stream content name usually differs from the actual stream name.
-        *  it is used toi identify the content of the stream.
-        * @return Name of the stream content.
+       /** 
+        * Gets the stream content name.
+        * Stream content name usually differs from the actual stream name.
+        * It is used to identify the content of the stream.
+        * @return the Name of the stream content.
         */
        public String getContentName() {
                return this.contentName;
index fe080e2758eef729a41e1500f489a6724c82b05e..5db631fe2b03aa9ac68180d14c12511f5c0b2502 100644 (file)
@@ -82,22 +82,24 @@ public class AjaxPaintTarget implements PaintTarget {
     private int numberOfPaints = 0;
 
     /**
-     * Create a new XMLPrintWriter, without automatic line flushing.
+     * Creates a new XMLPrintWriter, without automatic line flushing.
      * 
-     * 
-     * @param out
+     * @param variableMap
+     * @param manager
+     * @param output
      *            A character-output stream.
+     * @throws PaintException if the paint operation failed. 
      */
     public AjaxPaintTarget(AjaxVariableMap variableMap, AjaxApplicationManager manager,
             OutputStream output) throws PaintException {
 
-        // Set the cache
+        // Sets the cache
         this.manager = manager;
 
-        // Set the variable map
+        // Sets the variable map
         this.variableMap = variableMap;
 
-        // Set the target for UIDL writing
+        // Sets the target for UIDL writing
         try {
             this.uidlBuffer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(output,"UTF-8")));
         } catch (UnsupportedEncodingException e) {
@@ -108,10 +110,10 @@ public class AjaxPaintTarget implements PaintTarget {
         mOpenTags = new Stack();
         mTagArgumentListOpen = false;
 
-        //Add document declaration
+        //Adds document declaration
         this.print(UIDL_XML_DECL + "\n\n");
 
-        // Add UIDL start tag and its attributes
+        // Adds UIDL start tag and its attributes
         this.startTag("changes");
 
     }
@@ -127,16 +129,16 @@ public class AjaxPaintTarget implements PaintTarget {
     }
 
     /**
-     * Method append.
+     * Method append.This method is thread safe.
      * 
-     * @param string
+     * @param string the text to insert.
      */
     private void append(String string) {
         uidlBuffer.print(string);
     }
 
     /**
-     * Print element start tag.
+     * Prints the element start tag.
      * 
      * <pre>
      * Todo:
@@ -145,7 +147,8 @@ public class AjaxPaintTarget implements PaintTarget {
      * </pre>
      * 
      * @param tagName
-     *            The name of the start tag
+     *            the name of the start tag.
+     * @throws PaintException  if the paint operation failed.          
      *  
      */
     public void startTag(String tagName) throws PaintException {
@@ -153,37 +156,38 @@ public class AjaxPaintTarget implements PaintTarget {
         if (tagName == null)
             throw new NullPointerException();
 
-        // Incerement paint tracker
+        // Increments paint tracker
         if (this.isTrackPaints()) {
                this.numberOfPaints++;
         }
         
-        //Ensure that the target is open
+        //Ensures that the target is open
         if (this.closed)
             throw new PaintException(
                     "Attempted to write to a closed PaintTarget.");
 
-        // Make sure that the open start tag is closed before
+        // Makes sure that the open start tag is closed before
         // anything is written.
         ensureClosedTag();
 
-        // Check tagName and attributes here
+        // Checks tagName and attributes here
         mOpenTags.push(tagName);
 
-        // Print the tag with attributes
+        // Prints the tag with attributes
         append("<" + tagName);
 
         mTagArgumentListOpen = true;
     }
 
     /**
-     * Print element end tag.
+     * Prints the element end tag.
      * 
      * If the parent tag is closed before every child tag is closed an
      * PaintException is raised.
      * 
      * @param tag
-     *            The name of the end tag
+     *            the name of the end tag.
+     * @throws Paintexception if the paint operation failed. 
      */
     public void endTag(String tagName) throws PaintException {
         // In case of null data output nothing:
@@ -209,14 +213,15 @@ public class AjaxPaintTarget implements PaintTarget {
             mTagArgumentListOpen = false;
         }
 
-        //Write the end (closing) tag
+        //Writes the end (closing) tag
         append("</" + lastTag + ">");
         flush();
     }
 
     /**
-     * Substitute the XML sensitive characters with predefined XML entities.
-     * 
+     * Substitutes the XML sensitive characters with predefined XML entities.
+     * @param xml
+     *                         the String to be substituted.
      * @return A new string instance where all occurrences of XML sensitive
      *         characters are substituted with entities.
      */
@@ -227,10 +232,10 @@ public class AjaxPaintTarget implements PaintTarget {
     }
 
     /**
-     * Substitute the XML sensitive characters with predefined XML entities.
+     * Substitutes the XML sensitive characters with predefined XML entities.
      * 
      * @param xml
-     *            the String to be substituted
+     *            the String to be substituted.
      * @return A new StringBuffer instance where all occurrences of XML
      *         sensitive characters are substituted with entities.
      *  
@@ -254,10 +259,10 @@ public class AjaxPaintTarget implements PaintTarget {
     }
 
     /**
-     * Substitute a XML sensitive character with predefined XML entity.
+     * Substitutes a XML sensitive character with predefined XML entity.
      * 
      * @param c
-     *            Character to be replaced with an entity.
+     *            the Character to be replaced with an entity.
      * @return String of the entity or null if character is not to be replaced
      *         with an entity.
      */
@@ -279,7 +284,7 @@ public class AjaxPaintTarget implements PaintTarget {
     }
 
     /**
-     * Print XML.
+     * Prints XML.
      * 
      * Writes pre-formatted XML to stream. Well-formness of XML is checked.
      * 
@@ -288,6 +293,7 @@ public class AjaxPaintTarget implements PaintTarget {
      *  TODO: XML checking should be made
      *  
      * </pre>
+     * @param str the string to print.
      */
     private void print(String str) {
         // In case of null data output nothing:
@@ -303,7 +309,9 @@ public class AjaxPaintTarget implements PaintTarget {
     }
 
     /**
-     * Print XML-escaped text.
+     * Prints XML-escaped text.
+     * @param str
+     * @throws PaintException if the paint operation failed.
      *  
      */
     public void addText(String str) throws PaintException {
@@ -315,9 +323,10 @@ public class AjaxPaintTarget implements PaintTarget {
      * content is written.
      * 
      * @param name
-     *            Attribute name
+     *            the Attribute name.
      * @param value
-     *            Attribute value
+     *            the Attribute value.
+     * @throws PaintException if the paint operation failed.
      */
     public void addAttribute(String name, boolean value) throws PaintException {
         addAttribute(name, String.valueOf(value));
@@ -328,9 +337,11 @@ public class AjaxPaintTarget implements PaintTarget {
      * any content is written.
      * 
      * @param name
-     *            Attribute name
+     *            the Attribute name.
      * @param value
-     *            Attribute value
+     *            the Attribute value.
+     *            
+     * @throws PaintException if the paint operation failed.
      */
     public void addAttribute(String name, Resource value) throws PaintException {
 
@@ -365,10 +376,11 @@ public class AjaxPaintTarget implements PaintTarget {
      * content is written.
      * 
      * @param name
-     *            Attribute name
+     *            the Attribute name.
      * @param value
-     *            Attribute value
-     * @return this object
+     *            the Attribute value.
+     * 
+     * @throws PaintException if the paint operation failed.
      */
     public void addAttribute(String name, int value) throws PaintException {
         addAttribute(name, String.valueOf(value));
@@ -379,10 +391,11 @@ public class AjaxPaintTarget implements PaintTarget {
      * content is written.
      * 
      * @param name
-     *            Attribute name
+     *            the Attribute name.
      * @param value
-     *            Attribute value
-     * @return this object
+     *           the Attribute value.
+     * 
+     * @throws PaintException if the paint operation failed.
      */
     public void addAttribute(String name, long value) throws PaintException {
         addAttribute(name, String.valueOf(value));
@@ -393,10 +406,11 @@ public class AjaxPaintTarget implements PaintTarget {
      * content is written.
      * 
      * @param name
-     *            Boolean attribute name
+     *            the Boolean attribute name.
      * @param value
-     *            Boolean attribute value
-     * @return this object
+     *            the Boolean attribute value.
+     * 
+     * @throws PaintException if the paint operation failed.
      */
     public void addAttribute(String name, String value) throws PaintException {
         // In case of null data output nothing:
@@ -417,15 +431,16 @@ public class AjaxPaintTarget implements PaintTarget {
     }
 
     /**
-     * Add a string type variable.
+     * Adds a string type variable.
      * 
      * @param owner
-     *            Listener for variable changes
+     *            the Listener for variable changes.
      * @param name
-     *            Variable name
+     *            the Variable name.
      * @param value
-     *            Variable initial value
-     * @return Reference to this.
+     *            the Variable initial value.
+     * 
+     * @throws PaintException if the paint operation failed.
      */
     public void addVariable(VariableOwner owner, String name, String value)
             throws PaintException {
@@ -439,15 +454,16 @@ public class AjaxPaintTarget implements PaintTarget {
     }
 
     /**
-     * Add a int type variable.
+     * Adds a int type variable.
      * 
      * @param owner
-     *            Listener for variable changes
+     *            the Listener for variable changes.
      * @param name
-     *            Variable name
+     *            the Variable name.
      * @param value
-     *            Variable initial value
-     * @return Reference to this.
+     *            the Variable initial value.
+     * 
+     * @throws PaintException if the paint operation failed.
      */
     public void addVariable(VariableOwner owner, String name, int value)
             throws PaintException {
@@ -461,15 +477,16 @@ public class AjaxPaintTarget implements PaintTarget {
     }
 
     /**
-     * Add a boolean type variable.
+     * Adds a boolean type variable.
      * 
      * @param owner
-     *            Listener for variable changes
+     *            the Listener for variable changes.
      * @param name
-     *            Variable name
+     *            the Variable name.
      * @param value
-     *            Variable initial value
-     * @return Reference to this.
+     *            the Variable initial value.
+     * 
+     * @throws PaintException if the paint operation failed.
      */
     public void addVariable(VariableOwner owner, String name, boolean value)
             throws PaintException {
@@ -483,15 +500,16 @@ public class AjaxPaintTarget implements PaintTarget {
     }
 
     /**
-     * Add a string array type variable.
+     * Adds a string array type variable.
      * 
      * @param owner
-     *            Listener for variable changes
+     *            the Listener for variable changes.
      * @param name
-     *            Variable name
+     *            the Variable name.
      * @param value
-     *            Variable initial value
-     * @return Reference to this.
+     *            the Variable initial value.
+     * 
+     * @throws PaintException if the paint operation failed.
      */
     public void addVariable(VariableOwner owner, String name, String[] value)
             throws PaintException {
@@ -506,15 +524,14 @@ public class AjaxPaintTarget implements PaintTarget {
     }
 
     /**
-     * Add a upload stream type variable.
+     * Adds a upload stream type variable.
      * 
      * @param owner
-     *            Listener for variable changes
+     *            the Listener for variable changes.
      * @param name
-     *            Variable name
-     * @param value
-     *            Variable initial value
-     * @return Reference to this.
+     *            the Variable name.        
+     * 
+     * @throws PaintException if the paint operation failed.
      */
     public void addUploadStreamVariable(VariableOwner owner, String name)
             throws PaintException {
@@ -527,10 +544,13 @@ public class AjaxPaintTarget implements PaintTarget {
     }
 
     /**
-     * Print single text section.
+     * Prints the single text section.
      * 
      * Prints full text section. The section data is escaped from XML tags and
      * surrounded by XML start and end-tags.
+     * @param sectionTagName the name of the tag.
+     * @param sectionData the section data to be printed.
+     * @throws PaintException if the paint operation failed.
      */
     public void addSection(String sectionTagName, String sectionData)
             throws PaintException {
@@ -539,7 +559,11 @@ public class AjaxPaintTarget implements PaintTarget {
         endTag(sectionTagName);
     }
 
-    /** Add XML dirctly to UIDL */
+    /** 
+     * Adds XML directly to UIDL.
+     * @param xml the Xml to be added.
+     * @throws PaintException  if the paint operation failed.
+     */
     public void addUIDL(String xml) throws PaintException {
 
         //Ensure that the target is open
@@ -558,7 +582,11 @@ public class AjaxPaintTarget implements PaintTarget {
     }
 
     /**
-     * Add XML section with namespace
+     * Adds XML section with namespace.
+     * @param sectionTagName the name of the tag.
+     * @param sectionData the section data.
+     * @param namespace the namespace to be added.
+     * @throws PaintException if the paint operation failed.
      * 
      * @see com.itmill.toolkit.terminal.PaintTarget#addXMLSection(String,
      *      String, String)
@@ -583,8 +611,9 @@ public class AjaxPaintTarget implements PaintTarget {
     }
 
     /**
-     * Get the UIDL already printed to stream. Paint target must be closed
-     * before the getUIDL() cn be called.
+     * Gets the UIDL already printed to stream. Paint target must be closed
+     * before the <code>getUIDL</code> can be called.
+     * @return the UIDL.
      */
     public String getUIDL() {
         if (this.closed) {
@@ -595,10 +624,11 @@ public class AjaxPaintTarget implements PaintTarget {
     }
 
     /**
-     * Close the paint target. Paint target must be closed before the getUIDL()
-     * cn be called. Subsequent attempts to write to paint target. If the target
+     * Closes the paint target. Paint target must be closed before the <code>getUIDL</code>
+     * can be called. Subsequent attempts to write to paint target. If the target
      * was already closed, call to this function is ignored. will generate an
      * exception.
+     * @throws PaintException if the paint operation failed.
      */
     public void close() throws PaintException {
         if (!this.closed) {
@@ -631,9 +661,7 @@ public class AjaxPaintTarget implements PaintTarget {
         return false;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /**
      * @see com.itmill.toolkit.terminal.PaintTarget#addCharacterData(java.lang.String)
      */
     public void addCharacterData(String text) throws PaintException {
@@ -641,23 +669,29 @@ public class AjaxPaintTarget implements PaintTarget {
        ensureClosedTag();
        append(escapeXML(text));
     }
-
+    
+/**
+ * 
+ * @return
+ */
        public boolean isTrackPaints() {
                return trackPaints;
        }
        
-       /** Get number of paints. 
+       /** 
+        * Gets the number of paints. 
         * 
-        * @return
+        * @return the number of paints.
         */
        public int getNumberOfPaints() {
                return numberOfPaints;
        }
        
-       /** Set tracking to true or false.
+       /** 
+        * Sets the tracking to true or false.
         * 
         * This also resets the number of paints.
-        * @param trackPaints
+        * @param enabled is the tracking is enabled or not.
         * @see #getNumberOfPaints()
         */
        public void setTrackPaints(boolean enabled) {
index a9f1300d1d123b3dbf04a9c1f332a5031e92420d..eb257facf1104ec1b82bfb239ce269536d7ed943 100644 (file)
@@ -50,7 +50,8 @@ import com.itmill.toolkit.terminal.Terminal;
 import com.itmill.toolkit.terminal.UploadStream;
 import com.itmill.toolkit.terminal.VariableOwner;
 
-/** Variable map for ajax applications.
+/** 
+ * Variable map for ajax applications.
  * 
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -66,11 +67,18 @@ public class AjaxVariableMap {
        private Map idToValueMap = new HashMap();
        private Map ownerToNameToIdMap = new WeakHashMap();
        private Object mapLock = new Object();
-
+       
        // Id generator
        private long lastId = 0;
 
-       /** Convert the string to a supported class */
+       /**
+        * Converts the string to a supported class. 
+        * @param type
+        * @param value
+        * @return
+        * @throws java.lang.ClassCastException if the code has 
+        *                                      attempted to cast an object to a subclass of which it is not an instance
+        */
        private static Object convert(Class type, String value)
                throws java.lang.ClassCastException {
                try {
@@ -94,8 +102,12 @@ public class AjaxVariableMap {
                }
        }
 
-       /** Register a new variable.
-        *
+       /** 
+        * Registers a new variable.
+        * @param name the Variable name.
+        * @param type
+        * @param value
+        * @param owner the Listener for variable changes.
         * @return id to assigned for this variable.
         */
        public String registerVariable(
@@ -104,7 +116,7 @@ public class AjaxVariableMap {
                Object value,
                VariableOwner owner) {
 
-               // Check that the type of the class is supported
+               // Checks that the type of the class is supported
                if (!(type.equals(Boolean.class)
                        || type.equals(Integer.class)
                        || type.equals(String.class)
@@ -115,7 +127,7 @@ public class AjaxVariableMap {
 
                synchronized (mapLock) {
 
-                       // Check if the variable is already mapped
+                       // Checks if the variable is already mapped
                        HashMap nameToIdMap = (HashMap) ownerToNameToIdMap.get(owner);
                        if (nameToIdMap == null) {
                                nameToIdMap = new HashMap();
@@ -124,7 +136,7 @@ public class AjaxVariableMap {
                        String id = (String) nameToIdMap.get(name);
 
                        if (id == null) {
-                               // Generate new id and register it
+                               // Generates new id and register it
                                id = "v" + String.valueOf(++lastId);
                                nameToIdMap.put(name, id);
                                idToOwnerMap.put(id, new WeakReference(owner));
@@ -138,7 +150,11 @@ public class AjaxVariableMap {
                }
        }
 
-       /** Unregisters a variable. */
+       /** 
+        * Unregisters the variable.
+        * @param name the Variable name.
+        * @param owner the Listener for variable changes.
+        */
        public void unregisterVariable(String name, VariableOwner owner) {
 
                synchronized (mapLock) {
@@ -170,20 +186,31 @@ public class AjaxVariableMap {
         */
        private class ParameterContainer {
 
-               /** Construct the mapping: listener to set of listened parameter names */
+               /** 
+                * Constructs the mapping: listener to set of listened parameter names. 
+                */
                private HashMap parameters = new HashMap();
 
-               /** Parameter values */
+               /**
+                * Parameter values. 
+                */
                private HashMap values = new HashMap();
 
-               /** Multipart parser used for parsing the request */
+               /** 
+                * Multipart parser used for parsing the request. 
+                */
                private ServletMultipartRequest parser = null;
 
-               /** Name - Value mapping of parameters that are not variables */
+               /** 
+                * Name - Value mapping of parameters that are not variables. 
+                */
                private HashMap nonVariables = new HashMap();
 
-               /** Create new parameter container and parse the parameters from the request using
+               /** 
+                * Creates new parameter container and parse the parameters from the request using
                 * GET, POST and POST/MULTIPART parsing
+                * @param req the Http request to handle.
+                * @throws IOException if the writing failed due to input/output error.
                 */
                public ParameterContainer(HttpServletRequest req) throws IOException {
                        // Parse GET / POST parameters
@@ -235,7 +262,11 @@ public class AjaxVariableMap {
 
                }
 
-               /** Add parameter to container */
+               /** 
+                * Adds the parameter to container.
+                * @param name the Parameter name.
+                * @param value the Parameter value.
+                */
                private void addParam(String name, String[] value) {
 
                        // Support name="set:name=value" value="ignored" notation
@@ -378,13 +409,13 @@ public class AjaxVariableMap {
                                        value = new String[0];
                        }
 
-                       // Get the owner
+                       // Gets the owner
                        WeakReference ref = (WeakReference) idToOwnerMap.get(name);
                        VariableOwner owner = null;
                        if (ref != null)
                                owner = (VariableOwner) ref.get();
 
-                       // Add the parameter to mapping only if they have owners
+                       // Adds the parameter to mapping only if they have owners
                        if (owner != null) {
                                Set p = (Set) parameters.get(owner);
                                if (p == null)
@@ -407,69 +438,88 @@ public class AjaxVariableMap {
                                        idToValueMap.remove(name);
                                }
 
-                               // Add the parameter to set of non-variables
+                               // Adds the parameter to set of non-variables
                                nonVariables.put(name, value);
                        }
 
                }
 
-               /** Get the set of all parameters connected to given variable owner */
+               /** 
+                * Gets the set of all parameters connected to given variable owner.
+                * @param owner the Listener for variable changes.
+                * @return  the set of all the parameters.
+                */
                public Set getParameters(VariableOwner owner) {
                        if (owner == null)
                                return null;
                        return (Set) parameters.get(owner);
                }
 
-               /** Get the set of all variable owners owning parameters in this request */
+               /** 
+                * Gets the set of all variable owners owning parameters in this request.
+                * @return  the set of all varaible owners.
+                */
                public Set getOwners() {
                        return parameters.keySet();
                }
 
-               /** Get the value of a parameter */
+               /** 
+                * Gets the value of a parameter.
+                * @param parameterName the name of the parameter.
+                * @return  the value of the parameter.
+                */
                public String[] getValue(String parameterName) {
                        return (String[]) values.get(parameterName);
                }
 
-               /** Get the servlet multipart parser */
+               /** 
+                * Gets the servlet multipart parser.
+                * @return the parser.
+                */
                public ServletMultipartRequest getParser() {
                        return parser;
                }
 
-               /** Get the name - value[] mapping of non variable paramteres */
+               /** 
+                * Gets the name - value[] mapping of non variable parameters.
+                * @return  the mapping of non variable parameters.
+                */
                public Map getNonVariables() {
                        return nonVariables;
                }
        }
 
-       /** Handle all variable changes in this request.
-       *  @param req Http request to handle
-       *  @param listeners If the list is non null, only the listed listeners are
-       *  served. Otherwise all the listeners are served.
-       *  @return Name to Value[] mapping of unhandled variables
-       */
+       /** 
+        * Handles all variable changes in this request.
+        * @param req the Http request to handle.
+        * @param errorListener the listeners If the list is non null, only the listed listeners are
+        * served. Otherwise all the listeners are served.
+        * @return Name to Value[] mapping of unhandled variables.
+        * @throws IOException if the writing failed due to input/output error.
+        */
        public Map handleVariables(
                HttpServletRequest req,
                Terminal.ErrorListener errorListener)
                throws IOException {
 
-               // Get the parameters
+               // Gets the parameters
                ParameterContainer parcon = new ParameterContainer(req);
 
-               // Sort listeners to dependency order
+               // Sorts listeners to dependency order
                List listeners = getDependencySortedListenerList(parcon.getOwners());
 
-               // Handle all parameters for all listeners
+               // Handles all parameters for all listeners
                while (!listeners.isEmpty()) {
                        VariableOwner listener = (VariableOwner) listeners.remove(0);
                        boolean changed = false; // Has any of this owners variabes changed
-                       // Handle all parameters for listener
+                       // Handles all parameters for listener
                        Set params = parcon.getParameters(listener);
                        if (params != null) { // Name value mapping
                                Map variables = new HashMap();
                                for (Iterator pi = params.iterator(); pi.hasNext();) {
-                                       // Get the name of the parameter
+                                       // Gets the name of the parameter
                                        String param = (String) pi.next();
-                                       // Extract more information about the parameter
+                                       // Extracts more information about the parameter
                                        String varName = (String) idToNameMap.get(param);
                                        Class varType = (Class) idToTypeMap.get(param);
                                        Object varOldValue = idToValueMap.get(param);
@@ -487,7 +537,7 @@ public class AjaxVariableMap {
 
                                                ServletMultipartRequest parser = parcon.getParser();
 
-                                               // Upload events
+                                               // Uploads events
                                                if (varType.equals(UploadStream.class)) {
                                                        if (parser != null
                                                                && parser.getFileParameter(
@@ -585,10 +635,16 @@ public class AjaxVariableMap {
                return parcon.getNonVariables();
        }
 
-       /** Implementation of VariableOwner.Error interface. */
+       /** 
+        * Implementation of VariableOwner.Error interface. 
+        */
        public class TerminalErrorImpl implements Terminal.ErrorEvent {
                private Throwable throwable;
-
+               
+/**
+ * 
+ * @param throwable
+ */
                private TerminalErrorImpl(Throwable throwable) {
                        this.throwable = throwable;
                }
@@ -602,13 +658,19 @@ public class AjaxVariableMap {
 
        }
 
-       /** Implementation of VariableOwner.Error interface. */
+       /** 
+        * Implementation of VariableOwner.Error interface. 
+        */
        public class VariableOwnerErrorImpl
                extends TerminalErrorImpl
                implements VariableOwner.ErrorEvent {
 
                private VariableOwner owner;
-
+/**
+ * 
+ * @param owner the Listener for variable changes.
+ * @param throwable
+ */
                private VariableOwnerErrorImpl(
                        VariableOwner owner,
                        Throwable throwable) {
@@ -625,12 +687,13 @@ public class AjaxVariableMap {
 
        }
 
-       /** Resolve the VariableOwners needed from the request and sort
+       /** 
+        * Resolves the VariableOwners needed from the request and sort
         * them to assure that the dependencies are met (as well as possible).
+        * 
+        * @param listeners 
         * @return List of variable list changers, that are needed for handling
         * all the variables in the request
-        * @param req request to be handled
-        * @param parser multipart parser for the request
         */
        private List getDependencySortedListenerList(Set listeners) {
 
@@ -698,12 +761,12 @@ public class AjaxVariableMap {
                        }
                }
 
-               // Add the listeners with dependencies in sane order to the result
+               // Adds the listeners with dependencies in sane order to the result
                for (Iterator li = deepdeps.keySet().iterator(); li.hasNext();) {
                        VariableOwner l = (VariableOwner) li.next();
                        boolean immediate = l.isImmediate();
 
-                       // Add each listener after the last depended listener already in
+                       // Adds each listener after the last depended listener already in
                        // the list
                        int index = -1;
                        for (Iterator di = ((Set) deepdeps.get(l)).iterator();
@@ -726,7 +789,7 @@ public class AjaxVariableMap {
                        }
                }
 
-               // Append immediate listeners to normal listeners
+               // Appends immediate listeners to normal listeners
                // This way the normal handlers are always called before
                // immediate ones
                resultNormal.addAll(resultImmediate);
index fc0c61e51628ecda088d8e8b988dc24a2b168ecb..0476e60b425634129a9db5a7689d66a4304a3c8a 100644 (file)
@@ -103,16 +103,24 @@ public class ApplicationServlet extends HttpServlet implements
 
        private static final long serialVersionUID = -4937882979845826574L;
 
-       /** Version number of this release. For example "4.0.0" */
+       /** 
+        * Version number of this release. For example "4.0.0". 
+        */
        public static final String VERSION;
 
-       /** Major version number. For example 4 in 4.1.0. */
+       /** 
+        * Major version number. For example 4 in 4.1.0. 
+        */
        public static final int VERSION_MAJOR;
 
-       /** Minor version number. For example 1 in 4.1.0. */
+       /** 
+        * Minor version number. For example 1 in 4.1.0. 
+        */
        public static final int VERSION_MINOR;
 
-       /** Build number. For example 0-beta1 in 4.0.0-beta1. */
+       /** 
+        * Builds number. For example 0-beta1 in 4.0.0-beta1. 
+        */
        public static final String VERSION_BUILD;
 
        /* Initialize version numbers from string replaced by build-script. */
@@ -222,9 +230,9 @@ public class ApplicationServlet extends HttpServlet implements
         * is being placed into service.
         * 
         * @param servletConfig
-        *            object containing the servlet's configuration and
+        *            the object containing the servlet's configuration and
         *            initialization parameters
-        * @throws ServletException
+        * @throws javax.servlet.ServletException
         *             if an exception has occurred that interferes with the
         *             servlet's normal operation.
         */
@@ -232,14 +240,14 @@ public class ApplicationServlet extends HttpServlet implements
                        throws javax.servlet.ServletException {
                super.init(servletConfig);
 
-               // Get the application class name
+               // Gets the application class name
                String applicationClassName = servletConfig
                                .getInitParameter("application");
                if (applicationClassName == null) {
                        Log.error("Application not specified in servlet parameters");
                }
 
-               // Store the application parameters into Properties object
+               // Stores the application parameters into Properties object
                this.applicationProperties = new Properties();
                for (Enumeration e = servletConfig.getInitParameterNames(); e
                                .hasMoreElements();) {
@@ -248,7 +256,7 @@ public class ApplicationServlet extends HttpServlet implements
                                        .getInitParameter(name));
                }
 
-               // Override with server.xml parameters
+               // Overrides with server.xml parameters
                ServletContext context = servletConfig.getServletContext();
                for (Enumeration e = context.getInitParameterNames(); e
                                .hasMoreElements();) {
@@ -257,48 +265,48 @@ public class ApplicationServlet extends HttpServlet implements
                                        .getInitParameter(name));
                }
 
-               // Get the debug window parameter
+               // Gets the debug window parameter
                String debug = getApplicationOrSystemProperty(PARAMETER_DEBUG, "")
                                .toLowerCase();
-               // Enable application specific debug
+               // Enables application specific debug
                if (!"".equals(debug) && !"true".equals(debug)
                                && !"false".equals(debug))
                        throw new ServletException(
                                        "If debug parameter is given for an application, it must be 'true' or 'false'");
                this.debugMode = debug;
 
-               // Get the maximum number of simultaneous transformers
+               // Gets the maximum number of simultaneous transformers
                this.maxConcurrentTransformers = Integer
                                .parseInt(getApplicationOrSystemProperty(
                                                PARAMETER_MAX_TRANSFORMERS, "-1"));
                if (this.maxConcurrentTransformers < 1)
                        this.maxConcurrentTransformers = DEFAULT_MAX_TRANSFORMERS;
 
-               // Get cache time for transformers
+               // Gets cache time for transformers
                this.transformerCacheTime = Integer
                                .parseInt(getApplicationOrSystemProperty(
                                                PARAMETER_TRANSFORMER_CACHETIME, "-1")) * 1000;
 
-               // Get cache time for theme resources
+               // Gets cache time for theme resources
                this.themeCacheTime = Integer.parseInt(getApplicationOrSystemProperty(
                                PARAMETER_THEME_CACHETIME, "-1")) * 1000;
                if (this.themeCacheTime < 0) {
                        this.themeCacheTime = DEFAULT_THEME_CACHETIME;
                }
 
-               // Add all specified theme sources
+               // Adds all specified theme sources
                this.themeSource = new CollectionThemeSource();
                List directorySources = getThemeSources();
                for (Iterator i = directorySources.iterator(); i.hasNext();) {
                        this.themeSource.add((ThemeSource) i.next());
                }
 
-               // Add the default theme source
+               // Adds the default theme source
                String[] defaultThemeFiles = new String[] { getApplicationOrSystemProperty(
                                PARAMETER_DEFAULT_THEME_JAR, DEFAULT_THEME_JAR) };
                File f = findDefaultThemeJar(defaultThemeFiles);
                try {
-                       // Add themes.jar if exists
+                       // Adds themes.jar if exists
                        if (f != null && f.exists())
                                this.themeSource.add(new JarThemeSource(f, this, ""));
                        else {
@@ -311,7 +319,7 @@ public class ApplicationServlet extends HttpServlet implements
                                        + Arrays.asList(defaultThemeFiles), e);
                }
 
-               // Check that at least one themesource was loaded
+               // Checks that at least one themesource was loaded
                if (this.themeSource.getThemes().size() <= 0) {
                        throw new ServletException(
                                        "No themes found in specified themesources. "
@@ -320,7 +328,7 @@ public class ApplicationServlet extends HttpServlet implements
                                                        + "to WEB-INF/lib directory.");
                }
 
-               // Initialize the transformer factory, if not initialized
+               // Initializes the transformer factory, if not initialized
                if (this.transformerFactory == null) {
 
                        this.transformerFactory = new UIDLTransformerFactory(
@@ -328,7 +336,7 @@ public class ApplicationServlet extends HttpServlet implements
                                        this.transformerCacheTime);
                }
 
-               // Load the application class using the same class loader
+               // Loads the application class using the same class loader
                // as the servlet itself
                ClassLoader loader = this.getClass().getClassLoader();
                try {
@@ -340,12 +348,12 @@ public class ApplicationServlet extends HttpServlet implements
        }
 
        /**
-        * Get an application or system property value.
+        * Gets an application or system property value.
         * 
         * @param parameterName
-        *            Name or the parameter
+        *            the Name or the parameter.
         * @param defaultValue
-        *            Default to be used
+        *            the Default to be used.
         * @return String value or default if not found
         */
        private String getApplicationOrSystemProperty(String parameterName,
@@ -390,13 +398,21 @@ public class ApplicationServlet extends HttpServlet implements
        }
 
        /**
-        * Get ThemeSources from given path. Construct the list of avalable themes
-        * in path using the following sources: 1. content of THEME_PATH directory
-        * (if available) 2. The themes listed in THEME_LIST_FILE 3. "themesource"
-        * application parameter - "ThemeSource" system property
-        * 
-        * @param THEME_DIRECTORY_PATH
-        * @return List
+        * Gets ThemeSources from given path. Construct the list of avalable themes
+        * in path using the following sources:
+        * <p> 
+        * 1. Content of <code>THEME_PATH</code> directory (if available). 
+        * </p>
+        * <p>
+        * 2. The themes listed in <code>THEME_LIST_FILE</code>.
+        * </p>
+        * <p> 
+        * 3. "themesource" application parameter - "ThemeSource" system property.
+        * </p>
+        * @return the List
+        * @throws ServletException
+        *                                              if an exception has occurred that interferes with the
+        *                              servlet's normal operation.
         */
        private List getThemeSources() throws ServletException {
 
@@ -446,7 +462,7 @@ public class ApplicationServlet extends HttpServlet implements
                        }
                }
 
-               // Add the theme sources from application properties
+               // Adds the theme sources from application properties
                String paramValue = getApplicationOrSystemProperty(
                                PARAMETER_THEMESOURCE, null);
                if (paramValue != null) {
@@ -456,7 +472,7 @@ public class ApplicationServlet extends HttpServlet implements
                        }
                }
 
-               // Construct appropriate theme source instances for each path
+               // Constructs appropriate theme source instances for each path
                for (Iterator i = sourcePaths.iterator(); i.hasNext();) {
                        String source = (String) i.next();
                        File sourceFile = new File(source);
@@ -482,7 +498,7 @@ public class ApplicationServlet extends HttpServlet implements
                        }
                }
 
-               // Return the constructed list of theme sources
+               // Returns the constructed list of theme sources
                return returnValue;
        }
 
@@ -491,16 +507,16 @@ public class ApplicationServlet extends HttpServlet implements
         * dispatches them.
         * 
         * @param request
-        *            object that contains the request the client made of the
-        *            servlet
+        *            the object that contains the request the client made of the
+        *            servlet.
         * @param response
-        *            object that contains the response the servlet returns to the
-        *            client
+        *            the object that contains the response the servlet returns to the
+        *            client.
         * @throws ServletException
         *             if an input or output error occurs while the servlet is
-        *             handling the TRACE request
+        *             handling the TRACE request.
         * @throws IOException
-        *             if the request for the TRACE cannot be handled
+        *             if the request for the TRACE cannot be handled.
         */
        protected void service(HttpServletRequest request,
                        HttpServletResponse response) throws ServletException, IOException {
@@ -513,25 +529,25 @@ public class ApplicationServlet extends HttpServlet implements
                Application application = null;
                try {
 
-                       // Handle resource requests
+                       // Handles resource requests
                        if (handleResourceRequest(request, response))
                                return;
 
-                       // Handle server commands
+                       // Handles server commands
                        if (handleServerCommands(request, response))
                                return;
 
-                       // Get the application
+                       // Gets the application
                        application = getApplication(request);
 
-                       // Create application if it doesn't exist
+                       // Creates application if it doesn't exist
                        if (application == null)
                                application = createApplication(request);
 
-                       // Set the last application request date
+                       // Sets the last application request date
                        applicationToLastRequestDate.put(application, new Date());
 
-                       // Invoke context transaction listeners
+                       // Invokes context transaction listeners
                        ((WebApplicationContext) application.getContext())
                                        .startTransaction(application, request);
 
@@ -543,7 +559,7 @@ public class ApplicationServlet extends HttpServlet implements
                        // made
                        synchronized (application) {
 
-                               // Handle UIDL requests?
+                               // Handles UIDL requests?
                                String resourceId = request.getPathInfo();
                                if (resourceId != null && resourceId.startsWith(AJAX_UIDL_URI)) {
 
@@ -553,7 +569,7 @@ public class ApplicationServlet extends HttpServlet implements
                                        return;
                                }
 
-                               // Get the variable map
+                               // Gets the variable map
                                variableMap = getVariableMap(application, request);
                                if (variableMap == null)
                                        return;
@@ -612,7 +628,7 @@ public class ApplicationServlet extends HttpServlet implements
                                        }
                                }
 
-                               // Handle the URI if the application is still running
+                               // Handles the URI if the application is still running
                                if (application.isRunning())
                                        download = handleURI(application, request, response);
 
@@ -624,13 +640,13 @@ public class ApplicationServlet extends HttpServlet implements
                                        response.setHeader("Pragma", "no-cache");
                                        response.setDateHeader("Expires", 0);
 
-                                       // Find the window within the application
+                                       // Finds the window within the application
                                        Window window = null;
                                        if (application.isRunning())
                                                window = getApplicationWindow(request, application,
                                                                unhandledParameters);
 
-                                       // Handle the unhandled parameters if the application is
+                                       // Handles the unhandled parameters if the application is
                                        // still running
                                        if (window != null && unhandledParameters != null
                                                        && !unhandledParameters.isEmpty()) {
@@ -643,13 +659,13 @@ public class ApplicationServlet extends HttpServlet implements
                                                }
                                        }
 
-                                       // Remove application if it has stopped
+                                       // Removes application if it has stopped
                                        if (!application.isRunning()) {
                                                endApplication(request, response, application);
                                                return;
                                        }
 
-                                       // Return blank page, if no window found
+                                       // Returns blank page, if no window found
                                        if (window == null) {
                                                response.setContentType("text/html");
                                                BufferedWriter page = new BufferedWriter(
@@ -673,12 +689,12 @@ public class ApplicationServlet extends HttpServlet implements
                                                return;
                                        }
 
-                                       // Set terminal type for the window, if not already set
+                                       // Sets terminal type for the window, if not already set
                                        if (window.getTerminal() == null) {
                                                window.setTerminal(wb);
                                        }
 
-                                       // Find theme
+                                       // Finds theme
                                        String themeName = window.getTheme() != null ? window
                                                        .getTheme() : DEFAULT_THEME;
                                        if (unhandledParameters.get("theme") != null) {
@@ -720,14 +736,14 @@ public class ApplicationServlet extends HttpServlet implements
                                        transformer = this.transformerFactory
                                                        .getTransformer(transformerType);
 
-                                       // Set the response type
+                                       // Sets the response type
                                        response.setContentType(wb.getContentType());
 
-                                       // Create UIDL writer
+                                       // Creates UIDL writer
                                        WebPaintTarget paintTarget = transformer
                                                        .getPaintTarget(variableMap);
 
-                                       // Assure that the correspoding debug window will be
+                                       // Assures that the correspoding debug window will be
                                        // repainted property
                                        // by clearing it before the actual paint.
                                        DebugWindow debugWindow = (DebugWindow) application
@@ -736,7 +752,7 @@ public class ApplicationServlet extends HttpServlet implements
                                                debugWindow.setWindowUIDL(window, "Painting...");
                                        }
 
-                                       // Paint window
+                                       // Paints window
                                        window.paint(paintTarget);
                                        paintTarget.close();
 
@@ -760,7 +776,7 @@ public class ApplicationServlet extends HttpServlet implements
                                                                .setWindowUIDL(window, paintTarget.getUIDL());
                                        }
 
-                                       // Set the function library state for this thread
+                                       // Sets the function library state for this thread
                                        ThemeFunctionLibrary.setState(application, window,
                                                        transformerType.getWebBrowser(), request
                                                                        .getSession(), this, transformerType
@@ -790,7 +806,7 @@ public class ApplicationServlet extends HttpServlet implements
                } catch (UIDLTransformerException te) {
 
                        try {
-                               // Write the error report to client
+                               // Writes the error report to client
                                response.setContentType("text/html");
                                BufferedWriter err = new BufferedWriter(new OutputStreamWriter(
                                                out));
@@ -805,7 +821,7 @@ public class ApplicationServlet extends HttpServlet implements
                                                + ". Original exception was: ", te);
                        }
 
-                       // Add previously dirty windows to dirtyWindowList in order
+                       // Adds previously dirty windows to dirtyWindowList in order
                        // to make sure that eventually they are repainted
                        Application currentApplication = getApplication(request);
                        for (Iterator iter = currentlyDirtyWindowsForThisApplication
@@ -819,21 +835,35 @@ public class ApplicationServlet extends HttpServlet implements
                        throw new ServletException(e);
                } finally {
 
-                       // Release transformer
+                       // Releases transformer
                        if (transformer != null)
                                transformerFactory.releaseTransformer(transformer);
 
-                       // Notify transaction end
+                       // Notifies transaction end
                        if (application != null)
                                ((WebApplicationContext) application.getContext())
                                                .endTransaction(application, request);
 
-                       // Clean the function library state for this thread
+                       // Cleans the function library state for this thread
                        // for security reasons
                        ThemeFunctionLibrary.cleanState();
                }
        }
-
+/**
+ * 
+ * @param request the HTTP request.
+ * @param response the HTTP response to write to.
+ * @param out
+ * @param unhandledParameters
+ * @param window
+ * @param terminalType
+ * @param theme
+ * @throws IOException 
+ *                                             if the writing failed due to input/output error.
+ * @throws MalformedURLException 
+ *                                             if the application is denied access 
+ *                                                             the persistent data store represented by the given URL.
+ */
        private void writeAjaxPage(HttpServletRequest request,
                        HttpServletResponse response, OutputStream out,
                        Map unhandledParameters, Window window, WebBrowser terminalType,
@@ -931,21 +961,20 @@ public class ApplicationServlet extends HttpServlet implements
        }
 
        /**
-        * Handle the requested URI. An application can add handlers to do special
+        * Handles the requested URI. An application can add handlers to do special
         * processing, when a certain URI is requested. The handlers are invoked
         * before any windows URIs are processed and if a DownloadStream is returned
         * it is sent to the client.
         * 
-        * @see com.itmill.toolkit.terminal.URIHandler
-        * 
         * @param application
-        *            Application owning the URI
+        *            the Application owning the URI.
         * @param request
-        *            HTTP request instance
+        *            the HTTP request instance.
         * @param response
-        *            HTTP response to write to.
-        * @return boolean True if the request was handled and further processing
-        *         should be suppressed, false otherwise.
+        *            the HTTP response to write to.
+        * @return boolean <code>true</code> if the request was handled and further processing
+        *         should be suppressed, <code>false</code> otherwise.
+        * @see com.itmill.toolkit.terminal.URIHandler
         */
        private DownloadStream handleURI(Application application,
                        HttpServletRequest request, HttpServletResponse response) {
@@ -956,11 +985,11 @@ public class ApplicationServlet extends HttpServlet implements
                if (uri == null || uri.length() == 0 || uri.equals("/"))
                        return null;
 
-               // Remove the leading /
+               // Removes the leading /
                while (uri.startsWith("/") && uri.length() > 0)
                        uri = uri.substring(1);
 
-               // Handle the uri
+               // Handles the uri
                DownloadStream stream = null;
                try {
                        stream = application.handleURI(application.getURL(), uri);
@@ -972,21 +1001,19 @@ public class ApplicationServlet extends HttpServlet implements
        }
 
        /**
-        * Handle the requested URI. An application can add handlers to do special
+        * Handles the requested URI. An application can add handlers to do special
         * processing, when a certain URI is requested. The handlers are invoked
         * before any windows URIs are processed and if a DownloadStream is returned
         * it is sent to the client.
         * 
-        * @see com.itmill.toolkit.terminal.URIHandler
-        * 
-        * @param application
-        *            Application owning the URI
+        * @param stream the download stream.
+        *            
         * @param request
-        *            HTTP request instance
+        *            the HTTP request instance.
         * @param response
-        *            HTTP response to write to.
-        * @return boolean True if the request was handled and further processing
-        *         should be suppressed, false otherwise.
+        *            the HTTP response to write to.
+        * 
+        * @see com.itmill.toolkit.terminal.URIHandler
         */
        private void handleDownload(DownloadStream stream,
                        HttpServletRequest request, HttpServletResponse response) {
@@ -995,10 +1022,10 @@ public class ApplicationServlet extends HttpServlet implements
                InputStream data = stream.getStream();
                if (data != null) {
 
-                       // Set content type
+                       // Sets content type
                        response.setContentType(stream.getContentType());
 
-                       // Set cache headers
+                       // Sets cache headers
                        long cacheTime = stream.getCacheTime();
                        if (cacheTime <= 0) {
                                response.setHeader("Cache-Control", "no-cache");
@@ -1047,8 +1074,8 @@ public class ApplicationServlet extends HttpServlet implements
        }
 
        /**
-        * Look for default theme JAR file.
-        * 
+        * Looks for default theme JAR file.
+        * @param fileList
         * @return Jar file or null if not found.
         */
        private File findDefaultThemeJar(String[] fileList) {
@@ -1094,13 +1121,13 @@ public class ApplicationServlet extends HttpServlet implements
        }
 
        /**
-        * Create a temporary file for given stream.
+        * Creates a temporary file for given stream.
         * 
         * @param stream
-        *            Stream to be stored into temporary file.
+        *            the Stream to be stored into temporary file.
         * @param extension
-        *            File type extension
-        * @return File
+        *            the File type extension.
+        * @return the temporary File.
         */
        private File createTemporaryFile(InputStream stream, String extension) {
                File tmpFile;
@@ -1125,15 +1152,17 @@ public class ApplicationServlet extends HttpServlet implements
        }
 
        /**
-        * Handle theme resource file requests. Resources supplied with the themes
+        * Handles theme resource file requests. Resources supplied with the themes
         * are provided by the WebAdapterServlet.
         * 
         * @param request
-        *            HTTP request
+        *            the HTTP request.
         * @param response
-        *            HTTP response
-        * @return boolean True if the request was handled and further processing
-        *         should be suppressed, false otherwise.
+        *            the HTTP response.
+        * @return boolean <code>true</code> if the request was handled and further processing
+        *         should be suppressed, <code>false</code> otherwise.
+        * @throws ServletException if an exception has occurred that interferes with the
+        *                                      servlet's normal operation.
         */
        private boolean handleResourceRequest(HttpServletRequest request,
                        HttpServletResponse response) throws ServletException {
@@ -1148,14 +1177,14 @@ public class ApplicationServlet extends HttpServlet implements
 
                String resourceId = request.getPathInfo();
 
-               // Check if this really is a resource request
+               // Checks if this really is a resource request
                if (resourceId == null || !resourceId.startsWith(RESOURCE_URI))
                        return false;
 
-               // Check the resource type
+               // Checks the resource type
                resourceId = resourceId.substring(RESOURCE_URI.length());
                InputStream data = null;
-               // Get theme resources
+               // Gets theme resources
                try {
                        data = themeSource.getResource(resourceId);
                } catch (ThemeSource.ThemeException e) {
@@ -1163,7 +1192,7 @@ public class ApplicationServlet extends HttpServlet implements
                        data = null;
                }
 
-               // Write the response
+               // Writes the response
                try {
                        if (data != null) {
                                response.setContentType(FileTypeResolver
@@ -1180,7 +1209,7 @@ public class ApplicationServlet extends HttpServlet implements
                                        // caching in some
                                        // Tomcats
                                }
-                               // Write the data to client
+                               // Writes the data to client
                                byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
                                int bytesRead = 0;
                                OutputStream out = response.getOutputStream();
@@ -1201,20 +1230,26 @@ public class ApplicationServlet extends HttpServlet implements
                return true;
        }
 
-       /** Get the variable map for the session */
+       /** 
+        * Gets the variable map for the session.
+        * @param application
+        * @param request the HTTP request.
+        * @return the variable map.
+        *  
+        */
        private static synchronized HttpVariableMap getVariableMap(
                        Application application, HttpServletRequest request) {
 
                HttpSession session = request.getSession();
 
-               // Get the application to variablemap map
+               // Gets the application to variablemap map
                Map varMapMap = (Map) session.getAttribute(SESSION_ATTR_VARMAP);
                if (varMapMap == null) {
                        varMapMap = new WeakHashMap();
                        session.setAttribute(SESSION_ATTR_VARMAP, varMapMap);
                }
 
-               // Create a variable map, if it does not exists.
+               // Creates a variable map, if it does not exists.
                HttpVariableMap variableMap = (HttpVariableMap) varMapMap
                                .get(application);
                if (variableMap == null) {
@@ -1225,7 +1260,12 @@ public class ApplicationServlet extends HttpServlet implements
                return variableMap;
        }
 
-       /** Get the current application URL from request */
+       /** 
+        * Gets the current application URL from request.
+        * @param request the HTTP request.
+        * @throws MalformedURLException if the application is denied access to the
+        *                                                               persistent data store represented by the given URL.
+        */
        private URL getApplicationUrl(HttpServletRequest request)
                        throws MalformedURLException {
 
@@ -1255,23 +1295,25 @@ public class ApplicationServlet extends HttpServlet implements
        }
 
        /**
-        * Get the existing application for given request. Looks for application
+        * Gets the existing application for given request. Looks for application
         * instance for given request based on the requested URL.
         * 
         * @param request
-        *            HTTP request
+        *            the HTTP request.
         * @return Application instance, or null if the URL does not map to valid
         *         application.
+        * @throws MalformedURLException if the application is denied access to the
+        *                                                               persistent data store represented by the given URL.
         */
        private Application getApplication(HttpServletRequest request)
                        throws MalformedURLException {
 
-               // Ensure that the session is still valid
+               // Ensures that the session is still valid
                HttpSession session = request.getSession(false);
                if (session == null)
                        return null;
 
-               // Get application list for the session.
+               // Gets application list for the session.
                LinkedList applications = (LinkedList) session
                                .getAttribute(SESSION_ATTR_APPS);
                if (applications == null)
@@ -1291,7 +1333,7 @@ public class ApplicationServlet extends HttpServlet implements
                                application = a;
                }
 
-               // Remove stopped applications from the list
+               // Removes stopped applications from the list
                if (application != null && !application.isRunning()) {
                        applications.remove(application);
                        application = null;
@@ -1301,14 +1343,27 @@ public class ApplicationServlet extends HttpServlet implements
        }
 
        /**
-        * Create a new application.
-        * 
-        * @return New application instance
-        * @throws SAXException
-        * @throws LicenseViolation
-        * @throws InvalidLicenseFile
-        * @throws LicenseSignatureIsInvalid
+        * Creates a new application.
+        * @param request the HTTP request.
+        * @return the New application instance.
+        * @throws MalformedURLException 
+        *                                                              if the application is denied access to the persistent 
+        *                                                              data store represented by the given URL.
+        * @throws InstantiationException
+        *                                                              if a new instance of the class cannot be instantiated.
+        * @throws IllegalAccessException
+        *                                                              if it does not have access to the property accessor method.
         * @throws LicenseFileHasNotBeenRead
+        *                                                                if the license file has not been read.
+        * @throws LicenseSignatureIsInvalid 
+        *                                                                if the license file has been changed or signature is
+        *                                                otherwise invalid.
+        * @throws InvalidLicenseFile
+        *                                                      if the license file is not of correct XML format.
+        * @throws LicenseViolation
+        * 
+        * @throws SAXException 
+        *                                      the Error parsing the license file.
         */
        private Application createApplication(HttpServletRequest request)
                        throws MalformedURLException, InstantiationException,
@@ -1318,10 +1373,10 @@ public class ApplicationServlet extends HttpServlet implements
 
                Application application = null;
 
-               // Get the application url
+               // Gets the application url
                URL applicationUrl = getApplicationUrl(request);
 
-               // Get application list.
+               // Gets application list.
                HttpSession session = request.getSession();
                if (session == null)
                        return null;
@@ -1336,19 +1391,19 @@ public class ApplicationServlet extends HttpServlet implements
                                        sessionBindingListener);
                }
 
-               // Create new application and start it
+               // Creates new application and start it
                try {
                        application = (Application) this.applicationClass.newInstance();
                        applications.add(application);
 
-                       // Listen to window add/removes (for web mode)
+                       // Listens to window add/removes (for web mode)
                        application.addListener((Application.WindowAttachListener) this);
                        application.addListener((Application.WindowDetachListener) this);
 
-                       // Set localte
+                       // Sets localte
                        application.setLocale(request.getLocale());
 
-                       // Get application context for this session
+                       // Gets application context for this session
                        WebApplicationContext context = (WebApplicationContext) session
                                        .getAttribute(SESSION_ATTR_CONTEXT);
                        if (context == null) {
@@ -1356,7 +1411,7 @@ public class ApplicationServlet extends HttpServlet implements
                                session.setAttribute(SESSION_ATTR_CONTEXT, context);
                        }
 
-                       // Start application and check license
+                       // Starts application and check license
                        initializeLicense(application);
                        application.start(applicationUrl, this.applicationProperties,
                                        context);
@@ -1374,7 +1429,11 @@ public class ApplicationServlet extends HttpServlet implements
 
                return application;
        }
-
+       
+/**
+ * 
+ * @param application
+ */
        private void initializeLicense(Application application) {
 
                License license = (License) licenseForApplicationClass.get(application
@@ -1385,7 +1444,22 @@ public class ApplicationServlet extends HttpServlet implements
                }
                application.setToolkitLicense(license);
        }
-
+       
+/**
+ * 
+ * @param application
+ * @throws LicenseFileHasNotBeenRead
+ *                                                                     if the license file has not been read.                                          
+ * @throws LicenseSignatureIsInvalid
+ *                                                                     if the license file has been changed or signature is
+ *                                                         otherwise invalid.
+ * @throws InvalidLicenseFile
+ *                                                     if the license file is not of correct XML format.
+ * @throws LicenseViolation
+ * 
+ * @throws SAXException
+ *                                     the Error parsing the license file.
+ */
        private void checkLicense(Application application)
                        throws LicenseFileHasNotBeenRead, LicenseSignatureIsInvalid,
                        InvalidLicenseFile, LicenseViolation, SAXException {
@@ -1422,7 +1496,7 @@ public class ApplicationServlet extends HttpServlet implements
                                System.out.print(license.getDescription());
                }
 
-               // Check license validity
+               // Checks license validity
                try {
                        license.check(applicationClass, getNumberOfActiveUsers() + 1,
                                        VERSION_MAJOR, VERSION_MINOR, "IT Mill Toolkit", null);
@@ -1442,13 +1516,13 @@ public class ApplicationServlet extends HttpServlet implements
        }
 
        /**
-        * Get the number of active application-user pairs.
+        * Gets the number of active application-user pairs.
         * 
         * This returns total number of all applications in the server that are
         * considered to be active. For an application to be active, it must have
         * been accessed less than ACTIVE_USER_REQUEST_INTERVAL ms.
         * 
-        * @return Number of active application instances in the server.
+        * @return the Number of active application instances in the server.
         */
        private int getNumberOfActiveUsers() {
 
@@ -1464,7 +1538,13 @@ public class ApplicationServlet extends HttpServlet implements
                return active;
        }
 
-       /** End application */
+       /** 
+        * Ends the application.
+        * @param request the HTTP request.
+        * @param response the HTTP response to write to.
+        * @param application the application to end.
+        * @throws IOException if the writing failed due to input/output error.
+        */
        private void endApplication(HttpServletRequest request,
                        HttpServletResponse response, Application application)
                        throws IOException {
@@ -1485,21 +1565,23 @@ public class ApplicationServlet extends HttpServlet implements
        }
 
        /**
-        * Get the existing application or create a new one. Get a window within an
+        * Gets the existing application or create a new one. Get a window within an
         * application based on the requested URI.
         * 
         * @param request
-        *            HTTP Request.
+        *            the HTTP Request.
         * @param application
-        *            Application to query for window.
+        *           the Application to query for window.
         * @return Window mathing the given URI or null if not found.
+        * @throws ServletException if an exception has occurred that interferes with the
+        *                                      servlet's normal operation.
         */
        private Window getApplicationWindow(HttpServletRequest request,
                        Application application, Map params) throws ServletException {
 
                Window window = null;
 
-               // Find the window where the request is handled
+               // Finds the window where the request is handled
                String path = request.getPathInfo();
 
                // Main window as the URI is empty
@@ -1539,7 +1621,7 @@ public class ApplicationServlet extends HttpServlet implements
                                return null;
                        }
                }
-               // Create and open new debug window for application if requested
+               // Creates and open new debug window for application if requested
                Window debugWindow = application.getWindow(DebugWindow.WINDOW_NAME);
                if (debugWindow == null) {
                        if (isDebugMode(params)
@@ -1567,12 +1649,12 @@ public class ApplicationServlet extends HttpServlet implements
        }
 
        /**
-        * Get relative location of a theme resource.
+        * Gets relative location of a theme resource.
         * 
         * @param theme
-        *            Theme name
+        *            the Theme name.
         * @param resource
-        *            Theme resource
+        *            the Theme resource.
         * @return External URI specifying the resource
         */
        public String getResourceLocation(String theme, ThemeResource resource) {
@@ -1583,10 +1665,10 @@ public class ApplicationServlet extends HttpServlet implements
        }
 
        /**
-        * Check if web adapter is in debug mode. Extra output is generated to log
+        * Checks if web adapter is in debug mode. Extra output is generated to log
         * when debug mode is enabled.
-        * 
-        * @return Debug mode
+        * @param parameters
+        * @return <code>true</code> if the web adapter is in debug mode. otherwise <code>false</code>.
         */
        public boolean isDebugMode(Map parameters) {
                if (parameters != null) {
@@ -1606,7 +1688,12 @@ public class ApplicationServlet extends HttpServlet implements
        public ThemeSource getThemeSource() {
                return themeSource;
        }
-
+       
+/**
+ * 
+ * @param application
+ * @param window
+ */
        protected void addDirtyWindow(Application application, Window window) {
                synchronized (applicationToDirtyWindowSetMap) {
                        HashSet dirtyWindows = (HashSet) applicationToDirtyWindowSetMap
@@ -1618,7 +1705,12 @@ public class ApplicationServlet extends HttpServlet implements
                        dirtyWindows.add(window);
                }
        }
-
+       
+/**
+ * 
+ * @param application
+ * @param window
+ */
        protected void removeDirtyWindow(Application application, Window window) {
                synchronized (applicationToDirtyWindowSetMap) {
                        HashSet dirtyWindows = (HashSet) applicationToDirtyWindowSetMap
@@ -1654,11 +1746,12 @@ public class ApplicationServlet extends HttpServlet implements
                event.getWindow().removeListener(
                                (Paintable.RepaintRequestListener) this);
 
-               // Add dirty window reference for closing the window
+               // Adds dirty window reference for closing the window
                addDirtyWindow(event.getApplication(), event.getWindow());
        }
 
        /**
+        * Receives repaint request events.
         * @see com.itmill.toolkit.terminal.Paintable.RepaintRequestListener#repaintRequested(Paintable.RepaintRequestEvent)
         */
        public void repaintRequested(RepaintRequestEvent event) {
@@ -1678,7 +1771,11 @@ public class ApplicationServlet extends HttpServlet implements
                        }
        }
 
-       /** Get the list of dirty windows in application */
+       /** 
+        * Gets the list of dirty windows in application.
+        * @param app 
+        * @return 
+        */
        protected Set getDirtyWindows(Application app) {
                HashSet dirtyWindows;
                synchronized (applicationToDirtyWindowSetMap) {
@@ -1687,14 +1784,20 @@ public class ApplicationServlet extends HttpServlet implements
                return dirtyWindows;
        }
 
-       /** Remove a window from the list of dirty windows */
+       /** 
+        * Removes a window from the list of dirty windows.
+        * @param app
+        * @param window  
+        */
        private void windowPainted(Application app, Window window) {
                removeDirtyWindow(app, window);
        }
 
        /**
-        * Generate server commands stream. If the server commands are not
-        * requested, return false
+        * Generates server commands stream. If the server commands are not
+        * requested, return false.
+        * @param request the HTTP request instance.
+        * @param response the HTTP response to write to.
         */
        private boolean handleServerCommands(HttpServletRequest request,
                        HttpServletResponse response) {
@@ -1703,7 +1806,7 @@ public class ApplicationServlet extends HttpServlet implements
                if (request.getParameter(SERVER_COMMAND_PARAM) == null)
                        return false;
 
-               // Get the application
+               // Gets the application
                Application application;
                try {
                        application = getApplication(request);
@@ -1713,13 +1816,13 @@ public class ApplicationServlet extends HttpServlet implements
                if (application == null)
                        return false;
 
-               // Create continuous server commands stream
+               // Creates continuous server commands stream
                try {
 
                        // Writer for writing the stream
                        PrintWriter w = new PrintWriter(response.getOutputStream());
 
-                       // Print necessary http page headers and padding
+                       // Prints necessary http page headers and padding
                        w.println("<html><head></head><body>");
                        for (int i = 0; i < SERVER_COMMAND_HEADER_PADDING; i++)
                                w.print(' ');
@@ -1782,7 +1885,7 @@ public class ApplicationServlet extends HttpServlet implements
                                        }
                                }
 
-                               // Send the generated commands and newline immediately to
+                               // Sends the generated commands and newline immediately to
                                // browser
                                w.println(" ");
                                w.flush();
@@ -1810,7 +1913,10 @@ public class ApplicationServlet extends HttpServlet implements
 
        private class SessionBindingListener implements HttpSessionBindingListener {
                private LinkedList applications;
-
+/**
+ * 
+ * @param applications
+ */
                protected SessionBindingListener(LinkedList applications) {
                        this.applications = applications;
                }
@@ -1839,7 +1945,7 @@ public class ApplicationServlet extends HttpServlet implements
                                                // Close app
                                                ((Application) apps[i]).close();
 
-                                               // Stop application server commands stream
+                                               // Stops application server commands stream
                                                Object lock = applicationToServerCommandStreamLock
                                                                .get(apps[i]);
                                                if (lock != null)
@@ -1857,14 +1963,20 @@ public class ApplicationServlet extends HttpServlet implements
 
        }
 
-       /** Implementation of ParameterHandler.ErrorEvent interface. */
+       /** 
+        * Implementation of ParameterHandler.ErrorEvent interface. 
+        */
        public class ParameterHandlerErrorImpl implements
                        ParameterHandler.ErrorEvent {
 
                private ParameterHandler owner;
 
                private Throwable throwable;
-
+/**
+ * 
+ * @param owner
+ * @param throwable
+ */
                private ParameterHandlerErrorImpl(ParameterHandler owner,
                                Throwable throwable) {
                        this.owner = owner;
@@ -1872,6 +1984,7 @@ public class ApplicationServlet extends HttpServlet implements
                }
 
                /**
+                * Gets the contained throwable.
                 * @see com.itmill.toolkit.terminal.Terminal.ErrorEvent#getThrowable()
                 */
                public Throwable getThrowable() {
@@ -1879,6 +1992,7 @@ public class ApplicationServlet extends HttpServlet implements
                }
 
                /**
+                * Gets the source ParameterHandler.
                 * @see com.itmill.toolkit.terminal.ParameterHandler.ErrorEvent#getParameterHandler()
                 */
                public ParameterHandler getParameterHandler() {
@@ -1887,19 +2001,26 @@ public class ApplicationServlet extends HttpServlet implements
 
        }
 
-       /** Implementation of URIHandler.ErrorEvent interface. */
+       /** 
+        * Implementation of URIHandler.ErrorEvent interface. 
+        */
        public class URIHandlerErrorImpl implements URIHandler.ErrorEvent {
 
                private URIHandler owner;
 
                private Throwable throwable;
-
+/**
+ * 
+ * @param owner
+ * @param throwable
+ */
                private URIHandlerErrorImpl(URIHandler owner, Throwable throwable) {
                        this.owner = owner;
                        this.throwable = throwable;
                }
 
                /**
+                * Gets the contained throwable.
                 * @see com.itmill.toolkit.terminal.Terminal.ErrorEvent#getThrowable()
                 */
                public Throwable getThrowable() {
@@ -1907,6 +2028,7 @@ public class ApplicationServlet extends HttpServlet implements
                }
 
                /**
+                * Gets the source URIHandler.
                 * @see com.itmill.toolkit.terminal.URIHandler.ErrorEvent#getURIHandler()
                 */
                public URIHandler getURIHandler() {
@@ -1915,7 +2037,7 @@ public class ApplicationServlet extends HttpServlet implements
        }
 
        /**
-        * Get AJAX application manager for an application.
+        * Gets AJAX application manager for an application.
         * 
         * If this application has not been running in ajax mode before, new manager
         * is created and web adapter stops listening to changes.
@@ -1930,11 +2052,11 @@ public class ApplicationServlet extends HttpServlet implements
                // This application is going from Web to AJAX mode, create new manager
                if (mgr == null) {
 
-                       // Create new manager
+                       // Creates new manager
                        mgr = new AjaxApplicationManager(application);
                        applicationToAjaxAppMgrMap.put(application, mgr);
 
-                       // Stop sending changes to this servlet because manager will take
+                       // Stops sending changes to this servlet because manager will take
                        // control
                        application.removeListener((Application.WindowAttachListener) this);
                        application.removeListener((Application.WindowDetachListener) this);
@@ -1952,11 +2074,12 @@ public class ApplicationServlet extends HttpServlet implements
        }
 
        /**
-        * Get resource path using different implementations. Required fo supporting
+        * Gets resource path using different implementations. Required fo supporting
         * different servlet container implementations (application servers).
         * 
-        * @param path
-        * @return
+        * @param servletContext
+        * @param path the resource path.
+        * @return the resource path.
         */
        protected static String getResourcePath(ServletContext servletContext,
                        String path) {
index 55b3bcf18949df527541fb95a8a64b515b09d6f8..1b94e1e836562c375e5d4f13597503d0f6274f20 100644 (file)
@@ -50,6 +50,7 @@ public class CollectionThemeSource implements ThemeSource {
        private List sources = new LinkedList();
 
        /**
+        * Gets the name of the ThemeSource.
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getName()
         */
        public String getName() {
@@ -57,6 +58,7 @@ public class CollectionThemeSource implements ThemeSource {
        }
 
        /**
+        * Gets the XSL stream for the specified theme and web-browser type.
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getXSLStreams(Theme,
         *      WebBrowser)
         */
@@ -64,10 +66,10 @@ public class CollectionThemeSource implements ThemeSource {
                        throws ThemeException {
                Collection xslFiles = new LinkedList();
 
-               // Add parent theme XSL
+               // Adds parent theme XSL
                xslFiles.addAll(this.getParentXSLStreams(theme, type));
 
-               // Add theme XSL, Handle subdirectories: return the first match
+               // Adds theme XSL, Handle subdirectories: return the first match
                for (Iterator i = this.sources.iterator(); i.hasNext();) {
                        ThemeSource source = (ThemeSource) i.next();
                        if (source.getThemes().contains(theme))
@@ -76,7 +78,15 @@ public class CollectionThemeSource implements ThemeSource {
 
                return xslFiles;
        }
-
+       
+/**
+ * 
+ * @param theme
+ * @param type
+ * @return
+ * @throws ThemeException If the resource is not found or there was
+ *                      some problem finding the resource.
+ */
        private Collection getParentXSLStreams(Theme theme, WebBrowser type)
                        throws ThemeException {
                Collection xslFiles = new LinkedList();
@@ -94,6 +104,7 @@ public class CollectionThemeSource implements ThemeSource {
        }
 
        /**
+        * Gets the last modification time, used to reload theme on changes.
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getModificationTime()
         */
        public long getModificationTime() {
@@ -107,11 +118,12 @@ public class CollectionThemeSource implements ThemeSource {
        }
 
        /**
+        * Gets the input stream for the resource with the specified resource id.
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getResource(String)
         */
        public InputStream getResource(String resourceId) throws ThemeException {
 
-               // Resolve theme name and resource name
+               // Resolves theme name and resource name
                int delim = resourceId.indexOf("/");
                String subResourceId = "";
                String themeName = "";
@@ -120,7 +132,7 @@ public class CollectionThemeSource implements ThemeSource {
                        themeName = resourceId.substring(0, delim);
                }
 
-               // Get list of themes to look for the resource
+               // Gets the list of themes to look for the resource
                List themes = new LinkedList();
                while (themeName != null && themeName.length() > 0) {
                        Theme t = this.getThemeByName(themeName);
@@ -151,6 +163,7 @@ public class CollectionThemeSource implements ThemeSource {
        }
 
        /**
+        * Gets the list of themes in the theme source.
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getThemes()
         */
        public Collection getThemes() {
@@ -163,6 +176,8 @@ public class CollectionThemeSource implements ThemeSource {
        }
 
        /**
+        * Gets the theme instance by name.
+        * @param name the theme name.
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getThemeByName(String)
         */
        public Theme getThemeByName(String name) {
@@ -175,10 +190,10 @@ public class CollectionThemeSource implements ThemeSource {
        }
 
        /**
-        * Add new theme source to this collection.
+        * Adds new theme source to this collection.
         * 
         * @param source
-        *            Theme source to be added.
+        *            the Theme source to be added.
         */
        public void add(ThemeSource source) {
                this.sources.add(source);
index 7b59fd8e7f50f67476397404b2e1233f587a16a6..eaafa0c2197ff4f69f1ad9e901a10f1850fadbd8 100644 (file)
@@ -54,7 +54,7 @@ import com.itmill.toolkit.ui.*;
  * This class provides a debugging window where one may view the UIDL of
  * the current window, or in a tabset the UIDL of an active frameset.
  * 
- * It is primarily inteded for creating and debugging themes.
+ * It is primarily intended for creating and debugging themes.
  * 
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -73,10 +73,11 @@ public class DebugWindow extends Window {
        private Select themeSelector;
        private Label applicationInfo = new Label("", Label.CONTENT_XHTML);
 
-       /**Create new debug window for an application.
-        * @param debuggedApplication Application to be debugged.
-        * @param session Session to be debugged.
-        * @param servlet Servlet to be debugged.
+       /**
+        * Creates the new debug window for an application.
+        * @param debuggedApplication the Application to be debugged.
+        * @param session the Session to be debugged.
+        * @param servlet the Servlet to be debugged.
         */
        protected DebugWindow(
                Application debuggedApplication,
@@ -90,7 +91,7 @@ public class DebugWindow extends Window {
                setBorder(Window.BORDER_NONE);
                
 
-               // Create control buttons
+               // Creates control buttons
                OrderedLayout controls =
                        new OrderedLayout(OrderedLayout.ORIENTATION_HORIZONTAL);
                controls.addComponent(
@@ -103,7 +104,7 @@ public class DebugWindow extends Window {
                        names.add(((Theme) i.next()).getName());
                }
 
-               // Create theme selector
+               // Creates theme selector
                themeSelector = new Select("Application Theme", names);
                themeSelector.setWriteThrough(false);
 
@@ -150,11 +151,18 @@ public class DebugWindow extends Window {
                termInfo.addComponent(browser);
                termInfo.addComponent(setbrowser);
 
-               // Set the debugged application
+               // Sets the debugged application
                setDebuggedApplication(debuggedApplication);
 
        }
-
+       
+/**
+ * 
+ * @param caption
+ * @param keys
+ * @param names
+ * @return
+ */
        protected Select createSelect(
                String caption,
                Object[] keys,
@@ -167,7 +175,10 @@ public class DebugWindow extends Window {
                s.setItemCaptionPropertyId("name");
                return s;
        }
-
+       
+       /**
+        * Saves the UIDL.
+        */
        public void saveUIDL() {
 
                synchronized (rawUIDL) {
@@ -200,20 +211,36 @@ public class DebugWindow extends Window {
                        }
                }
        }
-
+       
+       /**
+        * Commits the theme.
+        *
+        */
        public void commitTheme() {
                themeSelector.commit();
        }
-
+       
+       /**
+        * Clears the session.
+        */
        public void clearSession() {
                session.invalidate();
        }
-
+       
+       /**
+        * Restarts the Application.
+        *
+        */
        public void restartApplication() {
                if (debuggedApplication != null)
                        debuggedApplication.close();
        }
-
+       
+/**
+ * 
+ * @param window
+ * @param uidl
+ */
        protected void setWindowUIDL(Window window, String uidl) {
                String caption = "UIDL:" + window.getName();
                synchronized (tabs) {
@@ -236,7 +263,13 @@ public class DebugWindow extends Window {
                        }
                }
        }
-
+       
+/**
+ * 
+ * @param caption
+ * @param uidl
+ * @return
+ */
        protected String getHTMLFormattedUIDL(String caption, String uidl) {
                StringBuffer sb = new StringBuffer();
 
@@ -318,22 +351,21 @@ public class DebugWindow extends Window {
         * with characters in the specified <code>String</code>. The substring
         * begins at the specified <code>start</code> and extends to the character
         * at index <code>end - 1</code> or to the end of the
-        * <code>String</code> if no such character exists. First the
-        * characters in the substring are removed and then the specified
+        * <code>String</code> if no such character exists. 
+        * <p>
+        * First the characters in the substring are removed and then the specified
         * <code>String</code> is inserted at <code>start</code>. (The
         * <code>StringBuffer</code> will be lengthened to accommodate the
         * specified String if necessary.)
+        * </p>
         * <p>
         * NOTE: This operation is slow.
         * </p>
-        * 
-        * @param      start    The beginning index, inclusive.
-        * @param      end      The ending index, exclusive.
-        * @param      str   String that will replace previous contents.
+        * @param      text
+        * @param      start    the beginning index, inclusive.
+        * @param      end      the ending index, exclusive.
+        * @param      str      the String that will replace previous contents.
         * @return     This string buffer.
-        * @exception  StringIndexOutOfBoundsException  if <code>start</code>
-        *             is negative, greater than <code>length()</code>, or
-        *                 greater than <code>end</code>.
         */
        protected static String replace(
                String text,
@@ -342,7 +374,14 @@ public class DebugWindow extends Window {
                String str) {
                return new StringBuffer(text).replace(start, end, str).toString();
        }
-
+       
+/**
+ * 
+ * @param text
+ * @param oldStr
+ * @param newStr
+ * @return
+ */
        protected static String replaceAll(
                String text,
                String oldStr,
@@ -368,7 +407,7 @@ public class DebugWindow extends Window {
 
        /**
         * Sets the application.
-        * @param application The application to set
+        * @param application the application to set.
         */
        protected void setDebuggedApplication(Application application) {
                this.debuggedApplication = application;
@@ -383,7 +422,7 @@ public class DebugWindow extends Window {
 
        /**
         * Returns the servlet.
-        * @return WebAdapterServlet
+        * @return the WebAdapterServlet.
         */
        protected ApplicationServlet getServlet() {
                return servlet;
@@ -391,7 +430,7 @@ public class DebugWindow extends Window {
 
        /**
         * Returns the session.
-        * @return HttpSession
+        * @return the HttpSession.
         */
        protected HttpSession getSession() {
                return session;
@@ -399,7 +438,7 @@ public class DebugWindow extends Window {
 
        /**
         * Sets the servlet.
-        * @param servlet The servlet to set
+        * @param servlet the servlet to set.
         */
        protected void setServlet(ApplicationServlet servlet) {
                this.servlet = servlet;
@@ -407,7 +446,7 @@ public class DebugWindow extends Window {
 
        /**
         * Sets the session.
-        * @param session The session to set
+        * @param session the session to set.
         */
        protected void setSession(HttpSession session) {
                this.session = session;
index eeff3f1c866b1155399e927be33b88e3acdc652b..f2df8157165c8826ff90439c8433b7ed92f651b7 100644 (file)
@@ -49,14 +49,20 @@ public class DirectoryThemeSource implements ThemeSource {
        private Theme theme;
        private ApplicationServlet webAdapterServlet;
 
-       /** Collection of subdirectory entries */
+       /** 
+        * Collection of subdirectory entries. 
+        */
        private Collection subdirs = new LinkedList();
 
-       /** Creates a new instance of ThemeRepository by reading the themes
+       /** 
+        * Creates a new instance of ThemeRepository by reading the themes
         * from a local directory.
-        * @param path Path to the source directory .
-        * @param url External URL of the repository
-        * @throws FileNotFoundException if no theme files are found
+        * @param path the Path to the source directory .
+        * @param webAdapterServlet 
+        * @throws ThemeException If the resource is not found or there was
+        *                                              some problem finding the resource.
+        * @throws FileNotFoundException if no theme files are found.
+        * @throws IOException if the writing failed due to input/output error.
         */
        public DirectoryThemeSource(File path, ApplicationServlet webAdapterServlet)
                throws ThemeException, FileNotFoundException, IOException {
@@ -69,7 +75,7 @@ public class DirectoryThemeSource implements ThemeSource {
                        throw new java.io.FileNotFoundException(
                                "Theme path must be a directory ('" + this.path + "')");
 
-               // Load description file
+               // Loads description file
                File description = new File(path, Theme.DESCRIPTIONFILE);
                if (description.exists()) {
                        try {
@@ -109,6 +115,7 @@ public class DirectoryThemeSource implements ThemeSource {
        }
 
        /**
+        * Gets the XSL stream for the specified theme and web-browser type.
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getXSLStreams(Theme, WebBrowser)
         */
        public Collection getXSLStreams(Theme theme, WebBrowser type)
@@ -123,7 +130,7 @@ public class DirectoryThemeSource implements ThemeSource {
                                Log.info("DirectoryThemeSource: Loading XSL from: " + theme);
                        }
 
-                       // Reload the description file
+                       // Reloads the description file
                        File description = new File(path, Theme.DESCRIPTIONFILE);
                        if (description.exists()) {
                                try {
@@ -136,7 +143,7 @@ public class DirectoryThemeSource implements ThemeSource {
 
                        Collection fileNames = theme.getFileNames(type, Theme.MODE_HTML);
 
-                       // Add all XSL file streams
+                       // Adds all XSL file streams
                        for (Iterator i = fileNames.iterator(); i.hasNext();) {
                                File f = new File(this.path, (String) i.next());
                                if (f.getName().endsWith(".xsl"))
@@ -149,7 +156,7 @@ public class DirectoryThemeSource implements ThemeSource {
 
                } else {
 
-                       // Handle subdirectories: return the first match
+                       // Handles subdirectories: return the first match
                        for (Iterator i = this.subdirs.iterator(); i.hasNext();) {
                                ThemeSource source = (ThemeSource) i.next();
                                if (source.getThemes().contains(theme))
@@ -157,12 +164,13 @@ public class DirectoryThemeSource implements ThemeSource {
                        }
                }
 
-               // Return the concatenated stream
+               // Returns the concatenated stream
                return xslFiles;
 
        }
 
        /**
+        * Gets the last modification time, used to reload theme on changes.
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getModificationTime()
         */
        public long getModificationTime() {
@@ -170,13 +178,13 @@ public class DirectoryThemeSource implements ThemeSource {
                long modTime = 0;
 
                // If this directory contains a theme 
-               // return XSL from this theme   
+               // returns XSL from this theme  
                if (this.theme != null) {
 
-                       // Get modification time of the description file
+                       // Gets modification time of the description file
                        modTime = new File(this.path, Theme.DESCRIPTIONFILE).lastModified();
 
-                       // Get modification time of the themes directory itself
+                       // Gets modification time of the themes directory itself
                        if (this.path.lastModified() > modTime) {
                                modTime = this.path.lastModified();
                        }
@@ -190,7 +198,7 @@ public class DirectoryThemeSource implements ThemeSource {
                                }
                        }
                } else {
-                       // Handle subdirectories
+                       // Handles subdirectories
                        for (Iterator i = this.subdirs.iterator(); i.hasNext();) {
                                ThemeSource source = (ThemeSource) i.next();
                                long t = source.getModificationTime();
@@ -204,6 +212,7 @@ public class DirectoryThemeSource implements ThemeSource {
        }
 
        /**
+        * Gets the input stream for the resource with the specified resource id.
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getResource(String)
         */
        public InputStream getResource(String resourceId)
@@ -240,6 +249,7 @@ public class DirectoryThemeSource implements ThemeSource {
        }
 
        /**
+        * Gets the list of themes in the theme source.
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getThemes()
         */
        public Collection getThemes() {
@@ -257,6 +267,7 @@ public class DirectoryThemeSource implements ThemeSource {
        }
 
        /**
+        * Gets the name of the ThemeSource.
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getName()
         */
        public String getName() {
@@ -268,6 +279,7 @@ public class DirectoryThemeSource implements ThemeSource {
        }
 
        /**
+        * Gets the Theme instance by name.
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getThemeByName(String)
         */
        public Theme getThemeByName(String name) {
index c3d2deb35ee9f480626bf96d8c35c13f6b1abfaa..0a54120ed919c9b218428c40ae1822b1dd5027d1 100644 (file)
@@ -30,7 +30,8 @@ package com.itmill.toolkit.terminal.web;
 
 import java.io.InputStream;
 
-/** WebAdapter implementation of the UploadStream interface.
+/** 
+ * WebAdapter implementation of the UploadStream interface.
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -39,22 +40,24 @@ import java.io.InputStream;
 public class HttpUploadStream
        implements com.itmill.toolkit.terminal.UploadStream {
 
-       /** Holds value of property variableName. */
+       /** 
+        * Holds value of property variableName. 
+        */
        private String streamName;
        private String contentName;
        private String contentType;
 
-       /** Holds value of property variableValue. */
+       /** 
+        * Holds value of property variableValue. 
+        */
        private InputStream stream;
 
-       /** Creates a new instance of UploadStreamImpl
-        *  @param name of the stream
-        *  @param stream input stream
-        *  @param contentName name of the content
-        *  @param contentType type of the content
-        *  @param time Time of event creation 
-        *       (for parallel events (for example in 
-        *       same http request), times are equal)
+       /** 
+        * Creates a new instance of UploadStreamImpl
+        * @param name the name of the stream.
+        * @param stream the input stream.
+        * @param contentName the name of the content.
+        * @param contentType the type of the content.
         */
        public HttpUploadStream(
                String name,
@@ -67,31 +70,35 @@ public class HttpUploadStream
                this.contentType = contentType;
        }
 
-       /** Get the name of the stream.
-        * @return name of the stream.
+       /** 
+        * Gets the name of the stream.
+        * @return the name of the stream.
         */
        public String getStreamName() {
                return this.streamName;
        }
 
-       /** Get input stream.
-        * @return Input stream.
+       /** 
+        * Gets the input stream.
+        * @return the Input stream.
         */
        public InputStream getStream() {
                return this.stream;
        }
 
-       /** Get input stream content type.
-        * @return content type of the input stream.
+       /** 
+        * Gets the input stream content type.
+        * @return the content type of the input stream.
         */
        public String getContentType() {
                return this.contentType;
        }
 
-       /** Get stream content name.
-        *  Stream content name usually differs from the actual stream name.
-        *  it is used toi identify the content of the stream.
-        * @return Name of the stream content.
+       /** 
+        * Gets the stream content name.
+        * Stream content name usually differs from the actual stream name.
+        * It is used to identify the content of the stream.
+        * @return the Name of the stream content.
         */
        public String getContentName() {
                return this.contentName;
index de296b1eeca9263d9cee6fbbefcdcbe22dd234a2..ee7033c61b013601476a1ea6606b7f5e662d5266 100644 (file)
@@ -70,7 +70,12 @@ public class HttpVariableMap {
        // Id generator
        private long lastId = 0;
 
-       /** Convert the string to a supported class */
+       /** 
+        * Converts the string to a supported class.
+        * @param type 
+        * @param value 
+        * @throws java.lang.ClassCastException
+        */
        private static Object convert(Class type, String value)
                throws java.lang.ClassCastException {
                try {
@@ -94,7 +99,12 @@ public class HttpVariableMap {
                }
        }
 
-       /** Register a new variable.
+       /** 
+        * Registers a new variable.
+        * @param name the name of the variable.
+        * @param type
+        * @param value
+        * @param owner the Listener for variable changes.
         *
         * @return id to assigned for this variable.
         */
@@ -104,7 +114,7 @@ public class HttpVariableMap {
                Object value,
                VariableOwner owner) {
 
-               // Check that the type of the class is supported
+               // Checks that the type of the class is supported
                if (!(type.equals(Boolean.class)
                        || type.equals(Integer.class)
                        || type.equals(String.class)
@@ -115,7 +125,7 @@ public class HttpVariableMap {
 
                synchronized (mapLock) {
 
-                       // Check if the variable is already mapped
+                       // Checks if the variable is already mapped
                        HashMap nameToIdMap = (HashMap) ownerToNameToIdMap.get(owner);
                        if (nameToIdMap == null) {
                                nameToIdMap = new HashMap();
@@ -124,7 +134,7 @@ public class HttpVariableMap {
                        String id = (String) nameToIdMap.get(name);
 
                        if (id == null) {
-                               // Generate new id and register it
+                               // Generates new id and register it
                                id = "v" + String.valueOf(++lastId);
                                nameToIdMap.put(name, id);
                                idToOwnerMap.put(id, new WeakReference(owner));
@@ -138,12 +148,16 @@ public class HttpVariableMap {
                }
        }
 
-       /** Unregisters a variable. */
+       /** 
+        * Unregisters the variable.
+        * @param name the name of the variable.
+        * @param owner the Listener for variable changes.
+        */
        public void unregisterVariable(String name, VariableOwner owner) {
 
                synchronized (mapLock) {
 
-                       // Get the id
+                       // Gets the id
                        HashMap nameToIdMap = (HashMap) ownerToNameToIdMap.get(owner);
                        if (nameToIdMap == null)
                                return;
@@ -151,7 +165,7 @@ public class HttpVariableMap {
                        if (id != null)
                                return;
 
-                       // Remove all the mappings
+                       // Removes all the mappings
                        nameToIdMap.remove(name);
                        if (nameToIdMap.isEmpty())
                                ownerToNameToIdMap.remove(owner);
@@ -170,20 +184,31 @@ public class HttpVariableMap {
         */
        private class ParameterContainer {
 
-               /** Construct the mapping: listener to set of listened parameter names */
+               /** 
+                * Constructs the mapping: listener to set of listened parameter names. 
+                */
                private HashMap parameters = new HashMap();
 
-               /** Parameter values */
+               /** 
+                * Parameter values. 
+                */
                private HashMap values = new HashMap();
 
-               /** Multipart parser used for parsing the request */
+               /** 
+                * Multipart parser used for parsing the request. 
+                */
                private ServletMultipartRequest parser = null;
 
-               /** Name - Value mapping of parameters that are not variables */
+               /** 
+                * Name - Value mapping of parameters that are not variables. 
+                */
                private HashMap nonVariables = new HashMap();
 
-               /** Create new parameter container and parse the parameters from the request using
-                * GET, POST and POST/MULTIPART parsing
+               /** 
+                * Creates the new parameter container and parse the parameters from the request using
+                * GET, POST and POST/MULTIPART parsing.
+                * @param req the HTTP request.
+                * @throws IOException if the writing failed due to input/output error.
                 */
                public ParameterContainer(HttpServletRequest req) throws IOException {
                        // Parse GET / POST parameters
@@ -235,7 +260,11 @@ public class HttpVariableMap {
 
                }
 
-               /** Add parameter to container */
+               /** 
+                * Adds the parameter to container.
+                * @param name the name of the parameter.
+                * @param value 
+                */
                private void addParam(String name, String[] value) {
 
                        // Support name="set:name=value" value="ignored" notation
@@ -330,7 +359,7 @@ public class HttpVariableMap {
                                String[] curVal = (String[]) values.get(name);
                                ArrayList elems = new ArrayList();
 
-                               // Add old values if present.
+                               // Adds old values if present.
                                if (curVal != null) {
                                        for (int i = 0; i < curVal.length; i++)
                                                elems.add(curVal[i]);
@@ -355,7 +384,7 @@ public class HttpVariableMap {
                                String[] curVal = (String[]) values.get(name);
                                ArrayList elems = new ArrayList();
 
-                               // Add old values if present.
+                               // Adds old values if present.
                                if (curVal != null) {
                                        for (int i = 0; i < curVal.length; i++)
                                                elems.add(curVal[i]);
@@ -378,13 +407,13 @@ public class HttpVariableMap {
                                        value = new String[0];
                        }
 
-                       // Get the owner
+                       // Gets the owner
                        WeakReference ref = (WeakReference) idToOwnerMap.get(name);
                        VariableOwner owner = null;
                        if (ref != null)
                                owner = (VariableOwner) ref.get();
 
-                       // Add the parameter to mapping only if they have owners
+                       // Adds the parameter to mapping only if they have owners
                        if (owner != null) {
                                Set p = (Set) parameters.get(owner);
                                if (p == null)
@@ -407,58 +436,77 @@ public class HttpVariableMap {
                                        idToValueMap.remove(name);
                                }
 
-                               // Add the parameter to set of non-variables
+                               // Adds the parameter to set of non-variables
                                nonVariables.put(name, value);
                        }
 
                }
 
-               /** Get the set of all parameters connected to given variable owner */
+               /** 
+                * Gets the set of all parameters connected to given variable owner.
+                * @param owner the Listener for variable changes.
+                * @return  the set of all parameters connected to variable owner.
+                */
                public Set getParameters(VariableOwner owner) {
                        if (owner == null)
                                return null;
                        return (Set) parameters.get(owner);
                }
 
-               /** Get the set of all variable owners owning parameters in this request */
+               /** 
+                * Gets the set of all variable owners owning parameters in this request.
+                * @return  
+                */
                public Set getOwners() {
                        return parameters.keySet();
                }
 
-               /** Get the value of a parameter */
+               /** 
+                * Gets the value of a parameter.
+                * @param parameterName the name of the parameter.
+                * @return  the value of the parameter.
+                */
                public String[] getValue(String parameterName) {
                        return (String[]) values.get(parameterName);
                }
 
-               /** Get the servlet multipart parser */
+               /** 
+                * Gets the servlet multipart parser.
+                * @return the parser.
+                */
                public ServletMultipartRequest getParser() {
                        return parser;
                }
 
-               /** Get the name - value[] mapping of non variable paramteres */
+               /** 
+                * Gets the name - value[] mapping of non variable paramteres.
+                * @return  
+                */
                public Map getNonVariables() {
                        return nonVariables;
                }
        }
 
-       /** Handle all variable changes in this request.
-       *  @param req Http request to handle
-       *  @param listeners If the list is non null, only the listed listeners are
-       *  served. Otherwise all the listeners are served.
-       *  @return Name to Value[] mapping of unhandled variables
-       */
+       /** 
+        * Handles all variable changes in this request.
+        * @param req the Http request to handle.
+        * @param errorListener If the list is non null, only the listed listeners are
+        * served. Otherwise all the listeners are served.
+        * @return Name to Value[] mapping of unhandled variables.
+        * @throws IOException if the writing failed due to input/output error.
+        */
        public Map handleVariables(
                HttpServletRequest req,
                Terminal.ErrorListener errorListener)
                throws IOException {
 
-               // Get the parameters
+               // Gets the parameters
                ParameterContainer parcon = new ParameterContainer(req);
 
-               // Sort listeners to dependency order
+               // Sorts listeners to dependency order
                List listeners = getDependencySortedListenerList(parcon.getOwners());
 
-               // Handle all parameters for all listeners
+               // Handles all parameters for all listeners
                while (!listeners.isEmpty()) {
                        VariableOwner listener = (VariableOwner) listeners.remove(0);
                        boolean changed = false; // Has any of this owners variabes changed
@@ -467,9 +515,9 @@ public class HttpVariableMap {
                        if (params != null) { // Name value mapping
                                Map variables = new HashMap();
                                for (Iterator pi = params.iterator(); pi.hasNext();) {
-                                       // Get the name of the parameter
+                                       // Gets the name of the parameter
                                        String param = (String) pi.next();
-                                       // Extract more information about the parameter
+                                       // Extracts more information about the parameter
                                        String varName = (String) idToNameMap.get(param);
                                        Class varType = (Class) idToTypeMap.get(param);
                                        Object varOldValue = idToValueMap.get(param);
@@ -582,15 +630,22 @@ public class HttpVariableMap {
                return parcon.getNonVariables();
        }
 
-       /** Implementation of VariableOwner.Error interface. */
+       /** 
+        * Implementation of VariableOwner.Error interface. 
+        */
        public class TerminalErrorImpl implements Terminal.ErrorEvent {
                private Throwable throwable;
-
+               
+/**
+ * 
+ * @param throwable
+ */
                private TerminalErrorImpl(Throwable throwable) {
                        this.throwable = throwable;
                }
 
                /**
+                * Gets the contained throwable.
                 * @see com.itmill.toolkit.terminal.Terminal.ErrorEvent#getThrowable()
                 */
                public Throwable getThrowable() {
@@ -599,13 +654,20 @@ public class HttpVariableMap {
 
        }
 
-       /** Implementation of VariableOwner.Error interface. */
+       /** 
+        * Implementation of VariableOwner.Error interface. 
+        */
        public class VariableOwnerErrorImpl
                extends TerminalErrorImpl
                implements VariableOwner.ErrorEvent {
 
                private VariableOwner owner;
-
+               
+/**
+ * 
+ * @param owner the Listener for variable changes.
+ * @param throwable
+ */
                private VariableOwnerErrorImpl(
                        VariableOwner owner,
                        Throwable throwable) {
@@ -614,6 +676,7 @@ public class HttpVariableMap {
                }
 
                /**
+                * Gets the source VariableOwner.
                 * @see com.itmill.toolkit.terminal.VariableOwner.ErrorEvent#getVariableOwner()
                 */
                public VariableOwner getVariableOwner() {
@@ -622,12 +685,13 @@ public class HttpVariableMap {
 
        }
 
-       /** Resolve the VariableOwners needed from the request and sort
+       /** 
+        * Resolves the VariableOwners needed from the request and sort
         * them to assure that the dependencies are met (as well as possible).
+        * 
+        * @param listeners 
         * @return List of variable list changers, that are needed for handling
         * all the variables in the request
-        * @param req request to be handled
-        * @param parser multipart parser for the request
         */
        private List getDependencySortedListenerList(Set listeners) {
 
@@ -695,12 +759,12 @@ public class HttpVariableMap {
                        }
                }
 
-               // Add the listeners with dependencies in sane order to the result
+               // Adds the listeners with dependencies in sane order to the result
                for (Iterator li = deepdeps.keySet().iterator(); li.hasNext();) {
                        VariableOwner l = (VariableOwner) li.next();
                        boolean immediate = l.isImmediate();
 
-                       // Add each listener after the last depended listener already in
+                       // Adds each listener after the last depended listener already in
                        // the list
                        int index = -1;
                        for (Iterator di = ((Set) deepdeps.get(l)).iterator();
@@ -723,7 +787,7 @@ public class HttpVariableMap {
                        }
                }
 
-               // Append immediate listeners to normal listeners
+               // Appends immediate listeners to normal listeners
                // This way the normal handlers are always called before
                // immediate ones
                resultNormal.addAll(resultImmediate);
index 0851b2a7cbab90c5a7029ceec6548ba26df84ed6..4a0707e7b0954b786c7c712b5828e556d30b17a3 100644 (file)
@@ -69,7 +69,9 @@ public class JarThemeSource implements ThemeSource {
 
        private Cache resourceCache = new Cache();
 
-       /** Collection of subdirectory entries */
+       /** 
+        * Collection of subdirectory entries. 
+        */
        private Collection subdirs = new LinkedList();
 
        /**
@@ -77,11 +79,18 @@ public class JarThemeSource implements ThemeSource {
         * local directory.
         * 
         * @param file
-        *            Path to the JAR archive .
+        *            the Path to the JAR archive .
+        * @param webAdapterServlet
         * @param path
-        *            Path inside the archive to be processed.
+        *            the Path inside the archive to be processed.
+        * @throws ThemeException 
+        *                                      If the resource is not found or there was
+        *                                                some problem finding the resource.
+        * 
         * @throws FileNotFoundException
-        *             if no theme files are found
+        *             if no theme files are found.
+        * @throws IOException
+        *                              if the writing failed due to input/output error.
         */
        public JarThemeSource(File file, ApplicationServlet webAdapterServlet,
                        String path) throws ThemeException, FileNotFoundException,
@@ -101,7 +110,7 @@ public class JarThemeSource implements ThemeSource {
 
                this.webAdapterServlet = webAdapterServlet;
 
-               // Load description file
+               // Loads description file
                JarEntry entry = jar.getJarEntry(this.path + Theme.DESCRIPTIONFILE);
                if (entry != null) {
                        try {
@@ -142,6 +151,7 @@ public class JarThemeSource implements ThemeSource {
        }
 
        /**
+        * Gets the XSL stream for the specified theme and web-browser type.
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getXSLStreams(Theme,
         *      WebBrowser)
         */
@@ -199,7 +209,7 @@ public class JarThemeSource implements ThemeSource {
        }
 
        /**
-        * Return modication time of the jar file.
+        * Returns modication time of the jar file.
         * 
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getModificationTime()
         */
@@ -208,6 +218,7 @@ public class JarThemeSource implements ThemeSource {
        }
 
        /**
+        * Gets the input stream for the resource with the specified resource id.
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getResource(String)
         */
        public InputStream getResource(String resourceId)
@@ -220,7 +231,7 @@ public class JarThemeSource implements ThemeSource {
                                        .substring(this.theme.getName().length() + 1);
                }
 
-               // Return the resource inside the jar file
+               // Returns the resource inside the jar file
                JarEntry entry = jar.getJarEntry(resourceId);
                if (entry != null)
                        try {
@@ -230,7 +241,7 @@ public class JarThemeSource implements ThemeSource {
                                if (data != null)
                                        return new ByteArrayInputStream(data);
 
-                               // Read data
+                               // Reads data
                                int bufSize = 1024;
                                ByteArrayOutputStream out = new ByteArrayOutputStream(bufSize);
                                InputStream in = jar.getInputStream(entry);
@@ -253,6 +264,7 @@ public class JarThemeSource implements ThemeSource {
        }
 
        /**
+        * Gets the list of themes in the theme source.
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getThemes()
         */
        public Collection getThemes() {
@@ -269,6 +281,7 @@ public class JarThemeSource implements ThemeSource {
        }
 
        /**
+        * Gets the name of the ThemeSource.
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getName()
         */
        public String getName() {
@@ -280,6 +293,7 @@ public class JarThemeSource implements ThemeSource {
        }
 
        /**
+        * Gets the Theme instance by name.
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getThemeByName(String)
         */
        public Theme getThemeByName(String name) {
@@ -301,18 +315,32 @@ public class JarThemeSource implements ThemeSource {
        private class Cache {
 
                private Map data = new HashMap();
-
+               
+/**
+ * 
+ * @param key
+ * @param value
+ */
                public void put(Object key, Object value) {
                        data.put(key, new SoftReference(new CacheItem(value)));
                }
-
+               
+/**
+ * 
+ * @param key
+ * @return
+ */
                public Object get(Object key) {
                        SoftReference ref = (SoftReference) data.get(key);
                        if (ref != null)
                                return ((CacheItem) ref.get()).getData();
                        return null;
                }
-
+               
+               /**
+                * Clears the data.
+                *
+                */
                public void clear() {
                        data.clear();
                }
@@ -327,15 +355,26 @@ public class JarThemeSource implements ThemeSource {
        private class CacheItem {
 
                private Object data;
-
+               
+/**
+ * 
+ * @param data
+ */
                public CacheItem(Object data) {
                        this.data = data;
                }
-
+               
+/**
+ * 
+ * @return
+ */
                public Object getData() {
                        return this.data;
                };
-
+               
+               /**
+                * @see java.lang.Object#finalize()
+                */
                public void finalize() throws Throwable {
                        this.data = null;
                        super.finalize();
index 5feec4874d1909dafbaf32aef04b6a8e4a1bb59f..a46ba3a01babb27c93f08699c072cafd434e9ad2 100644 (file)
 
 package com.itmill.toolkit.terminal.web;
 
-/** <p>Class providing centralized logging services. The logger defines
+/** 
+ * <p>
+ * Class providing centralized logging services. The logger defines
  * five message types, and provides methods to create messages of those
- * types. These types are:</p>
+ * types. These types are:
+ * </p>
  * 
  * <ul>
  * <li> <code>info</code> - Useful information generated during normal
- * operation of the application
+ * operation of the application.
  * <li> <code>warning</code> - An error situation has occurred, but the
- * operation was able to finish succesfully
+ * operation was able to finish succesfully.
  * <li> <code>error</code> - An error situation which prevented the
- * operation from finishing succesfully
+ * operation from finishing succesfully.
  * <li> <code>debug</code> - Internal information from the application meant
- * for developers
+ * for developers.
  * <li> <code>exception</code> - A Java exception reported using the logger.
- * Includes the exception stack trace and a possible free-form message
+ * Includes the exception stack trace and a possible free-form message.
  * </ul>
  * 
- * <p>Currently the class offers logging only to the standard output</p>
+ * <p>
+ * Currently the class offers logging only to the standard output.
+ * </p>
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -61,33 +66,37 @@ public class Log {
     private static String LOG_MSG_DEBUG  = "[DEBUG]";
     private static String LOG_MSG_EXCEPT = "[EXCEPTION]";
             
-    /** Logs a <code>warning</code> message.
+    /** 
+     * Logs the <code>warning</code> message.
      * 
-     * @param message Message <code>String</code> to be logged.
+     * @param message the Message String to be logged.
      */
     protected static synchronized void warn(java.lang.String message) {
         if (Log.useStdOut) System.out.println(LOG_MSG_WARN+ " "+message);
     }    
-    /** Logs a <code>debug</code> message.
+    /** 
+     * Logs the <code>debug</code> message.
      * 
-     * @param message Message <code>String</code> to be logged.
+     * @param message the Message String to be logged.
      */
     protected static synchronized void debug(java.lang.String message) {
         if (Log.useStdOut) System.out.println(LOG_MSG_DEBUG+ " "+message);
     }
 
-    /** Logs an <code>info</code> message.
+    /** 
+     * Logs an <code>info</code> message.
      * 
-     * @param message Message <code>String</code> to be logged.
+     * @param message the Message String to be logged.
      */
     protected static synchronized void info(java.lang.String message) {
         if (Log.useStdOut) System.out.println(LOG_MSG_INFO+ " "+message);
     }  
     
-    /** Logs a Java exception and an accompanying error message.
+    /** 
+     * Logs the Java exception and an accompanying error message.
      * 
-     * @param message Message <code>String</code> to be logged.
-     * @param e Exception to be logged.
+     * @param message the Message String to be logged.
+     * @param e the Exception to be logged.
      */
     protected static synchronized void except(java.lang.String message, Exception e) {
         if (Log.useStdOut) {
@@ -96,9 +105,10 @@ public class Log {
         }
     }
     
-    /** Logs an <code>error</code> message.
+    /** 
+     * Logs the <code>error</code> message.
      * 
-     * @param message Message <code>String</code> to be logged.
+     * @param message the Message String to be logged.
      */
     protected static synchronized void error(java.lang.String message) {
         if (Log.useStdOut) System.out.println(LOG_MSG_ERROR+ " "+message);
index 0791983b9908490a98007d7dc8b9763688e50d4a..a6358480db9ab3600dd3f4440a0e18f6ac0126a0 100644 (file)
@@ -44,75 +44,76 @@ import java.util.Vector;
 import java.io.File;
 
 /**
-       A Multipart form data parser.  Parses an input stream and writes out any files found, 
-       making available a hashtable of other url parameters.  As of version 1.17 the files can
-       be saved to memory, and optionally written to a database, etc.
-       
-       <BR>
-       <BR>
-       Copyright (C)2001 Jason Pell.
-       <BR>
-
-       <PRE>
-       This library is free software; you can redistribute it and/or
-       modify it under the terms of the GNU Lesser General Public
-       License as published by the Free Software Foundation; either
-       version 2.1 of the License, or (at your option) any later version.
-       <BR>
-       This library is distributed in the hope that it will be useful,
-       but WITHOUT ANY WARRANTY; without even the implied warranty of
-       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-       Lesser General Public License for more details.
-       <BR>
-       You should have received a copy of the GNU Lesser General Public
-       License along with this library; if not, write to the Free Software
-       Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-       <BR>    
-       Email:  jasonpell@hotmail.com
-       Url:    http://www.geocities.com/jasonpell
-       </PRE>
-
-       @author Jason Pell
-
-       @version 1.18   Fixed some serious bugs.  A new method readAndWrite(InputStream in, OutputStream out) which now does
-                                       the generic processing in common for readAndWriteFile and readFile.  The differences are that now
-                                       the two extra bytes at the end of a file upload are processed once, instead of after each line.  Also
-                                       if an empty file is encountered, an outputstream is opened, but then deleted if no data written to it.
-                                       The getCharArray() method has been removed.  Replaced by the new String(bytes, encoding) method using
-                                       a specific encoding (Defaults to ISO-8859-1) to ensure that extended characters are supported.  
-                                       All strings are processed using this encoding.  The addition of static methods setEncoding(String) 
-                                       and getEncoding() to allow the  use of MultipartRequest with a specific encoding type.  All instances
-                                       of MultipartRequest will utilise the static charEncoding variable value, that the setEncoding() method
-                                       can be used to set.  Started to introduce support for multiple file uploads with the same form field 
-                                       name, but not completed for v1.18.  26/06/2001
-       @version 1.17   A few _very_ minor fixes.  Plus a cool new feature added.  The ability to save files into memory.
-                                       <b>Thanks to Mark Latham for the idea and some of the code.</b> 11/04/2001
-       @version 1.16   Added support for multiple parameter values.  Also fixed getCharArray(...) method to support 
-                                       parameters with non-english ascii values (ascii above 127).  Thanks to Stefan Schmidt & 
-                                       Michael Elvers for this.  (No fix yet for reported problems with Tomcat 3.2 or a single extra 
-                                       byte appended to uploads of certain files).  By 1.17 hopefully will have a resolution for the
-                                       second problem.  14/03/2001
-       @version 1.15   A new parameter added, intMaxReadBytes, to allow arbitrary length files.  Released under
-                                       the LGPL (Lesser General Public License).       03/02/2001
-       @version 1.14   Fix for IE problem with filename being empty.  This is because IE includes a default Content-Type
-                                       even when no file is uploaded.  16/02/2001
-       @version 1.13   If an upload directory is not specified, then all file contents are sent into oblivion, but the
-                                       rest of the parsing works as normal.
-       @version 1.12   Fix, was allowing zero length files.  Will not even create the output file until there is
-                                       something to write.  getFile(String) now returns null, if a zero length file was specified.  06/11/2000
-       @version 1.11   Fix, in case Content-type is not specified.
-       @version 1.1    Removed dependence on Servlets.  Now passes in a generic InputStream instead.
-                                       "Borrowed" readLine from Tomcat 3.1 ServletInputStream class,
-                               so we can remove some of the dependencies on ServletInputStream.
-                                       Fixed bug where a empty INPUT TYPE="FILE" value, would cause an exception.
-       @version 1.0    Initial Release.
-*/
+ * A Multipart form data parser.  Parses an input stream and writes out any files found, 
+ * making available a hashtable of other url parameters.  As of version 1.17 the files can
+ * be saved to memory, and optionally written to a database, etc.
+ *
+ * <BR>
+ * <BR>
+ * Copyright (C)2001 Jason Pell.
+ * <BR>
+ *
+ * <PRE>
+ *     This library is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU Lesser General Public
+ *     License as published by the Free Software Foundation; either
+ *     version 2.1 of the License, or (at your option) any later version.
+ *     <BR>
+ *     This library is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *     Lesser General Public License for more details.
+ *     <BR>
+ *     You should have received a copy of the GNU Lesser General Public
+ *     License along with this library; if not, write to the Free Software
+ *     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *     <BR>    
+ *     Email:  jasonpell@hotmail.com
+ *     Url:    http://www.geocities.com/jasonpell
+ *     </PRE>
+ *
+ * @author Jason Pell
+ *
+ * @version 1.18       Fixed some serious bugs.  A new method readAndWrite(InputStream in, OutputStream out) which now does
+ *                                     the generic processing in common for readAndWriteFile and readFile.  The differences are that now
+ *                                     the two extra bytes at the end of a file upload are processed once, instead of after each line.  Also
+ *                                     if an empty file is encountered, an outputstream is opened, but then deleted if no data written to it.
+ *                                     The <code>getCharArray</code> method has been removed.  Replaced by the new String(bytes, encoding) method using
+ *                                     a specific encoding (Defaults to ISO-8859-1) to ensure that extended characters are supported.  
+ *                                     All strings are processed using this encoding.  The addition of static methods setEncoding(String) 
+ *                                     and <code>getEncoding</code> method to allow the        use of <code>MultipartRequest</code> with a specific encoding type.  All instances
+ *                                     of MultipartRequest will utilise the static charEncoding variable value, that the <code>setEncoding</code> method
+ *                                     can be used to set.  Started to introduce support for multiple file uploads with the same form field 
+ *                                     name, but not completed for v1.18.  26/06/2001
+ *
+ * @version 1.17       A few _very_ minor fixes.  Plus a cool new feature added.  The ability to save files into memory.
+ *                                     <b>Thanks to Mark Latham for the idea and some of the code.</b> 11/04/2001
+ * @version 1.16       Added support for multiple parameter values.  Also fixed getCharArray(...) method to support 
+ *                                     parameters with non-english ascii values (ascii above 127).  Thanks to Stefan Schmidt & 
+ *                                     Michael Elvers for this.  (No fix yet for reported problems with Tomcat 3.2 or a single extra 
+ *                                     byte appended to uploads of certain files).  By 1.17 hopefully will have a resolution for the
+ *                                     second problem.  14/03/2001
+ * @version 1.15       A new parameter added, intMaxReadBytes, to allow arbitrary length files.  Released under
+ *                                     the LGPL (Lesser General Public License).       03/02/2001
+ * @version 1.14       Fix for IE problem with filename being empty.  This is because IE includes a default Content-Type
+ *                                     even when no file is uploaded.  16/02/2001
+ * @version 1.13       If an upload directory is not specified, then all file contents are sent into oblivion, but the
+ *                                     rest of the parsing works as normal.
+ * @version 1.12       Fix, was allowing zero length files.  Will not even create the output file until there is
+ *                                     something to write.  getFile(String) now returns null, if a zero length file was specified.  06/11/2000
+ * @version 1.11       Fix, in case Content-type is not specified.
+ * @version 1.1                Removed dependence on Servlets.  Now passes in a generic InputStream instead.
+ *                                     "Borrowed" readLine from Tomcat 3.1 ServletInputStream class,
+ *                             so we can remove some of the dependencies on ServletInputStream.
+ *                                 Fixed bug where a empty INPUT TYPE="FILE" value, would cause an exception.
+ * @version 1.0                Initial Release.
+ */
 
 public class MultipartRequest
 {
        /**
-               Define Character Encoding method here.
-       */
+        * Defines Character Encoding method here.
+        */
        private String charEncoding = "UTF-8";
 
        // If not null, send debugging out here.
@@ -131,61 +132,61 @@ public class MultipartRequest
        private long intTotalRead = -1;
 
        /**
-               Prevent a denial of service by defining this, will never read more data.
-               If Content-Length is specified to be more than this, will throw an exception.
-
-               This limits the maximum number of bytes to the value of an int, which is 2 Gigabytes.
-       */
+        * Prevent a denial of service by defining this, will never read more data.
+        * If Content-Length is specified to be more than this, will throw an exception.
+     *
+     * This limits the maximum number of bytes to the value of an int, which is 2 Gigabytes.
+        */
        public static final int MAX_READ_BYTES = Integer.MAX_VALUE;
 
        /**
-               Defines the number of bytes to read per readLine call. 128K
-       */
+        * Defines the number of bytes to read per readLine call. 128K
+        */
        public static final int READ_LINE_BLOCK = 1024 * 128;
 
        /**
-               Store a read from the input stream here.  Global so we do not keep creating new arrays each read.
-       */
+        * Store a read from the input stream here.  Global so we do not keep creating new arrays each read.
+        */
        private byte[] blockOfBytes = null;
 
        /**
-               Type constant for File FILENAME.
-       */
+        * Type constant for File FILENAME.
+        */
        public static final int FILENAME = 0;
        
        /**
-               Type constant for the File CONTENT_TYPE.
-       */
+        * Type constant for the File CONTENT_TYPE.
+        */
        public static final int CONTENT_TYPE = 1;
 
        /**
-               Type constant for the File SIZE.
-       */
+        *      Type constant for the File SIZE.
+        */
        public static final int SIZE = 2;
        
        /**
-               Type constant for the File CONTENTS.
-
-               <b>Note: </b>Only used for file upload to memory.
-       */
+        * Type constant for the File CONTENTS.
+     *
+        * <b>Note: </b>Only used for file upload to memory.
+        */
        public static final int CONTENTS = 3;
 
        /**
-               This method should be called on the MultipartRequest itself, not on any
-               instances of MultipartRequest, because this sets up the encoding for all
-               instances of multipartrequest.  You can set the encoding to null, in which
-               case the default encoding will be applied.  The default encoding if this method
-               is not called has been set to ISO-8859-1, which seems to offer the best hope
-               of support for international characters, such as german "Umlaut" characters.
-
-               <p><b>Warning:</b> In multithreaded environments it is the responsibility of the
-               implementer to make sure that this method is not called while another instance
-               is being constructed.  When an instance of MultipartRequest is constructed, it parses
-               the input data, and uses the result of getEncoding() to convert between bytes and
-               strings.  If setEncoding() is called by another thread, while the private parse() is 
-               executing, the method will utilise this new encoding, which may cause serious
-               problems.</p>
-       */
+        * This method should be called on the <code>MultipartRequest</code> itself, not on any
+        * instances of <code>MultipartRequest</code>, because this sets up the encoding for all
+        * instances of multipartrequest.  You can set the encoding to null, in which
+        * case the default encoding will be applied.  The default encoding if this method
+        * is not called has been set to ISO-8859-1, which seems to offer the best hope
+        * of support for international characters, such as german "Umlaut" characters.
+     *
+     * <p><b>Warning:</b> In multithreaded environments it is the responsibility of the
+     * implementer to make sure that this method is not called while another instance
+     * is being constructed.  When an instance of MultipartRequest is constructed, it parses
+     * the input data, and uses the result of <code>getEncoding</code> method to convert between bytes and
+     * strings.  If <code>setEncoding</code> method is called by another thread, while the private <code>parse</code> method is 
+     * executing, the method will utilise this new encoding, which may cause serious
+     * problems.</p>
+        */
        public  void setEncoding(String enc) throws UnsupportedEncodingException
        {
                if (enc==null || enc.trim()=="")
@@ -200,8 +201,9 @@ public class MultipartRequest
        }
 
        /**
-               Returns the current encoding method.
-       */
+        * Gets the current encoding method.
+        * @return the encoding method.
+        */
        public String getEncoding()
        {
                return charEncoding;
@@ -210,10 +212,10 @@ public class MultipartRequest
        /** 
         * Constructor.
         *
-        * @param strContentTypeText    The &quot;Content-Type&quot; HTTP header value.
-        * @param intContentLength              The &quot;Content-Length&quot; HTTP header value.
-        * @param in                                    The InputStream to read and parse.
-        * @param strSaveDirectory              The temporary directory to save the file from where they can then be moved to wherever by the
+        * @param strContentTypeText    the &quot;Content-Type&quot; HTTP header value.
+        * @param intContentLength              the &quot;Content-Length&quot; HTTP header value.
+        * @param in                                    the InputStream to read and parse.
+        * @param strSaveDirectory              the temporary directory to save the file from where they can then be moved to wherever by the
         *                                                              calling process.  <b>If you specify <u>null</u> for this parameter, then any files uploaded
         *                                                              will be silently ignored.</b>
         *
@@ -233,10 +235,10 @@ public class MultipartRequest
        /** 
         * Constructor.
         *
-        * @param strContentTypeText    The &quot;Content-Type&quot; HTTP header value.
-        * @param intContentLength              The &quot;Content-Length&quot; HTTP header value.
-        * @param in                                    The InputStream to read and parse.
-        * @param strSaveDirectory              The temporary directory to save the file from where they can then be moved to wherever by the
+        * @param strContentTypeText    the &quot;Content-Type&quot; HTTP header value.
+        * @param intContentLength              the &quot;Content-Length&quot; HTTP header value.
+        * @param in                                    the InputStream to read and parse.
+        * @param strSaveDirectory              the temporary directory to save the file from where they can then be moved to wherever by the
         *                                                              calling process.  <b>If you specify <u>null</u> for this parameter, then any files uploaded
         *                                                              will be silently ignored.</B>
         * @param intMaxReadBytes               Overrides the MAX_BYTES_READ value, to allow arbitrarily long files.
@@ -259,10 +261,10 @@ public class MultipartRequest
         * Constructor.
         *
         * @param debug                                 A PrintWriter that can be used for debugging.
-        * @param strContentTypeText    The &quot;Content-Type&quot; HTTP header value.
-        * @param intContentLength              The &quot;Content-Length&quot; HTTP header value.
-        * @param in                                    The InputStream to read and parse.
-        * @param strSaveDirectory              The temporary directory to save the file from where they can then be moved to wherever by the
+        * @param strContentTypeText    the &quot;Content-Type&quot; HTTP header value.
+        * @param intContentLength              the &quot;Content-Length&quot; HTTP header value.
+        * @param in                                    the InputStream to read and parse.
+        * @param strSaveDirectory              the temporary directory to save the file from where they can then be moved to wherever by the
         *                                                              calling process.  <b>If you specify <u>null</u> for this parameter, then any files uploaded
         *                                                              will be silently ignored.</B>
         *
@@ -287,9 +289,9 @@ public class MultipartRequest
         * Constructor - load into memory constructor
         *
         * @param debug                                 A PrintWriter that can be used for debugging.
-        * @param strContentTypeText    The &quot;Content-Type&quot; HTTP header value.
-        * @param intContentLength              The &quot;Content-Length&quot; HTTP header value.
-        * @param in                                    The InputStream to read and parse.
+        * @param strContentTypeText    the &quot;Content-Type&quot; HTTP header value.
+        * @param intContentLength              the &quot;Content-Length&quot; HTTP header value.
+        * @param in                                    the InputStream to read and parse.
         * @param intMaxReadBytes               Overrides the MAX_BYTES_READ value, to allow arbitrarily long files.
         *
         * @exception IllegalArgumentException  If the strContentTypeText does not contain a Content-Type of "multipart/form-data" or the boundary is not found.
@@ -313,10 +315,10 @@ public class MultipartRequest
         * Constructor.
         *
         * @param debug                                 A PrintWriter that can be used for debugging.
-        * @param strContentTypeText    The &quot;Content-Type&quot; HTTP header value.
-        * @param intContentLength              The &quot;Content-Length&quot; HTTP header value.
-        * @param in                                    The InputStream to read and parse.
-        * @param strSaveDirectory              The temporary directory to save the file from where they can then be moved to wherever by the
+        * @param strContentTypeText    the &quot;Content-Type&quot; HTTP header value.
+        * @param intContentLength              the &quot;Content-Length&quot; HTTP header value.
+        * @param in                                    the InputStream to read and parse.
+        * @param strSaveDirectory              the temporary directory to save the file from where they can then be moved to wherever by the
         *                                                              calling process.  <b>If you specify <u>null</u> for this parameter, then any files uploaded
         *                                                              will be silently ignored.</B>
         * @param intMaxReadBytes               Overrides the MAX_BYTES_READ value, to allow arbitrarily long files.
@@ -351,10 +353,10 @@ public class MultipartRequest
         * Initialise the parser.
         *
         * @param debug                                 A PrintWriter that can be used for debugging.
-        * @param strContentTypeText    The &quot;Content-Type&quot; HTTP header value.
-        * @param intContentLength              The &quot;Content-Length&quot; HTTP header value.
-        * @param in                                    The InputStream to read and parse.
-        * @param strSaveDirectory              The temporary directory to save the file from where they can then be moved to wherever by the
+        * @param strContentTypeText    the &quot;Content-Type&quot; HTTP header value.
+        * @param intContentLength              the &quot;Content-Length&quot; HTTP header value.
+        * @param in                                    the InputStream to read and parse.
+        * @param strSaveDirectory              the temporary directory to save the file from where they can then be moved to wherever by the
         *                                                              calling process.  <b>If you specify <u>null</u> for this parameter, then any files uploaded
         *                                                              will be silently ignored.</B>
         * @param intMaxReadBytes               Overrides the MAX_BYTES_READ value, to allow arbitrarily long files.
@@ -370,7 +372,7 @@ public class MultipartRequest
                                                InputStream in, 
                                                int intMaxReadBytes) throws IllegalArgumentException, IOException
        {
-               // save reference to debug stream for later.
+               // saves reference to debug stream for later.
                this.debug = debug;
 
                if (strContentTypeText!=null && strContentTypeText.startsWith("multipart/form-data") && strContentTypeText.indexOf("boundary=")!=-1)
@@ -402,10 +404,13 @@ public class MultipartRequest
        }
 
        /**
-               Return the value of the strName URLParameter.
-           If more than one value for a particular Parameter, will return the first.
-               If an error occurs will return null.
-    */
+        * Gets the value of the strName URLParameter.
+        * If more than one value for a particular Parameter, will return the first.
+        * If an error occurs will return null.
+        * @param strName the form field name, used to upload the file.  This identifies
+        *                                the formfield location in the storage facility.
+        * @return the value of the  URL Parameter.
+     */
        public String getURLParameter(String strName)
        {                                                                                
                Object value = htParameters.get(strName);
@@ -416,11 +421,14 @@ public class MultipartRequest
        }
 
        /**
-               Return an enumeration of all values for the strName parameter.
-               Even if a single value for, will always return an enumeration, although
-               it may actually be empty if no value was encountered for strName or
-               it is an invalid parameter name.
-       */
+        * Gets an enumeration of all values for the strName parameter.
+        * Even if a single value for, will always return an enumeration, although
+        * it may actually be empty if no value was encountered for strName or
+        * it is an invalid parameter name.
+        * @param strName the form field name, used to upload the file.  This identifies
+        *                                the formfield location in the storage facility.
+        * @return the enumeration of all values.
+        */
        public Enumeration getURLParameters(String strName)
        {
                Object value = htParameters.get(strName);
@@ -436,27 +444,29 @@ public class MultipartRequest
        }
 
        /**
-               An enumeration of all URL Parameters for the current HTTP Request.
-       */
+        * Gets the enumeration of all URL Parameters for the current HTTP Request.
+        * @return the enumeration of URl Parameters.
+        */
        public Enumeration getParameterNames()
        {
                return htParameters.keys();
        }
 
        /**
-               This enumeration will return all INPUT TYPE=FILE parameter NAMES as encountered
-               during the upload.
-       */
+        * Gets the enumeration of all INPUT TYPE=FILE parameter NAMES as encountered
+        * during the upload.
+        * @return 
+        */
        public Enumeration getFileParameterNames()
        {
                return htFiles.keys();
        }
 
        /**
-               Returns the Content-Type of a file.
-
-               @see #getFileParameter(java.lang.String, int)
-       */
+        * Returns the Content-Type of a file.
+     *
+        * @see #getFileParameter(java.lang.String, int)
+        */
        public String getContentType(String strName)
        {
                // Can cast null, it will be ignored.
@@ -464,14 +474,14 @@ public class MultipartRequest
        }
     
        /**
-               If files were uploaded into memory, this method will retrieve the contents
-               of the file as a InputStream.  
-
-               @return the contents of the file as a InputStream, or null if not file uploaded,
-               or file uploaded to file system directory.
-
-               @see #getFileParameter(java.lang.String, int)
-       */
+        * If files were uploaded into memory, this method will retrieve the contents
+        * of the file as a InputStream.
+        * @param strName the form field name, used to upload the file.  This identifies
+        *                                the formfield location in the storage facility.
+        * @return the contents of the file as a InputStream, or null if not file uploaded,
+        * or file uploaded to file system directory.
+        * @see #getFileParameter(java.lang.String, int)
+        */
        public InputStream getFileContents(String strName)
        {
                Object obj = getFileParameter(strName, CONTENTS);
@@ -482,19 +492,22 @@ public class MultipartRequest
        }
 
        /**
-               Returns a File reference to the uploaded file.  This reference is to the files uploaded location,
-               and allows you to read/move/delete the file.
-
-               This method is only of use, if files were uploaded to the file system.  Will return null if 
-               uploaded to memory, in which case you should use getFileContents(strName) instead.
-
-               @return Returns a null file reference if a call to getFileSize(strName) returns zero or files were
-               uploaded to memory.
-
-               @see #getFileSize(java.lang.String)
-               @see #getFileContents(java.lang.String)
-               @see #getFileSystemName(java.lang.String)
-       */
+        * Returns a File reference to the uploaded file.  This 
+        * reference is to the files uploaded location,
+        * and allows you to read/move/delete the file.
+        * This method is only of use, if files were uploaded to the 
+        * file system.  Will return null if 
+        * uploaded to memory, in which case you should use 
+        * getFileContents(strName) instead.
+        * @param strName the form field name, used to upload the file.  This identifies
+        *                                the formfield location in the storage facility.
+        * @return  a null file reference if a call to 
+        * getFileSize(strName) returns zero or files were
+        * uploaded to memory.
+        * @see #getFileSize(java.lang.String)
+        * @see #getFileContents(java.lang.String)
+        * @see #getFileSystemName(java.lang.String)
+        */
        public File getFile(String strName)
        {
                String filename = getFileSystemName(strName);
@@ -506,12 +519,13 @@ public class MultipartRequest
        }
 
        /**
-               Get the file system basename of an uploaded file.
-
-               @return null if strName not found.
-               
-               @see #getFileParameter(java.lang.String, int)
-       */
+        * Gets the file system basename of an uploaded file.
+        * @param strName the form field name, used to upload the file.  This identifies
+        *                                the formfield location in the storage facility.
+        * @return null if strName not found.
+        *              
+        * @see #getFileParameter(java.lang.String, int)
+        */
        public String getFileSystemName(String strName)
        {
                // Can cast null, it will be ignored.
@@ -519,12 +533,13 @@ public class MultipartRequest
        }
 
        /**
-               Returns the File Size of a uploaded file.
-
-               @return -1 if file size not defined.
-
-               @see #getFileParameter(java.lang.String, int)
-       */
+        * Returns the File Size of a uploaded file.
+        * @param strName the form field name, used to upload the file.  This identifies
+        *                                the formfield location in the storage facility.
+        * @return -1 if file size not defined.
+        *
+        * @see #getFileParameter(java.lang.String, int)
+        */
        public long getFileSize(String strName)
        {
                Object obj = getFileParameter(strName, SIZE);
@@ -535,32 +550,30 @@ public class MultipartRequest
        }
 
        /**
-               Access an attribute of a file upload parameter record.
-
-               @param strName is the form field name, used to upload the file.  This identifies
-                               the formfield location in the storage facility.
-
-               @param strFilename      This is the FileSystemName of the file
-               @param type     What attribute you want from the File Parameter.
-                       The following types are supported:
-                               MultipartRequest.FILENAME, 
-                               MultipartRequest.CONTENT_TYPE, 
-                               MultipartRequest.SIZE,
-                               MultipartRequest.CONTENTS
-
-               <p>The getFileSystemName(String strName),getFileSize(String strName),getContentType(String strName),
-               getContents(String strName) methods all use this method passing in a different type argument.</p>
-
-               <p><b>Note: </b>This class has been changed to provide for future functionality where you
-               will be able to access all files uploaded, even if they are uploaded using the same
-               form field name.  At this point however, only the first file uploaded via a form
-               field name is accessible.</p>
-
-               @see #getContentType(java.lang.String)
-               @see #getFileSize(java.lang.String)
-               @see #getFileContents(java.lang.String)
-               @see #getFileSystemName(java.lang.String)
-       */
+        * Access an attribute of a file upload parameter record.
+     * <p>The getFileSystemName(String strName),getFileSize(String strName),getContentType(String strName),
+        * getContents(String strName) methods all use this method passing in a different type argument.</p>
+     *
+        * <p><b>Note: </b>This class has been changed to provide for future functionality where you
+        * will be able to access all files uploaded, even if they are uploaded using the same
+        * form field name. At this point however, only the first file uploaded via a form
+        * field name is accessible.</p>
+        * 
+        * @param strName the form field name, used to upload the file.  This identifies
+        *                                the formfield location in the storage facility.
+     *
+        * @param type  What attribute you want from the File Parameter.
+        *                The following types are supported:
+        *                      MultipartRequest.FILENAME, 
+        *                      MultipartRequest.CONTENT_TYPE, 
+        *                      MultipartRequest.SIZE,
+        *                      MultipartRequest.CONTENTS
+        *
+        * @see #getContentType(java.lang.String)
+        * @see #getFileSize(java.lang.String)
+        * @see #getFileContents(java.lang.String)
+        * @see #getFileSystemName(java.lang.String)
+        */
        public Object getFileParameter(String strName, int type)
        {
                Object[] objArray = null;
@@ -578,8 +591,11 @@ public class MultipartRequest
        }
 
        /**
-               This is the main parse method.
-       */
+        * This is the main parse method.
+        * @param in the InputStream to read and parse.
+        * @throws IOException If the intContentLength is higher than MAX_READ_BYTES or 
+        *                                              strSaveDirectory is invalid or cannot be written to.
+        */
        private void parse(InputStream in) throws IOException
        {
                String strContentType = null;
@@ -690,9 +706,12 @@ public class MultipartRequest
        }
        
        /**
-               So we can put the logic for supporting multiple parameters with the same
-               form field name in the one location.
-       */
+        * So we can put the logic for supporting multiple parameters with the same
+        * form field name in the one location.
+        * @param strName the form field name, used to upload the file.  This identifies
+        *                                the formfield location in the storage facility.
+        * @param value  the form field value.
+        */
        private void addParameter(String strName, String value)
        {
                // Fix NPE in case of null name
@@ -702,7 +721,7 @@ public class MultipartRequest
                // Fix 1.16: for multiple parameter values.
                Object objParms = htParameters.get(strName);
 
-               // Add an new entry to the param vector.
+               // Adds an new entry to the param vector.
                if (objParms instanceof Vector)
                        ((Vector)objParms).addElement(value);
                else if (objParms instanceof String)// There is only one entry, so we create a vector!
@@ -718,11 +737,14 @@ public class MultipartRequest
        }
 
        /**
-               So we can put the logic for supporting multiple files with the same
-               form field name in the one location.
-
-               Assumes that this method will never be called with a null fileObj or strFilename.
-       */
+        * So we can put the logic for supporting multiple files with the same
+        * form field name in the one location.
+        *
+        * Assumes that this method will never be called with a null fileObj or strFilename.
+        * @param strName the form field name, used to upload the file.  This identifies
+        *                                the formfield location in the storage facility.
+        * @param fileObj 
+        */
        private void addFileParameter(String strName, Object[] fileObj)
        {
                Object objParms = htFiles.get(strName);
@@ -743,10 +765,11 @@ public class MultipartRequest
        }
 
        /**
-               Read parameters, assume already passed Content-Disposition and blank line.
-
-               @return the value read in.
-       */
+        * Reads the parameters, assume already passed Content-Disposition and blank line.
+     * @param in the InputStream to read and parse.
+        * @return the value read in.
+        * @throws IOException if an error occurs writing the file.
+        */
        private String readParameter(InputStream in) throws IOException
        {
                StringBuffer buf = new StringBuffer();
@@ -773,8 +796,11 @@ public class MultipartRequest
        }
 
        /**
-               Read from in, write to out, minus last two line ending bytes.
-       */
+        * Read from in, write to out, minus last two line ending bytes.
+        * @param in the InputStream to read and parse.
+        * @param out the OutputStream.
+        * @throws IOException if an error occurs writing the file.
+        */
        private long readAndWrite(InputStream in, OutputStream out) throws IOException
        {
                long fileSize = 0;
@@ -794,7 +820,7 @@ public class MultipartRequest
                        // Found boundary.
                        if (read<blockOfBytes.length && new String(blockOfBytes, 0, read, charEncoding).indexOf(this.strBoundary)!=-1)
                        {
-                               // Write the line, minus any line ending bytes.
+                               // Writes the line, minus any line ending bytes.
                                //The secondLineOfBytes will NEVER BE NON-NULL if out==null, so there is no need to included this in the test
                                if(sizeOfSecondArray!=0)
                                {
@@ -803,7 +829,7 @@ public class MultipartRequest
                                        if (actualLength>0 && out!=null)
                                        {
                                                out.write(secondLineOfBytes, 0, actualLength);
-                                               // Update file size.
+                                               // Updates the file size.
                                                fileSize+=actualLength;
                                        }
                                }
@@ -811,12 +837,12 @@ public class MultipartRequest
                        }
                        else
                        {
-                               // Write out previous line.
+                               // Writes the out previous line.
                                //The sizeOfSecondArray will NEVER BE ZERO if out==null, so there is no need to included this in the test
                                if(sizeOfSecondArray!=0)
                                {
                                        out.write(secondLineOfBytes, 0, sizeOfSecondArray);
-                                       // Update file size.
+                                       // Updates the file size.
                                        fileSize+=sizeOfSecondArray;
                                }
 
@@ -831,21 +857,21 @@ public class MultipartRequest
                        }
                }
 
-               //Return the number of bytes written to outstream.
+               //Returns the number of bytes written to outstream.
                return fileSize;
        }
 
        /**
-               Read a Multipart section that is a file type.  Assumes that the Content-Disposition/Content-Type and blank line
-               have already been processed.  So we read until we hit a boundary, then close file and return.
-
-               @exception IOException if an error occurs writing the file.
-
-               @return the number of bytes read.
-       */
+        * Reads a Multipart section that is a file type.  Assumes that the Content-Disposition/Content-Type and blank line
+        * have already been processed.  So we read until we hit a boundary, then close file and return.
+     * @param in the InputStream to read and parse.
+     * @param strFilename the FileSystemName of the file.
+     * @return the number of bytes read.
+        * @throws IOException if an error occurs writing the file.
+     */
        private long readAndWriteFile(InputStream in, String strFilename) throws IOException
        {
-               // Store a reference to this, as we may need to delete it later.
+               // Stores a reference to this, as we may need to delete it later.
                File outFile = new File(fileOutPutDirectory, strFilename);
 
                BufferedOutputStream out = null;
@@ -863,17 +889,18 @@ public class MultipartRequest
                else
                {
                        out.close();
-                       // Delete file as empty.  We should be able to delete it, if we can open it!
+                       // Deletes the file as empty.  We should be able to delete it, if we can open it!
                        outFile.delete();
                }
                return count;
        }
 
        /**
-        *  If the fileOutPutDirectory wasn't specified, just read the file to memory.
+        * If the fileOutPutDirectory wasn't specified, just read the file to memory.
         *
-        *  @param strName - Url parameter this file was loaded under.
-        *  @return contents of file, from which you can garner the size as well.
+        * @param in the InputStream to read and parse.
+        * @return contents of file, from which you can garner the size as well.
+        * @throws IOException if the writing failed due to input/output error.
         */
        private byte[] readFile(InputStream in) throws IOException
        {
@@ -892,12 +919,13 @@ public class MultipartRequest
        }
 
        /**
-               Returns the length of the line minus line ending.
-
-               @param endOfArray       This is because in many cases the byteLine will have garbage data at the end, so we
-                                                       act as though the actual end of the array is this parameter.  If you want to process
-                                                       the complete byteLine, specify byteLine.length as the endOfArray parameter.
-       */
+        * Gets the length of the line minus line ending.
+        * @param byteLine
+        * @param endOfArray  This is because in many cases the byteLine will have garbage data at the end, so we
+        *                                        act as though the actual end of the array is this parameter.  If you want to process
+        *                                        the complete byteLine, specify byteLine.length as the endOfArray parameter.
+        *@return the length. 
+        */
        private static final int getLengthMinusEnding(byte byteLine[], int endOfArray)
        {
                if (byteLine==null)
@@ -910,7 +938,12 @@ public class MultipartRequest
                else
                        return endOfArray;
        }
-
+       
+       /**
+        * 
+        * @param buf
+        * @return
+        */
        private static final int getLengthMinusEnding(StringBuffer buf)
        {
                if (buf.length()>=2 && buf.charAt(buf.length()-2) == '\r' && buf.charAt(buf.length()-1) == '\n')
@@ -922,17 +955,19 @@ public class MultipartRequest
        }
 
        /**
-               Reads at most READ_BLOCK blocks of data, or a single line whichever is smaller.
-               Returns -1, if nothing to read, or we have reached the specified content-length.
-
-               Assumes that bytToBeRead.length indicates the block size to read.
-
-               @return -1 if stream has ended, before a newline encountered (should never happen) OR
-               we have read past the Content-Length specified.  (Should also not happen).  Otherwise
-               return the number of characters read.  You can test whether the number returned is less
-               than bytesToBeRead.length, which indicates that we have read the last line of a file or parameter or 
-               a border line, or some other formatting stuff.
-       */
+        * Reads at most READ_BLOCK blocks of data, or a single line whichever is smaller.
+        * Returns -1, if nothing to read, or we have reached the specified content-length.
+     *
+        * Assumes that bytToBeRead.length indicates the block size to read.
+     * @param in the InputStream to read and parse.
+     * @param bytesToBeRead the bytes to be read.
+        * @return -1 if stream has ended, before a newline encountered (should never happen) OR
+        * we have read past the Content-Length specified.  (Should also not happen).  Otherwise
+        * return the number of characters read.  You can test whether the number returned is less
+        * than bytesToBeRead.length, which indicates that we have read the last line of a file or parameter or 
+        * a border line, or some other formatting stuff.
+        * @throws IOException if the writing failed due to input/output error.
+        */
        private int readLine(InputStream in, byte[] bytesToBeRead) throws IOException 
        {
                // Ensure that there is still stuff to read...
@@ -956,11 +991,11 @@ public class MultipartRequest
        }
 
        /**
-               This needs to support the possibility of a / or a \ separator.
-
-               Returns strFilename after removing all characters before the last
-               occurence of / or \.
-       */
+        * This needs to support the possibility of a / or a \ separator.
+     * @param strFilename the FileSystemName of the file.
+        * @return the strFilename after removing all characters before the last
+        * occurence of / or \.
+        */
        private static final String getBasename (String strFilename)
        {
                if (strFilename==null)
@@ -977,15 +1012,17 @@ public class MultipartRequest
        }
 
        /**
-               trimQuotes trims any quotes from the start and end of a string and returns the trimmed string...
-       */
+        * Trims any quotes from the start and end of a string.
+        * @param strItem
+        * @return the trimmed string.
+        */
        private static final String trimQuotes (String strItem)
        {
                // Saves having to go any further....
                if (strItem==null || strItem.indexOf("\"")==-1)
                        return strItem;
                
-               // Get rid of any whitespace..
+               // Gets the rid of any whitespace..
            strItem = strItem.trim();
 
                if (strItem.charAt(0) == '\"')
@@ -998,10 +1035,13 @@ public class MultipartRequest
        }
 
        /**
-               Format of string name=value; name=value;
-
-               If not found, will return null.
-       */
+        * Format of string name=value; name=value;
+        * If not found, will return null.
+     * @param strName the form field name, used to upload the file.  This identifies
+        *                                the formfield location in the storage facility.
+     * @param strToDecode 
+        * 
+        */
        private static final String getValue(String strName, String strToDecode)
        {
                strName = strName + "=";
@@ -1040,23 +1080,23 @@ public class MultipartRequest
      *
      * <p>This method <u><b>does not</b></u> returns -1 if it reaches the end of the input
      * stream before reading the maximum number of bytes, it returns -1, if no bytes read.
+     * @param in    the InputStream to read and parse.
+     * @param b        an array of bytes into which data is read.
      *
-     * @param b                an array of bytes into which data is read
-     *
-     * @param off              an integer specifying the character at which
-     *                                 this method begins reading
+     * @param off      an integer specifying the character at which
+     *                         this method begins reading.
      *
-     * @param len              an integer specifying the maximum number of 
-     *                                 bytes to read
+     * @param len      an integer specifying the maximum number of 
+     *                         bytes to read.
      *
-     * @return                 an integer specifying the actual number of bytes 
-     *                                 read, or -1 if the end of the stream is reached
+     * @return         an integer specifying the actual number of bytes 
+     *                                 read, or -1 if the end of the stream is reached.
      *
-     * @exception IOException  if an input or output exception has occurred
+     * @throws IOException     if an input or output exception has occurred
      *
-        
-               Note: We have a problem with Tomcat reporting an erroneous number of bytes, so we need to check this.
-               This is the method where we get an infinite loop, but only with binary files.
+        *
+        * Note: We have a problem with Tomcat reporting an erroneous number of bytes, so we need to check this.
+        * This is the method where we get an infinite loop, but only with binary files.
      */
     private int readLine(InputStream in, byte[] b, int off, int len) throws IOException 
        {
@@ -1077,8 +1117,9 @@ public class MultipartRequest
     }
 
        /**
-               Use when debugging this object.
-       */
+        * Prints the given debugging message.
+        * @param x the message to print.
+        */
        protected void debug(String x)
        {
                if (debug!=null)
@@ -1089,7 +1130,7 @@ public class MultipartRequest
        }
 
        /** 
-               For debugging.
+        * Gets the Html Table.For debugging.
         */
        public String getHtmlTable()
        {
index 6e4e99f587296269819e9672c21538b2ac115ce1..193129d95aed44baa289aef6089cb437c20949dc 100644 (file)
@@ -32,8 +32,9 @@ import java.io.IOException;
 
 import javax.servlet.http.HttpServletRequest;
 
-/** This class wraps the MultipartRequest class by Jason Pell 
- *  for the Servlet environment.
+/** 
+ * This class wraps the MultipartRequest class by Jason Pell 
+ * for the Servlet environment.
  * 
  * @author IT Mill Ltd
  * @version @VERSION@
@@ -43,15 +44,17 @@ public class ServletMultipartRequest extends MultipartRequest
 {
        /** 
         * Constructor wrapper, unwraps the InputStream, 
-        * content type and content lenght from the servlet request object.
+        * content type and content length from the servlet request object.
         *
-        * @param request                               The HttpServletRequest will be used to initialise the MultipartRequest super class.
-        * @param strSaveDirectory              The temporary directory to save the file from where they can then be moved to wherever by the
+        * @param request                               the HttpServletRequest will be used to initialise the MultipartRequest super class.
+        * @param strSaveDirectory              the temporary directory to save the file from where they can then be moved to wherever by the
         *                                                              calling process.  <b>If you specify <u>null</u> for this parameter, then any files uploaded
         *                                                              will be silently ignored.</B>
         *
-        * @exception IllegalArgumentException  If the request.getContentType() does not contain a Content-Type of "multipart/form-data" or the boundary is not found.
-        * @exception IOException                               If the request.getContentLength() is higher than MAX_READ_BYTES or strSaveDirectory is invalid or cannot be written to.
+        * @throws IllegalArgumentException     If the request.getContentType() does not contain a Content-Type 
+        *                                                                              of "multipart/form-data" or the boundary is not found.
+        * @throws IOException                          If the request.getContentLength() is higher than MAX_READ_BYTES or
+        *                                                                               strSaveDirectory is invalid or cannot be written to.
         *
         * @see MultipartRequest#MAX_READ_BYTES
         */
@@ -68,16 +71,18 @@ public class ServletMultipartRequest extends MultipartRequest
        /** 
         * Constructor wrapper, unwraps the InputStream, 
         * content type and content lenght from the servlet request object.
-        * Also allow to explicitly set the max permissable lenght of the request.
+        * Also allow to explicitly set the max permissable length of the request.
         *
-        * @param request                               The HttpServletRequest will be used to initialise the MultipartRequest super class.
-        * @param strSaveDirectory              The temporary directory to save the file from where they can then be moved to wherever by the
+        * @param request                               the HttpServletRequest will be used to initialise the MultipartRequest super class.
+        * @param strSaveDirectory              the temporary directory to save the file from where they can then be moved to wherever by the
         *                                                              calling process.  <b>If you specify <u>null</u> for this parameter, then any files uploaded
         *                                                              will be silently ignored.</B>
         * @param intMaxReadBytes               Overrides the MAX_BYTES_READ value, to allow arbitrarily long files.
         *
-        * @exception IllegalArgumentException  If the request.getContentType() does not contain a Content-Type of "multipart/form-data" or the boundary is not found.
-        * @exception IOException                               If the request.getContentLength() is higher than MAX_READ_BYTES or strSaveDirectory is invalid or cannot be written to.
+        * @throws IllegalArgumentException     If the request.getContentType() does not contain a Content-Type 
+        *                                                                              of "multipart/form-data" or the boundary is not found.
+        * @throws IOException                          If the request.getContentLength() is higher than MAX_READ_BYTES
+        *                                                                               or strSaveDirectory is invalid or cannot be written to.
         *
         * @see MultipartRequest#MAX_READ_BYTES
         */
@@ -94,11 +99,14 @@ public class ServletMultipartRequest extends MultipartRequest
        /** 
         * Constructor wrapper for loading the request into memory rather than temp-file.
         *
-        * @param request                               The HttpServletRequest will be used to initialise the MultipartRequest super class.
+        * @param request                               the HttpServletRequest will be used to initialise the
+        *                                                               MultipartRequest super class.
         * @param intMaxReadBytes               Overrides the MAX_BYTES_READ value, to allow arbitrarily long files.
         *
-        * @exception IllegalArgumentException  If the request.getContentType() does not contain a Content-Type of "multipart/form-data" or the boundary is not found.
-        * @exception IOException                               If the request.getContentLength() is higher than MAX_READ_BYTES or strSaveDirectory is invalid or cannot be written to.
+        * @throws IllegalArgumentException     If the request.getContentType() does not contain a Content-Type
+        *                                                                               of "multipart/form-data" or the boundary is not found.
+        * @throws IOException                          If the request.getContentLength() is higher than MAX_READ_BYTES 
+        *                                                                              or strSaveDirectory is invalid or cannot be written to.
         *
         * @see MultipartRequest#MAX_READ_BYTES
         */
index ed8e3b04062158059253a392bfc1a2646662c0f7..231ffdc96972f7a4a367441550fc9b23268ab9b7 100644 (file)
@@ -64,7 +64,9 @@ public class ServletThemeSource implements ThemeSource {
 
        private Cache resourceCache = new Cache();
 
-       /** Collection of subdirectory entries */
+       /** 
+        * Collection of subdirectory entries. 
+        */
        private URL descFile;
 
        /**
@@ -72,11 +74,13 @@ public class ServletThemeSource implements ThemeSource {
         * local directory.
         * 
         * @param file
-        *            Path to the JAR archive .
+        *            the Path to the JAR archive .
         * @param path
-        *            Path inside the archive to be processed.
-        * @throws FileNotFoundException
-        *             if no theme files are found
+        *            the Path inside the archive to be processed.
+        * @throws IOException
+        *             if the writing failed due to input/output error.
+        * @throws ThemeException  If the resource is not found or there was
+        *                       some problem finding the resource.
         */
        public ServletThemeSource(ServletContext context,
                        ApplicationServlet webAdapterServlet, String path)
@@ -86,7 +90,7 @@ public class ServletThemeSource implements ThemeSource {
                this.webAdapterServlet = webAdapterServlet;
                this.context = context;
 
-               // Format path
+               // Formats path
                this.path = path;
                if ((this.path.length() > 0) && !this.path.endsWith("/")) {
                        this.path = this.path + "/";
@@ -95,7 +99,7 @@ public class ServletThemeSource implements ThemeSource {
                        this.path = "/" + this.path;
                }
 
-               // Load description file
+               // Loads description file
                this.descFile = context.getResource(this.path + Theme.DESCRIPTIONFILE);
                InputStream entry = context.getResourceAsStream(this.path
                                + Theme.DESCRIPTIONFILE);
@@ -126,6 +130,7 @@ public class ServletThemeSource implements ThemeSource {
        }
 
        /**
+        * Gets the XSL stream for the specified theme and web-browser type.
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getXSLStreams(Theme,
         *      WebBrowser)
         */
@@ -141,7 +146,7 @@ public class ServletThemeSource implements ThemeSource {
                                Log.info("ServletThemeSource: Loading theme: " + theme);
                        }
 
-                       // Reload the description file
+                       // Reloads the description file
                        InputStream entry = context.getResourceAsStream(this.path
                                        + Theme.DESCRIPTIONFILE);
                        try {
@@ -160,7 +165,7 @@ public class ServletThemeSource implements ThemeSource {
                        }
 
                        Collection fileNames = theme.getFileNames(type, Theme.MODE_HTML);
-                       // Add all XSL file streams
+                       // Adds all XSL file streams
                        for (Iterator i = fileNames.iterator(); i.hasNext();) {
                                String entryName = (String) i.next();
                                if (entryName.endsWith(".xsl")) {
@@ -176,7 +181,7 @@ public class ServletThemeSource implements ThemeSource {
        }
 
        /**
-        * Return modication time of the description file.
+        * Returns the modification time of the description file.
         * 
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getModificationTime()
         */
@@ -192,12 +197,13 @@ public class ServletThemeSource implements ThemeSource {
        }
 
        /**
+        * Gets the input stream for the resource with the specified resource id.
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getResource(String)
         */
        public InputStream getResource(String resourceId)
                        throws ThemeSource.ThemeException {
 
-               // Check the id
+               // Checks the id
                String name = this.getName();
                int namelen = name.length();
                if (resourceId == null || !resourceId.startsWith(name + "/")
@@ -205,7 +211,7 @@ public class ServletThemeSource implements ThemeSource {
                        return null;
                }
 
-               // Find the resource
+               // Finds the resource
                String streamName = this.path + resourceId.substring(namelen + 1);
                InputStream stream = context.getResourceAsStream(streamName);
                if (stream != null)
@@ -241,6 +247,7 @@ public class ServletThemeSource implements ThemeSource {
        }
 
        /**
+        * Gets the list of themes in the theme source. 
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getThemes()
         */
        public Collection getThemes() {
@@ -252,6 +259,7 @@ public class ServletThemeSource implements ThemeSource {
        }
 
        /**
+        * Gets the name of the ThemeSource.
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getName()
         */
        public String getName() {
@@ -259,6 +267,7 @@ public class ServletThemeSource implements ThemeSource {
        }
 
        /**
+        * Gets the Theme instance by name.
         * @see com.itmill.toolkit.terminal.web.ThemeSource#getThemeByName(String)
         */
        public Theme getThemeByName(String name) {
@@ -280,18 +289,40 @@ public class ServletThemeSource implements ThemeSource {
        private class Cache {
 
                private Map data = new HashMap();
-
+               
+               /**
+                * Associates the specified value with the specified key in this map.
+                * If the map previously contained a mapping for this key, the old value
+                * is replaced by the specified value.
+                * @param key the key with which the specified value is to be associated.
+                * @param value the value to be associated with the specified key. 
+                */
                public void put(Object key, Object value) {
                        data.put(key, new SoftReference(new CacheItem(value)));
                }
-
+               
+               /**
+                * Returns the value to which this map maps the specified key. Returns null
+                * if the map contains no mapping for this key. 
+                * <p>
+                * A return value of null does not necessarily indicate that the map contains
+                * no mapping for the key; it's also possible that the map explicitly maps 
+                * the key to null. The containsKey operation may be used to distinguish these two cases. 
+                * </p>
+                * @param key the key whose associated value is to be returned. 
+                * @return the value to which this map maps the specified key, or null
+                *              if the map contains no mapping for this key.
+                */
                public Object get(Object key) {
                        SoftReference ref = (SoftReference) data.get(key);
                        if (ref != null)
                                return ((CacheItem) ref.get()).getData();
                        return null;
                }
-
+               
+               /**
+                * Clears the data and removes all mappings from this map .
+                */
                public void clear() {
                        data.clear();
                }
@@ -306,15 +337,35 @@ public class ServletThemeSource implements ThemeSource {
        private class CacheItem {
 
                private Object data;
-
+               
+               /**
+                * 
+                * @param data
+                */
                public CacheItem(Object data) {
                        this.data = data;
                }
-
+               
+               /**
+                * Gets the data.
+                * @return the data.
+                */
                public Object getData() {
                        return this.data;
                };
-
+               
+               /**
+                * Called by the garbage collector on an object when garbage collection 
+                * determines that there are no more references to the object. A subclass 
+                * overrides the finalize method to dispose of system resources or to 
+                * perform other cleanup.
+                * <p>
+                * The finalize method is never invoked more than once by a Java virtual
+                * machine for any given object.
+                * </p>
+                * @throws Throwable the Exception raised by this method
+                * @see java.lang.Object#finalize()
+                */
                public void finalize() throws Throwable {
                        this.data = null;
                        super.finalize();
index e7e61badbdec6635c373763c94ea47ee5a510468..271add00f6204ef87c2fef1221470a6f7dd5293d 100644 (file)
@@ -87,7 +87,9 @@ import org.xml.sax.Attributes;
  */
 public class Theme extends DefaultHandler {
 
-       /** Default description file name. */
+       /** 
+        * Default description file name. 
+        */
        public static final String DESCRIPTIONFILE = "description.xml";
 
        private static final String TAG_THEME = "theme";
@@ -136,40 +138,64 @@ public class Theme extends DefaultHandler {
 
        public static final String MODE_FALLBACK = MODE_HTML;
 
-       /** Name of the theme. */
+       /** 
+        * Name of the theme. 
+        */
        private String name;
 
-       /** Theme description. */
+       /** 
+        * Theme description. 
+        */
        private String description;
 
-       /** Author of the theme. */
+       /** 
+        * Author of the theme. 
+        */
        private Author author;
 
-       /** Name of the theme, which this theme extends */
+       /** 
+        * Name of the theme, which this theme extends. 
+        */
        private String parentTheme = null;
 
-       /** Fileset of included XSL files. */
+       /** 
+        * Fileset of included XSL files. 
+        */
        private Fileset files = null;
 
-       /** Stack of fileset used while parsing XML. */
+       /** 
+        * Stack of fileset used while parsing XML. 
+        */
        private Stack openFilesets = new Stack();
 
-       /** Stack of string buffers used while parsing XML. */
+       /** 
+        * Stack of string buffers used while parsing XML. 
+        */
        private Stack openStrings = new Stack();
 
-       /** Supported modes name-to-requirements */
+       /** 
+        * Supported modes name-to-requirements. 
+        */
        private LinkedHashMap supportedModes = new LinkedHashMap();
 
-       /** Currently open mode */
+       /** 
+        * Currently open mode. 
+        */
        private String currentlyOpenMode = null;
 
-       /** Are we processing modes */
+       /** 
+        * Are we processing modes. 
+        */
        private boolean modesListCurrentlyOpen = false;
 
-       /** Is a NOT requirement element open. */
+       /** 
+        * Is a NOT requirement element open. 
+        */
        private boolean isNOTRequirementOpen = false;
 
-       /** Currently open requirements while parsing. */
+       /** 
+        * Currently open requirements while parsing. 
+        */
        private Stack openRequirements = new Stack();
 
        /**
@@ -177,7 +203,7 @@ public class Theme extends DefaultHandler {
         * by loading the description from given File.
         * 
         * @param descriptionFile
-        *            Description file
+        *            the Description file.
         * @throws FileNotFoundException
         *             Thrown if the given file is not found.
         */
@@ -190,7 +216,7 @@ public class Theme extends DefaultHandler {
         * theme, by loading the description from given InputSource.
         * 
         * @param descriptionStream
-        *            XML input to parse
+        *            the XML input to parse
         */
        public Theme(InputStream descriptionStream) {
                try {
@@ -204,8 +230,10 @@ public class Theme extends DefaultHandler {
        }
 
        /**
-        * Get the preferred operating mode supported by this theme for given
+        * Gets the preferred operating mode supported by this theme for given
         * terminal.
+        * @param terminal the type of the web browser.
+        * @param themeSource
         */
        public String getPreferredMode(WebBrowser terminal, ThemeSource themeSource) {
 
@@ -229,7 +257,12 @@ public class Theme extends DefaultHandler {
                return null;
        }
 
-       /** Tests if this theme suppors given mode */
+       /** 
+        * Tests if this theme suppors given mode. 
+        * @param mode
+        * @param terminal the type of the web browser.
+        * @param themeSource
+        */
        public boolean supportsMode(String mode, WebBrowser terminal, ThemeSource themeSource) {
 
                // Theme must explicitly support the given mode
@@ -252,10 +285,10 @@ public class Theme extends DefaultHandler {
        }
 
        /**
-        * Parse XML data.
+        * Parses the XML data.
         * 
         * @param descriptionSource
-        *            XML input source to parse
+        *            the XML input source to parse.
         */
        private synchronized void parse(InputSource descriptionSource) {
 
@@ -288,7 +321,7 @@ public class Theme extends DefaultHandler {
        }
 
        /**
-        * Parse start tag in XML stream.
+        * Parses start tag in XML stream.
         * 
         * @see org.xml.sax.ContentHandler#startElement(java.lang.String,
         *      java.lang.String, java.lang.String, org.xml.sax.Attributes)
@@ -329,12 +362,12 @@ public class Theme extends DefaultHandler {
                                                + MODE_HTML + "' and '" + MODE_AJAX + "')");
                        fs = new Fileset(mode);
 
-                       // Use the first fileset as root fileset
+                       // Uses the first fileset as root fileset
                        if (this.files == null) {
                                this.files = fs;
                        }
 
-                       // Add inner filesets to parent
+                       // Adds inner filesets to parent
                        if (!this.openFilesets.isEmpty()) {
                                ((Fileset) this.openFilesets.peek()).addFile(fs);
                        }
@@ -401,7 +434,7 @@ public class Theme extends DefaultHandler {
        }
 
        /**
-        * Parse end tag in XML stream.
+        * Parses the end tag in XML stream.
         * 
         * @see org.xml.sax.ContentHandler#endElement(String, String, String)
         */
@@ -430,7 +463,7 @@ public class Theme extends DefaultHandler {
        }
 
        /**
-        * Parse character data in XML stream.
+        * Parses the character data in XML stream.
         * 
         * @see org.xml.sax.ContentHandler#characters(char[], int, int)
         */
@@ -446,19 +479,19 @@ public class Theme extends DefaultHandler {
        }
 
        /**
-        * Add all requirements specified in attributes to fileset.
+        * Adds all requirements specified in attributes to fileset.
         * 
         * @param atts
-        *            Attribute set
+        *            the Attribute set.
         * @param requirements
-        *            Collection where to add requirement rules.
+        *            the Collection where to add requirement rules.
         * @param applyNot
-        *            Should the meaning of these requirement be negated.
+        *            the Should the meaning of these requirement be negated.
         */
        private void addRequirements(Attributes atts,
                        RequirementCollection requirements, boolean applyNot) {
 
-               // Create temporary collection for requirements
+               // Creates temporary collection for requirements
                Collection tmpReqs = new LinkedList();
                Requirement req = null;
 
@@ -473,12 +506,12 @@ public class Theme extends DefaultHandler {
                                req = new MarkupLanguageRequirement(WebBrowser
                                                .parseHTMLVersion(atts.getValue(i)));
                        }
-                       // Add to temporary requirement collection and clear reference
+                       // Adds to temporary requirement collection and clear reference
                        if (req != null)
                                tmpReqs.add(req);
                }
 
-               // Create implicit AND requirement if more than one
+               // Creates implicit AND requirement if more than one
                // Rrequirements were specified in attributes
                if (tmpReqs.size() > 1) {
                        req = new AndRequirement(tmpReqs);
@@ -489,14 +522,14 @@ public class Theme extends DefaultHandler {
                        req = new NotRequirement(req);
                }
 
-               // Add to requirements
+               // Adds to requirements
                requirements.addRequirement(req);
        }
 
        /**
-        * Get list of all files in this theme.
+        * Gets the list of all files in this theme.
         * 
-        * @return List of filenames belonging to this theme.
+        * @return the List of filenames belonging to this theme.
         */
        public List getFileNames() {
                if (files == null)
@@ -505,9 +538,10 @@ public class Theme extends DefaultHandler {
        }
 
        /**
-        * Get list of file names matching WebBrowserType.
-        * 
-        * @return list of filenames in this theme supporting the given terminal.
+        * Gets the list of file names matching WebBrowserType.
+        * @param terminal the type of the web browser.
+        * @param mode
+        * @return the list of filenames in this theme supporting the given terminal.
         */
        public List getFileNames(WebBrowser terminal, String mode) {
                if (files == null)
@@ -536,29 +570,34 @@ public class Theme extends DefaultHandler {
         * @since 3.0
         */
        public class Author {
-
+               //name of the author.
                private String name;
-
+               //email address of the author.
                private String email;
-
+               
+               /**
+                * Constructor for Author Information Class.
+                * @param name the name of the author.
+                * @param email the email address of the author.
+                */
                public Author(String name, String email) {
                        this.name = name;
                        this.email = email;
                }
 
                /**
-                * Get the name of the author.
+                * Gets the name of the author.
                 * 
-                * @return Name of the author.
+                * @return the Name of the author.
                 */
                public String getName() {
                        return this.name;
                }
 
                /**
-                * Get the email address of the author.
+                * Gets the email address of the author.
                 * 
-                * @return Email address of the author.
+                * @return the Email address of the author.
                 */
                public String getEmail() {
                        return this.email;
@@ -573,7 +612,7 @@ public class Theme extends DefaultHandler {
        }
 
        /**
-        * Generic requirement. Interface implemented by reuirements introducing
+        * Generic requirement. Interface implemented by requirements introducing
         * method for checking compability with given terminal.
         * 
         * @author IT Mill Ltd.
@@ -584,12 +623,12 @@ public class Theme extends DefaultHandler {
        public interface Requirement {
 
                /**
-                * Check that this requirement is met by given type of browser.
+                * Checks that this requirement is met by given type of browser.
                 * 
                 * @param terminal
-                *            type of the web browser.
-                * @return True if terminal is compatible with this rule. False
-                *         otherwise.
+                *            the type of the web browser.
+                * @return <code>true</code> if terminal is compatible with this rule,otherwise <code>false</code>.
+                *        
                 */
                public boolean isMet(WebBrowser terminal);
 
@@ -607,18 +646,18 @@ public class Theme extends DefaultHandler {
        public interface RequirementCollection extends Requirement {
 
                /**
-                * Add new requirement to this collection.
+                * Adds the new requirement to this collection.
                 * 
                 * @param requirement
-                *            Requirement to be added.
+                *            the Requirement to be added.
                 */
                public void addRequirement(Requirement requirement);
 
                /**
-                * Remove a requirement from this collection.
+                * Removes the requirement from this collection.
                 * 
                 * @param requirement
-                *            Requirement to be removed.
+                *            the Requirement to be removed.
                 */
                public void removeRequirement(Requirement requirement);
        }
@@ -639,7 +678,7 @@ public class Theme extends DefaultHandler {
                 * Create new NOT requirement based on another requirement.
                 * 
                 * @param requirement
-                *            The requirement to ne negated.
+                *            the requirement to be negated.
                 */
                public NotRequirement(Requirement requirement) {
                        this.requirement = requirement;
@@ -649,9 +688,9 @@ public class Theme extends DefaultHandler {
                 * Check that this requirement is met by given type of browser.
                 * 
                 * @param terminal
-                *            type of the web browser.
-                * @return True if terminal is compatible with this rule. False
-                *         otherwise.
+                *            the type of the web browser.
+                * @return <code>true</code> if terminal is compatible with this rule,otherwise <code>false</code>.
+                *       
                 */
                public boolean isMet(WebBrowser terminal) {
                        return !this.requirement.isMet(terminal);
@@ -681,27 +720,44 @@ public class Theme extends DefaultHandler {
 
                public AndRequirement() {
                }
-
+               
+               /**
+                * 
+                * @param requirements
+                */
                public AndRequirement(Collection requirements) {
                        this.requirements.addAll(requirements);
                }
-
+               
+               /**
+                * 
+                * @param req1
+                * @param req2
+                */
                public AndRequirement(Requirement req1, Requirement req2) {
                        this.addRequirement(req1);
                        this.addRequirement(req2);
                }
-
+               
+               /**
+                * Adds the new requirement to this collection.
+                * @see com.itmill.toolkit.terminal.web.Theme.RequirementCollection#addRequirement(com.itmill.toolkit.terminal.web.Theme.Requirement)
+                */
                public void addRequirement(Requirement requirement) {
                        this.requirements.add(requirement);
                }
-
+               
+               /**
+                * Removes the requirement from this collection.
+                * @see com.itmill.toolkit.terminal.web.Theme.RequirementCollection#removeRequirement(com.itmill.toolkit.terminal.web.Theme.Requirement)
+                */
                public void removeRequirement(Requirement requirement) {
                        this.requirements.remove(requirement);
                }
 
                /**
                 * Checks that all os the requirements in this collection are met.
-                * 
+                * @param terminal the type of the web browser.
                 * @see Theme.Requirement#isMet(WebBrowser)
                 */
                public boolean isMet(WebBrowser terminal) {
@@ -712,7 +768,10 @@ public class Theme extends DefaultHandler {
                        }
                        return true;
                }
-
+               
+               /**
+                * @see java.lang.Object#toString()
+                */
                public String toString() {
                        String str = "";
                        for (Iterator i = this.requirements.iterator(); i.hasNext();) {
@@ -740,27 +799,44 @@ public class Theme extends DefaultHandler {
 
                public OrRequirement() {
                }
-
+               
+               /**
+                * 
+                * @param requirements
+                */
                public OrRequirement(Collection requirements) {
                        this.requirements.addAll(requirements);
                }
-
+               
+               /**
+                * 
+                * @param req1
+                * @param req2
+                */
                public OrRequirement(Requirement req1, Requirement req2) {
                        this.addRequirement(req1);
                        this.addRequirement(req2);
                }
-
+               
+               /**
+                * Adds the new requirement to this collection.
+                * @see com.itmill.toolkit.terminal.web.Theme.RequirementCollection#addRequirement(com.itmill.toolkit.terminal.web.Theme.Requirement)
+                */
                public void addRequirement(Requirement requirement) {
                        this.requirements.add(requirement);
                }
-
+               
+               /**
+                * Removes the requirement from this collection.
+                * @see com.itmill.toolkit.terminal.web.Theme.RequirementCollection#removeRequirement(com.itmill.toolkit.terminal.web.Theme.Requirement)
+                */
                public void removeRequirement(Requirement requirement) {
                        this.requirements.remove(requirement);
                }
 
                /**
                 * Checks that some of the requirements in this collection is met.
-                * 
+                * @param terminal the type of the web browser.
                 * @see Theme.Requirement#isMet(WebBrowser)
                 */
                public boolean isMet(WebBrowser terminal) {
@@ -771,7 +847,10 @@ public class Theme extends DefaultHandler {
                        }
                        return false;
                }
-
+               
+               /**
+                * @see java.lang.Object#toString()
+                */
                public String toString() {
                        String str = "";
                        for (Iterator i = this.requirements.iterator(); i.hasNext();) {
@@ -796,11 +875,19 @@ public class Theme extends DefaultHandler {
        public class AgentRequirement implements Requirement {
 
                private String agentSubstring;
-
+               
+               /**
+                * 
+                * @param agentSubString
+                */
                public AgentRequirement(String agentSubString) {
                        this.agentSubstring = agentSubString;
                }
-
+               
+               /**
+                * Checks that this requirement is met by given type of browser.
+                * @see com.itmill.toolkit.terminal.web.Theme.Requirement#isMet(com.itmill.toolkit.terminal.web.WebBrowser)
+                */
                public boolean isMet(WebBrowser terminal) {
                        return terminal.getBrowserApplication().indexOf(this.agentSubstring) >= 0;
                }
@@ -825,12 +912,20 @@ public class Theme extends DefaultHandler {
        public class JavaScriptRequirement implements Requirement {
 
                private WebBrowser.JavaScriptVersion requiredVersion;
-
+               
+               /**
+                * 
+                * @param requiredVersion
+                */
                public JavaScriptRequirement(
                                WebBrowser.JavaScriptVersion requiredVersion) {
                        this.requiredVersion = requiredVersion;
                }
-
+               
+               /**
+                * Checks that this requirement is met by given type of browser.
+                * @see com.itmill.toolkit.terminal.web.Theme.Requirement#isMet(com.itmill.toolkit.terminal.web.WebBrowser)
+                */
                public boolean isMet(WebBrowser terminal) {
                        if (terminal.getJavaScriptVersion().supports(this.requiredVersion))
                                return true;
@@ -846,7 +941,7 @@ public class Theme extends DefaultHandler {
        }
 
        /**
-        * Markup language version requirement This requirement is used to ensure a
+        * Markup language version requirement. This requirement is used to ensure a
         * certain level of Markup language version support.
         * 
         * @author IT Mill Ltd.
@@ -857,12 +952,20 @@ public class Theme extends DefaultHandler {
        public class MarkupLanguageRequirement implements Requirement {
 
                private WebBrowser.MarkupVersion requiredVersion;
-
+               
+               /**
+                * 
+                * @param requiredVersion
+                */
                public MarkupLanguageRequirement(
                                WebBrowser.MarkupVersion requiredVersion) {
                        this.requiredVersion = requiredVersion;
                }
-
+               
+               /**
+                * Checks that this requirement is met by given type of browser.
+                * @see com.itmill.toolkit.terminal.web.Theme.Requirement#isMet(com.itmill.toolkit.terminal.web.WebBrowser)
+                */
                public boolean isMet(WebBrowser terminal) {
                        if (terminal.getMarkupVersion().supports(this.requiredVersion))
                                return true;
@@ -893,20 +996,20 @@ public class Theme extends DefaultHandler {
                private String name;
 
                /**
-                * Create new file.
+                * Creates the new file.
                 * 
                 * @param name
-                *            Name of the file.
+                *            the Name of the file.
                 */
                public File(String name) {
                        this.name = name;
                }
 
                /**
-                * Get name of the file. The file name is relative and unique within a
+                * Gets the name of the file. The file name is relative and unique within a
                 * theme.
                 * 
-                * @return Name of the file.
+                * @return the Name of the file.
                 */
                public String getName() {
                        return this.name;
@@ -915,9 +1018,9 @@ public class Theme extends DefaultHandler {
                /**
                 * Does this file support the given terminal. Single file requirements
                 * are not supported and therefore this always returns true.
-                * 
-                * @see Theme.Fileset
+                * @param terminal the type of the web browser.
                 * @return Always returns true.
+                * @see Theme.Fileset
                 */
                public boolean supports(WebBrowser terminal) {
                        return true;
@@ -949,30 +1052,36 @@ public class Theme extends DefaultHandler {
                private String mode;
 
                /**
-                * Create new empty fileset.
+                * Creates the new empty fileset.
                 * 
-                * @param name
-                *            Name of the fileset.
+                * @param mode
+                *            
                 */
                public Fileset(String mode) {
                        super(null);
                        this.mode = mode;
                }
 
-               /** Add a file into fileset. */
+               /** 
+                * Adds a file into fileset.
+                * @param file the file to add. 
+                */
                private void addFile(File file) {
                        this.files.add(file);
                }
 
-               /** Get requirements in this fileset. */
+               /** 
+                * Gets the requirements in this fileset.
+                * @return the requirements. 
+                */
                private RequirementCollection getRequirements() {
                        return this.requirements;
                }
 
                /**
-                * Get list of all files in this theme.
+                * Gets the list of all files in this theme.
                 * 
-                * @return list of filenames.
+                * @return the list of filenames.
                 */
                public List getFileNames() {
 
@@ -993,9 +1102,10 @@ public class Theme extends DefaultHandler {
                }
 
                /**
-                * Get list of file names matching WebBrowserType.
-                * 
-                * @return list of filenames supporting the given terminal.
+                * Gets the list of file names matching WebBrowserType.
+                * @param terminal the type of the web browser.
+                * @param mode 
+                * @return the list of filenames supporting the given terminal.
                 */
                public List getFileNames(WebBrowser terminal, String mode) {
 
@@ -1025,7 +1135,7 @@ public class Theme extends DefaultHandler {
 
                /**
                 * Does this file support the given terminal.
-                * 
+                * @terminal  the type of the web browser.
                 * @return True if fileset supports the given browser. False otherwise.
                 */
                public boolean supports(WebBrowser terminal) {
@@ -1044,32 +1154,35 @@ public class Theme extends DefaultHandler {
        }
 
        /**
-        * Returns the author of this theme.
+        * Gets the author of this theme.
         * 
-        * @return Author of the theme.
+        * @return the Author of the theme.
         */
        public Author getAuthor() {
                return author;
        }
 
        /**
-        * Returns the name of this theme.
+        * Gets the name of this theme.
         * 
-        * @return Name of the theme.
+        * @return the Name of the theme.
         */
        public String getName() {
                return name;
        }
 
        /**
-        * Returns the name of the parent theme.
-        * 
+        * Gets the name of the parent theme.
+        * @return the name of the parent theme.
         */
        public String getParent() {
                return parentTheme;
        }
 
-       /** Get theme description */
+       /** 
+        * Gets the theme description.
+        * @return the theme description. 
+        */
        public String getDescription() {
                return description;
        }
index 41b6e63d389f5288621411e8be653232bd911a2d..79417700b6d89f7b1f25ba8b7bda25cb9f2080ff 100644 (file)
@@ -48,7 +48,7 @@ import javax.servlet.http.HttpSession;
  * This a function library that can be used from the theme XSL-files. It
  * provides easy access to current application, window, theme, webbrowser and
  * session. The internal threadlocal state must be maintained by the webadapter
- * in order go guarantee that it works.
+ * in order to guarantee that it works.
  * 
  * @author IT Mill Ltd.
  * @version
@@ -71,7 +71,16 @@ public class ThemeFunctionLibrary {
        static private final int THEME = 5;
 
        static private ThreadLocal state = new ThreadLocal();
-
+       
+/**
+ * 
+ * @param application
+ * @param window
+ * @param webBrowser
+ * @param session
+ * @param webAdapterServlet
+ * @param theme
+ */
        static protected void setState(Application application, Window window,
                        WebBrowser webBrowser, HttpSession session,
                        ApplicationServlet webAdapterServlet, String theme) {
@@ -132,7 +141,7 @@ public class ThemeFunctionLibrary {
        }
 
        /**
-        * Return a reference to the current theme name that is associated with the
+        * Returns a reference to the current theme name that is associated with the
         * session that the call came from.
         */
        static public String theme() {
@@ -144,7 +153,9 @@ public class ThemeFunctionLibrary {
        }
 
        /**
-        * Return an URI to the named resource from the named theme.
+        * Returns an URI to the named resource from the named theme.
+        * @param resource
+        * @param theme
         */
        static public String resource(String resource, String theme) {
                try {
@@ -156,7 +167,8 @@ public class ThemeFunctionLibrary {
        }
 
        /**
-        * Return an URI to the named resource.
+        * Returns an URI to the named resource.
+        * @param resource
         */
        static public String resource(String resource) {
                try {
@@ -168,7 +180,7 @@ public class ThemeFunctionLibrary {
        }
 
        /**
-        * Generate JavaScript for page that performs client-side combility checks.
+        * Generates the JavaScript for page that performs client-side combility checks.
         */
        static public boolean probeClient() {
                return (browser().performClientCheck() && !browser()
@@ -176,7 +188,7 @@ public class ThemeFunctionLibrary {
        }
 
        /**
-        * Generate JavaScript for page header that handles window refreshing,
+        * Generates the JavaScript for page header that handles window refreshing,
         * opening and closing.
         * 
         * Generates script that:
@@ -185,7 +197,7 @@ public class ThemeFunctionLibrary {
         * <li>Sets the window name</li>
         * <li>Closes window if it is set to be closed </li>
         * <ul>
-        * 
+        * @return
         */
        static public String windowScript() {
                return generateWindowScript(
@@ -194,14 +206,22 @@ public class ThemeFunctionLibrary {
                                (ApplicationServlet) ((Object[]) state.get())[WEBADAPTERSERVLET],
                                browser());
        }
-
+       
+/**
+ * 
+ * @param window
+ * @param app
+ * @param wa
+ * @param browser
+ * @return
+ */
        static protected String generateWindowScript(Window window,
                        Application app, ApplicationServlet wa, WebBrowser browser) {
 
                StringBuffer script = new StringBuffer();
                LinkedList update = new LinkedList();
 
-               // Add all the windows needto update list
+               // Adds all the windows needto update list
                Set dirtyWindows = wa != null ? wa.getDirtyWindows(app) : null;
                if (dirtyWindows != null)
                        for (Iterator i = dirtyWindows.iterator(); i.hasNext();) {
@@ -214,7 +234,7 @@ public class ThemeFunctionLibrary {
                                }
                        }
 
-               // Remove all windows that are in frames, of such frame windows that
+               // Removes all windows that are in frames, of such frame windows that
                // will be updated anyway
                Object[] u = update.toArray();
                if (u.length > 0 && (window != null && window instanceof FrameWindow))
@@ -241,13 +261,13 @@ public class ThemeFunctionLibrary {
                        }
                }
 
-               // Set window name
+               // Sets window name
                if (window != null) {
                        script.append("window.name = \"" + getWindowTargetName(app, window)
                                        + "\";\n");
                }
 
-               // Generate window updatescript
+               // Generates window updatescript
                for (Iterator i = update.iterator(); i.hasNext();) {
                        Window w = (Window) i.next();
                        script.append(getWindowRefreshScript(app, w, browser));
@@ -259,7 +279,7 @@ public class ThemeFunctionLibrary {
                                w.requestRepaintRequests();
                }
 
-               // Close current window if it is not visible
+               // Closes current window if it is not visible
                if (window == null || !window.isVisible())
                        script.append("window.close();\n");
 
@@ -268,12 +288,10 @@ public class ThemeFunctionLibrary {
 
        /**
         * Returns an unique target name for a given window name.
-        * 
-        * @param windowName
-        *            Name of the window.
-        * @return An unique ID for window target
-        * @throws IllegalStateException
-        *             If application for window is null.
+        * @param application
+        * @param window
+        *            the Name of the window.
+        * @return An unique ID for window target.        
         */
        static public String getWindowTargetName(Application application,
                        Window window) {
@@ -287,7 +305,7 @@ public class ThemeFunctionLibrary {
        /**
         * Returns an unique target name for current window.
         * 
-        * @return An unique ID for window target
+        * @return An unique ID for window target.
         */
        static public String getWindowTargetName() {
                return getWindowTargetName(application(), window());
@@ -295,10 +313,8 @@ public class ThemeFunctionLibrary {
 
        /**
         * Returns an unique target name for current window.
-        * 
-        * @return An unique ID for window target
-        * @throws IllegalStateException
-        *             If application for window is null.
+        * @param name the name of the window.
+        * @return An unique ID for window target.
         */
        static public String getWindowTargetName(String name) {
                Window w = application().getWindow(name);
@@ -316,8 +332,8 @@ public class ThemeFunctionLibrary {
        /**
         * Returns the country and region code for current application locale.
         * 
+        * @return the language Country code of the current application locale.
         * @see Locale#getCountry()
-        * @return language Country code of the current application locale.
         */
        static public String getLocaleCountryId() {
                try {
@@ -331,8 +347,8 @@ public class ThemeFunctionLibrary {
        /**
         * Returns the language code for current application locale.
         * 
+        * @return the Language code for current application locale.
         * @see Locale#getLanguage()
-        * @return language Language code for current application locale.
         */
        static public String getLocaleLanguageId() {
                try {
@@ -344,11 +360,8 @@ public class ThemeFunctionLibrary {
        }
 
        /**
-        * Get name for week day.
-        * 
-        * @param Number
-        *            of week day. 0 first day of week.
-        * @return Name of week day in applications current locale.
+        * Gets the name of first day of the week.
+        * @return 
         */
        static public int getFirstDayOfWeek() {
                try {
@@ -366,11 +379,11 @@ public class ThemeFunctionLibrary {
        }
 
        /**
-        * Get name for week day.
+        * Gets the name for week day.
         * 
-        * @param Number
-        *            of week day. 0 sunday, 1 monday, ...
-        * @return Name of week day in applications current locale.
+        * @param dayOfWeek
+        *                              the Number of week day. 0 sunday, 1 monday, ...
+        * @return the Name of week day in applications current locale.
         */
        static public String getShortWeekday(int dayOfWeek) {
                try {
@@ -383,11 +396,11 @@ public class ThemeFunctionLibrary {
        }
 
        /**
-        * Get short name for month.
+        * Gets the short name for month.
         * 
-        * @param Number
-        *            of month. 0 is January, 1 is February, and so on.
-        * @return Name of month in applications current locale.
+        * @param month
+        *                      the Number of month. 0 is January, 1 is February, and so on.
+        * @return the Name of month in applications current locale.
         */
        static public String getShortMonth(int month) {
                try {
@@ -401,11 +414,11 @@ public class ThemeFunctionLibrary {
        }
 
        /**
-        * Get name for month.
+        * Gets the name for month.
         * 
-        * @param Number
-        *            of month. 0 is January, 1 is February, and so on.
-        * @return Name of month in applications current locale.
+        * @param month 
+        *           the Number of month. 0 is January, 1 is February, and so on.
+        * @return the Name of month in applications current locale.
         */
        static public String getMonth(int month) {
                try {
@@ -419,14 +432,14 @@ public class ThemeFunctionLibrary {
        }
 
        /**
-        * Get Form Action URL for the requested window.
+        * Gets Form Action URL for the requested window.
         * 
         * <p>
         * This returns the action for the window main form. This action can be set
         * through WebApplicationContect setWindowFormAction method..
         * </p>
         * 
-        * @return Form action for the current window.
+        * @return the Form action for the current window.
         */
        static public String getFormAction() {
 
@@ -437,7 +450,10 @@ public class ThemeFunctionLibrary {
                                .getWindowFormAction(win);
        }
 
-       /** Generate links for CSS files to be included in html head. */
+       /** 
+        * Generates the links for CSS files to be included in html head. 
+        * @return 
+        */
        static public String getCssLinksForHead() {
                ApplicationServlet as = (ApplicationServlet) ((Object[]) state.get())[WEBADAPTERSERVLET];
                Theme t = as.getThemeSource().getThemeByName(theme());
@@ -451,7 +467,7 @@ public class ThemeFunctionLibrary {
                        themes.add(t);
                }
 
-               // Generate links
+               // Generates links
                StringBuffer links = new StringBuffer();
                for (int k = themes.size() - 1; k >= 0; k--) {
                        Collection allFiles = ((Theme)themes.get(k)).getFileNames(browser(), Theme.MODE_HTML);
@@ -468,7 +484,10 @@ public class ThemeFunctionLibrary {
                return links.toString();
        }
 
-       /** Generate links for JavaScript files to be included in html head. */
+       /** 
+        * Generates the links for JavaScript files to be included in html head. 
+        * @return 
+        */
        static public String getJavaScriptLinksForHead() {
                ApplicationServlet as = (ApplicationServlet) ((Object[]) state.get())[WEBADAPTERSERVLET];
                Theme t = as.getThemeSource().getThemeByName(theme());
@@ -482,7 +501,7 @@ public class ThemeFunctionLibrary {
                        themes.add(t);
                }
 
-               // Generate links
+               // Generates links
                StringBuffer links = new StringBuffer();
                for (int k = themes.size() - 1; k >= 0; k--) {
                        Collection allFiles = ((Theme) themes.get(k)).getFileNames(
@@ -499,7 +518,13 @@ public class ThemeFunctionLibrary {
                return links.toString();
        }
 
-       /** Generate JavaScript for updating given window */
+       /** 
+        * Generates the JavaScript for updating given window. 
+        * @param application
+        * @param window
+        * @param browser
+        * @return
+        */
        static protected String getWindowRefreshScript(Application application,
                        Window window, WebBrowser browser) {
 
index d8089f9f9278d90188d82e443bbeb8b4d8f2f578..dfbfbccb9438b5db18dbdfe1df53c6e9f9dcbf99 100644 (file)
@@ -31,60 +31,72 @@ package com.itmill.toolkit.terminal.web;
 import java.io.InputStream;
 import java.util.Collection;
 
-/** Interface implemented by theme sources.
+/** 
+ * Interface implemented by theme sources.
+ * 
  * @author IT Mill Ltd.
  * @version @VERSION@
  * @since 3.0
  */
 public interface ThemeSource {
 
-       /** Get the name of the ThemeSource.
-        *  @return Name of the theme source.
+       /** 
+        * Gets the name of the ThemeSource.
+        * @return the Name of the theme source.
         */
        public String getName();
        
-       /** Get XSL stream for the specified theme and web-browser type.
-        *  Returns the XSL templates, which are used to process the
-        *  UIDL data. The <code>type</code> parameter is used to limit
-        *  the templates, which are returned based on the theme fileset
-        *  requirements.
-        *  
-        *  This implicitly operates in xslt mode.
-        *  
-        *  @param theme Theme, which XSL should be returned
-        *  @param type The type of the current client.
-        *  @return Collection of ThemeSource.XSLStream objects.
-        *  @see Theme
+       /** 
+        * Gets the XSL stream for the specified theme and web-browser type.
+        * Returns the XSL templates, which are used to process the
+        * UIDL data. The <code>type</code> parameter is used to limit
+        * the templates, which are returned based on the theme fileset
+        * requirements.
+        * <p>
+        * Note : This implicitly operates in xslt mode.
+        * </p>
+        * @param theme the Theme, which XSL should be returned.
+        * @param type the type of the current client.
+        * @return Collection of ThemeSource.XSLStream objects.
+        * @throws ThemeException If the resource is not found or there was
+        *                                                some problem finding the resource.
+        * @see Theme
         */
        public Collection getXSLStreams(Theme theme, WebBrowser type)
                throws ThemeException;
 
-       /** Get the last modification time, used to reload theme on changes.
-        *  @return Last modification time of the theme source.
+       /** 
+        * Gets the last modification time, used to reload theme on changes.
+        * @return the Last modification time of the theme source.
         */
        public long getModificationTime();
 
-       /** Get input stream for the resource with the specified resource id.
-        *  @return Stream where the resource can be read.
-        *  @throws ThemeException If the resource is not found or there was
-        *                       some problem finding the resource.
+       /** 
+        * Gets the input stream for the resource with the specified resource id.
+        * @param resourceId the resource id.
+        * @return Stream where the resource can be read.
+        * @throws ThemeException If the resource is not found or there was
+        *                                               some problem finding the resource.
         */
        public InputStream getResource(String resourceId) throws ThemeException;
 
-       /** Get list of themes in the theme source. 
-        *  @return List of themes included in the theme source.
+       /** 
+        * Gets the list of themes in the theme source. 
+        * @return the List of themes included in the theme source.
         */
        public Collection getThemes();
 
-       /** Return Theme instance by name.
-        *  @param name Theme name.
-        *  @return Theme instance matching the name, or null if not found.
+       /** 
+        * Returns the Theme instance by name.
+        * @param name the Theme name.
+        * @return the Theme instance matching the name, or null if not found.
         */
        public Theme getThemeByName(String name);
 
-       /** Theme exception.
-        *  Thrown by classes implementing the ThemeSource interface
-        *  if some error occurs during processing.
+       /** 
+        * <code>ThemeException</code> is  thrown by classes implementing
+        * the <code>ThemeSource</code> interface if some error occurs during processing.
+        * 
         * @author IT Mill Ltd.
         * @version @VERSION@
         * @since 3.0
@@ -93,42 +105,53 @@ public interface ThemeSource {
 
                private static final long serialVersionUID = -7823850742197580285L;
 
-               /** Create new theme exception.
-                *  @param message Error message.
+               /** 
+                * Creates the new theme exception.
+                * @param message the Error message.
                 */
                public ThemeException(String message) {
                        super(message);
                }
 
-        /** Createa new theme exception.
+        /** 
+         * Creates the new theme exception.
          * 
-         * @param message
-         * @param e
+         * @param message the error message.
+         * @param cause the cause of the exception.
          */
         public ThemeException(String message, Throwable cause) {
            super(message,cause);       
         }
        }
 
-       /** Wrapper class for XSL InputStreams */
+       /** 
+        * Wrapper class for XSL InputStreams. 
+        */
        public class XSLStream {
                private String id;
                private InputStream stream;
-
+               
+/**
+ * 
+ * @param id
+ * @param stream the input stream.
+ */
                public XSLStream(String id, InputStream stream) {
                        this.id = id;
                        this.stream = stream;
                }
                
-               /** Return id of this stream.
-                * @return
+               /** 
+                * Returns id of this stream.
+                * @return the id  of the stream.
                 */
                public String getId() {
                        return id;
                }
 
-               /** Return the actual XSL Stream.
-                * @return
+               /** 
+                * Returns the actual XSL Stream.
+                * @return the XSL Stream.
                 */
                public InputStream getStream() {
                        return stream;
index 225aeac81f329428fdb7c2a3b834ad03b6515463..a6e4c21f258709124121248ad5b19ddec905c11f 100644 (file)
@@ -51,13 +51,14 @@ import javax.xml.transform.ErrorListener;
 import javax.xml.transform.SourceLocator;
 import javax.xml.transform.OutputKeys;
 
-/** Class implementing the UIDLTransformer.
+/** 
+ * Class implementing the UIDLTransformer.
  *
- * The thansformer should not be created directly; it should be contructed
- * using getTransformer() provided by UIDLTransformerFactory
+ * The transformer should not be created directly; it should be contructed
+ * using <code>getTransformer</code> provided by <code>UIDLTransformerFactory</code>
  * 
  * After the transform has been done, the transformer can be recycled with
- * releaseTransformer() by UIDLTransformerFactory.
+ * <code>releaseTransformer</code> by <code>UIDLTransformerFactory</code>.
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -66,7 +67,9 @@ import javax.xml.transform.OutputKeys;
 
 public class UIDLTransformer {
 
-       /** XSLT factory */
+       /** 
+        * XSLT factory. 
+        */
        protected static javax.xml.transform.TransformerFactory xsltFactory;
        static {
                xsltFactory = javax.xml.transform.TransformerFactory.newInstance();
@@ -77,28 +80,40 @@ public class UIDLTransformer {
                                        + "not included in classpath.");
        }
 
-       /** Source of the transform containing UIDL */
+       /** 
+        * Source of the transform containing UIDL. 
+        */
        private WebPaintTarget paintTarget;
 
-       /** Holds the type of the transformer. */
+       /** 
+        * Holds the type of the transformer. 
+        */
        private UIDLTransformerType transformerType;
 
-       /** Prepared XSLT transformer for UIDL transformations */
+       /** 
+        * Prepared XSLT transformer for UIDL transformations. 
+        */
        private javax.xml.transform.Transformer uidlTransformer;
 
-       /** Error handled used */
+       /** 
+        * Error handled used. 
+        */
        private TransformerErrorHandler errorHandler;
 
-       /** Theme repository used for late error reporting */
+       /** 
+        * Theme repository used for late error reporting. 
+        */
        private ThemeSource themeSource;
 
        private ApplicationServlet webAdapterServlet;
 
-       /** UIDLTransformer constructor.
-        * @param type Type of the transformer
-        * @param themes Theme implemented by the transformer
+       /** 
+        * UIDLTransformer constructor.
+        * @param type the Type of the transformer.
+        * @param themes the theme implemented by the transformer.
+        * @param webAdapterServlet the Adapter servlet.
         * @throws UIDLTransformerException UIDLTransformer exception is thrown, 
-        * if the transform can not be created.
+        *                                                                      if the transform can not be created.
         */
        public UIDLTransformer(
                UIDLTransformerType type,
@@ -109,17 +124,17 @@ public class UIDLTransformer {
                this.themeSource = themes;
                this.webAdapterServlet = webAdapterServlet;
 
-               // Register error handler
+               // Registers the error handler
                errorHandler = new TransformerErrorHandler();
                xsltFactory.setErrorListener(errorHandler);
 
                try {
 
-                       // Create XML Reader to be used by
+                       // Creates XML Reader to be used by
                        // XSLReader as the actual parser object.
                        XMLReader parser = XMLReaderFactory.createXMLReader();
 
-                       // Create XML reader for concatenating
+                       // Creates XML reader for concatenating
                        // multiple XSL files as one.
 
                        XMLReader xmlReader =
@@ -131,23 +146,23 @@ public class UIDLTransformer {
 
                        xmlReader.setErrorHandler(errorHandler);
 
-                       // Create own SAXSource using a dummy inputSource.
+                       // Creates own SAXSource using a dummy inputSource.
                        SAXSource source = new SAXSource(xmlReader, new InputSource());
                        uidlTransformer = xsltFactory.newTransformer(source);
 
                        if (uidlTransformer != null) {
 
-                               // Register transformer error handler
+                               // Registers transformer error handler
                                uidlTransformer.setErrorListener(errorHandler);
 
-                               // Ensure HTML output
+                               // Ensures HTML output
                                uidlTransformer.setOutputProperty(OutputKeys.METHOD, "html");
 
-                               // Ensure no indent
+                               // Ensures no indent
                                uidlTransformer.setOutputProperty(OutputKeys.INDENT, "no");
                        }
 
-                       // Check if transform itself failed, meaning either
+                       // Checks if transform itself failed, meaning either
                        // UIDL error or error in XSL/T semantics (like XPath)
                        if (errorHandler.hasFatalErrors()) {
                                throw new UIDLTransformerException(
@@ -169,16 +184,18 @@ public class UIDLTransformer {
                }
        }
 
-       /** Get the type of the transformer.
-       * @return Type of the transformer.
-       */
+       /** 
+        * Gets the type of the transformer.
+        * @return the Type of the transformer.
+        */
        public UIDLTransformerType getTransformerType() {
                return this.transformerType;
        }
 
-       /** Attach the output stream to transformer and get corresponding UIDLStream for 
+       /** 
+        * Attaches the output stream to transformer and get corresponding UIDLStream for 
         * writing UI description language trough transform to given output.
-        * @param variableMap The variable map used for UIDL creation.
+        * @param variableMap the variable map used for UIDL creation.
         * @return returns UI description language stream, that can be used for writing UIDL to
         *  transformer.
         */
@@ -198,9 +215,10 @@ public class UIDLTransformer {
                return paintTarget;
        }
 
-       /** Reset the transformer, before it can be used again. This also interrupts
+       /** 
+        * Resets the transformer, before it can be used again. This also interrupts
         * any ongoing transform and thus should not be called before the transform
-        * is ready. This is automaticalled by the UIDLTransformFactory, when the UIDLTransformer
+        * is ready. This is automatically called by the UIDLTransformFactory, when the UIDLTransformer
         * has been released.
         * @see UIDLTransformerFactory#releaseTransformer(UIDLTransformer)
         */
@@ -218,9 +236,11 @@ public class UIDLTransformer {
        }
 
        /**
-        * Transform the UIDL to HTML and output to the OutputStream.
+        * Transforms the UIDL to HTML and output to the OutputStream.
         * 
-        * @param servletOutputStream - The output stream to render to.
+        * @param outputStream the output stream to render to.
+        * @throws UIDLTransformerException UIDLTransformer exception is thrown, 
+        *                                                              if the transform can not be created.
         */
        public void transform(OutputStream outputStream)
                throws UIDLTransformerException {
@@ -236,7 +256,7 @@ public class UIDLTransformer {
                                org.xml.sax.helpers.XMLReaderFactory.createXMLReader();
                        reader.setErrorHandler(this.errorHandler);
 
-                       // Validate if requested. We validate the UIDL separately,
+                       // Validates if requested. We validate the UIDL separately,
                        // toget the SAXExceptions instead of TransformerExceptions.
                        // This is required to get the line numbers right.
                        /* FIXME: Disable due abnormalities in DTD handling.
@@ -261,7 +281,7 @@ public class UIDLTransformer {
                                errorHandler.getUIDLErrorReport());
                }
 
-               // Check if transform itself failed, meaning either
+               // Checks if transform itself failed, meaning either
                // UIDL error or error in XSL/T semantics (like XPath)
                if (errorHandler.hasFatalErrors()) {
                        throw new UIDLTransformerException(
@@ -274,7 +294,12 @@ public class UIDLTransformer {
                                                transformerType));
                }
        }
-
+       
+/**
+ * 
+ * 
+ *
+ */
        protected class TransformerErrorHandler
                implements ErrorListener, org.xml.sax.ErrorHandler {
 
@@ -283,21 +308,36 @@ public class UIDLTransformer {
                LinkedList fatals = new LinkedList();
                Hashtable rowToErrorMap = new Hashtable();
                Hashtable errorToRowMap = new Hashtable();
-
+               
+/**
+ * 
+ * @return
+ */
                public boolean hasNoErrors() {
                        return errors.isEmpty() && warnings.isEmpty() && fatals.isEmpty();
                }
-
+               
+/**
+ * 
+ * @return
+ */
                public boolean hasFatalErrors() {
                        return !fatals.isEmpty();
                }
-
+               
+/**
+ * 
+ *
+ */
                public void clear() {
                        errors.clear();
                        warnings.clear();
                        fatals.clear();
                }
-
+               
+               /**
+                * @see java.lang.Object#toString()
+                */
                public String toString() {
                        return getHTMLErrors("Fatal Errors", fatals)
                                + "<br />"
@@ -306,7 +346,13 @@ public class UIDLTransformer {
                                + getHTMLErrors("Warnings", warnings)
                                + "<br />";
                }
-
+               
+/**
+ * 
+ * @param title
+ * @param l
+ * @return
+ */
                private String getHTMLErrors(String title, LinkedList l) {
                        String r = "";
                        r = "<b>" + title + "</b><br />";
@@ -405,12 +451,16 @@ public class UIDLTransformer {
                        }
                }
 
-               /** Gets the formated error report on XSL. */
+               /** 
+                * Gets the formated error report on XSL. 
+                * @param themes
+                * @param type
+                */
                public String getXSLErrorReport(
                        ThemeSource themes,
                        UIDLTransformerType type) {
 
-                       // Recreate XSL for error reporting
+                       // Recreates the XSL for error reporting
                        StringBuffer readBuffer = new StringBuffer();
                        try {
                                Collection c =
@@ -517,7 +567,10 @@ public class UIDLTransformer {
                        return sb.toString();
                }
 
-               /** Gets the formated error report on UIDL. */
+               /** 
+                * Gets the formated error report on UIDL. 
+                * @return the formatted error report.
+                */
                public String getUIDLErrorReport() {
 
                        String uidl = "UIDL Source Not Available.";
@@ -525,16 +578,16 @@ public class UIDLTransformer {
                                uidl = paintTarget.getUIDL();
                        StringBuffer sb = new StringBuffer();
 
-                       // Print formatted UIDL with errors embedded
+                       // Prints the formatted UIDL with errors embedded
                        int row = 0;
                        int prev = 0;
                        int index = 0;
                        boolean lastLineWasEmpty = false;
 
-                       // Append error report
+                       // Appends the error report
                        sb.append(toString());
 
-                       // Append UIDL
+                       // Appends UIDL
                        sb.append(
                                "<table width=\"100%\" style=\"border-left: 1px solid black; "
                                        + "border-right: 1px solid black; border-bottom: "
@@ -575,7 +628,11 @@ public class UIDLTransformer {
                        return sb.toString();
                }
 
-               /** Highlight the XML source. */
+               /** 
+                * Highlights the XML source.
+                * @param xmlSnippet
+                * @return  
+                */
                private String xmlHighlight(String xmlSnippet) {
                        String res = xmlSnippet;
 
@@ -597,7 +654,10 @@ public class UIDLTransformer {
                        return res;
                }
 
-               /** Get the first fatal error. */
+               /** 
+                * Gets the first fatal error.
+                * @return the fatal error. 
+                */
                public Throwable getFirstFatalError() {
                        return (Throwable) fatals.iterator().next();
                }
index b147379e8d86965d0347deb895644d8fb9b123d8..a974c2f987b26996e3f2053d40c196299718d07d 100644 (file)
@@ -28,7 +28,8 @@
 
 package com.itmill.toolkit.terminal.web;
 
-/** Exception in transform process.
+/** 
+ * Exception in the transform process.
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -50,8 +51,8 @@ public class UIDLTransformerException extends java.lang.Exception {
        /**
         * Constructs an instance of UIDLTransformerException with the specified
         * detail message.
-        * @param msg description of exception that occurred
-        * @param te Transform exception that occurred.
+        * @param msg the description of exception that occurred.
+        * @param te the Transform exception that occurred.
         * @param desc the detailed description.
         */
        public UIDLTransformerException(String msg, Throwable te, String desc) {
@@ -59,15 +60,18 @@ public class UIDLTransformerException extends java.lang.Exception {
                this.transformException = te;
                this.HTMLDescription = desc;
        }
-       /** Returns the detailed description.
-        * @return Detailed description of exception.
+       
+       /** 
+        * Returns the detailed description.
+        * @return the Detailed description of exception.
         */
        public String getHTMLDescription() {
                return HTMLDescription;
        }
 
-       /** Returns the nested transform exception that occurred.
-        * @return Throwable
+       /** 
+        * Returns the nested transform exception that occurred.
+        * @return the transform exception
         */
        public Throwable getTransformException() {
                return transformException;
index 8a2fb0cf0aebb466f1d43f4b948fa6c783ec8d99..6bf66dd9427f3a892b8bb9121b58a69b9ddbc579 100644 (file)
@@ -35,7 +35,8 @@ import java.util.LinkedList;
 import java.util.Map;
 import java.util.Iterator;
 
-/** Class implementing the UIDLTransformer Factory.
+/** 
+ * Class implementing the UIDLTransformer Factory.
  * The factory creates and maintains a pool of transformers that are used
  * for transforming UIDL to HTML.
  * 
@@ -46,25 +47,39 @@ import java.util.Iterator;
 
 public class UIDLTransformerFactory {
 
-       /** Time between repository modified queries. */
+       /** 
+        * Time between repository modified queries. 
+        */
        private static final int CACHE_CHECK_INTERVAL_MILLIS = 5 * 1000;
 
-       /** The time transformers are cached by default*/
+       /** 
+        * The time transformers are cached by default.
+        */
        private static final long DEFAULT_TRANSFORMER_CACHETIME = 60 * 60 * 1000;
 
-       /** Maximum number of transformers in use */
+       /** 
+        * Maximum number of transformers in use. 
+        */
        private int maxConcurrentTransformers = 1;
 
-       /** Last time theme modification time was checked */
+       /** 
+        * Last time theme modification time was checked. 
+        */
        private long lastModificationCheckTime = 0;
 
-       /** Last time theme source was modified */
+       /** 
+        * Last time theme source was modified. 
+        */
        private long themeSourceModificationTime = 0;
 
-       /** How long to cache transformers. */
+       /** 
+        * How long to cache transformers. 
+        */
        private long cacheTime = DEFAULT_TRANSFORMER_CACHETIME;
 
-       /** Spool manager thread */
+       /** 
+        * Spool manager thread. 
+        */
        private SpoolManager spoolManager;
 
        private Map transformerSpool = new HashMap();
@@ -73,12 +88,13 @@ public class UIDLTransformerFactory {
        private int transformerCount = 0;
        private int transformersInUse = 0;
 
-       /** Constructor for transformer factory.
+       /** 
+        * Constructor for transformer factory.
         * Method UIDLTransformerFactory.
-        * @param themeSource Theme source to be used for themes.
-        * @param webAdapterServlet The Adapter servlet.
-        * @param maxConcurrentTransformers Maximum number of concurrent themes in use.
-        * @param cacheTime Time to cache the transformers.
+        * @param themeSource the Theme source to be used for themes.
+        * @param webAdapterServlet the Adapter servlet.
+        * @param maxConcurrentTransformers the Maximum number of concurrent themes in use.
+        * @param cacheTime the Time to cache the transformers.
         */
        public UIDLTransformerFactory(
                ThemeSource themeSource,
@@ -100,10 +116,12 @@ public class UIDLTransformerFactory {
                        this.spoolManager.start();
        }
 
-       /** Get new transformer of the specified type
-        * @param type Type of the requested transformer.
-        * @param variableMap WebVariable map used by the transformer
+       /** 
+        * Gets the new transformer of the specified type.
+        * @param type the Type of the requested transformer.
         * @return Created new transformer.
+        * @throws UIDLTransformerException 
+        *                                                                      if the transform can not be created.
         */
        public synchronized UIDLTransformer getTransformer(UIDLTransformerType type)
                throws UIDLTransformerException {
@@ -116,18 +134,18 @@ public class UIDLTransformerFactory {
                        }
                }
 
-               // Get list of transformers for this type
+               // Gets the list of transformers for this type
                TransformerList list =
                        (TransformerList) this.transformerSpool.get(type);
 
-               // Check the modification time between fixed intervals
+               // Checks the modification time between fixed intervals
                long now = System.currentTimeMillis();
                if (now - CACHE_CHECK_INTERVAL_MILLIS
                        > this.lastModificationCheckTime) {
 
                        this.lastModificationCheckTime = now;
 
-                       //  Check if the theme source has been modified and flush 
+                       //  Checks if the theme source has been modified and flush 
                        //  list if necessary
                        long lastmod = this.themeSource.getModificationTime();
                        if (list != null && this.themeSourceModificationTime < lastmod) {
@@ -156,7 +174,7 @@ public class UIDLTransformerFactory {
                        }
                } else {
 
-                       // Create new transformer and return it. Transformers are added to
+                       // Creates the new transformer and return it. Transformers are added to
                        // spool when they are released.
                        t = new UIDLTransformer(type, themeSource, webAdapterServlet);
                        transformerCount++;
@@ -168,7 +186,7 @@ public class UIDLTransformerFactory {
                                                + type);
                        }
 
-                       // Create new list, if not found
+                       // Creates the new list, if not found
                        if (list == null) {
                                list = new TransformerList();
                                this.transformerSpool.put(type, list);
@@ -182,14 +200,15 @@ public class UIDLTransformerFactory {
                return t;
        }
 
-       /** Recycle a used transformer back to spool.
+       /** 
+        * Recycle a used transformer back to spool.
         * One must guarantee not to use the transformer after it have been released.
-        * @param transformer UIDLTransformer to be recycled
+        * @param transformer the UIDLTransformer to be recycled.
         */
        public synchronized void releaseTransformer(UIDLTransformer transformer) {
 
                try {
-                       // Reset the transformer before returning it to spool
+                       // Resets the transformer before returning it to spool
                        transformer.reset();
 
                        // Recycle the transformer back to spool
@@ -222,29 +241,54 @@ public class UIDLTransformerFactory {
                        notifyAll();
                }
        }
-
+       
+/**
+ * 
+ * 
+ *
+ */
        private class TransformerList {
 
                private LinkedList list = new LinkedList();
                private long lastUsed = 0;
-
+               
+/**
+ * 
+ * @param transformer
+ */
                public void add(UIDLTransformer transformer) {
                        list.add(transformer);
                }
-
+               
+/**
+ * 
+ * @return
+ */
                public UIDLTransformer removeFirst() {
                        return (UIDLTransformer) ((LinkedList) list).removeFirst();
                }
-
+               
+/**
+ * 
+ * @return
+ */
                public boolean isEmpty() {
                        return list.isEmpty();
                }
-
+               
+/**
+ * 
+ * @return
+ */
                public int size() {
                        return list.size();
                }
        }
-
+       
+/**
+ * 
+ *
+ */
        private synchronized void removeUnusedTransformers() {
                long currentTime = System.currentTimeMillis();
                HashSet keys = new HashSet();
@@ -269,7 +313,8 @@ public class UIDLTransformerFactory {
                }
        }
 
-       /** Class for periodically remove unused transformers from memory.
+       /** 
+        * Class for periodically remove unused transformers from memory.
         * @author IT Mill Ltd.
         * @version @VERSION@
         * @since 3.0
@@ -277,12 +322,20 @@ public class UIDLTransformerFactory {
        protected class SpoolManager extends Thread {
 
                long refreshTime;
-
+               
+/**
+ * 
+ * @param refreshTime
+ */
                public SpoolManager(long refreshTime) {
                        super("UIDLTransformerFactory.SpoolManager");
                        this.refreshTime = refreshTime;
                }
-
+               
+               /**
+                *
+                * @see java.lang.Thread#run()
+                */
                public void run() {
                        while (true) {
                                try {
index 3193ab32ff283ec73dbc551fbbf9ed770d12948c..b42a2c43cefd07c61e20f19f7d65633a072ded9e 100644 (file)
@@ -28,7 +28,8 @@
 
 package com.itmill.toolkit.terminal.web;
 
-/** Type of the transformer.
+/** 
+ * Type of the transformer.
  * 
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -36,13 +37,21 @@ package com.itmill.toolkit.terminal.web;
  */
 public class UIDLTransformerType {
 
-       /** Holds value of property webBrowserType. */
+       /** 
+        * Holds the value of property webBrowserType. 
+        */
        private WebBrowser webBrowser;
 
-       /** Holds value of property theme. */
+       /** 
+        * Holds the value of property theme. 
+        */
        private Theme theme;
 
-       /** Creates a new instance of TransformerType */
+       /** 
+        * Creates the new instance of TransformerType.
+        * @param webBrowserType the web browser type.
+        * @param theme the property theme.
+        */
        public UIDLTransformerType(WebBrowser webBrowserType, Theme theme) {
                if (webBrowserType == null || theme == null)
                        throw new IllegalArgumentException("WebBrowserType and Theme must be non-null values");
@@ -50,37 +59,48 @@ public class UIDLTransformerType {
                this.theme = theme;
        }
 
-       /** The hash code of the equal types are the same */
+       /** 
+        * Returns the hash code for this string.
+        * @return the hash code value. 
+        */
        public int hashCode() {
 
                return this.toString().hashCode();
        }
 
-       /** Get the web browser type used in the UIDLTransformer of this type.
-        * @return Web browser type used.
+       /** 
+        * Gets the web browser type used in the UIDLTransformer of this type.
+        * @return the Web browser type used.
         */
        public WebBrowser getWebBrowser() {
                return this.webBrowser;
        }
 
-       /** Get the theme used in the UIDLTransformer of this type.
-        * @return Theme used.
+       /** 
+        * Gets the theme used in the UIDLTransformer of this type.
+        * @return the Theme used.
         */
        public Theme getTheme() {
                return this.theme;
        }
 
-       /** Two types are equal, if their properties are equal */
+       /**
+        * Two types are equal, if their properties are equal.
+        * @see java.lang.Object#equals(java.lang.Object)
+        */
        public boolean equals(Object obj) {
-               // Check that the object are of the same class
+               // Checks that the object are of the same class
                if (!(obj.getClass().equals(this.getClass())))
                        return false;
 
-               // Check that the properties of the types are equal
+               // Checks that the properties of the types are equal
                return this.toString().equals(obj.toString());
        }
 
-       /** Textual representation of the UIDLTransformer type */
+       /**
+        * Textual representation of the UIDLTransformer type.
+        * @see java.lang.Object#toString()
+        */
        public String toString() {
                return " theme='"
                        + theme.getName()
index 7a68acde203a542ff006aa0b5ced8858c968660b..0537cedcdb46a68572dbf99cb097bd119462cf9e 100644 (file)
@@ -61,22 +61,25 @@ public class WebApplicationContext implements ApplicationContext {
 
        private WeakHashMap formActions = new WeakHashMap();
 
-       /** Create a new Web Application Context. */
+       /** 
+        * Creates a new Web Application Context.
+        * @param session  the HTTP session.
+        */
        WebApplicationContext(HttpSession session) {
                this.session = session;
        }
 
        /**
-        * Get the form action for given window.
-        * 
+        * Gets the form action for given window.
+        * <p>
         * By default, this action is "", which preserves the current url. Commonly
-        * this is wanted to be set to <code>application.getUrl().toString()</code>
-        * or <code>window.getUrl().toString()</code> in order to clean any local
+        * this is wanted to be set to <code>application.getUrl.toString</code>
+        * or <code>window.getUrl.toString</code> in order to clean any local
         * links or parameters set from the action.
-        * 
+        * </p>
         * @param window
-        *            Window for which the action is queried
-        * @return Action to be set into Form action attribute
+        *            the Window for which the action is queried.
+        * @return the Action to be set into Form action attribute.
         */
        public String getWindowFormAction(Window window) {
                String action = (String) formActions.get(window);
@@ -84,17 +87,17 @@ public class WebApplicationContext implements ApplicationContext {
        }
 
        /**
-        * Set the form action for given window.
-        * 
+        * Sets the form action for given window.
+        * <p>
         * By default, this action is "", which preserves the current url. Commonly
-        * this is wanted to be set to <code>application.getUrl().toString()</code>
-        * or <code>window.getUrl().toString()</code> in order to clean any local
+        * this is wanted to be set to <code>application.getUrl.toString</code>
+        * or <code>window.getUrl.toString</code> in order to clean any local
         * links or parameters set from the action.
-        * 
+        * </p>
         * @param window
-        *            Window for which the action is set
+        *            the Window for which the action is set.
         * @param action
-        *            New action for the window.
+        *            the New action for the window.
         */
        public void setWindowFormAction(Window window, String action) {
                if (action == null || action == "")
@@ -103,9 +106,8 @@ public class WebApplicationContext implements ApplicationContext {
                        formActions.put(window, action);
        }
 
-       /*
-        * (non-Javadoc)
-        * 
+       /**
+        * Gets the application context base directory.
         * @see com.itmill.toolkit.service.ApplicationContext#getBaseDirectory()
         */
        public File getBaseDirectory() {
@@ -117,17 +119,16 @@ public class WebApplicationContext implements ApplicationContext {
        }
 
        /**
-        * Get the http-session application is running in.
+        * Gets the http-session application is running in.
         * 
-        * @return HttpSession this application context resides in
+        * @return HttpSession this application context resides in.
         */
        public HttpSession getHttpSession() {
                return session;
        }
 
-       /*
-        * (non-Javadoc)
-        * 
+       /**
+        * Gets the applications in this context.
         * @see com.itmill.toolkit.service.ApplicationContext#getApplications()
         */
        public Collection getApplications() {
@@ -140,36 +141,35 @@ public class WebApplicationContext implements ApplicationContext {
        }
 
        /**
-        * Get application context for HttpSession.
-        * 
-        * @return application context for HttpSession.
+        * Gets the application context for HttpSession.
+        * @param session the HTTP session.
+        * @return the application context for HttpSession.
         */
        static public WebApplicationContext getApplicationContext(
                        HttpSession session) {
                return new WebApplicationContext(session);
        }
 
-       /*
-        * (non-Javadoc)
-        * 
+       /**
+        * Returns <code>true</code> if and only if the argument is not <code>null</code> and is a 
+        * Boolean object that represents the same boolean value as this object.
+        * @param obj the object to compare with.
         * @see java.lang.Object#equals(java.lang.Object)
         */
        public boolean equals(Object obj) {
                return session.equals(obj);
        }
 
-       /*
-        * (non-Javadoc)
-        * 
+       /**
+        * Returns the hash code value .
         * @see java.lang.Object#hashCode()
         */
        public int hashCode() {
                return session.hashCode();
        }
 
-       /*
-        * (non-Javadoc)
-        * 
+       /**
+        * Adds the transaction listener to this context.
         * @see com.itmill.toolkit.service.ApplicationContext#addTransactionListener(com.itmill.toolkit.service.ApplicationContext.TransactionListener)
         */
        public void addTransactionListener(TransactionListener listener) {
@@ -178,9 +178,8 @@ public class WebApplicationContext implements ApplicationContext {
                this.listeners.add(listener);
        }
 
-       /*
-        * (non-Javadoc)
-        * 
+       /**
+        * Removes the transaction listener from this context.
         * @see com.itmill.toolkit.service.ApplicationContext#removeTransactionListener(com.itmill.toolkit.service.ApplicationContext.TransactionListener)
         */
        public void removeTransactionListener(TransactionListener listener) {
@@ -189,7 +188,11 @@ public class WebApplicationContext implements ApplicationContext {
 
        }
 
-       /** Notify transaction start */
+       /** 
+        * Notifies the transaction start.
+        * @param application 
+        * @param request the HTTP request. 
+        */
        protected void startTransaction(Application application,
                        HttpServletRequest request) {
                if (this.listeners == null)
@@ -200,7 +203,11 @@ public class WebApplicationContext implements ApplicationContext {
                }
        }
 
-       /** Notify transaction end */
+       /** 
+        * Notifies the transaction end.
+        * @param application 
+        * @param request the HTTP request. 
+        */
        protected void endTransaction(Application application,
                        HttpServletRequest request) {
                if (this.listeners == null)
index 0ad6ce949eaf04d3f23e72f70dd6f9b2d486e15f..5f808b7eea86bf2bacda8001e5f30609c511eec4 100644 (file)
@@ -35,7 +35,8 @@ import java.util.Collection;
 import java.util.Iterator;
 import java.util.Locale;
 
-/** Web browser terminal type.
+/** 
+ * Web browser terminal type.
  *
  * This class implements web browser properties, which declare the features of
  * the web browser.
@@ -48,46 +49,69 @@ public class WebBrowser implements Terminal {
 
        private static WebBrowser DEFAULT = new WebBrowser();
 
-       /** Content type */
+       /** 
+        * Content type. 
+        */
        private String contentType = "text/html; charset=utf-8";
 
-       /** Holds the collection of accepted locales */
+       /** 
+        * Holds the collection of accepted locales. 
+        */
        private Collection locales = new ArrayList();
 
-       /** Holds value of property browserApplication. */
+       /** 
+        * Holds value of property browserApplication. 
+        */
        private String browserApplication = null;
 
-       /** Should the client side checkking be done. */
+       /** 
+        * Should the client side checkking be done. 
+        */
        private boolean performClientCheck = true;
 
-       /** Holds value for property isClientSideChecked. */
+       /** 
+        * Holds value for property isClientSideChecked. 
+        */
        private boolean clientSideChecked = false;
 
-       /** Holds value of property javaScriptVersion. */
+       /** 
+        * Holds value of property javaScriptVersion. 
+        */
        private JavaScriptVersion javaScriptVersion = JAVASCRIPT_UNCHECKED;
 
-       /** Holds value of property javaEnabled. */
+       /** 
+        * Holds value of property javaEnabled. 
+        */
        private boolean javaEnabled = false;
 
-       /** Holds value of property frameSupport. */
+       /** 
+        * Holds value of property frameSupport. 
+        */
        private boolean frameSupport = false;
 
-       /** Holds value of property markup version. */
+       /** 
+        * Holds value of property markup version. 
+        */
        private MarkupVersion markupVersion = MARKUP_HTML_3_2;
 
-       /** Pixel width of the terminal screen */
+       /** 
+        * Pixel width of the terminal screen. 
+        */
        private int screenWidth = -1;
 
-       /** Pixel height of the terminal screen */
+       /** 
+        * Pixel height of the terminal screen. 
+        */
        private int screenHeight = -1;
        
        private RenderingMode renderingMode = RENDERING_MODE_UNDEFINED;
 
-       /** Constuctor with some autorecognition capabilities 
-        *  Retrieves all capability information reported in http request headers:
+       /** 
+        * Constuctor with some autorecognition capabilities 
+        * Retrieves all capability information reported in http request headers:
         * <ul>
-        *  <li>User web browser (User-Agent)</li>
-        *  <li>Supported locale(s)</li>
+        * <li>User web browser (User-Agent)</li>
+        * <li>Supported locale(s)</li>
         * </ul>
         */
 
@@ -98,69 +122,78 @@ public class WebBrowser implements Terminal {
        public WebBrowser() {
        }
 
-       /** Get name of the default theme
-        * @return Name of the terminal window
+       /** 
+        * Gets the name of the default theme.
+        * @return the Name of the terminal window.
         */
        public String getDefaultTheme() {
                return ApplicationServlet.DEFAULT_THEME;
        }
 
-       /** Get the name and version of the web browser application.
-        *
+       /** 
+        * Gets the name and version of the web browser application.
         * This is the version string reported by the web-browser in http headers.
-        * @return Web browser application.
+        * 
+        * @return the Web browser application.
         */
        public String getBrowserApplication() {
                return this.browserApplication;
        }
 
-       /** Get the version of the supported Java Script by the browser.
+       /** 
+        * Gets the version of the supported Java Script by the browser.
         *
-        * Null if the Java Script is not supported.
-        * @return Version of the supported Java Script
+        * <code>Null</code> if the Java Script is not supported.
+        * @return the Version of the supported Java Script.
         */
        public JavaScriptVersion getJavaScriptVersion() {
                return this.javaScriptVersion;
        }
 
-       /** Does the browser support frames ?
-        * @return True if the browser supports frames, False if not
+       /** 
+        * Does the browser support frames ?
+        * @return <code>true</code> if the browser supports frames, otherwise <code>false</code>.
         */
        public boolean isFrameSupport() {
                return this.frameSupport;
        }
 
-       /** Set the browser frame support
-        * @param frameSupport True if the browser supports frames, False if not
+       /** 
+        * Sets the browser frame support.
+        * @param frameSupport True if the browser supports frames, False if not.
         */
        public void setFrameSupport(boolean frameSupport) {
                this.frameSupport = frameSupport;
        }
 
-       /** Get the supported markup language.
+       /** 
+        * Gets the supported markup language.
         *
-        * @return Supported markup language
+        * @return the Supported markup language
         */
        public MarkupVersion getMarkupVersion() {
                return this.markupVersion;
        }
 
-       /** Get height of the terminal window in pixels
-        * @return Height of the terminal window
+       /** 
+        * Gets the height of the terminal window in pixels.
+        * @return the Height of the terminal window.
         */
        public int getScreenHeight() {
                return this.screenHeight;
        }
 
-       /** Get width of the terminal window in pixels
-        * @return Width of the terminal window
+       /** 
+        * Gets the width of the terminal window in pixels.
+        * @return the Width of the terminal window.
         */
        public int getScreenWidth() {
                return this.screenWidth;
        }
 
-       /** Get the default locale requested by the browser.
-        * @return Default locale
+       /** 
+        * Gets the default locale requested by the browser.
+        * @return the Default locale.
         */
        public Locale getDefaultLocale() {
                if (this.locales.isEmpty())
@@ -168,12 +201,18 @@ public class WebBrowser implements Terminal {
                return (Locale) this.locales.iterator().next();
        }
 
-       /** Hash code composed of the properties of the web browser type */
+       /**
+        * Hash code composed of the properties of the web browser type.
+        * @see java.lang.Object#hashCode()
+        */
        public int hashCode() {
                return toString().hashCode();
        }
 
-       /** Test the equality of the properties for two web browser types */
+       /**
+        * Tests the equality of the properties for two web browser types.
+        * @see java.lang.Object#equals(java.lang.Object)
+        */
        public boolean equals(Object obj) {
                if (obj != null && obj instanceof WebBrowser) {
                        return toString().equals(obj.toString());
@@ -181,7 +220,9 @@ public class WebBrowser implements Terminal {
                return false;
        }
 
-       /** Repsent the type of the web browser as string */
+       /**
+        * @see java.lang.Object#toString()
+        */
        public String toString() {
 
                String localeString = "[";
@@ -192,7 +233,7 @@ public class WebBrowser implements Terminal {
                }
                localeString += "]";
 
-               // Return catenation of the properties
+               // Returns catenation of the properties
                return "Browser:"
                        + this.browserApplication
                        + ", "
@@ -222,34 +263,44 @@ public class WebBrowser implements Terminal {
                        + this.clientSideChecked;
        }
 
-       /** Get preferred content type */
+       /** 
+        * Gets the preferred content type.
+        * @return the content type. 
+        */
        public String getContentType() {
                return contentType;
        }
 
-       /** Check if this type supports also given browser.
-        *  @return true if this type matches the given browser.
+       /** 
+        * Checks if this type supports also given browser.
+        * @param browser the browser type.
+        * @return true if this type matches the given browser.
         */
        public boolean supports(String browser) {
                return this.getBrowserApplication().indexOf(browser) >= 0;
        }
 
-       /** Check if this type supports given markup language version.
-        *  @return true if this type supports the given markup version.
+       /** 
+        * Checks if this type supports given markup language version.
+        * @param html the markup language version.
+        * @return <code>true</ocde> if this type supports the given markup version,otherwise <code>false</code>.
         */
        public boolean supports(MarkupVersion html) {
                return this.getMarkupVersion().supports(html);
        }
 
-       /** Check if this type supports given javascript version.
-        *  @param js The javascript version to check for.
-        *  @return true if this type supports the given javascript version.
+       /** 
+        * Checks if this type supports given javascript version.
+        * @param js the javascript version to check for.
+        * @return true if this type supports the given javascript version.
         */
        public boolean supports(JavaScriptVersion js) {
                return this.getJavaScriptVersion().supports(js);
        }
 
-       /** Parse HTML version from string.
+       /** 
+        * Parses HTML version from string.
+        * @param html 
         * @return HTMLVersion instance.
         */
        private MarkupVersion doParseHTMLVersion(String html) {
@@ -260,8 +311,10 @@ public class WebBrowser implements Terminal {
                return MARKUP_UNKNOWN;
        }
 
-       /** Parse JavaScript version from string.
-                * @return HTMLVersion instance.
+       /** 
+        * Parses JavaScript version from string.
+        * @param js the javascript version to check for.
+        * @return HTMLVersion instance.
         */
        private JavaScriptVersion doParseJavaScriptVersion(String js) {
                for (int i = 0; i < JAVASCRIPT_VERSIONS.length; i++) {
@@ -274,116 +327,135 @@ public class WebBrowser implements Terminal {
                return JAVASCRIPT_NONE;
        }
 
-       /** Parse HTML version from string.
-        * @return HTMLVersion instance.
+       /** 
+        * Parses HTML version from string.
+        * @param html
+        * @return the HTMLVersion instance.
         */
        public static MarkupVersion parseHTMLVersion(String html) {
                return DEFAULT.doParseHTMLVersion(html);
        }
 
-       /** Parse JavaScript version from string.
-        * @return HTMLVersion instance.
+       /** 
+        * Parse JavaScript version from string.
+        * @param js the javascript version to check for.
+        * @return the HTMLVersion instance.
         */
        public static JavaScriptVersion parseJavaScriptVersion(String js) {
                return DEFAULT.doParseJavaScriptVersion(js);
        }
 
-       /** Get the client side cheked property.
-        *  Certain terminal features can only be detected at client side. This
-        *  property indicates if the client side detections have been performed
-        *  for this type.
-        * @return true if client has sent information about its properties. Default false
+       /** 
+        * Gets the client side cheked property.
+        * Certain terminal features can only be detected at client side. This
+        * property indicates if the client side detections have been performed
+        * for this type.
+        * @return <code>true</code> if client has sent information about its properties. Default is <code>false</code>.
         */
        public boolean isClientSideChecked() {
                return this.clientSideChecked;
        }
 
-       /** Set the client side checked property.
-        *  Certain terminal features can only be detected at client side. This
-        *  property indicates if the client side detections have been performed
-        *  for this type.
-        * @param true if client has sent information about its properties, false otherweise.
+       /** 
+        * Sets the client side checked property.
+        * Certain terminal features can only be detected at client side. This
+        * property indicates if the client side detections have been performed
+        * for this type.
+        * @param value true if client has sent information about its properties, false otherweise.
         */
        public void setClientSideChecked(boolean value) {
                this.clientSideChecked = value;
        }
 
-       /** Should the client features be checked using remote scripts.
-        *  Should the client side terminal feature check be performed.
-        * @return true if client side checking should be performed for this terminal type. Default false.
+       /** 
+        * Should the client features be checked using remote scripts.
+        * Should the client side terminal feature check be performed.
+        * @return <code>true</code> if client side checking should be performed 
+        *                                      for this terminal type. Default is <code>false</code>.
         */
        public boolean performClientCheck() {
                return this.performClientCheck;
        }
 
-       /** Should the  client features be checked using remote scripts.
-        * 
-        * @return true if client side checking should be performed for this terminal type. Default false.
+       /** 
+        * Should the  client features be checked using remote scripts.
+        * @param value
+        * @return <code>true</code> if client side checking should be performed
+        *                               for this terminal type. Default <code>false</code>.
         */
        public void performClientCheck(boolean value) {
                this.performClientCheck = value;
        }
 
-       /** Check if web browser supports Java.
-        * @return boolean
+       /** 
+        * Checks if web browser supports Java.
+        * @return <code>true<code> if the browser supports java otherwise <code>false</code>.
         */
        public boolean isJavaEnabled() {
                return javaEnabled;
        }
 
-       /** Returns the locales supported by the web browser.
-        * @return Collection
+       /** 
+        * Returns the locales supported by the web browser.
+        * @return the Collection.
         */
        public Collection getLocales() {
                return locales;
        }
 
-       /** Sets the browser application.
-        *  This corresponds to User-Agent HTTP header.
-        * @param browserApplication The browserApplication to set
+       /** 
+        * Sets the browser application.
+        * This corresponds to User-Agent HTTP header.
+        * @param browserApplication the browserApplication to set.
         */
        public void setBrowserApplication(String browserApplication) {
                this.browserApplication = browserApplication;
        }
 
-       /** Sets the default content type.
-        *  Default is <code>text/html</code>
-        * @param contentType The contentType to set
+       /** 
+        * Sets the default content type.
+        * Default is <code>text/html</code>
+        * @param contentType the contentType to set.
         */
        public void setContentType(String contentType) {
                this.contentType = contentType;
        }
 
-       /** Sets the java enabled property.
-        * @param javaEnabled The javaEnabled to set
+       /** 
+        * Sets the java enabled property.
+        * @param javaEnabled the javaEnabled to set.
         */
        public void setJavaEnabled(boolean javaEnabled) {
                this.javaEnabled = javaEnabled;
        }
 
-       /**Sets the JavaScript version.
-        * @param javaScriptVersion The JavaScript version to set
+       /**
+        * Sets the JavaScript version.
+        * @param javaScriptVersion the JavaScript version to set.
         */
        public void setJavaScriptVersion(JavaScriptVersion javaScriptVersion) {
                this.javaScriptVersion = javaScriptVersion;
        }
 
-       /** Sets the markup language version.
-        * @param markupVersion ersion The markup language version to set
+       /** 
+        * Sets the markup language version.
+        * @param markupVersion the markup language version to set.
         */
        public void setMarkupVersion(MarkupVersion markupVersion) {
                this.markupVersion = markupVersion;
        }
 
-       /** Sets the screen height.
-        * @param screenHeight The screen height to set in pixels.
+       /** 
+        * Sets the screen height.
+        * @param screenHeight the screen height to set in pixels.
         */
        public void setScreenHeight(int screenHeight) {
                this.screenHeight = screenHeight;
        }
 
-       /** Sets the screen width.
-        * @param screenWidth The screenWidth to set in pixels.
+       /** 
+        * Sets the screen width.
+        * @param screenWidth the screenWidth to set in pixels.
         */
        public void setScreenWidth(int screenWidth) {
                this.screenWidth = screenWidth;
@@ -400,6 +472,9 @@ public class WebBrowser implements Terminal {
                private int order;
 
                /**
+                * Returns <code>true</code> if and only if the argument is not <code>null</code> and is a 
+                * Boolean object that represents the same boolean value as this object.
+                * @param obj the object to compare with.
                 * @see java.lang.Object#equals(Object)
                 */
                public boolean equals(Object obj) {
@@ -414,14 +489,21 @@ public class WebBrowser implements Terminal {
                public String toString() {
                        return name;
                }
-
+               
+/**
+ * 
+ * @param name
+ * @param order
+ */
                private MarkupVersion(String name, int order) {
                        this.name = name;
                        this.order = order;
                }
 
-               /** Check compability with other HTML version.
-                *  @return true if this is compatible with the other, false otherwise
+               /** 
+                * Checks the compability with other HTML version.
+                * @param other the HTML version.
+                * @return <code>true</code> if this is compatible with the other, otherwise <code>false</code>. 
                 */
                public boolean supports(MarkupVersion other) {
                        return (this.order >= other.order);
@@ -484,16 +566,23 @@ public class WebBrowser implements Terminal {
                public String toString() {
                        return name;
                }
-
+               
+/**
+ * 
+ * @param name
+ * @param order
+ */
                private JavaScriptVersion(String name, int order) {
                        this.name = name;
                        this.order = order;
                }
 
-               /** Check compability with other JavaScript version.
-                *  Use this like:
-                *  <code>boolean isEcma = someVersion.supports(ECMA_262);</code>
-                *  @return true if this supports the other, false otherwise
+               /** 
+                * Checks the compability with other JavaScript version.
+                * Use this like:
+                * <code>boolean isEcma = someVersion.supports(ECMA_262);</code>
+                * @param other the java script version.
+                * @return <code>true</code> if this supports the other, otherwise <code>false</code>. 
                 */
                public boolean supports(JavaScriptVersion other) {
 
@@ -594,16 +683,16 @@ public class WebBrowser implements Terminal {
        public static final RenderingMode RENDERING_MODE_AJAX = DEFAULT.new RenderingMode();
 
        /**
-        * Gets current rendering mode
-        * @return current rendering mode
+        * Gets the current rendering mode.
+        * @return the current rendering mode.
         */
        public RenderingMode getRenderingMode() {
                return renderingMode;
        }
 
        /**
-        * Sets current rendering mode
-        * @param renderingMode 
+        * Sets the current rendering mode.
+        * @param renderingMode the rendering mode. 
         */
        public void setRenderingMode(RenderingMode renderingMode) {
                this.renderingMode = renderingMode;
index cbe61d0474766a73f42cf35df146d6b1cfbe6f8b..835705082cede262ffa944c9ceb98f6e6890d7ec 100644 (file)
@@ -37,7 +37,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
 
 /**
- * The WebBrowserProbe uses JavaScript to determine the capabilities of the
+ * The <code>WebBrowserProbe</code> uses JavaScript to determine the capabilities of the
  * client browser.
  * 
  * @author IT Mill Ltd.
@@ -52,8 +52,8 @@ public class WebBrowserProbe {
        private static final String CLIENT_TYPE = "wa_browser";
 
        /**
-        * Return the terminal type from the given session.
-        * 
+        * Returns the terminal type from the given session.
+        * @param session the HTTP session.
         * @return WebBrowser instance for the given session.
         */
        public static WebBrowser getTerminalType(HttpSession session) {
@@ -63,8 +63,9 @@ public class WebBrowserProbe {
        }
 
        /**
-        * Set the terminal type for the given session.
-        * 
+        * Sets the terminal type for the given session.
+        * @param session the HTTP session.
+        * @param terminal the web browser. 
         * @return WebBrowser instance for the given session.
         */
        public static void setTerminalType(HttpSession session, WebBrowser terminal) {
@@ -73,13 +74,15 @@ public class WebBrowserProbe {
        }
 
        /**
-        * Handle client checking.
+        * Handles the client checking.
         * 
         * @param request
-        *            The HTTP request to process.
-        * @param response
-        *            HTTP response to write to.
-        * @return true if response should include a probe script
+        *            the HTTP request to process.
+        * @param parameters
+        *            the Parameters to be used as defaults.
+        * @return <code>true</code> if response should include a probe script,otherwise <code>false</code>.
+        * @throws ServletException if an exception has occurred that interferes with the
+        *                                      servlet's normal operation.
         */
        public static boolean handleProbeRequest(HttpServletRequest request,
                        Map parameters) throws ServletException {
@@ -106,11 +109,11 @@ public class WebBrowserProbe {
 
                }
 
-               // Create new type based on client parameters
+               // Creates new type based on client parameters
                browser = probe(browser, request, parameters);
                setTerminalType(s, browser);
 
-               // Set client as checked if parameters were found
+               // Sets client as checked if parameters were found
                if (parameters.containsKey("wa_clientprobe")) {
                        String val = ((String[]) parameters.get("wa_clientprobe"))[0];
                        browser.setClientSideChecked(val != null && "1".equals(val));
@@ -122,10 +125,10 @@ public class WebBrowserProbe {
        }
 
        /**
-        * Determine versions based on user agent string.
+        * Determines versions based on user agent string.
         * 
         * @param agent
-        *            HTTP User-Agent request header.
+        *            the HTTP User-Agent request header.
         * @return new WebBrowser instance initialized based on agent features.
         */
        public static WebBrowser probe(String agent) {
@@ -268,15 +271,15 @@ public class WebBrowserProbe {
        }
 
        /**
-        * Create new instance of WebBrowser by initializing the values based on
+        * Creates new instance of WebBrowser by initializing the values based on
         * user request.
         * 
         * @param browser
-        *            The browser to be updated. If null a new instance is created.
+        *            the browser to be updated. If null a new instance is created.
         * @param request
-        *            Request to be used as defaults.
+        *            the Request to be used as defaults.
         * @param params
-        *            Parameters to be used as defaults.
+        *            the Parameters to be used as defaults.
         * @return new WebBrowser instance initialized based on request parameters.
         */
        public static WebBrowser probe(WebBrowser browser,
index 7c4d58652b462ecb20310280f40f87c6067d744d..27b5c7e93db2e5350d26928ad20db755ae2f26bb 100644 (file)
@@ -41,7 +41,8 @@ import com.itmill.toolkit.terminal.VariableOwner;
 
 import java.util.Stack;
 
-/** User Interface Description Language Target.
+/** 
+ * User Interface Description Language Target.
  * @author IT Mill Ltd.
  * @version @VERSION@
  * @since 3.0
@@ -67,9 +68,8 @@ public class WebPaintTarget implements PaintTarget {
     private boolean mSuppressOutput = false;
 
 
-       /** Create a new XMLPrintWriter, without automatic line flushing.
-        * 
-        *
+       /** 
+        * Creates a new XMLPrintWriter, without automatic line flushing.
         * @param out  A character-output stream.
         */
        public WebPaintTarget(
@@ -85,23 +85,23 @@ public class WebPaintTarget implements PaintTarget {
                // Target theme
                this.theme = theme;
 
-               // Set the variable map
+               // Sets the variable map
                this.variableMap = variableMap;
 
-               // Set the target for UIDL writing
+               // Sets the target for UIDL writing
                this.uidlBuffer = new StringBuffer();
 
-               // Set the target for TAG data
+               // Sets the target for TAG data
                this.tagBuffer = new StringBuffer();
                
                // Initialize tag-writing
                mOpenTags = new Stack();
                mTagArgumentListOpen = false;
 
-               //Add document declaration
+               //Adds document declaration
                this.print(UIDL_XML_DECL + "\n\n");
 
-               // Add UIDL start tag and its attributes
+               // Adds UIDL start tag and its attributes
                this.startTag("uidl");
 
                // Name of the active theme
@@ -109,7 +109,8 @@ public class WebPaintTarget implements PaintTarget {
 
        }
 
-       /** Ensures that the currently open element tag is closed.
+       /** 
+        * Ensures that the currently open element tag is closed.
         */
        private void ensureClosedTag() {
                if (mTagArgumentListOpen) {
@@ -118,13 +119,15 @@ public class WebPaintTarget implements PaintTarget {
                        append(tagBuffer);                      
                }
        }
-       /**  Print element start tag.
+       /**  
+        * Prints element start tag.
         *
         * <pre>Todo:
         * Checking of input values
         * </pre>
         *
-        * @param tagName The name of the start tag
+        * @param tagName the name of the start tag.
+        * @throws PaintException if the paint operation failed.
         *
         */
        public void startTag(String tagName) throws PaintException {
@@ -150,19 +153,21 @@ public class WebPaintTarget implements PaintTarget {
                mTagArgumentListOpen = true;
        }
 
-       /** Print element end tag.
+       /** 
+        * Prints element end tag.
         *
         * If the parent tag is closed before
         * every child tag is closed a PaintException is raised.
         *
-        * @param tag The name of the end tag
+        * @param tagName the name of the end tag.
+        * @throws PaintException if the paint operation failed.
         */
        public void endTag(String tagName) throws PaintException {
                // In case of null data output nothing:
                if (tagName == null)
                        throw new NullPointerException();
 
-               //Ensure that the target is open
+               //Ensures that the target is open
                if (this.closed)
                        throw new PaintException("Attempted to write to a closed PaintTarget.");
 
@@ -177,11 +182,11 @@ public class WebPaintTarget implements PaintTarget {
                                        + lastTag
                                        + "'.");
 
-               // Make sure that the open start tag is closed before
+               // Makes sure that the open start tag is closed before
                // anything is written.
                ensureClosedTag();
 
-               //Write the end (closing) tag
+               //Writes the end (closing) tag
                append("</" + lastTag + "\n>");
                
                // NOTE: We re-enable the output (if it has been disabled)
@@ -190,9 +195,10 @@ public class WebPaintTarget implements PaintTarget {
                mSuppressOutput = false;
        }
        
-       /** Append data into UIDL output buffer.
+       /** 
+        * Appends data into UIDL output buffer.
         * 
-        * @param data String to be appended.
+        * @param data the String to be appended.
         */
        private void append(String data) {
            if (!mSuppressOutput) {
@@ -200,9 +206,10 @@ public class WebPaintTarget implements PaintTarget {
            }
        }
 
-       /** Append data into UIDL output buffer.
+       /** 
+        * Appends data into UIDL output buffer.
         * 
-        * @param data StringBuffer to be appended.
+        * @param data the StringBuffer to be appended.
         */
        private void append(StringBuffer data) {
            if (!mSuppressOutput) {
@@ -210,8 +217,9 @@ public class WebPaintTarget implements PaintTarget {
            }
        }
        
-       /** Substitute the XML sensitive characters with predefined XML entities.
-        *
+       /** 
+        * Substitutes the XML sensitive characters with predefined XML entities.
+        * @param xml
         * @return A new string instance where all occurrences of XML sensitive
         * characters are substituted with entities.
         */
@@ -221,8 +229,9 @@ public class WebPaintTarget implements PaintTarget {
                return escapeXML(new StringBuffer(xml)).toString();
        }
 
-       /** Substitute the XML sensitive characters with predefined XML entities.
-        * @param xml the String to be substituted
+       /** 
+        * Substitutes the XML sensitive characters with predefined XML entities.
+        * @param xml the String to be substituted.
         * @return A new StringBuffer instance where all occurrences of XML
         * sensitive characters are substituted with entities.
         *
@@ -245,8 +254,9 @@ public class WebPaintTarget implements PaintTarget {
                return result;
        }
 
-       /** Substitute a XML sensitive character with predefined XML entity.
-        * @param c Character to be replaced with an entity.
+       /** 
+        * Substitutes a XML sensitive character with predefined XML entity.
+        * @param c the Character to be replaced with an entity.
         * @return String of the entity or null if character is not to be replaced
         * with an entity.
         */
@@ -267,12 +277,14 @@ public class WebPaintTarget implements PaintTarget {
                }
        }
 
-       /** Print XML.
+       /** 
+        * Prints XML.
         *
         * Writes pre-formatted XML to stream. Well-formness of XML is checked.
         * <pre>
         * TODO: XML checking should be made
         * </pre>
+        * @param str
         */
        private void print(String str) {
                // In case of null data output nothing:
@@ -287,18 +299,23 @@ public class WebPaintTarget implements PaintTarget {
                append(str);
        }
 
-       /** Print XML-escaped text.
+       /** 
+        * Prints XML-escaped text.
+        * @param str
+        * @throws PaintException if the paint operation failed.
         *
         */
        public void addText(String str) throws PaintException {
                addUIDL(escapeXML(str));
        }
 
-       /** Adds a boolean attribute to component.
-        *  Atributes must be added before any content is written.
+       /** 
+        * Adds a boolean attribute to component.
+        * Atributes must be added before any content is written.
         *
-        *  @param name Attribute name
-        *  @param value Attribute value
+        * @param name the Attribute name.
+        * @param value the Attribute value.
+        * @throws PaintException if the paint operation failed.
         */
        public void addAttribute(String name, boolean value)
                throws PaintException {
@@ -312,11 +329,13 @@ public class WebPaintTarget implements PaintTarget {
            }
        }
 
-       /** Adds a resource attribute to component.
-        *  Atributes must be added before any content is written.
+       /** 
+        * Adds a resource attribute to component.
+        * Atributes must be added before any content is written.
         *
-        *  @param name Attribute name
-        *  @param value Attribute value
+        * @param name the Attribute name.
+        * @param value the Attribute value.
+        * @throws PaintException if the paint operation failed.
         */
        public void addAttribute(String name, Resource value)
                throws PaintException {
@@ -351,34 +370,37 @@ public class WebPaintTarget implements PaintTarget {
 
        }
 
-       /** Adds a integer attribute to component.
-        *  Atributes must be added before any content is written.
+       /** 
+        * Adds a integer attribute to component.
+        * Atributes must be added before any content is written.
         *
-        *  @param name Attribute name
-        *  @param value Attribute value
-        *  @return this object
+        * @param name the Attribute name.
+        * @param value the Attribute value.
+        * @throws PaintException if the paint operation failed.
         */
        public void addAttribute(String name, int value) throws PaintException {
                addAttribute(name, String.valueOf(value));
        }
 
-       /** Adds a long attribute to component.
+       /** 
+        * Adds a long attribute to component.
         * Atributes must be added before any content is written.
         *
-        * @param name Attribute name
-        * @param value Attribute value
-        * @return this object
+        * @param name the Attribute name.
+        * @param value the Attribute value.
+        * @throws PaintException if the paint operation failed.
         */
        public void addAttribute(String name, long value) throws PaintException {
                addAttribute(name, String.valueOf(value));
        }
 
-       /** Adds a string attribute to component.
-        *  Atributes must be added before any content is written.
+       /** 
+        * Adds a string attribute to component.
+        * Atributes must be added before any content is written.
         *
-        *  @param name Boolean attribute name
-        *  @param value Boolean attribute value
-        *  @return this object
+        * @param name the Boolean attribute name.
+        * @param value the Boolean attribute value.
+        * @throws PaintException if the paint operation failed.
         */
        public void addAttribute(String name, String value) throws PaintException {
                // In case of null data output nothing:
@@ -396,11 +418,12 @@ public class WebPaintTarget implements PaintTarget {
                tagBuffer.append(" " + name + "=\"" + escapeXML(value) + "\"");
        }
 
-       /** Add a string type variable.
-        *  @param owner Listener for variable changes
-        *  @param name Variable name
-        *  @param value Variable initial value
-        *  @return Reference to this.
+       /** 
+        * Adds a string type variable.
+        * @param owner the Listener for variable changes.
+        * @param name the Variable name.
+        * @param value the Variable initial value.
+        * @throws PaintException if the paint operation failed.
         */
        public void addVariable(VariableOwner owner, String name, String value)
                throws PaintException {
@@ -412,11 +435,12 @@ public class WebPaintTarget implements PaintTarget {
                endTag("string");
        }
 
-       /** Add a int type variable.
-        *  @param owner Listener for variable changes
-        *  @param name Variable name
-        *  @param value Variable initial value
-        *  @return Reference to this.
+       /** 
+        * Adds a int type variable.
+        * @param owner the Listener for variable changes.
+        * @param name the Variable name.
+        * @param value the Variable initial value.
+        * @throws PaintException if the paint operation failed.
         */
        public void addVariable(VariableOwner owner, String name, int value)
                throws PaintException {
@@ -428,11 +452,12 @@ public class WebPaintTarget implements PaintTarget {
                endTag("integer");
        }
 
-       /** Add a boolean type variable.
-        *  @param owner Listener for variable changes
-        *  @param name Variable name
-        *  @param value Variable initial value
-        *  @return Reference to this.
+       /** 
+        * Adds a boolean type variable.
+        * @param owner the Listener for variable changes.
+        * @param name the Variable name.
+        * @param value the Variable initial value.
+        * @throws PaintException if the paint operation failed.
         */
        public void addVariable(VariableOwner owner, String name, boolean value)
                throws PaintException {
@@ -444,11 +469,12 @@ public class WebPaintTarget implements PaintTarget {
                endTag("boolean");
        }
 
-       /** Add a string array type variable.
-        *  @param owner Listener for variable changes
-        *  @param name Variable name
-        *  @param value Variable initial value
-        *  @return Reference to this.
+       /** 
+        * Adds a string array type variable.
+        * @param owner the Listener for variable changes.
+        * @param name the Variable name.
+        * @param value the Variable initial value.
+        * @throws PaintException if the paint operation failed.
         */
        public void addVariable(VariableOwner owner, String name, String[] value)
                throws PaintException {
@@ -461,11 +487,12 @@ public class WebPaintTarget implements PaintTarget {
                endTag("array");
        }
 
-       /** Add a upload stream type variable.
-        * @param owner Listener for variable changes
-        * @param name Variable name
-        * @param value Variable initial value
-        * @return Reference to this.
+       /** 
+        * Adds a upload stream type variable.
+        * @param owner the Listener for variable changes.
+        * @param name the Variable name.
+        * 
+        * @throws PaintException if the paint operation failed.
         */
        public void addUploadStreamVariable(VariableOwner owner, String name)
                throws PaintException {
@@ -477,10 +504,15 @@ public class WebPaintTarget implements PaintTarget {
                endTag("uploadstream");
        }
 
-       /** Print single text section.
-        *
+       /**
+        * Prints the single text section.
+        * <p>
         * Prints full text section. The section data is escaped from XML tags and
         * surrounded by XML start and end-tags.
+        * </p>
+        * @param sectionTagName the name of the tag.
+        * @param sectionData the section data.
+        * @throws PaintException if the paint operation failed.
         */
        public void addSection(String sectionTagName, String sectionData)
                throws PaintException {
@@ -489,7 +521,11 @@ public class WebPaintTarget implements PaintTarget {
                endTag(sectionTagName);
        }
 
-       /** Add XML dirctly to UIDL  */
+       /**
+        * Adds XML directly to UIDL.
+        * @param xml the XML to be added.
+        * @throws PaintException  if the paint operation failed. 
+        */
        public void addUIDL(String xml) throws PaintException {
 
                //Ensure that the target is open
@@ -505,7 +541,9 @@ public class WebPaintTarget implements PaintTarget {
                        append(xml);
 
        }
-       /** Add XML section with namespace
+       /** 
+        * Adds XML section with namespace.
+        * 
         * @see com.itmill.toolkit.terminal.PaintTarget#addXMLSection(String, String, String)
         */
        public void addXMLSection(
@@ -514,7 +552,7 @@ public class WebPaintTarget implements PaintTarget {
                String namespace)
                throws PaintException {
 
-               //Ensure that the target is open
+               //Ensures that the target is open
                if (this.closed)
                        throw new PaintException("Attempted to write to a closed PaintTarget.");
 
@@ -522,7 +560,7 @@ public class WebPaintTarget implements PaintTarget {
                if (namespace != null)
                        addAttribute("xmlns", namespace);
 
-               // Close that starting tag
+               // Closes that starting tag
                ensureClosedTag();
 
                if (sectionData != null)
@@ -530,9 +568,11 @@ public class WebPaintTarget implements PaintTarget {
                endTag(sectionTagName);
        }
 
-       /** Get the UIDL already printed to stream. 
-        * Paint target must be closed before the getUIDL()
-        * cn be called.
+       /** 
+        * Gets the UIDL already printed to stream. 
+        * Paint target must be closed before the <code>getUIDL</code>
+        * can be called.
+        * @return the UIDL.
         */
        public String getUIDL() {
                if (this.closed) {
@@ -541,13 +581,15 @@ public class WebPaintTarget implements PaintTarget {
                throw new IllegalStateException("Tried to read UIDL from open PaintTarget");
        }
 
-       /** Close the paint target. 
-        * Paint target must be closed before the getUIDL()
-        * cn be called.
+       /** 
+        * Closes the paint target. 
+        * Paint target must be closed before the <code>getUIDL</code>
+        * can be called.
         * Subsequent attempts to write to paint target.
         * If the target was already closed, call to this
         * function is ignored.
         * will generate an exception.
+        * @throws PaintException if the paint operation failed.
         */
        public void close() throws PaintException {
                if (!this.closed) {
@@ -556,18 +598,23 @@ public class WebPaintTarget implements PaintTarget {
                }
        }
        
-       /**  Print element start tag of a paintable section.
+       /**  
+        * Prints element start tag of a paintable section.
         * Starts a paintable section using the given tag. The PaintTarget may
         * implement a caching scheme, that checks the paintable has actually
         * changed or can a cached version be used instead. This method should call
-        * the startTag method. <p>  If the Paintable is found in cache and this
+        * the startTag method. 
+        * <p>
+        * If the Paintable is found in cache and this
         * function returns true it may omit the content and close the tag, in which
         * case cached content should be used.
-        * </p><b>Note:</b> Web adapter does not currently implement caching and
+        * </p>
+        * <b>Note:</b> Web adapter does not currently implement caching and
         * this function always returns false.
-        * @param paintable The paintable to start
-        * @param tagName The name of the start tag
+        * @param paintable the paintable to start.
+        * @param tag the name of the start tag.
         * @return false
+        * @throws PaintException if the paint operation failed.
         * @see com.itmill.toolkit.terminal.PaintTarget#startTag(Paintable, String),
         * #startTag(String)
         * @since 3.1
@@ -578,8 +625,10 @@ public class WebPaintTarget implements PaintTarget {
                return false;
        }
 
-       /** Add CDATA node to target UIDL-tree.
-        * @param text Character data to add
+       /** 
+        * Adds CDATA node to target UIDL-tree.
+        * @param text the Character data to add.
+        * @throws PaintException if the paint operation failed.
         * @since 3.1
         */
        public void addCharacterData(String text) throws PaintException {
index 436886a095cd44a3b7c53af67dbea910b608a2bc..cf0c94fe22a94930d56fee6fae6e693252b5db6b 100644 (file)
@@ -46,7 +46,8 @@ import org.xml.sax.SAXNotSupportedException;
 import org.xml.sax.SAXParseException;
 import org.xml.sax.XMLReader;
 
-/** Class implementing XMLReader for the UIDLTransformer.
+/** 
+ * Class implementing XMLReader for the UIDLTransformer.
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -118,8 +119,9 @@ public class XSLReader implements XMLReader, ContentHandler {
                this.streams = streams;
        }
 
-       /** Parse all streams given for constructor parameter.
-        *  The input parameter is ignored.
+       /** 
+        * Parses all streams given for constructor parameter.
+        * The input parameter is ignored.
         * @see org.xml.sax.XMLReader#parse(InputSource)
         */
        public synchronized void parse(InputSource input)
@@ -140,6 +142,7 @@ public class XSLReader implements XMLReader, ContentHandler {
                handler.endElement(xslNamespace, "stylesheet", "xsl:stylesheet");
                handler.endDocument();
        }
+       
        /**
         * @see org.xml.sax.ContentHandler#endElement(String, String, String)
         */
@@ -257,19 +260,22 @@ public class XSLReader implements XMLReader, ContentHandler {
                handler.startPrefixMapping(prefix, uri);
        }
 
-       /** Override the default content handler.
+       /** 
+        * Overrides the default content handler.
         * @see org.xml.sax.XMLReader#getContentHandler()
         */
        public ContentHandler getContentHandler() {
                return this.handler;
        }
 
-       /** Override the default content handler.
+       /** 
+        * Overrides the default content handler.
         * @see org.xml.sax.XMLReader#setContentHandler(ContentHandler)
         */
        public void setContentHandler(ContentHandler handler) {
                this.handler = handler;
        }
+       
        /**
         * @see org.xml.sax.XMLReader#getDTDHandler()
         */
@@ -307,7 +313,8 @@ public class XSLReader implements XMLReader, ContentHandler {
                return reader.getProperty(name);
        }
 
-       /** Override the parse.
+       /** 
+        * Overrides the parse.
         * @see org.xml.sax.XMLReader#parse(String)
         */
        public void parse(String systemId) throws IOException, SAXException {
@@ -354,7 +361,11 @@ public class XSLReader implements XMLReader, ContentHandler {
        public class AttributeMapper implements Attributes {
 
                private Attributes original;
-
+               
+               /**
+                * 
+                * @param originalAttributes
+                */
                public AttributeMapper(Attributes originalAttributes) {
                        original = originalAttributes;
                }
@@ -478,31 +489,53 @@ public class XSLReader implements XMLReader, ContentHandler {
        public class XSLStreamLocator implements Locator {
 
                private String id;
-
+               
+/**
+ * 
+ * @param id
+ */
                public XSLStreamLocator(String id) {
                        this.id = id;
                }
-
+               
+               /**
+                * 
+                * @see org.xml.sax.Locator#getPublicId()
+                */
                public String getPublicId() {
                        return streamLocator.getPublicId();
                }
-
+               
+               /**
+                * 
+                * @see org.xml.sax.Locator#getSystemId()
+                */
                public String getSystemId() {
                        return streamLocator.getSystemId()+""+id;
                }
-
+               /**
+                * 
+                * @see org.xml.sax.Locator#getLineNumber()
+                */
                public int getLineNumber() {
                        return streamLocator.getLineNumber();
                }
-               
+       
                public int getCombinedLineNumber() {
                        return streamLocator.getLineNumber()+streamStartLineNumber;
-               }               
-
+               }
+               
+               /**
+                * @see org.xml.sax.Locator#getColumnNumber()
+                */
                public int getColumnNumber() {
                        return streamLocator.getColumnNumber();
                }
-
+               
+               /**
+                * Gets the id.
+                * @return the id .
+                */
                public String getId() {
                        return id;
                }
@@ -511,11 +544,18 @@ public class XSLReader implements XMLReader, ContentHandler {
        public class SAXStreamErrorHandler implements ErrorHandler {
 
                private ErrorHandler handler;
-
+               
+/**
+ * 
+ * @param origHandler
+ */
                SAXStreamErrorHandler(ErrorHandler origHandler) {
                        this.handler = origHandler;
                }
-
+               
+               /**
+                * @see org.xml.sax.ErrorHandler#warning(org.xml.sax.SAXParseException)
+                */
                public void warning(SAXParseException exception) throws SAXException {
                        handler.warning(
                                new SAXParseException(
@@ -523,7 +563,10 @@ public class XSLReader implements XMLReader, ContentHandler {
                                        locator,
                                        exception));
                }
-
+               
+               /**
+                * @see org.xml.sax.ErrorHandler#error(org.xml.sax.SAXParseException)
+                */
                public void error(SAXParseException exception) throws SAXException {
                        handler.error(
                                new SAXParseException(
@@ -531,7 +574,10 @@ public class XSLReader implements XMLReader, ContentHandler {
                                        locator,
                                        exception));
                }
-
+               
+               /**
+                * @see org.xml.sax.ErrorHandler#fatalError(org.xml.sax.SAXParseException)
+                */
                public void fatalError(SAXParseException exception)
                        throws SAXException {
                        handler.fatalError(
index 311f7a66ebbafa127be9c91407c6df48cc7e9b30..a3a7390fca0af6620c6cef41e47786ba59351286 100644 (file)
@@ -41,7 +41,8 @@ import java.util.Set;
 import java.util.HashSet;
 import java.lang.reflect.Method;
 
-/** An abstract class that defines default implementation for the
+/** 
+ * An abstract class that defines default implementation for the
  * {@link Component} interface. Basic UI components that are not derived
  * from an external component can inherit this class to easily qualify as a
  * IT Mill Toolkit component. Most components in the toolkit do
@@ -56,67 +57,101 @@ public abstract class AbstractComponent
 
        /* Private members ************************************************* */
 
-       /** Look-and-feel style of the component. */
+       /** 
+        * Look-and-feel style of the component. 
+        */
        private String style;
 
-       /** Caption text. */
+       /** 
+        * Caption text. 
+        */
        private String caption;
     
-    /** Application specific data object. */
+    /** 
+     * Application specific data object. 
+     */
     private Object applicationData;
 
-       /** Icon to be shown together with caption. */
+       /** 
+        * Icon to be shown together with caption. 
+        */
        private Resource icon;
 
-       /** Is the component enable (its normal usage is allowed). */
+       /** 
+        * Is the component enable (its normal usage is allowed). 
+        */
        private boolean enabled = true;
 
-       /** Is the component visible (it is rendered). */
+       /** 
+        * Is the component visible (it is rendered). 
+        */
        private boolean visible = true;
 
-       /** Is the component read-only ? */
+       /** 
+        * Is the component read-only ? 
+        */
        private boolean readOnly = false;
 
-       /** Description of the usage (XML). */
+       /** 
+        * Description of the usage (XML). 
+        */
        private String description = null;
 
-       /** The container this component resides in. */
+       /** 
+        * The container this component resides in. 
+        */
        private Component parent = null;
 
-       /** The EventRouter used for the event model. */
+       /** 
+        * The EventRouter used for the event model. 
+        */
        private EventRouter eventRouter = null;
 
-       /** The internal error message of the component. */
+       /** 
+        * The internal error message of the component. 
+        */
        private ErrorMessage componentError = null;
 
-       /** List of event variable change event handling dependencies */
+       /** 
+        * List of event variable change event handling dependencies. 
+        */
        private Set dependencies = null;
 
-       /** Immediate mode: if true, all variable changes are required to be sent
-        * from the terminal immediately
+       /** 
+        * Immediate mode: if true, all variable changes are required to be sent
+        * from the terminal immediately.
         */
        private boolean immediate = false;
 
-       /** Locale of this component. */
+       /** 
+        * Locale of this component. 
+        */
        private Locale locale;
 
-       /** List of repaint request listeners or null if not listened at all */
+       /** 
+        * List of repaint request listeners or null if not listened at all. 
+        */
        private LinkedList repaintRequestListeners = null;
 
-       /** Are all the repaint listeners notified about recent changes ? */
+       /** 
+        * Are all the repaint listeners notified about recent changes ? 
+        */
        private boolean repaintRequestListenersNotified = false;
 
        /* Constructor ***************************************************** */
 
-       /** Constructs a new Component */
+       /** 
+        * Constructs a new Component. 
+        */
        public AbstractComponent() {
        }
 
        /* Get/Set component properties ************************************ */
 
-       /** Gets the UIDL tag corresponding to the component.
+       /** 
+        * Gets the UIDL tag corresponding to the component.
         * 
-        * @return component's UIDL tag as <code>String</code>
+        * @return the component's UIDL tag as <code>String</code>
         */
        public abstract String getTag();
 
@@ -145,11 +180,12 @@ public abstract class AbstractComponent
                return this.caption;
        }
 
-       /** Sets the component's caption <code>String</code>. Caption is the
+       /** 
+        * Sets the component's caption <code>String</code>. Caption is the
         * visible name of the component. This method will trigger a
         * {@link com.itmill.toolkit.terminal.Paintable.RepaintRequestEvent RepaintRequestEvent}.
         * 
-        * @param caption new caption <code>String</code> for the component
+        * @param caption the new caption <code>String</code> for the component.
         */
        public void setCaption(String caption) {
                this.caption = caption;
@@ -170,8 +206,9 @@ public abstract class AbstractComponent
                return null;
        }
 
-       /** Sets the locale of this component.
-        * @param locale The locale to become this component's locale.
+       /** 
+        * Sets the locale of this component.
+        * @param locale the locale to become this component's locale.
         */
        public void setLocale(Locale locale) {
                this.locale = locale;
@@ -185,11 +222,12 @@ public abstract class AbstractComponent
                return this.icon;
        }
 
-       /** Sets the component's icon.  This method will trigger a
-         * {@link com.itmill.toolkit.terminal.Paintable.RepaintRequestEvent RepaintRequestEvent}.
-         * 
-         * @param icon the icon to be shown with the component's caption
-         */
+       /** 
+        * Sets the component's icon.  This method will trigger a
+        *{@link com.itmill.toolkit.terminal.Paintable.RepaintRequestEvent RepaintRequestEvent}.
+        * 
+        * @param icon the icon to be shown with the component's caption.
+     */
        public void setIcon(Resource icon) {
                this.icon = icon;
                requestRepaint();
@@ -222,11 +260,12 @@ public abstract class AbstractComponent
                return immediate;
        }
 
-       /** Sets the component's immediate mode to the specified status. This
+       /** 
+        * Sets the component's immediate mode to the specified status. This
         * method will trigger a 
         * {@link com.itmill.toolkit.terminal.Paintable.RepaintRequestEvent RepaintRequestEvent}.
         * 
-        * @param immediate boolean value specifying if the component should
+        * @param immediate the boolean value specifying if the component should
         * be in the immediate mode after the call.
         * @see Component#isImmediate()
         */
@@ -259,9 +298,12 @@ public abstract class AbstractComponent
                }
        }
 
-       /** <p>Gets the component's description. The description can be used to
+       /** 
+        * <p>
+        * Gets the component's description. The description can be used to
         * briefly describe the state of the component to the user. The
-        * description string may contain certain XML tags:</p>
+        * description string may contain certain XML tags:
+        * </p>
         * 
         * <p><table border=1>
         * <tr><td width=120><b>Tag</b></td>
@@ -298,11 +340,12 @@ public abstract class AbstractComponent
                return this.description;
        }
 
-       /** Sets the component's description. See {@link #getDescription()} for
+       /** 
+        * Sets the component's description. See {@link #getDescription()} for
         * more information on what the description is. This method will trigger
         * a {@link com.itmill.toolkit.terminal.Paintable.RepaintRequestEvent RepaintRequestEvent}.
         *
-        * @param description new description string for the component
+        * @param description the new description string for the component.
         */
        public void setDescription(String description) {
                this.description = description;
@@ -317,7 +360,7 @@ public abstract class AbstractComponent
                return this.parent;
        }
 
-       /* Set the parent component.
+       /* Sets the parent component.
         * Don't add a JavaDoc comment here, we use the default documentation
         * from implemented interface.
         */
@@ -341,7 +384,8 @@ public abstract class AbstractComponent
                        attach();
        }
 
-       /** Get the error message for this component.
+       /** 
+        * Gets the error message for this component.
         * 
         * @return ErrorMessage containing the description of the error state
         * of the component or null, if the component contains no errors. Extending
@@ -353,20 +397,22 @@ public abstract class AbstractComponent
                return this.componentError;
        }
 
-       /** Gets the component's error message. 
+       /** 
+        * Gets the component's error message. 
         * @link Terminal.ErrorMessage#ErrorMessage(String, int)
         *
-        * @return component's error message
+        * @return the component's error message.
         */
        public ErrorMessage getComponentError() {
                return this.componentError;
        }
 
-       /** Sets the component's error message. The message may contain certain
+       /** 
+        * Sets the component's error message. The message may contain certain
         * XML tags, for more information see
         * @link Component.ErrorMessage#ErrorMessage(String, int)
         * 
-        * @param errorMessage new <code>ErrorMessage</code> of the component
+        * @param componentError the new <code>ErrorMessage</code> of the component.
         */
        public void setComponentError(ErrorMessage componentError) {
                this.componentError = componentError;
@@ -382,7 +428,7 @@ public abstract class AbstractComponent
                return readOnly;
        }
 
-       /* Set the component's read-only mode.
+       /* Sets the component's read-only mode.
         * Don't add a JavaDoc comment here, we use the default documentation
         * from implemented interface.
         */
@@ -391,7 +437,7 @@ public abstract class AbstractComponent
                requestRepaint();
        }
 
-       /* Get the parent window of the component.
+       /* Gets the parent window of the component.
         * Don't add a JavaDoc comment here, we use the default documentation
         * from implemented interface.
         */
@@ -416,7 +462,7 @@ public abstract class AbstractComponent
        public void detach() {
        }
 
-       /* Get the parent application of the component.
+       /* Gets the parent application of the component.
         * Don't add a JavaDoc comment here, we use the default documentation
         * from implemented interface.
         */
@@ -477,14 +523,15 @@ public abstract class AbstractComponent
                repaintRequestListenersNotified = false;
        }
 
-       /** Paints any needed component-specific things to the given UIDL
+       /** 
+        * Paints any needed component-specific things to the given UIDL
         * stream. The more general {@link #paint(PaintTarget)} method handles
         * all general attributes common to all components, and it calls this
         * method to paint any component-specific attributes to the UIDL stream.
         * 
-        * @param target target UIDL stream where the component should paint
+        * @param target the target UIDL stream where the component should paint
         * itself to
-        * @throws PaintException if the operation failed
+        * @throws PaintException if the paint operation failed.
         */
        public void paintContent(PaintTarget target) throws PaintException {
 
@@ -508,7 +555,10 @@ public abstract class AbstractComponent
                fireRequestRepaintEvent(alreadyNotified);
        }
 
-       /** Fire repaint request event */
+       /** 
+        * Fires the repaint request event.
+        * @param alreadyNotified 
+        */
        private void fireRequestRepaintEvent(Collection alreadyNotified) {
 
                // Notify listeners only once
@@ -590,7 +640,7 @@ public abstract class AbstractComponent
         */
        public void removeDirectDependency(VariableOwner depended) {
 
-               // Remove the listener if necessary
+               // Removes the listener if necessary
                if (dependencies != null && depended != null)
                        dependencies.remove(depended);
        }
@@ -620,21 +670,24 @@ public abstract class AbstractComponent
                }
        }
 
-       /** <p>Registers a new listener with the specified activation method to
+       /** 
+        * <p>
+        * Registers a new listener with the specified activation method to
         * listen events generated by this component. If the activation method
         * does not have any arguments the event object will not be passed to it
-        * when it's called.</p>
+        * when it's called.
+        * </p>
         * 
-        * <p>For more information on the inheritable event mechanism
+        * <p>
+        * For more information on the inheritable event mechanism
         * see the 
-        * {@link com.itmill.toolkit.event com.itmill.toolkit.event package documentation}.</p>
+        * {@link com.itmill.toolkit.event com.itmill.toolkit.event package documentation}.
+        * </p>
         * 
-        * @param eventType type of the listened event. Events of this type or
+        * @param eventType the type of the listened event. Events of this type or
         * its subclasses activate the listener.
-        * @param object the object instance who owns the activation method
-        * @param method the activation method
-        * @throws java.lang.IllegalArgumentException unless <code>method</code>
-        * has exactly one match in <code>object</code>
+        * @param object the object instance who owns the activation method.
+        * @param method the activation method.
         */
        public void addListener(Class eventType, Object object, Method method) {
                if (eventRouter == null)
@@ -642,26 +695,31 @@ public abstract class AbstractComponent
                eventRouter.addListener(eventType, object, method);
        }
 
-       /** <p>Registers a new listener with the specified activation method to
+       /** 
+        * <p>
+        * Registers a new listener with the specified activation method to
         * listen events generated by this component. If the activation method
         * does not have any arguments the event object will not be passed to it
-        * when it's called.</p>
+        * when it's called.
+        * </p>
         * 
-        * <p>This version of <code>addListener</code> gets the name of the
+        * <p>
+        * This version of <code>addListener</code> gets the name of the
         * activation method as a parameter. The actual method is reflected from
         * <code>object</code>, and unless exactly one match is found,
-        * <code>java.lang.IllegalArgumentException</code> is thrown.</p>
+        * <code>java.lang.IllegalArgumentException</code> is thrown.
+        * </p>
         * 
-        * <p>For more information on the inheritable event mechanism
+        * <p>
+        * For more information on the inheritable event mechanism
         * see the 
-        * {@link com.itmill.toolkit.event com.itmill.toolkit.event package documentation}.</p>
+        * {@link com.itmill.toolkit.event com.itmill.toolkit.event package documentation}.
+        * </p>
         * 
-        * @param eventType type of the listened event. Events of this type or
+        * @param eventType the type of the listened event. Events of this type or
         * its subclasses activate the listener.
-        * @param object the object instance who owns the activation method
-        * @param methodName the name of the activation method
-        * @throws java.lang.IllegalArgumentException unless <code>method</code>
-        * has exactly one match in <code>object</code>
+        * @param object the object instance who owns the activation method.
+        * @param methodName the name of the activation method.
         */
        public void addListener(
                Class eventType,
@@ -672,26 +730,30 @@ public abstract class AbstractComponent
                eventRouter.addListener(eventType, object, methodName);
        }
 
-       /** Removes all registered listeners matching the given parameters.
+       /** 
+        * Removes all registered listeners matching the given parameters.
         * Since this method receives the event type and the listener object as
         * parameters, it will unregister all <code>object</code>'s methods that
         * are registered to listen to events of type <code>eventType</code>
         * generated by this component.
         * 
-        * <p>For more information on the inheritable event mechanism
+        * <p>
+        * For more information on the inheritable event mechanism
         * see the 
-        * {@link com.itmill.toolkit.event com.itmill.toolkit.event package documentation}.</p>
+        * {@link com.itmill.toolkit.event com.itmill.toolkit.event package documentation}.
+        * </p>
         * 
-        * @param eventType exact event type the <code>object</code> listens to
-        * @param target target object that has registered to listen to events
-        * of type <code>eventType</code> with one or more methods
+        * @param eventType the exact event type the <code>object</code> listens to.
+        * @param target the target object that has registered to listen to events
+        * of type <code>eventType</code> with one or more methods.
         */
        public void removeListener(Class eventType, Object target) {
                if (eventRouter != null)
                        eventRouter.removeListener(eventType, target);
        }
 
-       /** Removes one registered listener method. The given method owned by
+       /** 
+        * Removes one registered listener method. The given method owned by
         * the given object will no longer be called when the specified events
         * are generated by this component.
         * 
@@ -699,35 +761,42 @@ public abstract class AbstractComponent
         * see the 
         * {@link com.itmill.toolkit.event com.itmill.toolkit.event package documentation}.</p>
         * 
-        * @param eventType exact event type the <code>object</code> listens to
+        * @param eventType the exact event type the <code>object</code> listens to.
         * @param target target object that has registered to listen to events
-        * of type <code>eventType</code> with one or more methods
+        * of type <code>eventType</code> with one or more methods.
         * @param method the method owned by <code>target</code> that's
-        * registered to listen to events of type <code>eventType</code>
+        * registered to listen to events of type <code>eventType</code>.
         */
        public void removeListener(Class eventType, Object target, Method method) {
                if (eventRouter != null)
                        eventRouter.removeListener(eventType, target, method);
        }
 
-       /** <p>Removes one registered listener method. The given method owned by
+       /** 
+        * <p>
+        * Removes one registered listener method. The given method owned by
         * the given object will no longer be called when the specified events
-        * are generated by this component.</p>
+        * are generated by this component.
+        * </p>
         * 
-        * <p>This version of <code>removeListener</code> gets the name of the
+        * <p>
+        * This version of <code>removeListener</code> gets the name of the
         * activation method as a parameter. The actual method is reflected from
         * <code>target</code>, and unless exactly one match is found,
-        * <code>java.lang.IllegalArgumentException</code> is thrown.</p>
+        * <code>java.lang.IllegalArgumentException</code> is thrown.
+        * </p>
         * 
-        * <p>For more information on the inheritable event mechanism
+        * <p>
+        * For more information on the inheritable event mechanism
         * see the 
-        * {@link com.itmill.toolkit.event com.itmill.toolkit.event package documentation}.</p>
+        * {@link com.itmill.toolkit.event com.itmill.toolkit.event package documentation}.
+        * </p>
         * 
-        * @param eventType exact event type the <code>object</code> listens to
-        * @param target target object that has registered to listen to events
-        * of type <code>eventType</code> with one or more methods
-        * @param methodName name of the method owned by <code>target</code>
-        * that's registered to listen to events of type <code>eventType</code>
+        * @param eventType the exact event type the <code>object</code> listens to.
+        * @param target the target object that has registered to listen to events
+        * of type <code>eventType</code> with one or more methods.
+        * @param methodName the name of the method owned by <code>target</code>
+        * that's registered to listen to events of type <code>eventType</code>.
         */
        public void removeListener(
                Class eventType,
@@ -737,8 +806,9 @@ public abstract class AbstractComponent
                        eventRouter.removeListener(eventType, target, methodName);
        }
 
-       /** Send event to all listeners
-        * @param event Event to be sent to all listeners
+       /** 
+        * Sends the event to all listeners.
+        * @param event the Event to be sent to all listeners.
         */
        protected void fireEvent(Component.Event event) {
 
@@ -779,32 +849,36 @@ public abstract class AbstractComponent
                }
        }
 
-       /** Emits a component event. It is transmitted to all registered
+       /** 
+        * Emits the component event. It is transmitted to all registered
         * listeners interested in such events.
         */
        protected void fireComponentEvent() {
                fireEvent(new Component.Event(this));
        }
 
-       /** Emits a component error event. It is transmitted to all registered
+       /** 
+        * Emits the component error event. It is transmitted to all registered
         * listeners interested in such events.
         */
        protected void fireComponentErrorEvent() {
                fireEvent(new Component.ErrorEvent(this.getComponentError(),this));
        }
 
-       /** Sets application specific data object.
+       /** 
+        * Sets the application specific data object.
      * 
-     * @param data Application specific data.
+     * @param data the Application specific data.
      * @since 3.1
         */
     public void setData(Object data) {
         this.applicationData = data;
     }
     
-    /** Gets application specific data.
+    /** 
+     * Gets the application specific data.
      * 
-     * @return Application specific data set with setData function.
+     * @return the Application specific data set with setData function.
      * @since 3.1
      */
     public Object getData() {
index d8d86c19821e2252e18009f7278859a086d15fdd..6bed25c26d48da15cf08a84e4868a70e671fbff4 100644 (file)
@@ -32,7 +32,8 @@ import java.lang.reflect.Method;
 import java.util.LinkedList;
 import java.util.Iterator;
 
-/** Extension to {@link AbstractComponent} that defines the default
+/** 
+ * Extension to {@link AbstractComponent} that defines the default
  * implementation for the methods in {@link ComponentContainer}. Basic UI
  * components that need to contain other components inherit this class to
  * easily qualify as a component container.
@@ -44,23 +45,26 @@ import java.util.Iterator;
 public abstract class AbstractComponentContainer 
 extends AbstractComponent implements ComponentContainer {
 
-       /** Constructs a new component container. */
+       /** 
+        * Constructs a new component container. 
+        */
        public AbstractComponentContainer() {
                super();
        }
 
-    /** Removes all components from the container. This should probably be
-     * reimplemented in extending classes for a more powerfu
+    /** 
+     * Removes all components from the container. This should probably be
+     * reimplemented in extending classes for a more powerfull
      * implementation. 
      */
     public void removeAllComponents() {
         LinkedList l = new LinkedList();
 
-               // Add all components
+               // Adds all components
         for (Iterator i = getComponentIterator(); i.hasNext();)
                l.add(i.next());
                
-        // Remove all component
+        // Removes all component
         for (Iterator i = l.iterator(); i.hasNext();)
                removeComponent((Component)i.next());
     }
@@ -81,7 +85,8 @@ extends AbstractComponent implements ComponentContainer {
                }
     }
     
-       /** Notifies all contained components that the container is attached to
+       /** 
+        * Notifies all contained components that the container is attached to
         * a window.
         * 
         * @see com.itmill.toolkit.ui.Component#attach()
@@ -93,7 +98,8 @@ extends AbstractComponent implements ComponentContainer {
                        ((Component)i.next()).attach();
        }
 
-       /** Notifies all contained components that the container is detached
+       /** 
+        * Notifies all contained components that the container is detached
         * from a window.
         * 
         * @see com.itmill.toolkit.ui.Component#detach()
@@ -147,23 +153,26 @@ extends AbstractComponent implements ComponentContainer {
                removeListener(ComponentContainer.ComponentDetachEvent.class, listener, COMPONENT_DETACHED_METHOD);
        }
 
-       /** Fire component attached event. This should be called by the addComponent 
+       /** 
+        * Fires the component attached event. This should be called by the addComponent 
         * methods after the component have been added to this container. 
-        * @param component The component that has been added to this container.
+        * @param component the component that has been added to this container.
         */
        protected void fireComponentAttachEvent(Component component) {
                fireEvent(new ComponentAttachEvent(this,component));
        }
 
-       /** Fire component detached event. This should be called by the removeComponent 
+       /** 
+        * Fires the component detached event. This should be called by the removeComponent 
         * methods after the component have been removed from this container. 
-        * @param component The component that has been removed from this container.
+        * @param component the component that has been removed from this container.
         */
        protected void fireComponentDetachEvent(Component component) {
                fireEvent(new ComponentAttachEvent(this,component));
        }
        
-       /** This only implements the events and component parent calls. The extending
+       /** 
+        * This only implements the events and component parent calls. The extending
         * classes must implement component list maintenance and call this method 
         * after component list maintenance.
         * @see com.itmill.toolkit.ui.ComponentContainer#addComponent(Component)
@@ -173,7 +182,8 @@ extends AbstractComponent implements ComponentContainer {
                fireComponentAttachEvent(c);
        }
 
-       /** This only implements the events and component parent calls. The extending
+       /** 
+        * This only implements the events and component parent calls. The extending
         * classes must implement component list maintenance and call this method 
         * before component list maintenance.
         * @see com.itmill.toolkit.ui.ComponentContainer#removeComponent(Component)
index 0f92adaf18ceebe24eeab48feff9b2a944d71f5b..2e1f7983b613c60441b1ec7158ff8c4a7b1dad00 100644 (file)
@@ -76,40 +76,64 @@ public abstract class AbstractField extends AbstractComponent implements Field,
 
     private boolean delayedFocus;
 
-    /** Value of the datafield */
+    /** 
+     * Value of the datafield. 
+     */
     private Object value;
 
-    /** Connected data-source. */
+    /** 
+     * Connected data-source. 
+     */
     private Property dataSource = null;
 
-    /** The list of validators. */
+    /** 
+     * The list of validators. 
+     */
     private LinkedList validators = null;
 
-    /** Auto commit mode. */
+    /** 
+     * Auto commit mode. 
+     */
     private boolean writeTroughMode = true;
 
-    /** Read the value from data-source, when it is not modified. */
+    /** 
+     * Reads the value from data-source, when it is not modified. 
+     */
     private boolean readTroughMode = true;
 
-    /** Is the field modified but not committed. */
+    /** 
+     * Is the field modified but not committed. 
+     */
     private boolean modified = false;
 
-    /** Current source exception */
+    /** 
+     * Current source exception. 
+     */
     private Buffered.SourceException currentBufferedSourceException = null;
 
-    /** Are the invalid values alloved in fields ? */
+    /** 
+     * Are the invalid values alloved in fields ? 
+     */
     private boolean invalidAllowed = true;
 
-    /** Are the invalid values committed */
+    /** 
+     * Are the invalid values committed ? 
+     */
     private boolean invalidCommitted = false;
 
-    /** The tab order number of this field */
+    /** 
+     * The tab order number of this field. 
+     */
     private int tabIndex = 0;
 
-    /** Unique focusable id */
+    /** 
+     * Unique focusable id. 
+     */
     private long focusableId = -1;
 
-    /** Required field */
+    /** 
+     * Required field. 
+     */
     private boolean required = false;
 
     /* Component basics ************************************************ */
@@ -119,7 +143,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     }
 
     /*
-     * Paint the field. Don't add a JavaDoc comment here, we use the default
+     * Paints the field. Don't add a JavaDoc comment here, we use the default
      * documentation from the implemented interface.
      */
     public void paintContent(PaintTarget target) throws PaintException {
@@ -137,7 +161,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
         if (isModified())
             target.addAttribute("modified", true);
 
-        // Add required attribute
+        // Adds the required attribute
         if (isRequired())
             target.addAttribute("required", true);
 
@@ -159,7 +183,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     }
 
     /**
-     * Change the readonly state and throw read-only status change events.
+     * Changes the readonly state and throw read-only status change events.
      * 
      * @see com.itmill.toolkit.ui.Component#setReadOnly(boolean)
      */
@@ -168,18 +192,24 @@ public abstract class AbstractField extends AbstractComponent implements Field,
         fireReadOnlyStatusChange();
     }
 
-    /* Buffering ******************************************************* */
-
+    /**
+     * Tests if the invalid data is committed to datasource.
+     * @see com.itmill.toolkit.data.BufferedValidatable#isInvalidCommitted()
+     */
     public boolean isInvalidCommitted() {
         return invalidCommitted;
     }
-
+    
+       /**
+        * Sets if the invalid data should be committed to datasource.
+        * @see com.itmill.toolkit.data.BufferedValidatable#setInvalidCommitted(boolean)
+        */
     public void setInvalidCommitted(boolean isCommitted) {
         this.invalidCommitted = isCommitted;
     }
 
     /*
-     * Save the current value to the data source Don't add a JavaDoc comment
+     * Saves the current value to the data source Don't add a JavaDoc comment
      * here, we use the default documentation from the implemented interface.
      */
     public void commit() throws Buffered.SourceException {
@@ -188,17 +218,17 @@ public abstract class AbstractField extends AbstractComponent implements Field,
             Object newValue = getValue();
             try {
 
-                // Commit the value to datasource
+                // Commits the value to datasource.
                 dataSource.setValue(newValue);
 
             } catch (Throwable e) {
 
-                // Set the buffering state
+                // Sets the buffering state.
                 currentBufferedSourceException = new Buffered.SourceException(
                         this, e);
                 requestRepaint();
 
-                // Throw the source exception
+                // Throws the source exception.
                 throw currentBufferedSourceException;
             }
         }
@@ -222,17 +252,17 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     }
 
     /*
-     * Update the value from the data source. Don't add a JavaDoc comment here,
+     * Updates the value from the data source. Don't add a JavaDoc comment here,
      * we use the default documentation from the implemented interface.
      */
     public void discard() throws Buffered.SourceException {
         if (dataSource != null) {
 
-            // Get the correct value from datasource
+            // Gets the correct value from datasource
             Object newValue;
             try {
 
-                // Discard buffer by overwriting from datasource
+                // Discards buffer by overwriting from datasource
                 newValue = dataSource.getValue();
 
                 // If successful, remove set the buffering state to be ok
@@ -242,12 +272,12 @@ public abstract class AbstractField extends AbstractComponent implements Field,
                 }
             } catch (Throwable e) {
 
-                // Set the buffering state
+                // Sets the buffering state
                 currentBufferedSourceException = new Buffered.SourceException(
                         this, e);
                 requestRepaint();
 
-                // Throw the source exception
+                // Throws the source exception
                 throw currentBufferedSourceException;
             }
 
@@ -278,7 +308,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     }
 
     /*
-     * Test if the field is in write-through mode. Don't add a JavaDoc comment
+     * Tests if the field is in write-through mode. Don't add a JavaDoc comment
      * here, we use the default documentation from the implemented interface.
      */
     public boolean isWriteThrough() {
@@ -286,7 +316,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     }
 
     /*
-     * Set the field's write-through mode to the specified status Don't add a
+     * Sets the field's write-through mode to the specified status Don't add a
      * JavaDoc comment here, we use the default documentation from the
      * implemented interface.
      */
@@ -300,7 +330,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     }
 
     /*
-     * Test if the field is in read-through mode. Don't add a JavaDoc comment
+     * Tests if the field is in read-through mode. Don't add a JavaDoc comment
      * here, we use the default documentation from the implemented interface.
      */
     public boolean isReadThrough() {
@@ -308,7 +338,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     }
 
     /*
-     * Set the field's read-through mode to the specified status Don't add a
+     * Sets the field's read-through mode to the specified status Don't add a
      * JavaDoc comment here, we use the default documentation from the
      * implemented interface.
      */
@@ -324,13 +354,11 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     }
 
     /* Property interface implementation ******************************* */
-
-    /**
-     * Returns the value of the Property in human readable textual format.
-     * 
-     * @return <code>String</code> representation of the value stored in the
-     *         Property
-     */
+    
+   /**
+    * Returns the value of the Property in human readable textual format.
+    * @see java.lang.Object#toString()
+    */
     public String toString() {
         Object value = getValue();
         if (value == null)
@@ -344,7 +372,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
      * read-through mode, the abstract buffer is also updated and validation is
      * performed.
      * 
-     * @return the current value of the field
+     * @return the current value of the field.
      */
     public Object getValue() {
 
@@ -363,10 +391,12 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     }
 
     /**
-     * Set the value of the field.
+     * Sets the value of the field.
      * 
      * @param newValue
-     *            New value of the field.
+     *            the New value of the field.
+     * @throws Property.ReadOnlyException
+     * @throws Property.ConversionException
      */
     public void setValue(Object newValue) throws Property.ReadOnlyException,
             Property.ConversionException {
@@ -386,7 +416,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
                         ((Validator) i.next()).validate(newValue);
             }
 
-            // Change the value
+            // Changes the value
             setInternalValue(newValue);
             modified = dataSource != null;
 
@@ -395,7 +425,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
                     && (isInvalidCommitted() || isValid())) {
                 try {
 
-                    // Commit the value to datasource
+                    // Commits the value to datasource
                     dataSource.setValue(newValue);
 
                     // The buffer is now unmodified
@@ -403,12 +433,12 @@ public abstract class AbstractField extends AbstractComponent implements Field,
 
                 } catch (Throwable e) {
 
-                    // Set the buffering state
+                    // Sets the buffering state
                     currentBufferedSourceException = new Buffered.SourceException(
                             this, e);
                     requestRepaint();
 
-                    // Throw the source exception
+                    // Throws the source exception
                     throw currentBufferedSourceException;
                 }
             }
@@ -419,7 +449,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
                 requestRepaint();
             }
 
-            // Fire value change
+            // Fires the value change
             fireValueChange();
         }
     }
@@ -429,7 +459,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     /**
      * Gets the current data source of the field, if any.
      * 
-     * @return The current data source as a Property, or <code>null</code> if
+     * @return the current data source as a Property, or <code>null</code> if
      *         none defined.
      */
     public Property getPropertyDataSource() {
@@ -453,29 +483,29 @@ public abstract class AbstractField extends AbstractComponent implements Field,
      * </p>
      * 
      * @param newDataSource
-     *            the new data source Property
+     *            the new data source Property.
      */
     public void setPropertyDataSource(Property newDataSource) {
 
-        // Save the old value
+        // Saves the old value
         Object oldValue = value;
 
-        // Discard all changes to old datasource
+        // Discards all changes to old datasource
         try {
             discard();
         } catch (Buffered.SourceException ignored) {
         }
 
-        // Stop listening the old data source changes
+        // Stops listening the old data source changes
         if (dataSource != null
                 && Property.ValueChangeNotifier.class
                         .isAssignableFrom(dataSource.getClass()))
             ((Property.ValueChangeNotifier) dataSource).removeListener(this);
 
-        // Set the new data source
+        // Sets the new data source
         dataSource = newDataSource;
 
-        // Get the value from source
+        // Gets the value from source
         try {
             if (dataSource != null)
                 setInternalValue(dataSource.getValue());
@@ -486,7 +516,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
             modified = true;
         }
 
-        // Listen the new data source if possible
+        // Listens the new data source if possible
         if (dataSource instanceof Property.ValueChangeNotifier)
             ((Property.ValueChangeNotifier) dataSource).addListener(this);
 
@@ -498,7 +528,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
                     addValidator((Validator) i.next());
         }
 
-        // Fire value change if the value has changed
+        // Fires value change if the value has changed
         if ((value != oldValue)
                 && ((value != null && !value.equals(oldValue)) || value == null))
             fireValueChange();
@@ -511,7 +541,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
      * field are checked each time the its value changes.
      * 
      * @param validator
-     *            the new validator to be added
+     *            the new validator to be added.
      */
     public void addValidator(Validator validator) {
         if (validators == null)
@@ -522,7 +552,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     /**
      * Gets the validators of the field.
      * 
-     * @return Unmodifiable collection that holds all validators for the field.
+     * @return the Unmodifiable collection that holds all validators for the field.
      */
     public Collection getValidators() {
         if (validators == null || validators.isEmpty())
@@ -531,10 +561,10 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     }
 
     /**
-     * Removes a validator from the field.
+     * Removes the validator from the field.
      * 
      * @param validator
-     *            the validator to remove
+     *            the validator to remove.
      */
     public void removeValidator(Validator validator) {
         if (validators != null)
@@ -545,7 +575,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
      * Tests the current value against all registered validators.
      * 
      * @return <code>true</code> if all registered validators claim that the
-     *         current value is valid, <code>false</code> otherwise
+     *         current value is valid, <code>false</code> otherwise.
      */
     public boolean isValid() {
 
@@ -559,7 +589,11 @@ public abstract class AbstractField extends AbstractComponent implements Field,
 
         return true;
     }
-
+    
+       /**
+        * Checks the validity of the validatable
+        * @see com.itmill.toolkit.data.Validatable#validate()
+        */
     public void validate() throws Validator.InvalidValueException {
 
         // If there is no validator, there can not be any errors
@@ -571,7 +605,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
         LinkedList errors = null;
         Object value = getValue();
 
-        // Get all the validation errors
+        // Gets all the validation errors
         for (Iterator i = validators.iterator(); i.hasNext();)
             try {
                 ((Validator) i.next()).validate(value);
@@ -595,7 +629,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
         if (errors == null)
             throw firstError;
 
-        // Create composite validator
+        // Creates composite validator
         Validator.InvalidValueException[] exceptions = new Validator.InvalidValueException[errors
                 .size()];
         int index = 0;
@@ -608,10 +642,8 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     /**
      * Fields allow invalid values by default. In most cases this is wanted,
      * because the field otherwise visually forget the user input immediately.
-     * 
-     * @see com.itmill.toolkit.data.Validatable#isInvalidAllowed()
-     * 
      * @return true iff the invalid values are allowed.
+     * @see com.itmill.toolkit.data.Validatable#isInvalidAllowed()
      */
     public boolean isInvalidAllowed() {
         return invalidAllowed;
@@ -620,12 +652,13 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     /**
      * Fields allow invalid values by default. In most cases this is wanted,
      * because the field otherwise visually forget the user input immediately.
+     * <p>
      * In common setting where the user wants to assure the correctness of the
      * datasource, but allow temporarily invalid contents in the field, the user
      * should add the validators to datasource, that should not allow invalid
      * values. The validators are automatically copied to the field when the
      * datasource is set.
-     * 
+     * </p>
      * @see com.itmill.toolkit.data.Validatable#setInvalidAllowed(boolean)
      */
     public void setInvalidAllowed(boolean invalidAllowed)
@@ -673,7 +706,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     }
 
     /*
-     * Add a value change listener for the field. Don't add a JavaDoc comment
+     * Adds a value change listener for the field. Don't add a JavaDoc comment
      * here, we use the default documentation from the implemented interface.
      */
     public void addListener(Property.ValueChangeListener listener) {
@@ -682,7 +715,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     }
 
     /*
-     * Remove a value change listener from the field. Don't add a JavaDoc
+     * Removes a value change listener from the field. Don't add a JavaDoc
      * comment here, we use the default documentation from the implemented
      * interface.
      */
@@ -692,7 +725,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     }
 
     /**
-     * Emit a value change event. The value contained in the field is validated
+     * Emits the value change event. The value contained in the field is validated
      * before the event is created.
      */
     protected void fireValueChange() {
@@ -734,19 +767,19 @@ public abstract class AbstractField extends AbstractComponent implements Field,
         private static final long serialVersionUID = 3258688823264161846L;
 
         /**
-         * New instance of text change event
+         * New instance of text change event.
          * 
          * @param source
-         *            Source of the event.
+         *            the Source of the event.
          */
         public ReadOnlyStatusChangeEvent(AbstractField source) {
             super(source);
         }
 
         /**
-         * Property where the event occurred
+         * Property where the event occurred.
          * 
-         * @return Source of the event.
+         * @return the Source of the event.
          */
         public Property getProperty() {
             return (Property) getSource();
@@ -754,7 +787,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     }
 
     /*
-     * Add a read-only status change listener for the field. Don't add a JavaDoc
+     * Adds a read-only status change listener for the field. Don't add a JavaDoc
      * comment here, we use the default documentation from the implemented
      * interface.
      */
@@ -774,7 +807,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     }
 
     /**
-     * Emit a read-only status change event. The value contained in the field is
+     * Emits the read-only status change event. The value contained in the field is
      * validated before the event is created.
      */
     protected void fireReadOnlyStatusChange() {
@@ -787,14 +820,16 @@ public abstract class AbstractField extends AbstractComponent implements Field,
      * 
      * @param event
      *            the value change event telling the data source contents have
-     *            changed
+     *            changed.
      */
     public void valueChange(Property.ValueChangeEvent event) {
         if (isReadThrough() || !isModified())
             fireValueChange();
     }
 
-    /** Ask the terminal to place the cursor to this field. */
+    /** 
+     * Asks the terminal to place the cursor to this field. 
+     */
     public void focus() {
         Window w = getWindow();
         if (w != null) {
@@ -805,14 +840,14 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     }
 
     /**
-     * Create abstract field by the type of the property.
+     * Creates abstract field by the type of the property.
      * 
      * <p>
-     * This returns most suitable field type for editing property of given type
+     * This returns most suitable field type for editing property of given type.
      * </p>
      * 
      * @param propertyType
-     *            Type of the property, that needs to be edited.
+     *            the Type of the property, that needs to be edited.
      */
     public static AbstractField constructField(Class propertyType) {
 
@@ -838,21 +873,21 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     }
 
     /**
-     * Get the tab index of this field. The tab index property is used to
+     * Gets the tab index of this field. The tab index property is used to
      * specify the natural tab ordering of fields.
      * 
-     * @return Tab index of this field. Negative value means unspecified.
+     * @return the Tab index of this field. Negative value means unspecified.
      */
     public int getTabIndex() {
         return tabIndex;
     }
 
     /**
-     * Get the tab index of this field. The tab index property is used to
+     * Gets the tab index of this field. The tab index property is used to
      * specify the natural tab ordering of fields.
      * 
      * @param tabIndex
-     *            The tab order of this component. Negative value means
+     *            the tab order of this component. Negative value means
      *            unspecified.
      */
     public void setTabIndex(int tabIndex) {
@@ -860,18 +895,19 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     }
 
     /**
-     * Set the internal field value. This is purely used by AbstractField to
+     * Sets the internal field value. This is purely used by AbstractField to
      * change the internal Field value. It does not trigger any events. It can
      * be overriden by the inheriting classes to update all dependent variables.
      * 
      * @param newValue
-     *            The new value to be set.
+     *            the new value to be set.
      */
     protected void setInternalValue(Object newValue) {
         this.value = newValue;
     }
 
     /**
+     * Gets the unique ID of focusable
      * @see com.itmill.toolkit.ui.Component.Focusable#getFocusableId()
      */
     public long getFocusableId() {
@@ -879,6 +915,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
     }
 
     /**
+     * Notifies the component that it is connected to an application.
      * @see com.itmill.toolkit.ui.Component#attach()
      */
     public void attach() {
@@ -891,20 +928,19 @@ public abstract class AbstractField extends AbstractComponent implements Field,
 
     /**
      * Is this field required.
-     * 
      * Required fields must filled by the user.
      * 
-     * @return true if the
+     * @return <code>true</code> if the field is required .otherwise <code>false</code>.
      */
     public boolean isRequired() {
         return required;
     }
 
     /**
-     * Set the field required. Required fields must filled by the user.
+     * Sets the field required. Required fields must filled by the user.
      * 
      * @param required
-     *            Is the field required
+     *            Is the field required.
      */
     public void setRequired(boolean required) {
         this.required = required;
@@ -912,6 +948,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
 
     /**
      * Free used resources.
+     * @see java.lang.Object#finalize()
      */
     public void finalize() throws Throwable {
         if (focusableId > -1) {
index 4a4224da3e4d26e8675ea3a1a48dab8516fadec2..dba1c5cec22dac7af6b8c3c1dfc48ec9f96d52d6 100644 (file)
@@ -34,16 +34,14 @@ import com.itmill.toolkit.data.Container;
 import com.itmill.toolkit.data.Item;
 import com.itmill.toolkit.data.Property;
 
-/** Default implementation of the 
-
- *      
- * 
- *  The following Field types are used by default:
+/** 
+ * Default implementation of the 
+ * the following Field types are used by default:
  * <p>
- *  <b>Boolean</b>: Button(switchMode:true)<br/> 
- *  <b>Date</b>:  DateField(resolution: day) 
- *  <b>Item</b>:  Form<br/>   
- *  <b>default   field type</b>: TextField
+ *  <b>Boolean</b>: Button(switchMode:true).<br/> 
+ *  <b>Date</b>:  DateField(resolution: day).<br/> 
+ *  <b>Item</b>:  Form<br/>   
+ *  <b>default   field type</b>: TextField.
  * <p>
  * @author IT Mill Ltd.
  * @version  @VERSION@
@@ -52,11 +50,12 @@ import com.itmill.toolkit.data.Property;
 
 public class BaseFieldFactory implements FieldFactory {
 
-       /** Creates field based on type of data.
+       /** 
+        * Creates the field based on type of data.
         *      
         *  
-        * @param type The type of data presented in field
-        * @param uiContext The context where the Field is presented.
+        * @param type the type of data presented in field.
+        * @param uiContext the context where the Field is presented.
         * 
         * @see com.itmill.toolkit.ui.FieldFactory#createField(Class, Component)
         */
@@ -90,7 +89,8 @@ public class BaseFieldFactory implements FieldFactory {
                return new TextField();
        }
 
-       /** Create field based on the datasource property.
+       /** 
+        * Creates the field based on the datasource property.
         * 
         * @see com.itmill.toolkit.ui.FieldFactory#createField(Property, Component)
         */
@@ -101,7 +101,8 @@ public class BaseFieldFactory implements FieldFactory {
                        return null;
        }
 
-       /** Creates field based on the item and property id.
+       /** 
+        * Creates the field based on the item and property id.
         * 
         * @see com.itmill.toolkit.ui.FieldFactory#createField(Item, Object, Component)
         */
index b357971b0d31b5a46fc9fd0b62a89859684f3cdd..c9cba2e7061d25c40b5ace2cb7832dc04c67f68a 100644 (file)
@@ -44,8 +44,8 @@ import com.itmill.toolkit.terminal.KeyMapper;
 import com.itmill.toolkit.terminal.PaintException;
 import com.itmill.toolkit.terminal.PaintTarget;
 
-
-/** A generic button component.
+/** 
+ * A generic button component.
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -63,9 +63,8 @@ public class Button extends AbstractField implements Action.Container {
        /** Action mapper */
        private KeyMapper actionMapper = null;
 
-
-       /** Creates a new push button.
-        *
+       /** 
+        * Creates the new push button.
         * The value of the push button is allways false and they are
         * immediate by default.
         *
@@ -74,42 +73,47 @@ public class Button extends AbstractField implements Action.Container {
                setSwitchMode(false);
        }
 
-       /** Creates a new push button.
+       /** 
+        * Creates the new push button.
         * 
         * The value of the push button is allways false and they are 
         * immediate by default.
         * 
-        *  @param caption Button caption
+        * @param caption the Button caption.
         */
        public Button(String caption) {
                setCaption(caption);
                setSwitchMode(false);
        }
 
-       /** Creates a new push button with click listener.
-        *  @param caption Button caption
-        *  @param listener Button click listener
+       /** 
+        * Creates the new push button with click listener.
+        * @param caption the Button caption.
+        * @param listener the Button click listener.
         */
        public Button(String caption, ClickListener listener) {
                this(caption);
                addListener(listener);
        }
 
-       /** Creates a new push button with a method listening button clicks.
+       /** 
+        * Creates the new push button with a method listening button clicks.
         * The method must have either no parameters, or only one parameter of
         * Button.ClickEvent type.
-        *  @param caption Button caption
-        *  @param target Object having the method for listening button clicks
-        *  @param methodName The name of the method in target object, that
-        *   receives button click events.
+        * @param caption the Button caption.
+        * @param target the Object having the method for listening button clicks.
+        * @param methodName the name of the method in target object, that
+        *                              receives button click events.
         */
        public Button(String caption, Object target, String methodName) {
                this(caption);
                addListener(ClickEvent.class, target, methodName);
        }
 
-       /** Creates new switch button with initial value.
-        * @param state Initial state of the switch-button.
+       /** 
+        * Creates the new switch button with initial value.
+        * @param state the Initial state of the switch-button.
+        * @param initialState
         */
        public Button(String caption, boolean initialState) {
                setCaption(caption);
@@ -117,8 +121,10 @@ public class Button extends AbstractField implements Action.Container {
                setSwitchMode(true);
        }
 
-       /** Creates new switch button that is connected to a boolean property.
-        * @param state Initial state of the switch-button.
+       /** 
+        * Creates the new switch button that is connected to a boolean property.
+        * @param state the Initial state of the switch-button.
+        * @param dataSource
         */
        public Button(String caption, Property dataSource) {
                setCaption(caption);
@@ -126,17 +132,19 @@ public class Button extends AbstractField implements Action.Container {
                setPropertyDataSource(dataSource);
        }
 
-       /** Get component UIDL tag.
-        * @return Component UIDL tag as string.
+       /** 
+        * Gets component UIDL tag.
+        * @return the Component UIDL tag as string.
         */
        public String getTag() {
                return "button";
        }
 
-       /** Paint the content of this component.
-        * @param event PaintEvent.
-        * @throws IOException Passed from the UIDLStream.
-        * @throws PaintException The paint operation failed.
+       /** 
+        * Paints the content of this component.
+        * @param event the PaintEvent.
+        * @throws IOException if the writing failed due to input/output error.
+        * @throws PaintException if the paint operation failed.
         */
        public void paintContent(PaintTarget target) throws PaintException {
                super.paintContent(target);
@@ -195,13 +203,15 @@ public class Button extends AbstractField implements Action.Container {
                }
        }
 
-       /** Invoked when the value of a variable has changed. Button
+       /** 
+        * Invoked when the value of a variable has changed. Button
         * listeners are notified if the button is clicked.
-        * @param event Variable change event.
+        * @param source 
+        * @param variables
         */
        public void changeVariables(Object source, Map variables) {
                if (variables.containsKey("state")) {
-                       // Get the new and old button states
+                       // Gets the new and old button states
                        Boolean newValue = (Boolean) variables.get("state");
                        Boolean oldValue = (Boolean) getValue();
 
@@ -249,8 +259,8 @@ public class Button extends AbstractField implements Action.Container {
        }
 
        /**
-        * Returns the switchMode.
-        * @return boolean
+        * Checks if it is switchMode.
+        * @return <code>true</code> if it is in Switch Mode, otherwise <code>false</code>.
         */
        public boolean isSwitchMode() {
                return switchMode;
@@ -258,7 +268,7 @@ public class Button extends AbstractField implements Action.Container {
 
        /**
         * Sets the switchMode.
-        * @param switchMode The switchMode to set
+        * @param switchMode The switchMode to set.
         */
        public void setSwitchMode(boolean switchMode) {
                this.switchMode = switchMode;
@@ -268,19 +278,20 @@ public class Button extends AbstractField implements Action.Container {
                }
        }
 
-       /** Set immediate mode. 
-       * @see com.itmill.toolkit.ui.AbstractComponent#setImmediate(boolean)
-       * 
-       * Push buttons can not be set in non-immediate mode.
-       */
+       /** 
+        * Sets immediate mode.
+        * Push buttons can not be set in non-immediate mode.
+        * @see com.itmill.toolkit.ui.AbstractComponent#setImmediate(boolean)
+        */
        public void setImmediate(boolean immediate) {
                // Push buttons are allways immediate
                super.setImmediate(!isSwitchMode() || immediate);
        }
 
-       /** The type of the button as a property.
-       * @see com.itmill.toolkit.data.Property#getType()
-       */
+       /** 
+        * The type of the button as a property.
+        * @see com.itmill.toolkit.data.Property#getType()
+        */
        public Class getType() {
                return Boolean.class;
        }
@@ -300,10 +311,11 @@ public class Button extends AbstractField implements Action.Container {
                }
        }
 
-       /** Click event. This event is thrown, when the button is clicked. 
+       /** 
+        * Click event. This event is thrown, when the button is clicked. 
         * @author IT Mill Ltd.
-                * @version @VERSION@
-                * @since 3.0
+        * @version @VERSION@
+        * @since 3.0
         */
        public class ClickEvent extends Component.Event {
 
@@ -312,49 +324,57 @@ public class Button extends AbstractField implements Action.Container {
          */
         private static final long serialVersionUID = 3546647602931118393L;
 
-        /** New instance of text change event
-               * @param source Source of the event.
-               */
+        /** 
+         * New instance of text change event.
+                * @param source the Source of the event.
+                */
                public ClickEvent(Component source) {
                        super(source);
                }
 
-               /** Button where the event occurred
-                * @return Source of the event.
+               /** 
+                * Gets the Button where the event occurred.
+                * @return the Source of the event.
                 */
                public Button getButton() {
                        return (Button) getSource();
                }
        }
 
-       /** Button click listener
+       /** 
+        * Button click listener
         * @author IT Mill Ltd.
-                * @version @VERSION@
-                * @since 3.0
+        * @version @VERSION@
+        * @since 3.0
         */
        public interface ClickListener {
 
-               /** Button has been pressed.
+               /** 
+                * Button has been pressed.
                 * @param event Button click event.
                 */
                public void buttonClick(ClickEvent event);
        }
 
-       /** Add button click listener
-       * @param listener Listener to be added.
-       */
+       /** 
+        * Adds the button click listener.
+        * @param listener the Listener to be added.
+        */
        public void addListener(ClickListener listener) {
                addListener(ClickEvent.class, listener, BUTTON_CLICK_METHOD);
        }
 
-       /** Remove button click listener
-       * @param listener Listener to be removed.
-       */
+       /** 
+        * Removes the button click listener.
+        * @param listener the Listener to be removed.
+        */
        public void removeListener(ClickListener listener) {
                removeListener(ClickEvent.class, listener, BUTTON_CLICK_METHOD);
        }
 
-       /** Emit options change event. */
+       /** 
+        * Emits the options change event. 
+        */
        protected void fireClick() {
                fireEvent(new Button.ClickEvent(this));
        }
index 7626ef3566c06efbc1056d708719f2f4fa9610f0..d0dba99e37db3fddbc212cc820c4d471856d28c4 100644 (file)
@@ -39,8 +39,9 @@ import java.util.EventListener;
 import java.util.EventObject;
 import java.util.Locale;
 
-/** The top-level component interface which must be implemented by all
- *  UI components that use IT Mill Toolkit
+/** 
+ * The top-level component interface which must be implemented by all
+ * UI components that use IT Mill Toolkit.
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -48,43 +49,50 @@ import java.util.Locale;
  */
 public interface Component extends Paintable, VariableOwner {
 
-       /** Gets the look-and-feel style of the component.
+       /** 
+        * Gets the look-and-feel style of the component.
         * 
-        * @return component's styleValue of property style.
+        * @return the component's styleValue of property style.
         */
        public String getStyle();
 
-       /** Sets the look-and-feel style of the component.  This method will
+       /** 
+        * Sets the look-and-feel style of the component.  This method will
         * trigger a {@link com.itmill.toolkit.terminal.Paintable.RepaintRequestEvent RepaintRequestEvent}.
-        * .
-        * @param style new style of the component
+        * 
+        * @param style the new style of the component.
         */
        public void setStyle(String style);
 
-       /** <p>Tests if the component is enabled or not. All the variable
+       /** 
+        * <p>
+        * Tests if the component is enabled or not. All the variable
         * change events are blocked from disabled components. Also the
         * component should visually indicate that it is disabled (by shading
         * the component for example). 
-        * All hidden (isVisible() == false) components must return false.</p>
+        * All hidden (isVisible() == false) components must return false.
+        * </p>
         * 
         * <p>Components should be enabled by default.</p>
         * 
         * @return <code>true</code> if the component is enabled,
-        * <code>false</code> if not
+        * <code>false</code> if not.
         * @see VariableOwner#isEnabled()
         */
        public boolean isEnabled();
 
-       /** Enable or disable the component. Being enabled means that the
+       /** 
+        * Enables or disables the component. Being enabled means that the
         * component can be edited.  This method will trigger a
         * {@link com.itmill.toolkit.terminal.Paintable.RepaintRequestEvent RepaintRequestEvent}.
         * 
-        * @param enabled boolean value specifying if the component should be
+        * @param enabled the boolean value specifying if the component should be
         * enabled after the call or not
         */
        public void setEnabled(boolean enabled);
 
-       /** Tests if the component is visible or not. Visibility defines if the
+       /** 
+        * Tests if the component is visible or not. Visibility defines if the
         * component is shown in the UI or not. Default is <code>true</code>.
         * 
         * @return <code>true</code> if the component is visible in the UI,
@@ -92,22 +100,25 @@ public interface Component extends Paintable, VariableOwner {
         */
        public boolean isVisible();
 
-       /** Sets the components visibility status. Visibility defines if the
+       /** 
+        * Sets the components visibility status. Visibility defines if the
         * component is shown in the UI or not.
         * 
-        * @param visible Boolean value specifying if the component should be
-        * visible after the call or not
+        * @param visible the Boolean value specifying if the component should be
+        * visible after the call or not.
         */
        public void setVisible(boolean visible);
 
-       /** Gets the visual parent of the component. The components can be
+       /** 
+        * Gets the visual parent of the component. The components can be
         * nested but one component can have only one parent.
         * 
-        * @return the parent component
+        * @return the parent component.
         */
        public Component getParent();
 
-       /** Sets the component's parent component. 
+       /** 
+        * Sets the component's parent component. 
         * 
         * <p>This method calls
         * automatically {@link #attach()} if the parent is attached to a
@@ -119,58 +130,66 @@ public interface Component extends Paintable, VariableOwner {
         * {@link ComponentContainer#addComponent(Component)} method is used
         * to add components to container, which call this method implicitly.
         * 
-        * @param parent the new parent component
+        * @param parent the new parent component.
         */
        public void setParent(Component parent);
 
-       /** Tests if the component is in read-only mode.
+       /** 
+        * Tests if the component is in read-only mode.
         * 
         * @return <code>true</code> if the component is in read-only mode,
-        * <code>false</code> if not
+        * <code>false</code> if not.
         */
        public boolean isReadOnly();
 
-       /** Sets the component's to read-only mode to the specified state. This
+       /** 
+        * Sets the component's to read-only mode to the specified state. This
         * method will trigger a 
         * {@link com.itmill.toolkit.terminal.Paintable.RepaintRequestEvent RepaintRequestEvent}.
         * 
-        * @param readOnly boolean value specifying if the component should be
-        * in read-only mode after the call or not
+        * @param readOnly the boolean value specifying if the component should be
+        * in read-only mode after the call or not.
         */
        public void setReadOnly(boolean readOnly);
 
-       /** Gets the caption of the component. Caption is the visible name of
+       /** 
+        * Gets the caption of the component. Caption is the visible name of
         * the component.
         * 
-        * @return component's caption <code>String</code>
+        * @return the component's caption <code>String</code>.
         */
        public String getCaption();
 
-       /** Gets the component's icon. A component may have a graphical icon
+       /** 
+        * Gets the component's icon. A component may have a graphical icon
         * associated with it, this method retrieves it if it is defined.
         * 
         * @return the component's icon or <code>null</code> if it not defined.
         */
        public Resource getIcon();
 
-       /** Gets the component's parent window. If the component does not yet
+       /** 
+        * Gets the component's parent window. If the component does not yet
         * belong to a window <code>null</code> is returned.
         * 
-        * @return parent window of the component or <code>null</code>
+        * @return the parent window of the component or <code>null</code>.
         */
        public Window getWindow();
 
-       /** Gets the component's parent application. If the component does not
+       /** 
+        * Gets the component's parent application. If the component does not
         * yet belong to a application <code>null</code> is returned.
         * 
-        * @return parent application of the component or <code>null</code>
+        * @return the parent application of the component or <code>null</code>.
         */
        public Application getApplication();
 
-       /** Notifies the component that it is connected to an application. This
+       /** 
+        * <p>
+        * Notifies the component that it is connected to an application. This
         * method is always called before the component is first time painted
-        * and is suitable to be extended. The <code>getApplication()</code> and
-        * <code>getWindow()</code> functions might return <code>null</code>
+        * and is suitable to be extended. The <code>getApplication</code> and
+        * <code>getWindow</code> methods might return <code>null</code>
         * before this method is called.</p>
         * 
         * <p>The caller of this method is {@link #setParent(Component)} if the 
@@ -180,7 +199,8 @@ public interface Component extends Paintable, VariableOwner {
         */
        public void attach();
 
-       /** Notifies the component that it is detached from the application.
+       /** 
+        * Notifies the component that it is detached from the application.
         * <p>The {@link #getApplication()} and {@link #getWindow()}
         * methods might return <code>null</code> after this method is
         * called.</p>
@@ -192,31 +212,35 @@ public interface Component extends Paintable, VariableOwner {
         */
        public void detach();
 
-       /** Gets the locale of this component.
+       /** 
+        * Gets the locale of this component.
         * 
         * @return This component's locale. If this component does not have a 
         *          locale, the locale of its parent is returned. Eventually locale
         *          of application is returned. If application does not have its own 
-        *          locale the locale is determined by Locale.getDefautl(). Returns 
+        *          locale the locale is determined by <code>Locale.getDefautlt</code>. Returns 
         *          null if the component does not have its own locale and has not 
         *          yet been added to a containment hierarchy such that the locale 
         *          can be determined from the containing parent.
         */
        public Locale getLocale();
 
-       /** The children must call this method when they need repainting. The call must be 
+       /** 
+        * The children must call this method when they need repainting. The call must be 
         * made event in the case the children sent the repaint request themselves.
-        * @param alreadyNotified A collection of repaint request listeners that have been
-        * already notified by the child. This component should not renotify the listed
-        * listeners again. The container given as parameter must be modifiable as the 
-        * component might modify it and pass it forwards. Null parameter is interpreted
-        * as empty collection.
+        * @param alreadyNotified the collection of repaint request listeners that have been
+        *                                                already notified by the child. This component should not renotify the listed
+        *                                                listeners again. The container given as parameter must be modifiable as the 
+        *                                                component might modify it and pass it forwards. Null parameter is interpreted
+        *                                                as empty collection.
         */
        public void childRequestedRepaint(Collection alreadyNotified);
 
        /* Component event framework *************************************** */
 
-       /** Superclass of all component originated <code>Event</code>s. */
+       /** 
+        * Superclass of all component originated <code>Event</code>s. 
+        */
        public class Event extends EventObject {
 
                /**
@@ -224,39 +248,47 @@ public interface Component extends Paintable, VariableOwner {
          */
         private static final long serialVersionUID = 4048791277653274933L;
 
-        /** Constructs a new event with a specified source component.
+        /** 
+         * Constructs a new event with a specified source component.
                 * 
-                * @param source source component of the event
+                * @param source the source component of the event.
                 */
                public Event(Component source) {
                        super(source);
                }
        }
 
-       /** Listener interface for receiving <code>Component.Event</code>s */
+       /** 
+        * Listener interface for receiving <code>Component.Event</code>s. 
+        */
        public interface Listener extends EventListener {
 
-               /** Notifies the listener of a component event.
+               /** 
+                * Notifies the listener of a component event.
                 * 
-                * @param event the event that has occured
+                * @param event the event that has occured.
                 */
                public void componentEvent(Component.Event event);
        }
 
-       /** Registers a new component event listener for this component.
+       /** 
+        * Registers a new component event listener for this component.
         * 
-        * @param listener the new Listener to be registered
+        * @param listener the new Listener to be registered.
         */
        public void addListener(Component.Listener listener);
 
-       /** Removes a previously registered component event listener from this
+       /** 
+        * Removes a previously registered component event listener from this
         * component.
         * 
-        * @param listener the listener to be removed
+        * @param listener the listener to be removed.
         */
        public void removeListener(Component.Listener listener);
 
-       /** Class of all component originated <code>ErrorEvent</code>s. */
+       /** 
+        * Class of all component originated <code>ErrorEvent</code>s. 
+        */
        public class ErrorEvent extends Event {
 
                /**
@@ -266,10 +298,11 @@ public interface Component extends Paintable, VariableOwner {
         
         private ErrorMessage message;
 
-               /** Constructs a new event with a specified source component.
-                       *
-                       * @param source source component of the event
-                       */
+               /**
+                * Constructs a new event with a specified source component.
+                * @param message the error message.
+                * @param component the source component.
+                */
                public ErrorEvent(
                        ErrorMessage message,
                        Component component) {
@@ -277,44 +310,56 @@ public interface Component extends Paintable, VariableOwner {
                        this.message = message;
                }
 
-               /** Return the error message */
+               /** 
+                * Gets the error message.
+                * @return the error message. 
+                */
                public ErrorMessage getErrorMessage() {
                        return this.message;
                }
        }
 
-       /** Listener interface for receiving <code>Component.Errors</code>s */
+       /** 
+        * Listener interface for receiving <code>Component.Errors</code>s. 
+        */
        public interface ErrorListener extends EventListener {
 
-               /** Notifies the listener of a component error.
-                       *
-                       * @param event the event that has occured
-                       */
+               /**
+                * Notifies the listener of a component error.
+                * @param event the event that has occured.
+                */
                public void componentError(Component.ErrorEvent event);
        }
 
-       /** Interface implemented by components which can obtain input focus. */
+       /** 
+        * Interface implemented by components which can obtain input focus. 
+        */
        public interface Focusable {
                
-               /** Set focus to this component.*/
+               /** 
+                * Sets the focus to this component.
+                */
                public void focus();
                
-               /** Get Tabulator index of this Focusable component. 
-                * @return Positive tab order of this focusable. Negative of zero means
+               /** 
+                * Gets the Tabulator index of this Focusable component. 
+                * @return the Positive tab order of this focusable. Negative of zero means
                 * unspecified tab order.
                 */
                public int getTabIndex();
                
-               /** Set Tabulator index of this Focusable component.
-                * @param tabIndex Positive tab order of this focusable. Negative of
+               /** 
+                * Sets the Tabulator index of this Focusable component.
+                * @param tabIndex the Positive tab order of this focusable. Negative of
                 * zero means unspecified tab order.
                 */
                public void setTabIndex(int tabIndex);
 
-               /** Get unique ID of focusable.
-                *  This will be used to move input focus directly to this
-                *  component.
-                * @return Unique id of focusable.
+               /** 
+                * Gets the unique ID of focusable.
+                * This will be used to move input focus directly to this
+                * component.
+                * @return the Unique id of focusable.
                 */
                public long getFocusableId();
                
index d6d44049f40b4c36552dbc7f6c97a5aa1198c045..bd8c5d1c7f0d1cdff2ae48e79ed97206a09c766c 100644 (file)
@@ -30,7 +30,8 @@ package com.itmill.toolkit.ui;
 
 import java.util.Iterator;
 
-/** Extension to the {@link Component} interface which adds to it the capacity
+/** 
+ * Extension to the {@link Component} interface which adds to it the capacity
  * to contain other components. All UI elements that can have child elements
  * implement this interface.
  * 
@@ -40,22 +41,27 @@ import java.util.Iterator;
  */
 public interface ComponentContainer extends Component {
 
-    /** Adds a component into this container.
+    /** 
+     * Adds the component into this container.
      * 
-     * @param c the component to be added
+     * @param c the component to be added.
      */
     public void addComponent(Component c);
 
-    /** Removes a component from this container.
+    /** 
+     * Removes the component from this container.
      * 
-     * @param c the component to be added
+     * @param c the component to be added.
      */
     public void removeComponent(Component c);
     
-    /** Removes all components from this container. */    
+    /** 
+     * Removes all components from this container. 
+     */    
     public void removeAllComponents();
 
-       /** Replace a component in the container with another one without changing position.
+       /** 
+        * Replaces the component in the container with another one without changing position.
         * 
         * <p>This method replaces component with another one is such way that the new component
         * overtakes the position of the old component. If the old component is not in the 
@@ -63,54 +69,78 @@ public interface ComponentContainer extends Component {
         * already in the container, their positions are swapped.
         * Component attach and detach events should be taken care as with add and remove.</p>
         * 
-        * @param oldComponent The old component that will be replaced.
-        * @param newComponent The new component to be replaced
+        * @param oldComponent the old component that will be replaced.
+        * @param newComponent the new component to be replaced.
         */
        public void replaceComponent(Component oldComponent, Component newComponent);
 
-    /** Gets an iterator to the collection of contained components. Using
+    /** 
+     * Gets an iterator to the collection of contained components. Using
      * this iterator it is possible to step through all components contained
      * in this container.
      * 
-     * @return component iterator
+     * @return the component iterator.
      */    
     public Iterator getComponentIterator();
     
-    /** Moves all components from an another container into this container.
+    /** 
+     * Moves all components from an another container into this container.
      * The components are removed from <code>source</code>.
      * 
      * @param source the container which contains the components that are to
-     * be moved to this container
+     * be moved to this container.
      */
     public void moveComponentsFrom(ComponentContainer source);
     
-    /** Listen component attach events */
+    /** 
+     * Listens the component attach events.
+     * @param listener the listener to add. 
+     */
     public void addListener(ComponentAttachListener listener);
 
-    /** Stop listening component attach events */
+    /** 
+     * Stops the listening component attach events.
+     * @param listener the listener to removed. 
+     */
     public void removeListener(ComponentAttachListener listener);
 
-    /** Listen component detach events */
+    /** 
+     * Listens the component detach events. 
+     */
     public void addListener(ComponentDetachListener listener);
     
-    /** Stop listening component detach events */
+    /** 
+     * Stops the listening component detach events. 
+     */
     public void removeListener(ComponentDetachListener listener);
 
-       /** Component attach listener interface. */
+       /** 
+        * Component attach listener interface. 
+        */
        public interface ComponentAttachListener {
 
-               /** A new component is attached to container */         
+               /**
+                * A new component is attached to container.
+                * @param event the component attach event. 
+                */             
                public void componentAttachedToContainer(ComponentAttachEvent event);
        }    
 
-       /** Component detach listener interface. */
+       /** 
+        * Component detach listener interface. 
+        */
        public interface ComponentDetachListener {
 
-               /** A component has been detached from container */             
+               /** 
+                * A component has been detached from container.
+                * @param event the component detach event.
+                */             
                public void componentDetachedFromContainer(ComponentDetachEvent event);
        }    
 
-       /** Component attach event sent when a component is attached to container */
+       /** 
+        * Component attach event sent when a component is attached to container. 
+        */
        public class ComponentAttachEvent extends Component.Event {     
        
                /**
@@ -120,27 +150,36 @@ public interface ComponentContainer extends Component {
         
         private Component component;
 
-               /** Create new attach event.
-                * @param container The component container the component has been detached to.
-                * @param attachedComponent The component that has been attached
+               /** 
+                * Creates the new attach event.
+                * @param container the component container the component has been detached to.
+                * @param attachedComponent the component that has been attached.
                 */
                public ComponentAttachEvent(ComponentContainer container, Component attachedComponent) {
                        super(container);
                        this.component = attachedComponent;     
                }       
                
-               /** Get the component container */
+               /** 
+                * Gets the component container.
+                * @param the component container. 
+                */
                public ComponentContainer getContainer() {
                        return (ComponentContainer) getSource();        
                }
                
-               /** Get the attached component */
+               /** 
+                * Gets the attached component.
+                * @param the attach component. 
+                */
                public Component getAttachedComponent() {
                        return component;       
                }
        }
 
-       /** Component detach event sent when a component is detached from container */
+       /** 
+        * Component detach event sent when a component is detached from container. 
+        */
        public class ComponentDetachEvent extends Component.Event {     
        
                /**
@@ -150,21 +189,28 @@ public interface ComponentContainer extends Component {
         
         private Component component;
 
-               /** Create new detach event.
-                * @param container The component container the component has been detached from.
-                * @param detachedComponent The component that has been detached
+               /** 
+                * Creates the new detach event.
+                * @param container the component container the component has been detached from.
+                * @param detachedComponent the component that has been detached.
                 */
                public ComponentDetachEvent(ComponentContainer container, Component detachedComponent) {
                        super(container);
                        this.component = detachedComponent;     
                }       
                
-               /** Get the component container */
+               /** 
+                * Gets the component container.
+                * @param the component container. 
+                */
                public ComponentContainer getContainer() {
                        return (ComponentContainer) getSource();        
                }
                
-               /** Get the detached component */
+               /** 
+                * Gets the detached component.
+                * @return the detached component. 
+                */
                public Component getDetachedComponent() {
                        return component;       
                }
index ca106e66028ce0ed9d1eead8cdf47970ee2acd76..3a253bec804158bad09b42afbd9db28fd6306a73 100644 (file)
@@ -41,12 +41,15 @@ import com.itmill.toolkit.terminal.PaintTarget;
 import com.itmill.toolkit.terminal.Resource;
 import com.itmill.toolkit.terminal.VariableOwner;
 
-/** Custom component provides simple implementation of Component interface for 
+/** 
+ * Custom component provides simple implementation of Component interface for 
  * creation of new UI components by composition of existing components. 
- * <p>The component is used by inheriting the CustomComponent class and setting
+ * <p>
+ * The component is used by inheriting the CustomComponent class and setting
  * composite root inside the Custom component. The composite root itself
  * can contain more components, but their interfaces are hidden from the 
- * users.</p>
+ * users.
+ * </p>
  * 
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -54,59 +57,83 @@ import com.itmill.toolkit.terminal.VariableOwner;
  */
 public class CustomComponent implements Component {
 
-       /** The root component implementing the custom component */
+       /** 
+        * The root component implementing the custom component. 
+        */
        private Component root = null;
 
-       /** The visibility of the component */
+       /** 
+        * The visibility of the component. 
+        */
        private boolean visible = true;
 
-       /** The parent of the component */
+       /** 
+        * The parent of the component. 
+        */
        private Component parent = null;
 
-       /** Dependencies of the component, or null */
+       /** 
+        * Dependencies of the component, or null. 
+        */
        private HashSet dependencies = null;
 
-       /** Type of the component */
+       /** 
+        * Type of the component. 
+        */
        private String componentType = null;
 
-       /** List of repaint request listeners or null if not listened at all */
+       /** 
+        * List of repaint request listeners or null if not listened at all. 
+        */
        private LinkedList repaintRequestListeners = null;
 
-       /** Are all the repaint listeners notified about recent changes ? */
+       /** 
+        * Are all the repaint listeners notified about recent changes ? 
+        */
        private boolean repaintRequestListenersNotified = false;
 
-       /** Construct new custom component. 
+       /** 
+        * Constructs new custom component. 
         * 
-        * <p>The component is implemented by wrapping the methods of the 
+        * <p>
+        * The component is implemented by wrapping the methods of the 
         * composition root component given as parameter. The composition 
-        * root must be set before the component can be used.</p>
+        * root must be set before the component can be used.
+        * </p>
         */
        public CustomComponent() {
        }
 
-       /** Construct new custom component. 
+       /** 
+        * Constructs the new custom component. 
         * 
-        * <p>The component is implemented by wrapping the methods of the 
+        * <p>
+        * The component is implemented by wrapping the methods of the 
         * composition root component given as parameter. The composition 
-        * root must not be null and can not be changed after the composition.</p>
+        * root must not be null and can not be changed after the composition.
+        * </p>
         * 
-        * @param compositionRoot The root of the composition component tree.
+        * @param compositionRoot the root of the composition component tree.
         */
        public CustomComponent(Component compositionRoot) {
                setCompositionRoot(compositionRoot);
        }
 
-       /** Returns the composition root.
-        * @return Component Composition root
+       /** 
+        * Returns the composition root.
+        * @return the Component Composition root.
         */
        protected final Component getCompositionRoot() {
                return root;
        }
 
-       /** Sets the compositions root. 
-        * <p>The composition root must be set to non-null value before the
-        * component can be used. The composition root can only be set once.</p>
-        * @param compositionRoot The root of the composition component tree.
+       /** 
+        * Sets the compositions root. 
+        * <p>
+        * The composition root must be set to non-null value before the
+        * component can be used. The composition root can only be set once.
+        * </p>
+        * @param compositionRoot the root of the composition component tree.
         */
        protected final void setCompositionRoot(Component compositionRoot) {
                if (compositionRoot != root && root != null)
@@ -117,25 +144,39 @@ public class CustomComponent implements Component {
        }
 
        /* Basic component features ------------------------------------------ */
-
+       
+       /**
+        * Notifies the component that it is connected to an application.
+        * @see com.itmill.toolkit.ui.Component#attach()
+        */
        public void attach() {
                if (root != null)
                        root.attach();
        }
-
+       
+       /**
+        * Notifies the component that it is detached from the application.
+        * @see com.itmill.toolkit.ui.Component#detach()
+        */
        public void detach() {
                if (root != null)
                        root.detach();
        }
-
+       
+       /**
+        * Gets the component's parent application
+        * @see com.itmill.toolkit.ui.Component#getApplication()
+        */
        public Application getApplication() {
                if (parent == null)
                        return null;
                return parent.getApplication();
        }
 
-       /** The caption of the custom component is by default the the 
-        * caption of the root component, or null if the root is not set
+       /**
+        * The caption of the custom component is by default the 
+        * caption of the root component, or null if the root is not set.
+        * @see com.itmill.toolkit.ui.Component#getCaption()
         */
        public String getCaption() {
                if (root == null)
@@ -143,8 +184,10 @@ public class CustomComponent implements Component {
                return root.getCaption();
        }
 
-       /** The icon of the custom component is by default the the 
-        * icon of the root component, or null if the root is not set
+       /**
+        * The icon of the custom component is by default the 
+        * icon of the root component, or null if the root is not set.
+        * @see com.itmill.toolkit.ui.Component#getIcon()
         */
        public Resource getIcon() {
                if (root == null)
@@ -152,49 +195,73 @@ public class CustomComponent implements Component {
                return root.getIcon();
        }
 
-       /** The icon of the custom component is by default the the 
+       /**
+        * The icon of the custom component is by default the
         * locale of the parent or null if the parent is not set.
+        * @see com.itmill.toolkit.ui.Component#getLocale()
         */
        public Locale getLocale() {
                if (parent == null)
                        return null;
                return parent.getLocale();
        }
-
+       
+       /**
+        * Gets the visual parent of the component.
+        * @see com.itmill.toolkit.ui.Component#getParent()
+        */
        public Component getParent() {
                return parent;
        }
 
-       /** Custom component does not implement custom styles by default and
+       /**
+        * Custom component does not implement custom styles by default and
         * this function returns null.
+        * @see com.itmill.toolkit.ui.Component#getStyle()
         */
        public String getStyle() {
                return null;
        }
-
+       
+       /**
+        * Gets the component's parent window.
+        * @see com.itmill.toolkit.ui.Component#getWindow()
+        */
        public Window getWindow() {
                if (parent == null)
                        return null;
                return parent.getWindow();
        }
 
-       /** Custom component is allways enabled by default */
+       /**
+        * Custom component is allways enabled by default.
+        * @see com.itmill.toolkit.ui.Component#isEnabled()
+        */
        public boolean isEnabled() {
                return true;
        }
 
-       /** Custom component is by default in the non-immediate mode. The immediateness
-        * of the custom component is defined by the components it is composed of. 
+       /**
+        * Custom component is by default in the non-immediate mode. The immediateness
+        * of the custom component is defined by the components it is composed of.
+        * @see com.itmill.toolkit.terminal.VariableOwner#isImmediate()
         */
        public boolean isImmediate() {
                return false;
        }
 
-       /** The custom components are not readonly by default. */
+       /**
+        * The custom components are not readonly by default.
+        * @see com.itmill.toolkit.ui.Component#isReadOnly()
+        */
        public boolean isReadOnly() {
                return false;
        }
-
+       
+       /**
+        * Tests if the component is visible or not.
+        * @see com.itmill.toolkit.ui.Component#isVisible()
+        */
        public boolean isVisible() {
                return visible;
        }
@@ -260,40 +327,54 @@ public class CustomComponent implements Component {
                }
        }
 
-       /** The custom component is allways enabled by default. */
+       /** 
+        * The custom component is allways enabled by default. 
+        */
        public void setEnabled(boolean enabled) {
        }
-
+       
+       /**
+        * Sets the component's parent component.
+        * @see com.itmill.toolkit.ui.Component#setParent(com.itmill.toolkit.ui.Component)
+        */
        public void setParent(Component parent) {
 
                // If the parent is not changed, dont do nothing
                if (parent == this.parent)
                        return;
 
-               // Send detach event if the component have been connected to a window
+               // Sends the detach event if the component have been connected to a window
                if (getApplication() != null) {
                        detach();
                        this.parent = null;
                }
 
-               // Connect to new parent
+               // Connects to new parent
                this.parent = parent;
 
-               // Send attach event if connected to a window
+               // Sends the attach event if connected to a window
                if (getApplication() != null)
                        attach();
        }
 
-       /** Changing the read-only mode of the component is not supported by default.
+       /**
+        * Sets the component's to read-only mode to the specified state.
+        * @see com.itmill.toolkit.ui.Component#setReadOnly(boolean)
         */
        public void setReadOnly(boolean readOnly) {
        }
 
-       /** Changing the style of the component is not supported by default.
+       /**
+        * Sets the look-and-feel style of the component.
+        * @see com.itmill.toolkit.ui.Component#setStyle(java.lang.String)
         */
        public void setStyle(String style) {
        }
-
+       
+       /**
+        * Sets the components visibility status.
+        * @see com.itmill.toolkit.ui.Component#setVisible(boolean)
+        */
        public void setVisible(boolean visible) {
                this.visible = visible;
        }
@@ -324,10 +405,18 @@ public class CustomComponent implements Component {
                repaintRequestListenersNotified = false;
        }
 
-       /** The custom component does not have any variables by default */
+       /**
+        * Called when one or more variables handled by the implementing class
+     * are changed.
+        * @see com.itmill.toolkit.terminal.VariableOwner#changeVariables(java.lang.Object, java.util.Map)
+        */
        public void changeVariables(Object source, Map variables) {
        }
-
+       
+       /**
+        * Makes this <code>VariableOwner</code> depend on the given <code>VariableOwner</code>.
+        * @see com.itmill.toolkit.terminal.VariableOwner#dependsOn(com.itmill.toolkit.terminal.VariableOwner)
+        */
        public void dependsOn(VariableOwner depended) {
                if (depended == null)
                        return;
@@ -335,11 +424,20 @@ public class CustomComponent implements Component {
                        dependencies = new HashSet();
                dependencies.add(depended);
        }
-
+       
+       /**
+        * Gets the variable change listeners this <code>VariableOwner</code>
+        * directly depends on.
+        * @see com.itmill.toolkit.terminal.VariableOwner#getDirectDependencies()
+        */
        public Set getDirectDependencies() {
                return dependencies;
        }
-
+       
+       /**
+        * Removes the given component from this component's dependency list.
+        * @see com.itmill.toolkit.terminal.VariableOwner#removeDirectDependency(com.itmill.toolkit.terminal.VariableOwner)
+        */
        public void removeDirectDependency(VariableOwner depended) {
                if (dependencies == null)
                        return;
@@ -350,22 +448,27 @@ public class CustomComponent implements Component {
 
        /* Event functions are not implemented by default -------------------- */
 
-       /** Custom component does not implement any component events by default */
+       /** 
+        * Custom component does not implement any component events by default.
+        * @param listener the listener to add. 
+        */
        public void addListener(Component.Listener listener) {
        }
 
-       /** Custom component does not implement any component events by default */
+       /** 
+        * Custom component does not implement any component events by default.
+        * @param listener the listener to remove. 
+        */
        public void removeListener(Component.Listener listener) {
        }
 
-       /** Gets the component type.
+       /** 
+        * Gets the component type.
         * 
         * The component type is textual type of the component. This is included
         * in the UIDL as component tag attribute. If the component type is null
         * (default), the component tag is not included in the UIDL at all.
-        * 
-        * Returns the componentType.
-        * @return String
+        * @return the component type.
         */
        public String getComponentType() {
                return componentType;
@@ -378,7 +481,7 @@ public class CustomComponent implements Component {
         * in the UIDL as component tag attribute. If the component type is null
         * (default), the component tag is not included in the UIDL at all.
         * 
-        * @param componentType The componentType to set
+        * @param componentType the componentType to set.
         */
        public void setComponentType(String componentType) {
                this.componentType = componentType;
index 2e423357826675c3d5dc0582aeab0a2fcf8a7308..7302f20b7161981a40c080757d98ac49c6518ecc 100644 (file)
@@ -34,21 +34,28 @@ import com.itmill.toolkit.terminal.PaintTarget;
 import java.util.Iterator;
 import java.util.HashMap;
 
-/** <p>A container component with freely designed layout and style. The
+/** 
+ * <p>
+ * A container component with freely designed layout and style. The
  * container consists of items with textually represented locations. Each
  * item contains one sub-component. The adapter and theme are resposible for
  * rendering the layout with given style by placing the items on the screen
- * in defined locations.</p>
+ * in defined locations.
+ * </p>
  *
- * <p>The definition of locations is not fixed - the each style can define
+ * <p>
+ * The definition of locations is not fixed - the each style can define
  * its locations in a way that is suitable for it. One typical example would
  * be to create visual design for a website as a custom layout: the visual
  * design could define locations for "menu", "body" and "title" for example.
  * The layout would then be implemented as XLS-template with for given
- * style.</p>
+ * style.
+ * </p>
  *
- * <p>The default theme handles the styles that are not defined by just
- * drawing the subcomponents with flowlayout.</p>
+ * <p>
+ * The default theme handles the styles that are not defined by just
+ * drawing the subcomponents with flowlayout.
+ * </p>
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -56,24 +63,30 @@ import java.util.HashMap;
  */
 public class CustomLayout extends AbstractComponentContainer implements Layout {
 
-       /** Custom layout slots containing the components */
+       /** 
+        * Custom layout slots containing the components. 
+        */
        private HashMap slots = new HashMap();
 
-       /** Constructor for custom layout with given style */
+       /** 
+        * Constructor for custom layout with given style. 
+        */
        public CustomLayout(String style) {
                setStyle(style);
        }
 
-       /** Get component UIDL tag.
-        * @return Component UIDL tag as string.
+       /** 
+        * Gets the component UIDL tag.
+        * @return the Component UIDL tag as string.
         */
        public String getTag() {
                return "customlayout";
        }
 
-       /** Add a component into this container to given location.
-        * @param c The component to be added.
-        * @param location The location of the component
+       /** 
+        * Adds the component into this container to given location.
+        * @param c the component to be added.
+        * @param location the location of the component.
         */
        public void addComponent(Component c, String location) {
                Component old = (Component)slots.get(location);
@@ -86,18 +99,20 @@ public class CustomLayout extends AbstractComponentContainer implements Layout {
                requestRepaint();
        }
 
-       /** Add a component into this container. The component is added without
+       /** 
+        * Adds the component into this container. The component is added without
         * specifying the location (empty string is then used as location). Only 
         * one component can be added to the default "" location and adding
         * more components into that location overwrites the old components.
-        * @param c The component to be added.
+        * @param c the component to be added.
         */
        public void addComponent(Component c) {
                this.addComponent(c, "");
        }
 
-       /** Remove a component from this container.
-        * @param c The component to be removed.
+       /** 
+        * Removes the component from this container.
+        * @param c the component to be removed.
         */
        public void removeComponent(Component c) {
                if (c == null) return;
@@ -107,45 +122,49 @@ public class CustomLayout extends AbstractComponentContainer implements Layout {
                requestRepaint();
        }
 
-       /** Remove a component from this container from given location.
-        * @param location Location identifier of the component
+       /** 
+        * Removes the component from this container from given location.
+        * @param location the Location identifier of the component.
         */
        public void removeComponent(String location) {
                this.removeComponent((Component) slots.get(location));
        }
 
-       /** Get component container iterator for going trough all the components in 
+       /** 
+        * Gets the component container iterator for going trough all the components in 
         * the container.
-        * @return Iterator of the components inside the container.
+        * @return the Iterator of the components inside the container.
         */
        public Iterator getComponentIterator() {
                return slots.values().iterator();
        }
 
-       /** Get child-component by its location.
+       /** 
+        * Gets the child-component by its location.
         * 
-        * @param location The name of the location where the requested 
-        *         component resides
-        * @return Component in the given location or null if not found.
+        * @param location the name of the location where the requested 
+        *         component resides.
+        * @return the Component in the given location or null if not found.
         */
        public Component getComponent(String location) {
                return (Component) slots.get(location);
        }
 
-       /** Paint the content of this component.
-        * @param event PaintEvent.
-        * @throws PaintException The paint operation failed.
+       /** 
+        * Paints the content of this component.
+        * @param target 
+        * @throws PaintException  if the paint operation failed.
         */
        public void paintContent(PaintTarget target) throws PaintException {
 
-               // Add all items in all the locations
+               // Adds all items in all the locations
                for (Iterator i = slots.keySet().iterator(); i.hasNext();) {
 
-                       // Get the (location,component)
+                       // Gets the (location,component)
                        String location = (String) i.next();
                        Component c = (Component) slots.get(location);
 
-                       // Write the item
+                       // Writes the item
                        target.startTag("location");
                        target.addAttribute("name", location);
                        c.paint(target);
@@ -158,7 +177,7 @@ public class CustomLayout extends AbstractComponentContainer implements Layout {
                Component oldComponent,
                Component newComponent) {
 
-               // Get the locations                    
+               // Gets the locations                   
                String oldLocation = null;
                String newLocation  = null;
                for (Iterator i=slots.keySet().iterator(); i.hasNext();) {
index f5b1949bd5348a4dc9c647a0b7357bd0f293f896..a8eefe4c86803c2a3beb0c168a9461c239444c8f 100644 (file)
@@ -42,8 +42,8 @@ import com.itmill.toolkit.terminal.PaintTarget;
 /**
  * <p>
  * A date editor component that can be bound to any bindable Property. that is
- * compatible with java.util.Date.
- * 
+ * compatible with <code>java.util.Date</code>.
+ * </p>
  * <p>
  * Since <code>DateField</code> extends <code>AbstractField</code> it
  * implements the {@link com.itmill.toolkit.data.Buffered}interface. A
@@ -61,39 +61,61 @@ public class DateField extends AbstractField {
 
     /* Private members ************************************************* */
 
-    /** Resolution identifier: milliseconds */
+    /** 
+     * Resolution identifier: milliseconds. 
+     */
     public static final int RESOLUTION_MSEC = 0;
 
-    /** Resolution identifier: seconds. */
+    /** 
+     * Resolution identifier: seconds. 
+     */
     public static final int RESOLUTION_SEC = 1;
 
-    /** Resolution identifier: minutes. */
+    /** 
+     * Resolution identifier: minutes. 
+     */
     public static final int RESOLUTION_MIN = 2;
 
-    /** Resolution identifier: hours. */
+    /** 
+     * Resolution identifier: hours. 
+     */
     public static final int RESOLUTION_HOUR = 3;
 
-    /** Resolution identifier: days. */
+    /** 
+     * Resolution identifier: days. 
+     */
     public static final int RESOLUTION_DAY = 4;
 
-    /** Resolution identifier: months. */
+    /** 
+     * Resolution identifier: months. 
+     */
     public static final int RESOLUTION_MONTH = 5;
 
-    /** Resolution identifier: years. */
+    /** 
+     * Resolution identifier: years. 
+     */
     public static final int RESOLUTION_YEAR = 6;
 
-    /** Specified smallest modifiable unit */
+    /** 
+     * Specified smallest modifiable unit. 
+     */
     private int resolution = RESOLUTION_MSEC;
 
-    /** Specified largest modifiable unit */
+    /** 
+     * Specified largest modifiable unit. 
+     */
     private static final int largestModifiable = RESOLUTION_YEAR;
 
-    /** The internal calendar to be used in java.utl.Date conversions */
+    /** 
+     * The internal calendar to be used in java.utl.Date conversions. 
+     */
     private Calendar calendar;
 
     /* Constructors **************************************************** */
 
-    /** Constructs an empty <code>DateField</code> with no caption. */
+    /** 
+     * Constructs an empty <code>DateField</code> with no caption. 
+     */
     public DateField() {
     }
 
@@ -101,7 +123,7 @@ public class DateField extends AbstractField {
      * Constructs an empty <code>DateField</code> with caption.
      * 
      * @param caption
-     *            The caption of the datefield.
+     *            the caption of the datefield.
      */
     public DateField(String caption) {
         setCaption(caption);
@@ -112,9 +134,9 @@ public class DateField extends AbstractField {
      * <code>Property</code> and has the given caption <code>String</code>.
      * 
      * @param caption
-     *            caption <code>String</code> for the editor
+     *            the caption <code>String</code> for the editor.
      * @param dataSource
-     *            the Property to be edited with this editor
+     *            the Property to be edited with this editor.
      */
     public DateField(String caption, Property dataSource) {
         this(dataSource);
@@ -126,7 +148,7 @@ public class DateField extends AbstractField {
      * <code>Property</code> and has no caption.
      * 
      * @param dataSource
-     *            the Property to be edited with this editor
+     *            the Property to be edited with this editor.
      */
     public DateField(Property dataSource) throws IllegalArgumentException {
         if (!Date.class.isAssignableFrom(dataSource.getType()))
@@ -145,9 +167,9 @@ public class DateField extends AbstractField {
      * is called to bind it.
      * 
      * @param caption
-     *            caption <code>String</code> for the editor
-     * @param text
-     *            initial text content of the editor
+     *            the caption <code>String</code> for the editor.
+     * @param value
+     *            the Date value.
      */
     public DateField(String caption, Date value) {
         setValue(value);
@@ -157,19 +179,19 @@ public class DateField extends AbstractField {
     /* Component basic features ********************************************* */
 
     /*
-     * Paint this component. Don't add a JavaDoc comment here, we use the
+     * Paints this component. Don't add a JavaDoc comment here, we use the
      * default documentation from implemented interface.
      */
     public void paintContent(PaintTarget target) throws PaintException {
         super.paintContent(target);
 
-        // Add locale as attribute
+        // Adds the locale as attribute
         Locale l = getLocale();
         if (l != null) {
             target.addAttribute("locale",l.toString());
         }
         
-        // Get the calendar
+        // Gets the calendar
         Calendar calendar = getCalendar();
         Date currentDate = (Date) getValue();
         
@@ -235,7 +257,7 @@ public class DateField extends AbstractField {
             Date oldDate = (Date) getValue();
             Date newDate = null;
 
-            // Get the new date in parts
+            // Gets the new date in parts
             // Null values are converted to negative values.
             int year = variables.containsKey("year") ? (variables.get("year") == null ? -1
                     : ((Integer) variables.get("year")).intValue())
@@ -279,7 +301,7 @@ public class DateField extends AbstractField {
                 sec = sec < 0 ? cal.get(Calendar.SECOND) : sec;
                 msec = msec < 0 ? cal.get(Calendar.MILLISECOND) : msec;
 
-                // Set the calendar fields
+                // Sets the calendar fields
                 cal.set(Calendar.YEAR, year);
                 cal.set(Calendar.MONTH, month);
                 cal.set(Calendar.DAY_OF_MONTH, day);
@@ -288,7 +310,7 @@ public class DateField extends AbstractField {
                 cal.set(Calendar.SECOND, sec);
                 cal.set(Calendar.MILLISECOND, msec);
 
-                // Assign the date
+                // Assigns the date
                 newDate = cal.getTime();
             }
 
@@ -309,7 +331,7 @@ public class DateField extends AbstractField {
     }
 
     /*
-     * Return the value of the property in human readable textual format. Don't
+     * Returns the value of the property in human readable textual format. Don't
      * add a JavaDoc comment here, we use the default documentation from
      * implemented interface.
      */
@@ -321,13 +343,13 @@ public class DateField extends AbstractField {
     }
 
     /*
-     * Set the value of the property. Don't add a JavaDoc comment here, we use
+     * Sets the value of the property. Don't add a JavaDoc comment here, we use
      * the default documentation from implemented interface.
      */
     public void setValue(Object newValue) throws Property.ReadOnlyException,
             Property.ConversionException {
 
-        // Allow setting dates directly
+        // Allows setting dates directly
         if (newValue == null || newValue instanceof Date)
             super.setValue(newValue);
         else {
@@ -344,7 +366,7 @@ public class DateField extends AbstractField {
     }
 
     /**
-     * Set DateField datasource. Datasource type must assignable to Date.
+     * Sets the DateField datasource. Datasource type must assignable to Date.
      * 
      * @see com.itmill.toolkit.data.Property.Viewer#setPropertyDataSource(Property)
      */
@@ -358,7 +380,7 @@ public class DateField extends AbstractField {
     }
 
     /**
-     * Returns the resolution.
+     * Gets the resolution.
      * 
      * @return int
      */
@@ -367,10 +389,10 @@ public class DateField extends AbstractField {
     }
 
     /**
-     * Sets the resolution of the DateField
+     * Sets the resolution of the DateField.
      * 
      * @param resolution
-     *            The resolution to set
+     *            the resolution to set.
      */
     public void setResolution(int resolution) {
         this.resolution = resolution;
@@ -382,14 +404,13 @@ public class DateField extends AbstractField {
      * Returns new clone of the calendar object initialized using the the
      * current date (if available)
      * 
-     * If this is no calendar is assigned the Calendar.getInstance() is used.
-     * 
+     * If this is no calendar is assigned the <code>Calendar.getInstance</code> is used.
+     * @return the Calendar.
      * @see #setCalendar(Calendar)
-     * @return Calendar
      */
     private Calendar getCalendar() {
 
-        // Make sure we have an calendar instance
+        // Makes sure we have an calendar instance
         if (this.calendar == null) {
             this.calendar = Calendar.getInstance();
         }
@@ -397,7 +418,7 @@ public class DateField extends AbstractField {
         // Clone the instance
         Calendar newCal = (Calendar) this.calendar.clone();
 
-        // Assign the current time tom calendar.
+        // Assigns the current time tom calendar.
         Date currentDate = (Date) getValue();
         if (currentDate != null)
             newCal.setTime(currentDate);
index aad3046220bc2ad84d7bfc9090f86636798e315a..18120e5e24e6f577ce8f9b2323496d7598b59271 100644 (file)
@@ -36,7 +36,8 @@ import com.itmill.toolkit.terminal.PaintTarget;
 import com.itmill.toolkit.terminal.Resource;
 import com.itmill.toolkit.terminal.Sizeable;
 
-/** Component for embedding external objects.
+/** 
+ * Component for embedding external objects.
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -44,64 +45,89 @@ import com.itmill.toolkit.terminal.Sizeable;
  */
 public class Embedded extends AbstractComponent implements Sizeable {
 
-       /** General object type */
+       /** 
+        * General object type. 
+        */
        public static final int TYPE_OBJECT = 0;
 
-       /** Image types */
+       /** 
+        * Image types. 
+        */
        public static final int TYPE_IMAGE = 1;
 
-       /** Type of the object */
+       /** 
+        * Type of the object. 
+        */
        private int type = TYPE_OBJECT;
 
-       /** Source of the embedded object */
+       /** 
+        * Source of the embedded object. 
+        */
        private Resource source = null;
 
-       /** Dimensions of the object. */
+       /** 
+        * Dimensions of the object. 
+        */
        private int width = -1;
        private int height = -1;
        private int widthUnits = Sizeable.UNITS_PIXELS;
        private int heightUnits = Sizeable.UNITS_PIXELS;
 
-       /** Generic object attributes */
+       /** 
+        * Generic object attributes. 
+        */
        private String mimeType = null;
        private String standby = null;
 
-       /** Hash of object parameteres.  */
+       /** 
+        * Hash of object parameteres.  
+        */
        private Hashtable parameters = new Hashtable();
 
-       /** Applet or other client side runnable properties. */
+       /** 
+        * Applet or other client side runnable properties. 
+        */
        private String codebase = null;
        private String codetype = null;
        private String classId = null;
        private String archive = null;
 
-       /** Creates a new empty Embedded object.
+       /** 
+        * Creates a new empty Embedded object.
         */
        public Embedded() {
        }
 
-       /** Creates a new empty Embedded object with caption.
+       /** 
+        * Creates a new empty Embedded object with caption.
+        * @param caption
         */
        public Embedded(String caption) {
                setCaption(caption);
        }
 
-       /** Creates a new Embedded object whose contents is loaded from given resource. 
+       /** 
+        * Creates a new Embedded object whose contents is loaded from given resource. 
         * The dimensions are assumed if possible. The type is guessed from resource.
+        * @param caption
+        * @param source the Source of the embedded object.
         */
        public Embedded(String caption, Resource source) {
                setCaption(caption);
                setSource(source);
        }
 
-       /** Get component UIDL tag.
-        * @return Component UIDL tag as string.
+       /** 
+        * Gets the component UIDL tag.
+        * @return the Component UIDL tag as string.
         */
        public String getTag() {
                return "embedded";
        }
 
-       /** Invoked when the component state should be painted  */
+       /** 
+        * Invoked when the component state should be painted.  
+        */
        public void paintContent(PaintTarget target) throws PaintException {
 
                if (type == TYPE_IMAGE) {
@@ -143,70 +169,74 @@ public class Embedded extends AbstractComponent implements Sizeable {
                }
        }
 
-       /** Set an object parameter.
-        *  Parameters are optional information, and they are passed to the 
-        *  instantiated object. Parameters are are stored as name value pairs.
-        *  This overrides the previous value assigned to this parameter.
-        * @param name - The name of the parameter.
-        * @param value - The value of the parameter.
+       /** 
+        * Sets an object parameter.
+        * Parameters are optional information, and they are passed to the 
+        * instantiated object. Parameters are are stored as name value pairs.
+        * This overrides the previous value assigned to this parameter.
+        * @param name the name of the parameter.
+        * @param value the value of the parameter.
         */
        public void setParameter(String name, String value) {
                parameters.put(name, value);
                requestRepaint();
        }
 
-       /** Get the value of an object parameter.
-        *  Parameters are optional information, and they are passed to the 
-        *  instantiated object. Parameters are are stored as name value pairs.
-        * @return Value of parameter or null if not found.
+       /** 
+        * Gets the value of an object parameter.
+        * Parameters are optional information, and they are passed to the 
+        * instantiated object. Parameters are are stored as name value pairs.
+        * @return the Value of parameter or null if not found.
         */
        public String getParameter(String name) {
                return (String) parameters.get(name);
        }
 
-       /** Remove an object parameter from the list.
-        * @param name - The name of the parameter to remove.
+       /** 
+        * Removes an object parameter from the list.
+        * @param name the name of the parameter to remove.
         */
        public void removeParameter(String name) {
                parameters.remove(name);
                requestRepaint();
        }
 
-       /** Get embedded object parameter names.
-        * @return Iterator of parameters names.
+       /** 
+        * Gets the embedded object parameter names.
+        * @return the Iterator of parameters names.
         */
        public Iterator getParameterNames() {
                return parameters.keySet().iterator();
        }
 
        /**
-        * Returns the codebase, the root-path used to access resources with relative paths.
-        * @return String
+        * Gets the codebase, the root-path used to access resources with relative paths.
+        * @return the code base.
         */
        public String getCodebase() {
                return codebase;
        }
 
        /**
-        * Returns the MIME-Type of the code.
-        * @return String
+        * Gets the MIME-Type of the code.
+        * @return the MIME-Type of the code.
         */
        public String getCodetype() {
                return codetype;
        }
 
        /**
-        * Returns the MIME-Type of the object
-        * @return String
+        * Gets the MIME-Type of the object.
+        * @return the MIME-Type of the object.
         */
        public String getMimeType() {
                return mimeType;
        }
 
        /**
-        * Returns the standby text displayed when
+        * Gets the standby text displayed when
         * the object is loading.
-        * @return String
+        * @return the standby text.
         */
        public String getStandby() {
                return standby;
@@ -214,7 +244,7 @@ public class Embedded extends AbstractComponent implements Sizeable {
 
        /**
         * Sets the codebase, the root-path used to access resources with relative paths.
-        * @param codebase The codebase to set
+        * @param codebase the codebase to set.
         */
        public void setCodebase(String codebase) {
                if (codebase != this.codebase
@@ -226,7 +256,7 @@ public class Embedded extends AbstractComponent implements Sizeable {
 
        /**
         * Sets the codetype, the MIME-Type of the code.
-        * @param codetype The codetype to set
+        * @param codetype the codetype to set.
         */
        public void setCodetype(String codetype) {
                if (codetype != this.codetype
@@ -238,7 +268,7 @@ public class Embedded extends AbstractComponent implements Sizeable {
 
        /**
         * Sets the mimeType, the MIME-Type of the object.
-        * @param mimeType The mimeType to set
+        * @param mimeType the mimeType to set.
         */
        public void setMimeType(String mimeType) {
                if (mimeType != this.mimeType
@@ -250,7 +280,7 @@ public class Embedded extends AbstractComponent implements Sizeable {
 
        /**
         * Sets the standby, the text to display while loading the object.
-        * @param standby The standby to set
+        * @param standby the standby to set.
         */
        public void setStandby(String standby) {
                if (standby != this.standby
@@ -263,7 +293,7 @@ public class Embedded extends AbstractComponent implements Sizeable {
        /**
         * Returns the visual height of the object.
         * Default height is -1, which is interpreted as "unspecified".
-        * @return The height in units specified by heightUnits property.
+        * @return the height in units specified by heightUnits property.
         */
        public int getHeight() {
                return height;
@@ -272,15 +302,16 @@ public class Embedded extends AbstractComponent implements Sizeable {
        /**
         * Returns the visual width of the object.
         * Default width is -1, which is interpreted as "unspecified".
-        * @return The width in units specified by widthUnits property.
+        * @return the width in units specified by widthUnits property.
         */
        public int getWidth() {
                return width;
        }
 
-       /** Sets the visual height of the object.
-        *  Default height is -1, which is interpreted as "unspecified".
-        * @param height The height in units specified by heightUnits property.
+       /** 
+        * Sets the visual height of the object.
+        * Default height is -1, which is interpreted as "unspecified".
+        * @param height the height in units specified by heightUnits property.
         */
        public void setHeight(int height) {
                if (this.height != height) {
@@ -289,9 +320,10 @@ public class Embedded extends AbstractComponent implements Sizeable {
                }
        }
 
-       /** Sets the visual width of the object.
-        *  Default width is -1, which is interpreted as "unspecified".
-        * @param width The width in units specified by widthUnits property.
+       /** 
+        * Sets the visual width of the object.
+        * Default width is -1, which is interpreted as "unspecified".
+        * @param width the width in units specified by widthUnits property.
         */
        public void setWidth(int width) {
                if (this.width != width) {
@@ -301,8 +333,8 @@ public class Embedded extends AbstractComponent implements Sizeable {
        }
 
        /**
-        * Returns the classId attribute.
-        * @return String
+        * Gets the classId attribute.
+        * @return the class id.
         */
        public String getClassId() {
                return classId;
@@ -310,7 +342,7 @@ public class Embedded extends AbstractComponent implements Sizeable {
 
        /**
         * Sets the classId attribute.
-        * @param classId The classId to set
+        * @param classId the classId to set.
         */
        public void setClassId(String classId) {
                if (classId != this.classId
@@ -320,29 +352,32 @@ public class Embedded extends AbstractComponent implements Sizeable {
                }
        }
 
-       /** Get the resource contained in the embedded object.
-        * @return Resource
+       /** 
+        * Gets the resource contained in the embedded object.
+        * @return the Resource
         */
        public Resource getSource() {
                return source;
        }
 
-       /** Get the type of the embedded object.
+       /** 
+        * Gets the type of the embedded object.
         * <p>This can be one of the following:<ul>
         * <li>TYPE_OBJECT <i>(This is the default)</i>
         * <li>TYPE_IMAGE
         * </ul>
         * </p>
-        * @return int
+        * @return the type.
         */
        public int getType() {
                return type;
        }
 
-       /** Set the object source resource.
+       /** 
+        * Sets the object source resource.
         * The dimensions are assumed if possible. 
         * The type is guessed from resource.
-        * @param source The source to set
+        * @param source the source to set.
         */
        public void setSource(Resource source) {
                if (source != null && !source.equals(this.source)) {
@@ -357,13 +392,14 @@ public class Embedded extends AbstractComponent implements Sizeable {
                }
        }
 
-       /** Sets the object type.
+       /** 
+        * Sets the object type.
         * <p>This can be one of the following:<ul>
         * <li>TYPE_OBJECT <i>(This is the default)</i>
         * <li>TYPE_IMAGE
         * </ul>
         * </p>
-        * @param type The type to set
+        * @param type the type to set.
         */
        public void setType(int type) {
                if (type != TYPE_OBJECT && type != TYPE_IMAGE)
@@ -375,8 +411,8 @@ public class Embedded extends AbstractComponent implements Sizeable {
        }
 
        /**
-        * Returns the archive attribute.
-        * @return String
+        * Gets the archive attribute.
+        * @return the archive attribute.
         */
        public String getArchive() {
                return archive;
@@ -384,7 +420,7 @@ public class Embedded extends AbstractComponent implements Sizeable {
 
        /**
         * Sets the archive attribute.
-        * @param archive The archive string to set
+        * @param archive the archive string to set.
         */
        public void setArchive(String archive) {
                if (archive != this.archive
@@ -394,7 +430,8 @@ public class Embedded extends AbstractComponent implements Sizeable {
                }
        }
 
-       /**Get height property units.
+       /**
+        * Gets the height property units.
         * Default units are <code>Sizeable.UNITS_PIXELS</code>.
         * @see com.itmill.toolkit.terminal.Sizeable#getHeightUnits()
         */
@@ -402,7 +439,8 @@ public class Embedded extends AbstractComponent implements Sizeable {
                return this.heightUnits;
        }
 
-       /**Get width property units.
+       /**
+        * Gets the width property units.
         * Default units are <code>Sizeable.UNITS_PIXELS</code>.
         * @see com.itmill.toolkit.terminal.Sizeable#getWidthUnits()
         */
@@ -410,7 +448,8 @@ public class Embedded extends AbstractComponent implements Sizeable {
                return this.widthUnits;
        }
 
-       /**Set height property units.
+       /**
+        * Sets the height property units.
         * @see com.itmill.toolkit.terminal.Sizeable#setHeightUnits(int)
         */
        public void setHeightUnits(int units) {
@@ -420,7 +459,8 @@ public class Embedded extends AbstractComponent implements Sizeable {
                }
        }
 
-       /**Set width property units.
+       /**
+        * Sets the width property units.
         * @see com.itmill.toolkit.terminal.Sizeable#setWidthUnits(int)
         */
        public void setWidthUnits(int units) {
index d0b9cfc8038663bf796d7894c13b195af175694c..edbcedf55e979a0ea1dbecfe5bd1562077a95ada 100644 (file)
@@ -45,35 +45,47 @@ public interface Field
                Property.ValueChangeListener,
                Property.Editor,
                Focusable {
-
+       
+       /**
+        * Sets the Caption.
+        * @param caption
+        */
        void setCaption(String caption);
 
        String getDescription();
        
+       /**
+        * Sets the Description.
+        * @param caption
+        */
        void setDescription(String caption);
 
-       /** Is this field required.
+       /** 
+        * Is this field required.
         * 
         * Required fields must filled by the user.
         * 
-        * @return true if the
+        * @return <code>true</code> if the field is required,otherwise <code>false</code>.
         * @since 3.1 
         */
        public boolean isRequired();
 
-       /** Set the field required.
+       /** 
+        * Sets the field required.
         * Required fields must filled by the user.
         * 
-        * @param required Is the field required
+        * @param required Is the field required.
         * @since 3.1 
         */
        public void setRequired(boolean required);
 
-       /** An <code>Event</code> object specifying the Field whose value
+       /** 
+        * An <code>Event</code> object specifying the Field whose value
         * has been changed.
+        * 
         * @author IT Mill Ltd.
-                * @version @VERSION@
-                * @since 3.0
+        * @version @VERSION@
+        * @since 3.0
         */
        public class ValueChangeEvent
                extends Component.Event
@@ -84,18 +96,20 @@ public interface Field
          */
         private static final long serialVersionUID = 3545803169444672816L;
 
-        /** Constructs a new event object with the specified source
+        /** 
+         * Constructs a new event object with the specified source
                 * field object.
                 *
-                * @param source the field that caused the event
+                * @param source the field that caused the event.
                 */
                public ValueChangeEvent(Field source) {
                        super(source);
                }
 
-               /** Gets the Property which triggered the event.
+               /** 
+                * Gets the Property which triggered the event.
                 *
-                * @return Source Property of the event.
+                * @return the Source Property of the event.
                 */
                public Property getProperty() {
                        return (Property) getSource();
index 4d2905f86f0afe6f75ce8d0f40d15ed38c49c22a..255411ebd19f0ef39aa5ae95408019c910724e4f 100644 (file)
@@ -32,8 +32,9 @@ import com.itmill.toolkit.data.Container;
 import com.itmill.toolkit.data.Item;
 import com.itmill.toolkit.data.Property;
 
-/** Factory for creating new Field-instances based on type,
- *  datasource and/or context.
+/** 
+ * Factory for creating new Field-instances based on type,
+ * datasource and/or context.
  *
  * @author IT Mill Ltd.
  * @version  @VERSION@
@@ -42,40 +43,43 @@ import com.itmill.toolkit.data.Property;
 public interface FieldFactory {
 
 
-       /** Creates field based on type of data.
+       /** 
+        * Creates the field based on type of data.
         *
-        *
-        * @param type The type of data presented in field
-        * @param uiContext The component where the field is presented.
-        * @return Field The field suitable for editing the specified data.
+        * @param type the type of data presented in field.
+        * @param uiContext the component where the field is presented.
+        * @return Field the field suitable for editing the specified data.
         *       
         */
        Field createField(Class type, Component uiContext);
        
-       /** Creates field based on the property datasource.
+       /** 
+        * Creates the field based on the property datasource.
         *
-        * @param property The property datasource.
-        * @param uiContext The component where the field is presented.
-        * @return Field The field suitable for editing the specified data.
+        * @param property the property datasource.
+        * @param uiContext the component where the field is presented.
+        * @return Field the field suitable for editing the specified data.
         */
        Field createField(Property property, Component uiContext);
 
-       /** Creates field based on the item and property id.
+       /** 
+        * Creates the field based on the item and property id.
         * 
-        * @param item The item where the property belongs to.
-        * @param propertyId Id of the property.
-        * @param uiContext The component where the field is presented.
-        * @return Field The field suitable for editing the specified data.
+        * @param item the item where the property belongs to.
+        * @param propertyId the Id of the property.
+        * @param uiContext the component where the field is presented.
+        * @return Field the field suitable for editing the specified data.
         */
        Field createField(Item item, Object propertyId, Component uiContext);
 
-       /** Creates field based on the container item id and property id.
+       /** 
+        * Creates the field based on the container item id and property id.
         *
-        * @param container Container where the property belongs to.
-        * @param itemId The item Id.
-        * @param propertyId Id of the property.
-        * @param uiContext The component where the field is presented.
-        * @return Field The field suitable for editing the specified data.
+        * @param container the Container where the property belongs to.
+        * @param itemId the item Id.
+        * @param propertyId the Id of the property.
+        * @param uiContext the component where the field is presented.
+        * @return Field the field suitable for editing the specified data.
         */
        Field createField(Container container, Object itemId, Object propertyId, Component uiContext);
 
index e1fe2b1f9cb7e82a79894b9a5016fc8c71dfbf6a..f3d6c1b2b8346cd4bd33bd59a71c685524e9616c 100644 (file)
@@ -40,17 +40,20 @@ import com.itmill.toolkit.data.util.BeanItem;
 import com.itmill.toolkit.terminal.PaintException;
 import com.itmill.toolkit.terminal.PaintTarget;
 
-/** Form component provides easy way of creating and managing sets fields.
+/** 
+ * Form component provides easy way of creating and managing sets fields.
  * 
- * <p>Form is a container for fields implementing {@link Field} interface. It
+ * <p>
+ * <code>Form</code> is a container for fields implementing {@link Field} interface. It
  * provides support for any layouts and provides buffering interface for easy
- * connection of commit- and discard buttons. All the form fields can be
+ * connection of commit and discard buttons. All the form fields can be
  * customized by adding validators, setting captions and icons, setting
  * immediateness, etc. Also direct mechanism for replacing existing fields with
  * selections is given.
  * </p>
  * 
- * <p>Form provides customizable editor for classes implementing
+ * <p>
+ * <code>Form</code> provides customizable editor for classes implementing
  * {@link com.itmill.toolkit.data.Item} interface. Also the form itself
  * implements this interface for easier connectivity to other items.
  * To use the form as editor for an item, just connect the item to
@@ -61,7 +64,8 @@ import com.itmill.toolkit.terminal.PaintTarget;
  * be added. If you need to connect a class that does not implement
  * {@link com.itmill.toolkit.data.Item} interface, most properties of any
  * class following bean pattern, can be accessed trough 
- * {@link com.itmill.toolkit.data.util.BeanItem}.</p>
+ * {@link com.itmill.toolkit.data.util.BeanItem}.
+ * </p>
  * 
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -73,59 +77,83 @@ public class Form
 
        private Object propertyValue;
 
-       /** Layout of the form */
+       /** 
+        * Layout of the form. 
+        */
        private Layout layout;
 
-       /** Item connected to this form as datasource */
+       /** 
+        * Item connected to this form as datasource. 
+        */
        private Item itemDatasource;
 
-       /** Ordered list of property ids in this editor */
+       /** 
+        * Ordered list of property ids in this editor. 
+        */
        private LinkedList propertyIds = new LinkedList();
 
-       /** Current buffered source exception */
+       /** 
+        * Current buffered source exception. 
+        */
        private Buffered.SourceException currentBufferedSourceException = null;
 
-       /** Is the form in write trough mode */
+       /** 
+        * Is the form in write trough mode. 
+        */
        private boolean writeThrough = true;
 
-       /** Is the form in read trough mode */
+       /** 
+        * Is the form in read trough mode. 
+        */
        private boolean readThrough = true;
 
-       /** Mapping from propertyName to corresponding field */
+       /** 
+        * Mapping from propertyName to corresponding field. 
+        */
        private HashMap fields = new HashMap();
 
-       /** Field factory for this form */
+       /** 
+        * Field factory for this form. 
+        */
        private FieldFactory fieldFactory;
 
-       /** Registered Validators */
+       /** 
+        * Registered Validators. 
+        */
        private LinkedList validators;
 
-       /** Visible item properties */
+       /** 
+        * Visible item properties. 
+        */
        private Collection visibleItemProperties;
 
-       /** Contruct a new form with default layout.
+       /** 
+        * Contructs a new form with default layout.
         * 
-        * <p>By default the form uses <code>OrderedLayout</code>
+        * <p>
+        * By default the form uses <code>OrderedLayout</code>
         * with <code>form</code>-style.
-        * 
-        * @param formLayout The layout of the form.
+        * </p>
+        * @param formLayout the layout of the form.
         */
        public Form() {
                this(null);
        }
 
-       /** Contruct a new form with given layout.
+       /** 
+        * Contructs a new form with given layout.
         * 
-        * @param formLayout The layout of the form.
+        * @param formLayout the layout of the form.
         */
        public Form(Layout formLayout) {
                this(formLayout, new BaseFieldFactory());
        }
 
-       /** Contruct a new form with given layout and FieldFactory.
+       /** 
+        * Contructs a new form with given layout and FieldFactory.
         *
-        * @param formLayout The layout of the form.
-        * @param fieldFactory FieldFactory of the form
+        * @param formLayout the layout of the form.
+        * @param fieldFactory the FieldFactory of the form.
         */
        public Form(Layout formLayout, FieldFactory fieldFactory) {
                super();
@@ -187,7 +215,7 @@ public class Form
                throw e;
        }
 
-       /* Discard local changes and refresh values from the data source
+       /* Discards local changes and refresh values from the data source
         * Don't add a JavaDoc comment here, we use the default one from the
         * interface.
         */
@@ -214,7 +242,7 @@ public class Form
                        return;
                }
 
-               // Discard problems occurred            
+               // Discards problems occurred           
                Throwable[] causes = new Throwable[problems.size()];
                int index = 0;
                for (Iterator i = problems.iterator(); i.hasNext();)
@@ -279,26 +307,27 @@ public class Form
                }
        }
 
-       /** Add a new property to form and create corresponding field.
+       /** 
+        * Adds a new property to form and create corresponding field.
         * 
         * @see com.itmill.toolkit.data.Item#addItemProperty(Object, Property)
         */
        public boolean addItemProperty(Object id, Property property) {
 
-               // Check inputs
+               // Checks inputs
                if (id == null || property == null)
                        throw new NullPointerException("Id and property must be non-null");
 
-               // Check that the property id is not reserved
+               // Checks that the property id is not reserved
                if (propertyIds.contains(id))
                        return false;
 
-               // Get suitable field
+               // Gets suitable field
                Field field = this.fieldFactory.createField(property, this);
                if (field == null)
                        return false;
 
-               // Configure the field
+               // Configures the field
                try {
                        field.setPropertyDataSource(property);
                        String caption = id.toString();
@@ -319,9 +348,11 @@ public class Form
                return true;
        }
 
-       /** Add field to form. 
+       /** 
+        * Adds the field to form. 
         * 
-        * <p>The property id must not be already used in the form.  
+        * <p>
+        * The property id must not be already used in the form.  
         * </p>
         * 
         * <p>This field is added to the form layout in the default position
@@ -330,8 +361,8 @@ public class Form
         * string representation of the property id is used instead of the
         * default location.</p>
         * 
-        * @param propertyId Property id the the field.
-        * @param field New field added to the form.
+        * @param propertyId the Property id the the field.
+        * @param field the New field added to the form.
         */
        public void addField(Object propertyId, Field field) {
 
@@ -354,12 +385,15 @@ public class Form
                }
        }
 
-       /** The property identified by the property id.
+       /** 
+        * The property identified by the property id.
         * 
-        * <p>The property data source of the field specified with
+        * <p>
+        * The property data source of the field specified with
         * property id is returned. If there is a (with specified property id) 
         * having no data source,
-        * the field is returned instead of the data source.</p>
+        * the field is returned instead of the data source.
+        * </p>
         * 
         * @see com.itmill.toolkit.data.Item#getItemProperty(Object)
         */
@@ -375,7 +409,10 @@ public class Form
                        return field;
        }
 
-       /** Get the field identified by the propertyid */
+       /** 
+        * Gets the field identified by the propertyid.
+        * @param propertyId the id of the property. 
+        */
        public Field getField(Object propertyId) {
                return (Field) fields.get(propertyId);
        }
@@ -385,7 +422,8 @@ public class Form
                return Collections.unmodifiableCollection(propertyIds);
        }
 
-       /** Removes the property and corresponding field from the form.
+       /** 
+        * Removes the property and corresponding field from the form.
         * 
         * @see com.itmill.toolkit.data.Item#removeItemProperty(Object)
         */
@@ -405,10 +443,11 @@ public class Form
                return false;
        }
 
-       /** Removes all properties and fields from the form.
+       /** 
+        * Removes all properties and fields from the form.
         * 
-        * @return Success of the operation. Removal of all fields succeeded 
-        * if (and only if) the return value is true.
+        * @return the Success of the operation. Removal of all fields succeeded 
+        * if (and only if) the return value is <code>true</code>.
         */
        public boolean removeAllProperties() {
                Object[] properties = propertyIds.toArray();
@@ -426,10 +465,13 @@ public class Form
                return itemDatasource;
        }
 
-       /** Set the item datasource for the form.
+       /** 
+        * Sets the item datasource for the form.
         * 
-        * <p>Setting item datasource clears any fields, the form might contain
-        * and adds all the properties as fields to the form.</p>
+        * <p>
+        * Setting item datasource clears any fields, the form might contain
+        * and adds all the properties as fields to the form.
+        * </p>
         * 
         * @see com.itmill.toolkit.data.Item.Viewer#setItemDataSource(Item)
         */
@@ -439,28 +481,31 @@ public class Form
                        newDataSource != null ? newDataSource.getItemPropertyIds() : null);
        }
 
-       /** Set the item datasource for the form, but limit the form contents
+       /** 
+        * Set the item datasource for the form, but limit the form contents
         * to specified properties of the item.
         * 
-        * <p>Setting item datasource clears any fields, the form might contain
+        * <p>
+        * Setting item datasource clears any fields, the form might contain
         * and adds the specified the properties as fields to the form, in the
-        * specified order.</p>
+        * specified order.
+        * </p>
         * 
         * @see com.itmill.toolkit.data.Item.Viewer#setItemDataSource(Item)
         */
        public void setItemDataSource(Item newDataSource, Collection propertyIds) {
 
-               // Remove all fields first from the form
+               // Removes all fields first from the form
                removeAllProperties();
 
-               // Set the datasource
+               // Sets the datasource
                itemDatasource = newDataSource;
 
                //If the new datasource is null, just set null datasource
                if (itemDatasource == null)
                        return;
 
-               // Add all the properties to this form
+               // Adds all the properties to this form
                for (Iterator i = propertyIds.iterator(); i.hasNext();) {
                        Object id = i.next();
                        Property property = itemDatasource.getItemProperty(id);
@@ -475,21 +520,27 @@ public class Form
                }
        }
 
-       /** Get the layout of the form. 
+       /** 
+        * Gets the layout of the form. 
         * 
-        * <p>By default form uses <code>OrderedLayout</code> with <code>form</code>-style.</p>
+        * <p>
+        * By default form uses <code>OrderedLayout</code> with <code>form</code>-style.
+        * </p>
         * 
-        * @return Layout of the form.
+        * @return the Layout of the form.
         */
        public Layout getLayout() {
                return layout;
        }
 
-       /** Set the layout of the form.
+       /** 
+        * Sets the layout of the form.
         *
-        * <p>By default form uses <code>OrderedLayout</code> with <code>form</code>-style.</p>
+        * <p>
+        * By default form uses <code>OrderedLayout</code> with <code>form</code>-style.
+        * </p>
         *
-        * @param layout Layout of the form.
+        * @param newLayout the Layout of the form.
         */
        public void setLayout(Layout newLayout) {
 
@@ -510,26 +561,31 @@ public class Form
                this.layout = newLayout;
        }
 
-       /** Set a form field to be selectable from static list of changes.
+       /** 
+        * Sets the form field to be selectable from static list of changes.
         * 
-        * <p>The list values and descriptions are given as array. The value-array must contain the 
+        * <p>
+        * The list values and descriptions are given as array. The value-array must contain the 
         * current value of the field and the lengths of the arrays must match. Null values are not
-        * supported.</p>
-        * 
-        * @return The select property generated
+        * supported.
+        * </p>
+        * @param propertyId the id of the property.
+        * @param values
+        * @param descriptions
+        * @return the select property generated
         */
        public Select replaceWithSelect(
                Object propertyId,
                Object[] values,
                Object[] descriptions) {
 
-               // Check the parameters
+               // Checks the parameters
                if (propertyId == null || values == null || descriptions == null)
                        throw new NullPointerException("All parameters must be non-null");
                if (values.length != descriptions.length)
                        throw new IllegalArgumentException("Value and description list are of different size");
 
-               // Get the old field
+               // Gets the old field
                Field oldField = (Field) fields.get(propertyId);
                if (oldField == null)
                        throw new IllegalArgumentException(
@@ -538,7 +594,7 @@ public class Form
                                        + "' can not be found.");
                Object value = oldField.getValue();
 
-               // Check that the value exists and check if the select should
+               // Checks that the value exists and check if the select should
                // be forced in multiselect mode
                boolean found = false;
                boolean isMultiselect = false;
@@ -575,7 +631,7 @@ public class Form
                                                + "' was not found");
                }
 
-               // Create new field matching to old field parameters
+               // Creates the new field matching to old field parameters
                Select newField = new Select();
                if (isMultiselect) newField.setMultiSelect(true);
                newField.setCaption(oldField.getCaption());
@@ -583,7 +639,7 @@ public class Form
                newField.setReadThrough(oldField.isReadThrough());
                newField.setWriteThrough(oldField.isWriteThrough());
 
-               // Create options list
+               // Creates the options list
                newField.addContainerProperty("desc", String.class, "");
                newField.setItemCaptionPropertyId("desc");
                for (int i = 0; i < values.length; i++) {
@@ -598,12 +654,12 @@ public class Form
                                        descriptions[i].toString());
                }
 
-               // Set the property data source
+               // Sets the property data source
                Property property = oldField.getPropertyDataSource();
                oldField.setPropertyDataSource(null);
                newField.setPropertyDataSource(property);
 
-               // Replace the old field with new one
+               // Replaces the old field with new one
                layout.replaceComponent(oldField, newField);
                fields.put(propertyId, newField);
                this.removeDirectDependency(oldField);
@@ -615,6 +671,7 @@ public class Form
        }
 
        /**
+        * Notifies the component that it is connected to an application
         * @see com.itmill.toolkit.ui.Component#attach()
         */
        public void attach() {
@@ -623,6 +680,7 @@ public class Form
        }
 
        /**
+        * Notifies the component that it is detached from the application.
         * @see com.itmill.toolkit.ui.Component#detach()
         */
        public void detach() {
@@ -631,6 +689,7 @@ public class Form
        }
 
        /**
+        * Adds a new validator for this object.
         * @see com.itmill.toolkit.data.Validatable#addValidator(com.itmill.toolkit.data.Validator)
         */
        public void addValidator(Validator validator) {
@@ -640,7 +699,9 @@ public class Form
                }
                this.validators.add(validator);
        }
+       
        /**
+        * Removes a previously registered validator from the object.
         * @see com.itmill.toolkit.data.Validatable#removeValidator(com.itmill.toolkit.data.Validator)
         */
        public void removeValidator(Validator validator) {
@@ -648,7 +709,9 @@ public class Form
                        this.validators.remove(validator);
                }
        }
+       
        /**
+        * Gets the Lists all validators currently registered for the object.
         * @see com.itmill.toolkit.data.Validatable#getValidators()
         */
        public Collection getValidators() {
@@ -657,7 +720,10 @@ public class Form
                }
                return null;
        }
+       
        /**
+        * Tests the current value of the object against all registered
+     * validators
         * @see com.itmill.toolkit.data.Validatable#isValid()
         */
        public boolean isValid() {
@@ -666,7 +732,9 @@ public class Form
                        valid &= ((Field) fields.get(i.next())).isValid();
                return valid;
        }
+       
        /**
+        * Checks the validity of the validatable.
         * @see com.itmill.toolkit.data.Validatable#validate()
         */
        public void validate() throws InvalidValueException {
@@ -675,19 +743,24 @@ public class Form
        }
 
        /**
+        * Checks the validabtable object accept invalid values.
         * @see com.itmill.toolkit.data.Validatable#isInvalidAllowed()
         */
        public boolean isInvalidAllowed() {
                return true;
        }
+       
        /**
+        * Should the validabtable object accept invalid values.
         * @see com.itmill.toolkit.data.Validatable#setInvalidAllowed(boolean)
         */
        public void setInvalidAllowed(boolean invalidValueAllowed)
                throws UnsupportedOperationException {
                throw new UnsupportedOperationException();
        }
+       
        /**
+        * Sets the component's to read-only mode to the specified state.
         * @see com.itmill.toolkit.ui.Component#setReadOnly(boolean)
         */
        public void setReadOnly(boolean readOnly) {
@@ -696,12 +769,13 @@ public class Form
                         ((Field) fields.get(i.next())).setReadOnly(readOnly);
        }
 
-       /** Set the field factory of Form.
+       /** 
+        * Sets the field factory of Form.
         *
-        * FieldFacroty is used to create fields for form properties.
+        * <code>FieldFactory</code> is used to create fields for form properties.
         * By default the form uses BaseFieldFactory to create Field instances.
         *
-        * @param fieldFactory New factory used to create the fields
+        * @param fieldFactory the New factory used to create the fields.
         * @see Field
         * @see FieldFactory
         */
@@ -709,15 +783,17 @@ public class Form
                this.fieldFactory = fieldFactory;
        }
 
-       /** Get the field factory of the form.
+       /** 
+        * Get the field factory of the form.
         *
-        * @return FieldFactory Factory used to create the fields
+        * @return the FieldFactory Factory used to create the fields.
         */
        public FieldFactory getFieldFactory() {
                return this.fieldFactory;
        }
 
        /**
+        * Gets the field type.
         * @see com.itmill.toolkit.ui.AbstractField#getType()
         */
        public Class getType() {
@@ -726,27 +802,29 @@ public class Form
                return Object.class;
        }
 
-       /** Set the internal value.
+       /** 
+        * Sets the internal value.
         * 
         * This is relevant when the Form is used as Field.
         * @see com.itmill.toolkit.ui.AbstractField#setInternalValue(java.lang.Object)
         */
        protected void setInternalValue(Object newValue) {
-               // Store old value
+               // Stores the old value
                Object oldValue = this.propertyValue;
                
-               // Set the current Value
+               // Sets the current Value
                super.setInternalValue(newValue);
                this.propertyValue = newValue;
 
-               // Ignore form updating if data object has not changed.
+               // Ignores form updating if data object has not changed.
                if (oldValue != newValue) {
                        setFormDataSource(newValue, getVisibleItemProperties());
                }
        }
 
-       /**Get first field in form.
-        * @return Field
+       /**
+        * Gets the first field in form.
+        * @return the Field.
         */
        private Field getFirstField() {
                Object id = null;
@@ -758,10 +836,12 @@ public class Form
                return null;
        }
 
-       /** Update the internal form datasource.
+       /** 
+        * Updates the internal form datasource.
         * 
         * Method setFormDataSource.
-        * @param value
+        * @param data
+        * @param properties
         */
        protected void setFormDataSource(Object data, Collection properties) {
 
@@ -773,19 +853,19 @@ public class Form
                        item = new BeanItem(data);
                }
 
-               // Set the datasource to form
+               // Sets the datasource to form
                if (item != null && properties != null) {
-                       // Show only given properties
+                       // Shows only given properties
                        this.setItemDataSource(item, properties);
                } else {
-                       // Show all properties
+                       // Shows all properties
                        this.setItemDataSource(item);
                }
        }
 
        /**
         * Returns the visibleProperties.
-        * @return Collection
+        * @return the Collection of visible Item properites.
         */
        public Collection getVisibleItemProperties() {
                return visibleItemProperties;
@@ -793,7 +873,7 @@ public class Form
 
        /**
         * Sets the visibleProperties.
-        * @param visibleProperties The visibleProperties to set
+        * @param visibleProperties the visibleProperties to set.
         */
        public void setVisibleItemProperties(Collection visibleProperties) {
                this.visibleItemProperties = visibleProperties;
@@ -801,7 +881,8 @@ public class Form
                setFormDataSource(value, getVisibleItemProperties());
        }
 
-       /** Focuses the first field in the form.
+       /** 
+        * Focuses the first field in the form.
         * @see com.itmill.toolkit.ui.Component.Focusable#focus()
         */
        public void focus() {
@@ -812,6 +893,7 @@ public class Form
        }
 
        /**
+        * Sets the Tabulator index of this Focusable component.
         * @see com.itmill.toolkit.ui.Component.Focusable#setTabIndex(int)
         */
        public void setTabIndex(int tabIndex) {
index 83b1fdb4c9d962956f150f647d36fe009446e05c..6717fad0041100da31e6ff2ef391b861d9b096ee 100644 (file)
@@ -39,14 +39,19 @@ import com.itmill.toolkit.terminal.PaintException;
 import com.itmill.toolkit.terminal.PaintTarget;
 import com.itmill.toolkit.terminal.Resource;
 
-/** <p>An application frame window component. This component implements a
+/** 
+ * <p>
+ * An application frame window component. This component implements a
  * window that contains a hierarchical set of frames. Each frame can contain
  * a web-page, window or a set of frames that divides the space horizontally
- * or vertically.</p>
+ * or vertically.
+ * </p>
  * 
- * <p>A <code>FrameWindow</code> can't contain any components directly (as
+ * <p>
+ * A <code>FrameWindow</code> can't contain any components directly (as
  * it contains only a set of frames) and thus the container interface
- * methods do nothing.</p>
+ * methods do nothing.
+ * </p>
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -56,43 +61,46 @@ public class FrameWindow extends Window {
 
        private Frameset frameset = new Frameset();
 
-       /** <p>Constructs a new frame window.
-        *
+       /** 
+        * Constructs a new frame window.
         */
        public FrameWindow() {
        }
 
 
-       /** <p>Constructs a new frame window. 
-        * 
-        * @param caption title of the window
+       /** 
+        * Constructs a new frame window. 
+        * @param caption th etitle of the window.
         */
        public FrameWindow(String caption) {
                super(caption);
        }
 
-       /** Gets the window's UIDL tag.
+       /** 
+        * Gets the window's UIDL tag.
         * 
-        * @return window's UIDL tag as <code>String</code>
+        * @return the window's UIDL tag as <code>String</code>.
         */
        public String getTag() {
                return "framewindow";
        }
 
-       /** Gets the main frameset of the window. This set contains all the 
+       /** 
+        * Gets the main frameset of the window. This set contains all the 
         * top-level frames of the window. New contents are added by adding
         * frames to this frameset.
         * 
-        * @return top-level frame set of this frame window
+        * @return the top-level frame set of this frame window.
         */
        public Frameset getFrameset() {
                return frameset;
        }
 
-       /** Paints the window contents.
+       /** 
+        * Paints the window contents.
         * 
-        * @param target A paint target event
-        * @throws PaintException if the paint operation fails
+        * @param target the paint target event.
+        * @throws PaintException if the paint operation fails.
         * 
         * @see com.itmill.toolkit.ui.AbstractComponent#paintContent(PaintTarget)
         */
@@ -104,71 +112,109 @@ public class FrameWindow extends Window {
                getFrameset().paint(target);
        }
 
-       /** An individual frame that contains either a window or the contents of the 
+       /** 
+        * An individual frame that contains either a window or the contents of the 
         * url set to frame. 
         * 
-        * <p>The frames can be only created to framesets using the 
-        * <code>newFrame()</code> functions of the frameset.</p>
+        * <p>
+        * The frames can be only created to framesets using the 
+        * <code>newFrame</code> method of the frameset.
+        * </p>
        */
        public class Frame {
 
-               /** URL of the frame contents */
+               /** 
+                * URL of the frame contents. 
+                */
                private URL url;
 
-               /** Name of the frame */
+               /** 
+                * Name of the frame. 
+                */
                private String name;
 
-               /** Window connected to frame or null */
+               /** 
+                * Window connected to frame or null. 
+                */
                private Window window;
 
-               /** Window connected to frame or null */
+               /** 
+                * Window connected to frame or null. 
+                */
                private Resource resource;
 
-               /** String representation of the width */
+               /** 
+                * String representation of the width. 
+                */
                private String width = "*";
 
-               /** Parent frameset */
+               /** 
+                * Parent frameset. 
+                */
                protected Frameset parentFrameset;
 
-               /** URL of the frame */
+               /** 
+                * Gets the URL of the frame. 
+                * @return  the URl.
+                */
                public URL getURL() {
                        return window == null ? url : window.getURL();
                }
 
-               /** Get the parent frameset */
+               /** 
+                * Gets the parent frameset. 
+                * @return the parent frameset.
+                */
                public Frameset getParentFrameset() {
                        return parentFrameset;
                }
 
-               /** Name of the freame */
+               /** 
+                * Gets the Name of the frame. 
+                * @return the Name.
+                */
                public String getName() {
                        return window == null ? name : window.getName();
                }
 
-               /** Window connected to frame */
+               /** 
+                * Gets the Window connected to frame.
+                * @return the window. 
+                */
                public Window getWindow() {
                        return window;
                }
 
-               /** Resource connected to frame */
+               /** 
+                * Gets the Resource connected to frame. 
+                * @return the resource.
+                */
                public Resource getResource() {
                        return resource;
                }
 
-               /** Absolute width/height of the frame in pixels */
+               /** 
+                * Sets the Absolute width/height of the frame in pixels.
+                * @param widthInPixel the width in Pixel.
+                */
                public void setAbsoluteSize(int widthInPixels) {
                        width = String.valueOf(widthInPixels);
                        requestRepaint();
                }
 
-               /** Set the frame size to be freely specified by the terminal */
+               /** 
+                * Sets the frame size to be freely specified by the terminal. 
+                */
                public void setFreeSize() {
                        width = "*";
                        requestRepaint();
                }
 
-               /** Set the frame width/height as a percentage of the containing 
-                * frameset size */
+               /** 
+                * Sets the frame width/height as a percentage of the containing 
+                * frameset size. 
+                * @param widthInPercents the frame width in percent.
+                */
                public void setRelativeSize(int widthInPercents) {
                        if (widthInPercents < 0 || widthInPercents > 100)
                                throw new IllegalArgumentException(
@@ -177,7 +223,11 @@ public class FrameWindow extends Window {
                        requestRepaint();
                }
 
-               /** Paint the frame */
+               /** 
+                * Paints the frame. 
+                * @param target the paint target.
+                * @throws PaintException if the paint operation fails.
+                */
                private void paint(PaintTarget target) throws PaintException {
                        target.startTag("frame");
                        if (getResource() != null)
@@ -189,39 +239,55 @@ public class FrameWindow extends Window {
                }
        }
 
-       /** Vertical or horizontal set of frames */
+       /** 
+        * Vertical or horizontal set of frames. 
+        */
        public class Frameset extends Frame {
 
-               /** List of frames ordered from left to right or from top to bottom */
+               /** 
+                * List of frames ordered from left to right or from top to bottom.
+                */
                private LinkedList frames = new LinkedList();
 
-               /** True iff the frames are on top of each other. If false the frames
+               /** 
+                * <code>true</code> if the frames are on top of each other. If <code>false</code> the frames
                 * are side by side.
                 */
                private boolean vertical = false;
 
-               /** Get a list of frames.
+               /** 
+                * Gets the list of frames.
                 * 
-                * @return unmodifiable list of frames.
+                * @return the unmodifiable list of frames.
                 */
                public List getFrames() {
                        return Collections.unmodifiableList(frames);
                }
 
-               /** Create new frame containing a window.
+               /** 
+                * Creates the new frame containing a window.
                 * 
-                * <p>The new frame will be in the end of the frames list.</p>
+                * <p>
+                * The new frame will be in the end of the frames list.
+                * </p>
+                * @param window the window connected to the frame.
+                * @return the new Frame.
                 */
                public Frame newFrame(Window window) {
                        return newFrame(window, size());
                }
 
-               /** Create new frame containing a window.
+               /** 
+                * Creates the new frame containing a window.
                 * 
-                * <p>The new frame will be put before the frame identified
+                * <p>
+                * The new frame will be put before the frame identified
                 * by the given index. The indexes of the frame previously in the 
                 * given position and all the positions after it are incremented
-                * by one.</p>
+                * by one.
+                * </p>
+                * @param window the window connected to the frame.
+                * @param index the given index.
                 */
                public Frame newFrame(Window window, int index) {
                        Frame f = new Frame();
@@ -234,28 +300,47 @@ public class FrameWindow extends Window {
                        return f;
                }
 
-               /** Create new frame containing a url.
+               /** 
+                * Creates the new frame containing a url.
                 * 
-                * <p>The new frame will be put in the end of the frames list..</p>
+                * <p>
+                * The new frame will be put in the end of the frames list.
+                * </p>
+                * @param url the URL of the frame contents.
+                * @param name the Name of the frame.
+                * @return the new frame.
                 */
                public Frame newFrame(URL url, String name) {
                        return newFrame(url, name, size());
                }
 
-               /** Create new frame containing a resource.
+               /** 
+                * Creates the new frame containing a resource.
                 * 
-                * <p>The new frame will be put in the end of the frames list..</p>
+                * <p>
+                * The new frame will be put in the end of the frames list.
+                * </p>
+                * @param resource the resource.
+                * @param name the Name of the frame.
+                * @return the new frame.
                 */
                public Frame newFrame(Resource resource, String name) {
                        return newFrame(resource, name, size());
                }
 
-               /** Create new frame containing a url.
+               /** 
+                * Creates the new frame containing a url.
                 * 
-                * <p>The new frame will be put before the frame identified
+                * <p>
+                * The new frame will be put before the frame identified
                 * by the given index. The indexes of the frame previously in the 
                 * given position and all the positions after it are incremented
-                * by one.</p>
+                * by one.
+                * </p>
+                * @param url the URL of the frame contents.
+                * @param name the Name of the frame.
+                * @param index the given index.
+                * @return the new frame.
                 */
                public Frame newFrame(URL url, String name, int index) {
                        Frame f = new Frame();
@@ -267,12 +352,19 @@ public class FrameWindow extends Window {
                        return f;
                }
 
-               /** Create new frame containing a resource.
+               /** 
+                * Creates the new frame containing a resource.
                 * 
-                * <p>The new frame will be put before the frame identified
+                * <p>
+                * The new frame will be put before the frame identified
                 * by the given index. The indexes of the frame previously in the 
                 * given position and all the positions after it are incremented
-                * by one.</p>
+                * by one.
+                * </p>
+                * @param resource the resource.
+                * @param name the Name of the frame.
+                * @param index the given index.
+                * @return the new frame.
                 */
                public Frame newFrame(Resource resource, String name, int index) {
                        Frame f = new Frame();
@@ -284,12 +376,18 @@ public class FrameWindow extends Window {
                        return f;
                }
 
-               /** Create new frameset.
+               /** 
+                * Creates the new frameset.
                 * 
-                * <p>The new frame will be put before the frame identified
+                * <p>
+                * The new frame will be put before the frame identified
                 * by the given index. The indexes of the frame previously in the 
                 * given position and all the positions after it are incremented
-                * by one.</p>
+                * by one.
+                * </p>
+                * @param isVertical is the frames are on top of each other.
+                * @param index the given index.
+                * @return the new frameset.
                 */
                public Frameset newFrameset(boolean isVertical, int index) {
                        Frameset f = new Frameset();
@@ -300,14 +398,19 @@ public class FrameWindow extends Window {
                        return f;
                }
 
-               /** Remove a frame from this frameset */
+               /** 
+                * Removes the frame from this frameset. 
+                * @param frame the frame to remove.
+                */
                public void removeFrame(Frame frame) {
                        frames.remove(frame);
                        frame.parentFrameset = null;
                        requestRepaint();
                }
 
-               /** Remove all frames from this frameset */
+               /** 
+                * Removes all frames from this frameset. 
+                */
                public void removeAllFrames() {
                        for (Iterator i = frames.iterator(); i.hasNext();)
                                 ((Frame) i.next()).parentFrameset = null;
@@ -315,35 +418,48 @@ public class FrameWindow extends Window {
                        requestRepaint();
                }
 
-               /** Number of frames in this frameset */
+               /** 
+                * Number of frames in this frameset. 
+                * @return the size.
+                */
                public int size() {
                        return frames.size();
                }
 
-               /** Set the framaset to be vertical. 
+               /** 
+                * Sets the framaset to be vertical. 
                 * 
-                * <p>By setting this true, the frames will be ordered on top
+                * <p>
+                * By setting this true, the frames will be ordered on top
                 * of each other from top to bottom. Setting this false, the
-                * frames will be ordered side by side from left to right.</p>
+                * frames will be ordered side by side from left to right.
+                * </p>
+                * @param isVertical is the frames are on top of each other.
                 */
                public void setVertical(boolean isVertical) {
                        this.vertical = isVertical;
                        requestRepaint();
                }
 
-               /** Check if the frameset is vertical. 
+               /** 
+                * Checks if the frameset is vertical. 
                 * 
-                * <p>If this is true, the frames will be ordered on top
+                * <p>
+                * If this is true, the frames will be ordered on top
                 * of each other from top to bottom, otherwise the
-                * frames will be ordered side by side from left to right.</p>
+                * frames will be ordered side by side from left to right.
+                * </p>
+                * @return <code>true</code> if the frameset is Vertical, otherwise <code>false</code>.
                 */
                public boolean isVertical() {
                        return vertical;
                }
 
-               /** Get frame by name.
-                * @return Frame having the given name or null if the frame is
-                * not found
+               /** 
+                * Gets the frame by name.
+                * @param name the Name of the frame.
+                * @return the Frame having the given name or null if the frame is
+                * not found.
                 */
                public Frame getFrame(String name) {
                        if (name == null)
@@ -356,8 +472,10 @@ public class FrameWindow extends Window {
                        return null;
                }
 
-               /** Get frame by index.
-                * @return Frame having the given index or null if the frame is
+               /** 
+                * Gets the frame by index.
+                * @param index the given index.
+                * @return the Frame having the given index or null if the frame is
                 * not found
                 */
                public Frame getFrame(int index) {
@@ -366,7 +484,11 @@ public class FrameWindow extends Window {
                        return null;
                }
 
-               /** Paint the frameset */
+               /** 
+                * Paints the frameset.
+                * @param target the Paint Target.
+                * @throws PaintException  if the Paint operation fails.
+                */
                private void paint(PaintTarget target) throws PaintException {
                        target.startTag("frameset");
                        if (!frames.isEmpty()) {
@@ -394,7 +516,11 @@ public class FrameWindow extends Window {
                        target.endTag("frameset");
                }
 
-               /** Set the application for all the frames in this frameset */
+               /** 
+                * Sets the application for all the frames in this frameset.
+                * @param fromApplication
+                * @param toApplication  
+                */
                private void setApplication(
                        Application fromApplication,
                        Application toApplication) {
@@ -414,7 +540,8 @@ public class FrameWindow extends Window {
                }
        }
 
-       /** Setting the application for frame window also sets the application
+       /** 
+        * Setting the application for frame window also sets the application
         * for all the frames.
         * @see com.itmill.toolkit.ui.Window#setApplication(Application)
         */
@@ -426,40 +553,48 @@ public class FrameWindow extends Window {
                        fs.setApplication(fromApplication, application);
        }
 
-       /** Frame windows does not support scrolling.
+       /** 
+        * Frame windows does not support scrolling.
+        * @return <code>true</code> if it is scrollable,otherwise <code>false</code>.
         */
        public boolean isScrollable() {
                return false;
        }
 
-       /** Frame windows does not support scrolling.
+       /** 
+        * Enables or disables scrolling.
         *
         * @see com.itmill.toolkit.terminal.Scrollable#setScrollable(boolean)
         */
        public void setScrollable(boolean isScrollingEnabled) {
        }
 
-       /** Frame windows does not support scrolling.
+       /** 
+        * Sets the scroll X offset.
         *
         * @see com.itmill.toolkit.terminal.Scrollable#setScrollOffsetX(int)
         */
        public void setScrollOffsetX(int pixelsScrolledLeft) {
        }
 
-       /** Frame windows does not support scrolling.
+       /** 
+        * Gets the scroll Y offset.
         *
         * @see com.itmill.toolkit.terminal.Scrollable#setScrollOffsetY(int)
         */
        public void setScrollOffsetY(int pixelsScrolledDown) {
        }
 
-       /** Frame window does not support adding components directly.
-        * 
-        * <p>To add component to frame window, normal window must be
-        * first created and then attached to frame window as a frame.</p>
+       /** 
+        * Frame window does not support adding components directly.
         * 
+        * <p>
+        * To add component to frame window, normal window must be
+        * first created and then attached to frame window as a frame.
+        * </p>
+        * @param c the component to be added.
         * @see com.itmill.toolkit.ui.ComponentContainer#addComponent(Component)
-        * @throws UnsupportedOperationException if invoked.
+        * 
         */
        public void addComponent(Component c)
                throws UnsupportedOperationException {
index 3324db74a8f5233a339a608af60b3ecf869371e4..3e2b7521ecf7bd45efa143e2d043d3051c310ae9 100644 (file)
@@ -36,15 +36,20 @@ import java.util.LinkedList;
 import com.itmill.toolkit.terminal.PaintException;
 import com.itmill.toolkit.terminal.PaintTarget;
 
-/** <p>A container that consists of components with certain coordinates on a
+/** 
+ * <p>
+ * A container that consists of components with certain coordinates on a
  * grid. It also maintains cursor for adding component in left to right,
- * top to bottom order.</p>
+ * top to bottom order.
+ * </p>
  * 
- * <p>Each component in a <code>GridLayout</code> uses a certain
+ * <p>
+ * Each component in a <code>GridLayout</code> uses a certain
  * {@link GridLayout.Area area} (x1,y1,x2,y2) from the grid. One should not
  * add components that would overlap with the existing components because in
  * such case an {@link OverlapsException} is thrown. Adding component with
- * cursor automatically extends the grid by increasing the grid height.</p>
+ * cursor automatically extends the grid by increasing the grid height.
+ * </p>
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -52,65 +57,82 @@ import com.itmill.toolkit.terminal.PaintTarget;
  */
 public class GridLayout extends AbstractComponentContainer implements Layout {
 
-       /** Initial grid x size */
+       /** 
+        * Initial grid x size. 
+        */
        private int width = 0;
 
-       /** Initial grid y size */
+       /** 
+        * Initial grid y size. 
+        */
        private int height = 0;
 
-       /** Cursor X position: this is where the next component with
+       /** 
+        * Cursor X position: this is where the next component with
         * unspecified x,y is inserted
         */
        private int cursorX = 0;
 
-       /** Cursor Y position: this is where the next component with
+       /** 
+        * Cursor Y position: this is where the next component with
         * unspecified x,y is inserted
         */
        private int cursorY = 0;
 
-       /** Contains all items that are placed on the grid.
+       /** 
+        * Contains all items that are placed on the grid.
         * These are components with grid area definition.
         */
        private LinkedList areas = new LinkedList();
 
-       /** Mapping from components to threir respective areas. */
+       /** 
+        * Mapping from components to threir respective areas. 
+        */
        private LinkedList components = new LinkedList();
 
-       /** Constructor for grid of given size.
+       /** 
+        * Constructor for grid of given size.
         * Note that grid's final size depends on the items that are added into the grid.
         * Grid grows if you add components outside the grid's area.
-        * @param width Width of the grid.
-        * @param height Height of the grid.
+        * @param width the Width of the grid.
+        * @param height the Height of the grid.
         */
        public GridLayout(int width, int height) {
                setWidth(width);
                setHeight(height);
        }
 
-       /** Constructs an empty grid layout that is extended as needed. */
+       /** 
+        * Constructs an empty grid layout that is extended as needed. 
+        */
        public GridLayout() {
                this(1, 1);
        }
 
-       /** <p>Adds a component with a specified area to the grid. The area the
+       /** 
+        * <p>
+        * Adds a component with a specified area to the grid. The area the
         * new component should take is defined by specifying the upper left
-        * corner (x1, y1) and the lower right corner (x2, y2) of the area.</p>
+        * corner (x1, y1) and the lower right corner (x2, y2) of the area.
+        * </p>
         * 
-        * <p>If the new component overlaps with any of the existing components
+        * <p>
+        * If the new component overlaps with any of the existing components
         * already present in the grid the operation will fail and an 
-        * {@link OverlapsException} is thrown.</p>
+        * {@link OverlapsException} is thrown.
+        * </p>
         * 
-        * @param c The component to be added.
-        * @param x1 The X-coordinate of the upper left corner of the area
-        * <code>c</code> is supposed to occupy
-        * @param y1 The Y-coordinate of the upper left corner of the area
-        * <code>c</code> is supposed to occupy
-        * @param x2 The X-coordinate of the lower right corner of the area
-        * <code>c</code> is supposed to occupy
-        * @param y2 The Y-coordinate of the lower right corner of the area
-        * <code>c</code> is supposed to occupy
+        * @param c the component to be added.
+        * @param x1 the X-coordinate of the upper left corner of the area
+        * <code>c</code> is supposed to occupy.
+        * @param y1 the Y-coordinate of the upper left corner of the area
+        * <code>c</code> is supposed to occupy.
+        * @param x2 the X-coordinate of the lower right corner of the area
+        * <code>c</code> is supposed to occupy.
+        * @param y2 the Y-coordinate of the lower right corner of the area
+        * <code>c</code> is supposed to occupy.
         * @throws OverlapsException if the new component overlaps with any
-        * of the components already in the grid
+        * of the components already in the grid.
         * @throws OutOfBoundsException if the coordinates are outside of the
         * grid area.
         */
@@ -125,23 +147,23 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
                if (component == null)
                        throw new NullPointerException("Component must not be null");
 
-               // Check that the component does not already exist in the container
+               // Checks that the component does not already exist in the container
                if (components.contains(component))
                        throw new IllegalArgumentException("Component is already in the container");
 
-               // Create area
+               // Creates the area
                Area area = new Area(component, x1, y1, x2, y2);
 
-               // Check the validity of the coordinates
+               // Checks the validity of the coordinates
                if (x2 < x1 || y2 < y2)
                        throw new IllegalArgumentException("Illegal coordinates for the component");
                if (x1 < 0 || y1 < 0 || x2 >= width || y2 >= height)
                        throw new OutOfBoundsException(area);
 
-               // Check that newItem does not overlap with existing items
+               // Checks that newItem does not overlap with existing items
                checkExistingOverlaps(area);
 
-               // Insert the component to right place at the list
+               // Inserts the component to right place at the list
                // Respect top-down, left-right ordering
                component.setParent(this);
                Iterator i = areas.iterator();
@@ -166,12 +188,13 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
                requestRepaint();
        }
 
-       /** Tests if the given area overlaps with any of the items already on
+       /** 
+        * Tests if the given area overlaps with any of the items already on
         * the grid.
         * 
-        * @param area Area to be checked for overlapping
+        * @param area the Area to be checked for overlapping.
         * @throws OverlapsException if <code>area</code> overlaps with
-        * any existing area
+        * any existing area.
         */
        private void checkExistingOverlaps(Area area) throws OverlapsException {
                for (Iterator i = areas.iterator(); i.hasNext();) {
@@ -183,20 +206,22 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
                }
        }
 
-       /** Add component into this container to coordinates x1,y1 (NortWest corner of the area.)
+       /** 
+        * Adds the component into this container to coordinates x1,y1 (NortWest corner of the area.)
         * End coordinates (SouthEast corner of the area) are the same as x1,y1. Component width
         * and height is 1.
-        * @param c The component to be added.
-        * @param x X-coordinate
-        * @param y Y-coordinate
+        * @param c the component to be added.
+        * @param x the X-coordinate.
+        * @param y the Y-coordinate.
         */
        public void addComponent(Component c, int x, int y) {
                this.addComponent(c, x, y, x, y);
        }
 
-       /** Force the next component to be added to the beginning of the next line.
-        *  By calling this function user can ensure that no more components are
-        *  added to the right of the previous component.
+       /** 
+        * Force the next component to be added to the beginning of the next line.
+        * By calling this function user can ensure that no more components are
+        * added to the right of the previous component.
         * 
         * @see #space()
         */
@@ -205,7 +230,8 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
                cursorY++;
        }
 
-       /** Move cursor forwards by one. If the cursor goes out of the right grid border,
+       /** 
+        * Moves the cursor forwards by one. If the cursor goes out of the right grid border,
         * move it to next line.
         * 
         * @see #newLine()
@@ -218,15 +244,16 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
                }
        }
 
-       /** Add a component into this container to the cursor position.
+       /** 
+        * Adds the component into this container to the cursor position.
         * If the cursor position is already occupied, the cursor is
         * moved forwards to find free position. If the cursor goes out
         * from the bottom of the grid, the grid is automaticly extended.
-        * @param c The component to be added.
+        * @param c the component to be added.
         */
        public void addComponent(Component component) {
 
-               // Find first available place from the grid
+               // Finds first available place from the grid
                Area area;
                boolean done = false;
                while (!done)
@@ -238,17 +265,18 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
                                space();
                        }
 
-               // Extend the grid if needed
+               // Extends the grid if needed
                width = cursorX >= width ? cursorX + 1 : width;
                height = cursorY >= height ? cursorY + 1 : height;
 
                addComponent(component, cursorX, cursorY);
        }
 
-       /** Removes the given component from this
+       /** 
+        * Removes the given component from this
         * container.
         * 
-        * @param c The component to be removed.
+        * @param c the component to be removed.
         */
        public void removeComponent(Component component) {
 
@@ -272,15 +300,16 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
                requestRepaint();
        }
 
-       /** Removes a component specified with it's top-left corner coordinates
+       /** 
+        * Removes the component specified with it's top-left corner coordinates
         * from this grid.
         * 
-        * @param x Component's top-left corner's X-coordinate
-        * @param y Component's top-left corner's Y-coordinate
+        * @param x the Component's top-left corner's X-coordinate.
+        * @param y the Component's top-left corner's Y-coordinate.
         */
        public void removeComponent(int x, int y) {
 
-               // Find area
+               // Finds the area
                for (Iterator i = areas.iterator(); i.hasNext();) {
                        Area area = (Area) i.next();
                        if (area.getX1() == x && area.getY1() == y) {
@@ -290,19 +319,21 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
                }
        }
 
-       /** Gets an Iterator to the component container contents. Using the
+       /** 
+        * Gets an Iterator to the component container contents. Using the
         * Iterator it's possible to step through the contents of the container.
         * 
-        * @return Iterator of the components inside the container.
+        * @return the Iterator of the components inside the container.
         */
        public Iterator getComponentIterator() {
                return Collections.unmodifiableCollection(components).iterator();
        }
 
-       /** Paints the contents of this component.
+       /** 
+        * Paints the contents of this component.
         * 
-        * @param event PaintEvent.
-        * @throws PaintException The paint operation failed.
+        * @param target the Paint Event.
+        * @throws PaintException if the paint operation failed.
         */
        public void paintContent(PaintTarget target) throws PaintException {
 
@@ -315,20 +346,20 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
                // Current item to be processed (fetch first item)
                Area area = areaiterator.hasNext() ? (Area) areaiterator.next() : null;
 
-               // Collect rowspan related information here
+               // Collects rowspan related information here
                HashMap cellUsed = new HashMap();
 
                // Empty cell collector
                int emptyCells = 0;
 
-               // Iterate every applicable row
+               // Iterates every applicable row
                for (int cury = 0; cury < height; cury++) {
                        target.startTag("gr");
 
-                       // Iterate every applicable column
+                       // Iterates every applicable column
                        for (int curx = 0; curx < width; curx++) {
 
-                               // Check if current item is located at curx,cury
+                               // Checks if current item is located at curx,cury
                                if (area != null && (area.y1 == cury) && (area.x1 == curx)) {
 
                                        // First check if empty cell needs to be rendered
@@ -368,7 +399,7 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
                                                area = null;
                                        }
 
-                                       // Update cellUsed if rowspan needed
+                                       // Updates the cellUsed if rowspan needed
                                        if (rows > 1) {
                                                int spannedx = curx;
                                                for (int j = 1; j <= cols; j++) {
@@ -379,14 +410,14 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
                                                }
                                        }
 
-                                       // Skip current item's spanned columns
+                                       // Skips the current item's spanned columns
                                        if (cols > 1) {
                                                curx += cols - 1;
                                        }
 
                                } else {
 
-                                       // Check against cellUsed, render space or ignore cell
+                                       // Checks against cellUsed, render space or ignore cell
                                        if (cellUsed.containsKey(new Integer(curx))) {
 
                                                // Current column contains already an item,
@@ -415,7 +446,7 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
                                                        // empty cell is needed
                                                        emptyCells++;
 
-                                                       // Remove cellUsed key as it has become obsolete
+                                                       // Removes the cellUsed key as it has become obsolete
                                                        cellUsed.remove(new Integer(curx));
                                                }
                                        } else {
@@ -425,11 +456,11 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
                                        }
                                }
 
-                       } // iterate every column
+                       } // iterates every column
 
                        // Last column handled of current row
 
-                       // Check if empty cell needs to be rendered
+                       // Checks if empty cell needs to be rendered
                        if (emptyCells > 0) {
                                target.startTag("gc");
                                target.addAttribute("x", width - emptyCells);
@@ -443,54 +474,70 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
                        }
 
                        target.endTag("gr");
-               } // iterate every row
+               } // iterates every row
 
                // Last row handled
        }
 
-       /** Gets the components UIDL tag.
+       /** 
+        * Gets the components UIDL tag.
         * 
-        * @return Component UIDL tag as string.
+        * @return the Component UIDL tag as string.
         * @see com.itmill.toolkit.ui.AbstractComponent#getTag()
         */
        public String getTag() {
                return "gridlayout";
        }
 
-       /** This class defines an area on a grid. An Area is defined by the
+       /** 
+        * This class defines an area on a grid. An Area is defined by the
         * coordinates of its upper left corner (x1,y1) and lower right corner
-        * (x2,y2)
+        * (x2,y2).
+        * 
         * @author IT Mill Ltd.
         * @version @VERSION@
         * @since 3.0
         */
        public class Area {
 
-               /** X-coordinate of the upper left corner of the area */
+               /** 
+                * X-coordinate of the upper left corner of the area. 
+                */
                private int x1;
 
-               /** Y-coordinate of the upper left corner of the area */
+               /** 
+                * Y-coordinate of the upper left corner of the area. 
+                */
                private int y1;
 
-               /** X-coordinate of the lower right corner of the area */
+               /** 
+                * X-coordinate of the lower right corner of the area. 
+                */
                private int x2;
 
-               /** Y-coordinate of the lower right corner of the area */
+               /** 
+                * Y-coordinate of the lower right corner of the area. 
+                */
                private int y2;
 
-               /** Component painted on the area */
+               /** 
+                * Component painted on the area. 
+                */
                private Component component;
 
-               /** <p>Construct a new area on a grid.
-                * 
-                * @param x1 The X-coordinate of the upper left corner of the area
-                * <code>c</code> is supposed to occupy
-                * @param y1 The Y-coordinate of the upper left corner of the area
-                * <code>c</code> is supposed to occupy
-                * @param x2 The X-coordinate of the lower right corner of the area
-                * <code>c</code> is supposed to occupy
-                * @param y2 The Y-coordinate of the lower right corner of the area
-                * <code>c</code> is supposed to occupy
+               /**
+                * <p>
+                * Construct a new area on a grid.
+                * </p>
+                * @param component the component connected to the area.
+                * @param x1 the X-coordinate of the upper left corner of the area
+                * <code>c</code> is supposed to occupy.
+                * @param y1 the Y-coordinate of the upper left corner of the area
+                * <code>c</code> is supposed to occupy.
+                * @param x2 the X-coordinate of the lower right corner of the area
+                * <code>c</code> is supposed to occupy.
+                * @param y2 the Y-coordinate of the lower right corner of the area
+                * <code>c</code> is supposed to occupy.
                 * @throws OverlapsException if the new component overlaps with any
                 * of the components already in the grid
                 */
@@ -502,12 +549,13 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
                        this.component = component;
                }
 
-               /** Tests if the given Area overlaps with an another Area.
+               /** 
+                * Tests if the given Area overlaps with an another Area.
                 * 
-                * @param other Another Area that's to be tested for overlap with
-                * this area
+                * @param other the Another Area that's to be tested for overlap with
+                * this area.
                 * @return <code>true</code> if <code>other</code> overlaps with
-                * this area, <code>false</code> if it doesn't
+                * this area, <code>false</code> if it doesn't.
                 */
                public boolean overlaps(Area other) {
                        return x1 <= other.getX2()
@@ -517,42 +565,45 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
 
                }
 
-               /** Returns the component connected to the area.
-                * @return Component
+               /** 
+                * Gets the component connected to the area.
+                * @return the Component.
                 */
                public Component getComponent() {
                        return component;
                }
 
-               /** Sets the component connected to the area.
+               /** 
+                * Sets the component connected to the area.
                 * 
                 * <p>This function only sets the value in the datastructure and does not 
-                * send any events or set parents</p>
+                * send any events or set parents.</p>
                 * 
-                * @param newComponent The new connected overriding the existing one
+                * @param newComponent the new connected overriding the existing one.
                 */
                protected void setComponent(Component newComponent) {
                        component= newComponent;
                }
 
-               /** Returns the top-left corner x-coordinate.
-                * @return int
+               /** 
+                * Gets the top-left corner x-coordinate.
+                * @return the top-left corner of x-coordinate.
                 */
                public int getX1() {
                        return x1;
                }
 
                /**
-                * Returns the bottom-right corner x-coordinate.
-                * @return int
+                * Gets the bottom-right corner x-coordinate.
+                * @return the x-coordinate.
                 */
                public int getX2() {
                        return x2;
                }
 
                /**
-                * Returns the top-left corner y-coordinate.
-                * @return int
+                * Gets the top-left corner y-coordinate.
+                * @return the y-coordinate.
                 */
                public int getY1() {
                        return y1;
@@ -560,7 +611,7 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
 
                /**
                 * Returns the bottom-right corner y-coordinate.
-                * @return int
+                * @return the y-coordinate.
                 */
                public int getY2() {
                        return y2;
@@ -568,8 +619,10 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
 
        }
 
-       /** An <code>Exception</code> object which is thrown when two Items
+       /** 
+        * An <code>Exception</code> object which is thrown when two Items
         * occupy the same space on a grid.
+        * 
         * @author IT Mill Ltd.
         * @version @VERSION@
         * @since 3.0
@@ -583,21 +636,27 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
         
         private Area existingArea;
 
-               /** Constructs an <code>OverlapsException</code>.
-                * @param msg the detail message.
+               /** 
+                * Constructs an <code>OverlapsException</code>.
+                * @param existingArea 
                 */
                public OverlapsException(Area existingArea) {
                        this.existingArea = existingArea;
                }
 
-               /** Get the area */
+               /** 
+                * Gets the area .
+                * @return the existing area.
+                */
                public Area getArea() {
                        return existingArea;
                }
        }
 
-       /** An <code>Exception</code> object which is thrown when an area exceeds the
+       /** 
+        * An <code>Exception</code> object which is thrown when an area exceeds the
         * bounds of the grid.
+        * 
         * @author IT Mill Ltd.
         * @version @VERSION@
         * @since 3.0
@@ -611,26 +670,29 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
         
         private Area areaOutOfBounds;
 
-               /** Constructs an <code>OoutOfBoundsException</code> with the specified
+               /** 
+                * Constructs an <code>OoutOfBoundsException</code> with the specified
                 * detail message.
                 * 
-                * @param msg the detail message.
+                * @param areaOutOfBounds 
                 */
                public OutOfBoundsException(Area areaOutOfBounds) {
                        this.areaOutOfBounds = areaOutOfBounds;
                }
 
-               /** Get the area that is out of bounds */
+               /** 
+                * Gets the area that is out of bounds. 
+                * @return the area out of Bound.
+                */
                public Area getArea() {
                        return areaOutOfBounds;
                }
        }
 
-       /** Set the width of the grid. The width can not be reduced if there are
+       /** 
+        * Sets the width of the grid. The width can not be reduced if there are
         * any areas that would be outside of the shrunk grid.
-        * @param width New width of the grid.
-        * @throws OutOfBoundsException if the one of the areas would exceed the
-        * bounds of the grid after the modification of the grid size.
+        * @param width the New width of the grid.
         */
        public void setWidth(int width) {
 
@@ -642,7 +704,7 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
                if (this.width == width)
                        return;
 
-               // Check for overlaps
+               // Checks for overlaps
                if (this.width > width)
                        for (Iterator i = areas.iterator(); i.hasNext();) {
                                Area area = (Area) i.next();
@@ -655,16 +717,18 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
                requestRepaint();
        }
 
-       /** Get the width of the grids.
-        * @return The width of the grid
+       /** 
+        * Get the width of the grids.
+        * @return the width of the grid.
         */
        public final int getWidth() {
                return this.width;
        }
 
-       /** Set the height of the grid. The width can not be reduced if there are
+       /** 
+        * Sets the height of the grid. The width can not be reduced if there are
         * any areas that would be outside of the shrunk grid.
-        * @param Height of the grid
+        * @param height the height of the grid.
         */
        public void setHeight(int height) {
 
@@ -676,7 +740,7 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
                if (this.height == height)
                        return;
 
-               // Check for overlaps
+               // Checks for overlaps
                if (this.height > height)
                        for (Iterator i = areas.iterator(); i.hasNext();) {
                                Area area = (Area) i.next();
@@ -689,30 +753,33 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
                requestRepaint();
        }
 
-       /** Get the height of the grid.
-        * @return int - how many cells high the grid is
+       /** 
+        * Gets the height of the grid.
+        * @return int - how many cells high the grid is.
         */
        public final int getHeight() {
                return this.height;
        }
 
-       /** Get the current cursor x-position.
+       /** 
+        * Gets the current cursor x-position.
         * The cursor position points the position for the next component 
         * that is added without specifying its coordinates. When the 
         * cursor position is occupied, the next component will be added
         * to first free position after the cursor.
-        * @return Cursor x-coordinate.
+        * @return the Cursor x-coordinate.
         */
        public int getCursorX() {
                return cursorX;
        }
 
-       /** Get the current cursor y-position.
+       /** 
+        * Gets the current cursor y-position.
         * The cursor position points the position for the next component 
         * that is added without specifying its coordinates. When the 
         * cursor position is occupied, the next component will be added
         * to first free position after the cursor.
-        * @return Cursor y-coordinate.
+        * @return the Cursor y-coordinate.
         */
        public int getCursorY() {
                return cursorY;
@@ -723,7 +790,7 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
                Component oldComponent,
                Component newComponent) {
 
-               // Get the locations                    
+               // Gets the locations                   
                Area oldLocation = null;
                Area newLocation  = null;
                for (Iterator i=areas.iterator(); i.hasNext();) {
@@ -746,6 +813,7 @@ public class GridLayout extends AbstractComponentContainer implements Layout {
        }
        
        /*
+        * Removes all components from this container.
         * @see com.itmill.toolkit.ui.ComponentContainer#removeAllComponents()
         */
        public void removeAllComponents() {
index df447c0e14024acd9546ee372d6cdbeb841b575d..9126beb31b92a7a5f0bbca75c1798c30c92ad299 100644 (file)
@@ -35,7 +35,8 @@ import com.itmill.toolkit.data.util.ObjectProperty;
 import com.itmill.toolkit.terminal.PaintException;
 import com.itmill.toolkit.terminal.PaintTarget;
 
-/** Label component for showing non-editable short texts.
+/** 
+ * Label component for showing non-editable short texts.
  *
  * The label content can be set to the modes specified by the final members
  * CONTENT_*
@@ -65,31 +66,37 @@ public class Label
                Property.ValueChangeListener,
                Property.ValueChangeNotifier, Comparable {
 
-       /** Content mode, where the label contains only plain text. The getValue()
+       /** 
+        * Content mode, where the label contains only plain text. The getValue()
         * result is coded to XML when painting. 
         */
        public static final int CONTENT_TEXT = 0;
 
-       /** Content mode, where the label contains preformatted text.
+       /** 
+        * Content mode, where the label contains preformatted text.
         */
        public static final int CONTENT_PREFORMATTED = 1;
 
-       /** Formatted content mode, where the contents is XML restricted to the
+       /** 
+        * Formatted content mode, where the contents is XML restricted to the
         * UIDL 1.0 formatting markups.
         */
        public static final int CONTENT_UIDL = 2;
 
-       /** Content mode, where the label contains XHTML. Contents is then enclosed in
+       /** 
+        * Content mode, where the label contains XHTML. Contents is then enclosed in
         * DIV elements having namespace of "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd".         
         */
        public static final int CONTENT_XHTML = 3;
 
-       /** Content mode, where the label contains well-formed or well-balanced XML. 
+       /** 
+        * Content mode, where the label contains well-formed or well-balanced XML. 
         * Each of the root elements must have their default namespace specified.
         */
        public static final int CONTENT_XML = 4;
 
-       /** Content mode, where the label contains RAW output. Output is not 
+       /** 
+        * Content mode, where the label contains RAW output. Output is not 
         * required to comply to with XML. In Web Adapter output is inserted inside
         * the resulting HTML document as-is. This is useful for some specific 
         * purposes where possibly broken HTML content needs to be shown, but in 
@@ -97,49 +104,69 @@ public class Label
         */
        public static final int CONTENT_RAW = 5;
 
-       /** The default content mode is plain text */
+       /** 
+        * The default content mode is plain text. 
+        */
        public static final int CONTENT_DEFAULT = CONTENT_TEXT;
 
        private Property dataSource;
        private int contentMode = CONTENT_DEFAULT;
 
-       /** Creates an empty Label. */
+       /** 
+        * Creates an empty Label. 
+        */
        public Label() {
                setPropertyDataSource(new ObjectProperty("", String.class));
        }
 
-       /** Creates a new instance of Label with text-contents. */
+       /** 
+        * Creates a new instance of Label with text-contents.
+        * @param content  
+        */
        public Label(String content) {
                setPropertyDataSource(new ObjectProperty(content, String.class));
        }
 
-       /** Creates a new instance of Label with text-contents read from given datasource. */
+       /** 
+        * Creates a new instance of Label with text-contents read from given datasource.
+        * @param contentSource 
+        */
        public Label(Property contentSource) {
                setPropertyDataSource(contentSource);
        }
 
-       /** Creates a new instance of Label with text-contents. */
+       /** 
+        * Creates a new instance of Label with text-contents. 
+        * @param content
+        * @param contentMode
+        */
        public Label(String content, int contentMode) {
                setPropertyDataSource(new ObjectProperty(content, String.class));
                setContentMode(contentMode);
        }
 
-       /** Creates a new instance of Label with text-contents read from given datasource. */
+       /** 
+        * Creates a new instance of Label with text-contents read from given datasource.
+        * @param contentSource
+        * @param contentMode 
+        */
        public Label(Property contentSource, int contentMode) {
                setPropertyDataSource(contentSource);
                setContentMode(contentMode);
        }
 
-       /** Get component UIDL tag.
-        * @return Component UIDL tag as string.
+       /** 
+        * Get the component UIDL tag.
+        * @return the Component UIDL tag as string.
         */
        public String getTag() {
                return "label";
        }
 
-       /** Set the component to read-only.
+       /** 
+        * Set the component to read-only.
         * Readonly is not used in label.
-        * @param readOnly True to enable read-only mode, False to disable it
+        * @param readOnly True to enable read-only mode, False to disable it.
         */
        public void setReadOnly(boolean readOnly) {
                if (dataSource == null)
@@ -147,9 +174,10 @@ public class Label
                dataSource.setReadOnly(readOnly);
        }
 
-       /** Is the component read-only ?
+       /** 
+        * Is the component read-only ?
         * Readonly is not used in label - this returns allways false.
-        * @return True iff the component is in read only mode
+        * @return <code>true</code> if the component is in read only mode.
         */
        public boolean isReadOnly() {
                if (dataSource == null)
@@ -157,8 +185,10 @@ public class Label
                return dataSource.isReadOnly();
        }
 
-       /** Paint the content of this component.
-        * @param event PaintEvent.
+       /** 
+        * Paints the content of this component.
+        * @param target the Paint Event.
+        * @throws PaintException if the Paint Operation fails.
         */
        public void paintContent(PaintTarget target) throws PaintException {
                if (contentMode == CONTENT_TEXT)
@@ -187,9 +217,10 @@ public class Label
 
        }
 
-       /** Get the value of the label.
+       /** 
+        * Gets the value of the label.
         * Value of the label is the XML contents of the label.
-        * @return Value of the label
+        * @return the Value of the label.
         */
        public Object getValue() {
                if (dataSource == null)
@@ -197,52 +228,69 @@ public class Label
                return dataSource.getValue();
        }
 
-       /** Set the value of the label.
+       /** 
+        * Set the value of the label.
         * Value of the label is the XML contents of the label.
-        * @param newValue New value of the label
+        * @param newValue the New value of the label.
         */
        public void setValue(Object newValue) {
                if (dataSource == null)
                        throw new IllegalStateException("Datasource must be se");
                this.dataSource.setValue(newValue);
        }
-
+       
+       /**
+        * @see java.lang.Object#toString()
+        */
        public String toString() {
                if (dataSource == null)
                        throw new IllegalStateException("Datasource must be se");
                return dataSource.toString();
        }
-
+       
+       /**
+        * Gets the type of the Property.
+        * @see com.itmill.toolkit.data.Property#getType()
+        */
        public Class getType() {
                if (dataSource == null)
                        throw new IllegalStateException("Datasource must be se");
                return dataSource.getType();
        }
 
-       /** Get viewing data-source property.  */
+       /**
+        * Gets the viewing data-source property. 
+        * @return the data source property. 
+        * @see com.itmill.toolkit.data.Property.Viewer#getPropertyDataSource()
+        */
        public Property getPropertyDataSource() {
                return dataSource;
        }
 
-       /** Set the property as data-source for viewing.  */
+       /**
+        * Sets the property as data-source for viewing. 
+        * @param newDataSource the new data source Property
+        * @see com.itmill.toolkit.data.Property.Viewer#setPropertyDataSource(com.itmill.toolkit.data.Property)
+        */
        public void setPropertyDataSource(Property newDataSource) {
-               // Stop listening the old data source changes
+               // Stops listening the old data source changes
                if (dataSource != null
                        && Property.ValueChangeNotifier.class.isAssignableFrom(
                                dataSource.getClass()))
                         ((Property.ValueChangeNotifier) dataSource).removeListener(this);
 
-               // Set the new data source
+               // Sets the new data source
                dataSource = newDataSource;
 
-               // Listen the new data source if possible
+               // Listens the new data source if possible
                if (dataSource != null
                        && Property.ValueChangeNotifier.class.isAssignableFrom(
                                dataSource.getClass()))
                         ((Property.ValueChangeNotifier) dataSource).addListener(this);
        }
 
-       /** Get the content mode of the Label.
+       /** 
+        * Gets the content mode of the Label.
         * 
         * <p>Possible content modes include:
         *   <ul>
@@ -271,13 +319,14 @@ public class Label
         *                      be preferred.</li>
         *   </ul></p>
         * 
-        * @return Content mode of the label.
+        * @return the Content mode of the label.
         */
        public int getContentMode() {
                return contentMode;
        }
 
-       /** Set the content mode of the Label.
+       /** 
+        * Sets the content mode of the Label.
         * 
         * <p>Possible content modes include:
         *   <ul>
@@ -306,7 +355,7 @@ public class Label
         *                      be preferred.</li>
         *   </ul></p>
         * 
-        * @param contentMode New content mode of the label.
+        * @param contentMode the New content mode of the label.
         */
        public void setContentMode(int contentMode) {
                if (contentMode >= CONTENT_TEXT && contentMode <= CONTENT_RAW)
@@ -329,7 +378,8 @@ public class Label
                }
        }
 
-       /** Value change event 
+       /** 
+        * Value change event 
         * @author IT Mill Ltd.
         * @version @VERSION@
         * @since 3.0
@@ -343,23 +393,27 @@ public class Label
          */
         private static final long serialVersionUID = 3906084563938586935L;
 
-        /** New instance of text change event
-                * @param source Source of the event.
+        /** 
+         * New instance of text change event
+                * @param source the Source of the event.
                 */
                public ValueChangeEvent(Label source) {
                        super(source);
                }
 
-               /** Value where the event occurred
-                * @return Source of the event.
+               /**
+                * Gets the Property that has been modified.
+                * @see com.itmill.toolkit.data.Property.ValueChangeEvent#getProperty()
                 */
                public Property getProperty() {
                        return (Property) getSource();
                }
        }
 
-       /** Add value change listener
-        * @param listener Listener to be added.
+       /** 
+        * Adds the value change listener.
+        * @param listener the Listener to be added.
+        * @see com.itmill.toolkit.data.Property.ValueChangeNotifier#addListener(com.itmill.toolkit.data.Property.ValueChangeListener)
         */
        public void addListener(Property.ValueChangeListener listener) {
                addListener(
@@ -368,8 +422,10 @@ public class Label
                        VALUE_CHANGE_METHOD);
        }
 
-       /** Remove value change listener
-        * @param listener Listener to be removed.
+       /**
+        * Removes the value change listener.
+        * @param listener the Listener to be removed. 
+        * @see com.itmill.toolkit.data.Property.ValueChangeNotifier#removeListener(com.itmill.toolkit.data.Property.ValueChangeListener)
         */
        public void removeListener(Property.ValueChangeListener listener) {
                removeListener(
@@ -378,21 +434,25 @@ public class Label
                        VALUE_CHANGE_METHOD);
        }
 
-       /** Emit options change event. */
+       /** 
+        * Emits the options change event. 
+        */
        protected void fireValueChange() {
                // Set the error message
                fireEvent(new Label.ValueChangeEvent(this));
                requestRepaint();
        }
 
-       /** Listen value change events from data source.
+       /** 
+        * Listens the value change events from data source.
         * @see com.itmill.toolkit.data.Property.ValueChangeListener#valueChange(Property.ValueChangeEvent)
         */
        public void valueChange(Property.ValueChangeEvent event) {
                fireValueChange();
        }
 
-       /** Compare Label to other objects. 
+       /** 
+        * Compares the Label to other objects. 
         * 
         * <p>Labels can be compared to other labels for sorting label contents. 
         * This is especially handy for sorting table columns.</p>
@@ -401,10 +461,10 @@ public class Label
         * compared as is. In XML, UIDL and XHTML modes, only CDATA is compared and
         * tags ignored. If the other object is not a Label, its toString() return
         * value is used in comparison.</p>
-        * 
+        * @param other the Other object to compare to.
+        * @return a negative integer, zero, or a positive integer as this object  
+        *                                      is less than, equal to, or greater than the specified object.
         * @see java.lang.Comparable#compareTo(java.lang.Object)
-        * @param other Other object to compare to
-        * @return a negative integer, zero, or a positive integer as this object  is less than, equal to, or greater than the specified object.
         */
        public int compareTo(Object other) {
                
@@ -426,10 +486,11 @@ public class Label
                return thisValue.compareTo(otherValue);
        }
 
-       /** Strip tags from the XML.
+       /** 
+        * Strips the tags from the XML.
         * 
-        * @param xml String containing a XML snippet
-        * @return The original XML without tags
+        * @param xml the String containing a XML snippet.
+        * @return the original XML without tags.
         */
        private String stripTags(String xml) {
                
index 91fbbbb0dcf6ac393c20782f2799b63a34ff3b00..a92185bf52f28a149c4d632780110509c676baf1 100644 (file)
@@ -28,7 +28,8 @@
 
 package com.itmill.toolkit.ui;
 
-/** Extension to the {@link ComponentContainer} interface which adds the
+/** 
+ * Extension to the {@link ComponentContainer} interface which adds the
  * layouting control to the elements in the container. This is
  * required by the various layout components to enable them to place other
  * components in specific locations in the UI. 
index 01a529d5bb27e99820062a9ffa29100e1bb4d745..962cf9a55ec79bed2fa96040ae9cf9d73012abdc 100644 (file)
@@ -32,12 +32,12 @@ import com.itmill.toolkit.terminal.PaintException;
 import com.itmill.toolkit.terminal.PaintTarget;
 import com.itmill.toolkit.terminal.Resource;
 
-/** Link component.
- *  Link is used to create external or internal URL links.
+/** 
+ * Link is used to create external or internal URL links.
  *
- *  Internal links can be used to create action items, which
- *  change the state to application to one of the predefined states.
- *  For example, a link can be created for existing MenuTree items.
+ * Internal links can be used to create action items, which
+ * change the state to application to one of the predefined states.
+ * For example, a link can be created for existing MenuTree items.
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -59,17 +59,22 @@ public class Link extends AbstractComponent {
        private int targetWidth = -1;
        private int targetHeight = -1;
 
-       /** Creates a new link. */
+       /** 
+        * Creates a new link. 
+        */
        public Link() {
                
        }
-       /** Creates a new link to a window. */
+       
+       /** 
+        * Creates a new link to a window. 
+        */
        public Link(Window window) {
 
-               // Set the link caption to match window caption
+               // Sets the link caption to match window caption
                setCaption(window.getCaption());
 
-               // Set the target
+               // Sets the target
                setTargetName(window.getName());
 
                setTargetName(window.getName());
@@ -78,22 +83,27 @@ public class Link extends AbstractComponent {
                setTargetBorder(window.getBorder());
        }
 
-       /** Creates a new instance of Link */
+       /** 
+        * Creates a new instance of Link. 
+        * @param caption
+        * @param resource 
+        */
        public Link(String caption, Resource resource) {
                setCaption(caption);
                this.resource = resource;
        }
 
-       /** Creates a new instance of Link that opens a new window. 
+       /** 
+        * Creates a new instance of Link that opens a new window. 
         * 
         * 
-        * @param caption Link text.
-        * @param targetName The name of the target window where the link 
+        * @param caption the Link text.
+        * @param targetName the name of the target window where the link 
         * opens to. Empty name of null implies that
         * the target is opened to the window containing the link.
-        * @param width Width of the target window.
-        * @param height Height of the target window.
-        * @param border Borget style of the target window.
+        * @param width the Width of the target window.
+        * @param height the Height of the target window.
+        * @param border the Border style of the target window.
         * 
         */
        public Link(
@@ -111,16 +121,18 @@ public class Link extends AbstractComponent {
                setTargetBorder(border);
        }
 
-       /** Get component UIDL tag.
-        *  @return Component UIDL tag as string.
+       /** 
+        * Gets the component UIDL tag.
+        * @return the Component UIDL tag as string.
         */
        public String getTag() {
                return "link";
        }
 
-       /** Paint the content of this component.
-        * @param event PaintEvent.
-        * @throws PaintException The paint operation failed.
+       /** 
+        * Paints the content of this component.
+        * @param target the Paint Event.
+        * @throws PaintException if the paint operation failed.
         */
        public void paintContent(PaintTarget target) throws PaintException {
 
@@ -153,37 +165,42 @@ public class Link extends AbstractComponent {
                }
        }
 
-       /** Returns the target window border.
-        * @return int
+       /** 
+        * Returns the target window border.
+        * @return the target window border.
         */
        public int getTargetBorder() {
                return targetBorder;
        }
 
-       /** Returns the target window height or -1 if not set.
-        * @return int
+       /** 
+        * Returns the target window height or -1 if not set.
+        * @return the target window height.
         */
        public int getTargetHeight() {
                return targetHeight < 0 ? -1 : targetHeight;
        }
 
-       /** Returns the target window name. Empty name of null implies that
+       /** 
+        * Returns the target window name. Empty name of null implies that
         * the target is opened to the window containing the link.
-        * @return String
+        * @return the target window name.
         */
        public String getTargetName() {
                return targetName;
        }
 
-       /** Returns the target window width or -1 if not set.
-        * @return int
+       /** 
+        * Returns the target window width or -1 if not set.
+        * @return the target window width.
         */
        public int getTargetWidth() {
                return targetWidth < 0 ? -1 : targetWidth;
        }
 
-       /** Sets the border of the target window.
-        * @param targetBorder The targetBorder to set
+       /** 
+        * Sets the border of the target window.
+        * @param targetBorder the targetBorder to set.
         */
        public void setTargetBorder(int targetBorder) {
                if (targetBorder == TARGET_BORDER_DEFAULT
@@ -194,45 +211,51 @@ public class Link extends AbstractComponent {
                }
        }
 
-       /** Sets the target window height.
-        * @param targetHeight The targetHeight to set
+       /** 
+        * Sets the target window height.
+        * @param targetHeight the targetHeight to set.
         */
        public void setTargetHeight(int targetHeight) {
                this.targetHeight = targetHeight;
                requestRepaint();
        }
 
-       /** Sets the target window name.
-        * @param targetName The targetName to set
+       /** 
+        * Sets the target window name.
+        * @param targetName the targetName to set.
         */
        public void setTargetName(String targetName) {
                this.targetName = targetName;
                requestRepaint();
        }
 
-       /** Sets the target window width.
-        * @param targetWidth The targetWidth to set
+       /** 
+        * Sets the target window width.
+        * @param targetWidth the targetWidth to set.
         */
        public void setTargetWidth(int targetWidth) {
                this.targetWidth = targetWidth;
                requestRepaint();
        }
-       /** Returns the resource this link opens.
-        * @return Resource
+       /** 
+        * Returns the resource this link opens.
+        * @return the Resource.
         */
        public Resource getResource() {
                return resource;
        }
 
-       /** Returns the window this link opens.
-        * @return Window
+       /** 
+        * Returns the window this link opens.
+        * @return the Window.
         */
        public Window getWindow() {
                return window;
        }
 
-       /** Sets the resource this link opens.
-        * @param resource The resource to set
+       /** 
+        * Sets the resource this link opens.
+        * @param resource the resource to set.
         */
        public void setResource(Resource resource) {
                this.resource = resource;
@@ -242,8 +265,9 @@ public class Link extends AbstractComponent {
                requestRepaint();
        }
 
-       /** Sets the window this link opens.
-        * @param window The window to set
+       /** 
+        * Sets the window this link opens.
+        * @param window the window to set.
         */
        public void setWindow(Window window) {
                this.window = window;
index 876a6436790d3ead404b7cd3d6445557ccd39ab2..959dfd876258d70310323e2224d6dd9a8c29000a 100644 (file)
@@ -36,7 +36,7 @@ import java.util.LinkedList;
 
 /** Ordered layout.
  *
- * Ordered layout is a component container, which shows the subcomponents in the
+ * <code>OrderedLayout</code> is a component container, which shows the subcomponents in the
  * order of their addition in specified orientation.
  *
  * @author IT Mill Ltd.
@@ -49,43 +49,55 @@ public class OrderedLayout
 
        /* Predefined orientations ***************************************** */
 
-       /** Components are to be layed out vertically. */
+       /** 
+        * Components are to be layed out vertically. 
+        */
        public static int ORIENTATION_VERTICAL = 0;
-       /** Components are to be layed out horizontally. */
+       /** 
+        * Components are to be layed out horizontally. 
+        */
        public static int ORIENTATION_HORIZONTAL = 1;
 
-       /** Custom layout slots containing the components */
+       /** 
+        * Custom layout slots containing the components. 
+        */
        private LinkedList components = new LinkedList();
 
-       /** Orientation of the layout. */
+       /** 
+        * Orientation of the layout. 
+        */
        private int orientation;
 
-       /** Create a new ordered layout.
-        * The order of the layout is ORIENTATION_VERTICAL.
+       /** 
+        * Creates a new ordered layout.
+        * The order of the layout is <code>ORIENTATION_VERTICAL</code>.
         */
        public OrderedLayout() {
                orientation = ORIENTATION_VERTICAL;
        }
 
-       /** Create a new ordered layout.
+       /** 
+        * Create a new ordered layout.
         * The orientation of the layout is given as parameters.
         *
-        * @param orientation Orientation of the layout.
+        * @param orientation the Orientation of the layout.
         */
        public OrderedLayout(int orientation) {
                this.orientation = orientation;
        }
 
-       /** Get component UIDL tag.
-        * @return Component UIDL tag as string.
+       /** 
+        * Gets the component UIDL tag.
+        * @return the Component UIDL tag as string.
         */
        public String getTag() {
                return "orderedlayout";
        }
 
-       /** Add a component into this container. The component is added to the
+       /** 
+        * Add a component into this container. The component is added to the
         * right or under the previous component.
-        * @param c The component to be added.
+        * @param c the component to be added.
         */
        public void addComponent(Component c) {
                components.add(c);
@@ -93,9 +105,10 @@ public class OrderedLayout
                requestRepaint();
        }
 
-       /** Add a component into this container. The component is added to the
+       /** 
+        * Adds a component into this container. The component is added to the
         * left or on top of the other components.
-        * @param c The component to be added.
+        * @param c the component to be added.
         */
        public void addComponentAsFirst(Component c) {
                components.addFirst(c);
@@ -103,9 +116,10 @@ public class OrderedLayout
                requestRepaint();
        }
 
-       /** Add a component into indexed position in this container. 
-        * @param c The component to be added.
-        * @param index Index of the component position. 
+       /** 
+        * Adds a component into indexed position in this container. 
+        * @param c the component to be added.
+        * @param index the Index of the component position. 
         * The components currently in and after the position are shifted forwards.
         */
        public void addComponent(Component c, int index) {
@@ -114,8 +128,9 @@ public class OrderedLayout
                requestRepaint();
        }
 
-       /** Remove a component from this container.
-        * @param c The component to be removed.
+       /** 
+        * Removes the component from this container.
+        * @param c the component to be removed.
         */
        public void removeComponent(Component c) {
                super.removeComponent(c);
@@ -123,26 +138,28 @@ public class OrderedLayout
                requestRepaint();
        }
 
-       /** Get component container iterator for going trough all the components in
+       /** 
+        * Gets the component container iterator for going trough all the components in
         * the container.
-        * @return Iterator of the components inside the container.
+        * @return the Iterator of the components inside the container.
         */
        public Iterator getComponentIterator() {
                return components.iterator();
        }
 
-       /** Paint the content of this component.
-        * @param event PaintEvent.
-        * @throws PaintException The paint operation failed.
+       /** 
+        * Paints the content of this component.
+        * @param target the Paint Event.
+        * @throws PaintException if the paint operation failed.
         */
        public void paintContent(PaintTarget target) throws PaintException {
 
-               // Add the attributes: orientation 
+               // Adds the attributes: orientation 
                // note that the default values (b/vertival) are omitted
                if (orientation == ORIENTATION_HORIZONTAL)
                        target.addAttribute("orientation", "horizontal");
 
-               // Add all items in all the locations
+               // Adds all items in all the locations
                for (Iterator i = components.iterator(); i.hasNext();) {
                        Component c = (Component) i.next();
                        if (c != null) {
@@ -151,19 +168,21 @@ public class OrderedLayout
                }
        }
 
-       /** Get the orientation of the container.
-        * @return Value of property orientation.
+       /** 
+        * Gets the orientation of the container.
+        * @return the Value of property orientation.
         */
        public int getOrientation() {
                return this.orientation;
        }
 
-       /** Set the orientation of the container.
-        * @param orientation New value of property orientation.
+       /** 
+        * Set the orientation of the container.
+        * @param orientation the New value of property orientation.
         */
        public void setOrientation(int orientation) {
 
-               // Check the validity of the argument
+               // Checks the validity of the argument
                if (orientation < ORIENTATION_VERTICAL
                        || orientation > ORIENTATION_HORIZONTAL)
                        throw new IllegalArgumentException();
@@ -176,7 +195,7 @@ public class OrderedLayout
                Component oldComponent,
                Component newComponent) {
 
-               // Get the locations                    
+               // Gets the locations                   
                int oldLocation = -1;
                int newLocation = -1;
                int location = 0;
index 0c72bc9d160718ec5710cdb81c29bc2e166ae726..5991d752c673627b6268af67936cdfed2ccca91c 100644 (file)
@@ -36,7 +36,8 @@ import com.itmill.toolkit.terminal.PaintTarget;
 import com.itmill.toolkit.terminal.Scrollable;
 import com.itmill.toolkit.terminal.Sizeable;
 
-/** Panel - a simple single component container.
+/** 
+ * Panel - a simple single component container.
  * @author IT Mill Ltd.
  * @version @VERSION@
  * @since 3.0
@@ -49,76 +50,98 @@ public class Panel
                ComponentContainer.ComponentAttachListener,
                ComponentContainer.ComponentDetachListener {
 
-       /** Layout of the panel */
+       /** 
+        * Layout of the panel. 
+        */
        private Layout layout;
 
-       /** Width of the panel or -1 if unspecified */
+       /** 
+        * Width of the panel or -1 if unspecified. 
+        */
        private int width = -1;
 
-       /** Height of the panel or -1 if unspecified */
+       /** 
+        * Height of the panel or -1 if unspecified. 
+        */
        private int height = -1;
 
-       /** Width unit */
+       /** 
+        * Width unit. 
+        */
        private int widthUnit = Sizeable.UNITS_PIXELS;
 
-       /** Height unit */
+       /** 
+        * Height unit. 
+        */
        private int heightUnit = Sizeable.UNITS_PIXELS;
 
-       /** Scroll X position */
+       /** 
+        * Scroll X position. 
+        */
        private int scrollOffsetX = 0;
 
-       /** Scroll Y position */
+       /** 
+        * Scroll Y position. 
+        */
        private int scrollOffsetY = 0;
 
-       /** Scrolling mode */
+       /** 
+        * Scrolling mode. 
+        */
        private boolean scrollable = false;
 
-       /** Create new empty panel.
-        *  Ordered layout is used.
+       /** 
+        * Creates the new empty panel.
+        * Ordered layout is used.
         */
        public Panel() {
                this(new OrderedLayout());
        }
 
-       /** Create new empty panel with given layout.
+       /** 
+        * Creates the new empty panel with given layout.
         * Layout must be non-null.
         *
-        * @param layout The layout used in the panel.
+        * @param layout the layout used in the panel.
         */
        public Panel(Layout layout) {
                setLayout(layout);
        }
 
-       /** Create new empty panel with caption.
+       /** 
+        * Creates the new empty panel with caption.
         * Ordered layout is used.
         *
-        * @param caption The caption used in the panel.
+        * @param caption the caption used in the panel.
         */
        public Panel(String caption) {
                this(caption, new OrderedLayout());
        }
 
-       /** Create new empty panel with caption.
+       /** 
+        * Creates the new empty panel with caption.
         *
-        * @param caption The caption of the panel.
-        * @param layout The layout used in the panel.
+        * @param caption the caption of the panel.
+        * @param layout the layout used in the panel.
         */
        public Panel(String caption, Layout layout) {
                this(layout);
                setCaption(caption);
        }
 
-       /** Get the current layout of the panel.
-        * @return Current layout of the panel.
+       /** 
+        * Gets the current layout of the panel.
+        * @return the Current layout of the panel.
         */
        public Layout getLayout() {
                return this.layout;
        }
 
-       /** Set the layout of the panel.
+       /** 
+        * Sets the layout of the panel.
         * All the components are moved to new layout.
         *
-        * @param layout New layout of the panel.
+        * @param layout the New layout of the panel.
         */
        public void setLayout(Layout layout) {
 
@@ -126,7 +149,7 @@ public class Panel
                if (layout == null)
                        layout = new OrderedLayout();
 
-               // Set the panel to be parent for the layout
+               // Sets the panel to be parent for the layout
                layout.setParent(this);
                dependsOn(layout);
 
@@ -138,23 +161,24 @@ public class Panel
                        this.layout.setParent(null);
                }
                
-               // Remove the event listeners from the old layout
+               // Removes the event listeners from the old layout
                if (this.layout != null) {
                        this.layout.removeListener((ComponentContainer.ComponentAttachListener) this);  
                        this.layout.removeListener((ComponentContainer.ComponentDetachListener) this);  
                }
 
-               // Set the new layout
+               // Sets the new layout
                this.layout = layout;
 
-               // Add event listeners for new layout
+               // Adds the event listeners for new layout
                        layout.addListener((ComponentContainer.ComponentAttachListener) this);  
                        layout.addListener((ComponentContainer.ComponentDetachListener) this);  
        }
 
-       /** Paint the content of this component.
-        * @param event PaintEvent.
-        * @throws PaintException The paint operation failed.
+       /** 
+        * Paints the content of this component.
+        * @param target the Paint Event.
+        * @throws PaintException if the paint operation failed.
         */
        public void paintContent(PaintTarget target) throws PaintException {
                layout.paint(target);
@@ -166,15 +190,18 @@ public class Panel
                }
        }
 
-       /** Get component UIDL tag.
-        * @return Component UIDL tag as string.
+       /** 
+        * Gets the component UIDL tag.
+        * @return the Component UIDL tag as string.
         */
        public String getTag() {
                return "panel";
        }
 
-       /** Add a component into this container.
-        * @param c The component to be added.
+       /** 
+        * Adds the component into this container.
+        * @param c the component to be added.
+        * @see com.itmill.toolkit.ui.AbstractComponentContainer#addComponent(com.itmill.toolkit.ui.Component)
         */
        public void addComponent(Component c) {
                layout.addComponent(c);
@@ -182,8 +209,10 @@ public class Panel
                // request repaints
        }
 
-       /** Remove a component from this container.
+       /**
+        * Removes the component from this container.
         * @param c The component to be added.
+        * @see com.itmill.toolkit.ui.AbstractComponentContainer#removeComponent(com.itmill.toolkit.ui.Component)
         */
        public void removeComponent(Component c) {
                layout.removeComponent(c);
@@ -191,39 +220,49 @@ public class Panel
                // request repaints
        }
 
-       /** Get component container iterator for going trough all the components in the container.
-        * @return Iterator of the components inside the container.
+       /** 
+        * Gets the component container iterator for going trough all the components in the container.
+        * @return the Iterator of the components inside the container.
+        * @see com.itmill.toolkit.ui.ComponentContainer#getComponentIterator()
         */
        public Iterator getComponentIterator() {
                return layout.getComponentIterator();
        }
 
        /**
+        * Gets the height in pixels.
         * @return  The height in pixels or negative value if not assigned.
+        * @see com.itmill.toolkit.terminal.Sizeable#getHeight()
         */
        public int getHeight() {
                return height;
        }
 
        /**
+        * Gets the Width in pixel.
         * @return The width in pixels or negative value if not assigned. 
+        * @see com.itmill.toolkit.terminal.Sizeable#getWidth()
         */
        public int getWidth() {
                return width;
        }
 
-       /** Sets the height in pixels.
+       /**
+        * Sets the height in pixels.
         * Use negative value to let the client decide the height.
-        * @param height The height to set
+        * @param height the height to set.
+        * @see com.itmill.toolkit.terminal.Sizeable#setHeight(int)
         */
        public void setHeight(int height) {
                this.height = height;
                requestRepaint();
        }
 
-       /** Sets the width in pixels.
+       /**
+        * Sets the width in pixels.
         * Use negative value to allow the client decide the width.
-        * @param width The width to set
+        * @param width the width to set.
+        * @see com.itmill.toolkit.terminal.Sizeable#setWidth(int)
         */
        public void setWidth(int width) {
                this.width = width;
@@ -231,6 +270,8 @@ public class Panel
        }
 
        /**
+        * Called when one or more variables handled by the implementing class
+     * are changed.
         * @see com.itmill.toolkit.terminal.VariableOwner#changeVariables(Object, Map)
         */
        public void changeVariables(Object source, Map variables) {
@@ -254,6 +295,7 @@ public class Panel
        }
 
        /**
+        * Gets the height property units.
         * @see com.itmill.toolkit.terminal.Sizeable#getHeightUnits()
         */
        public int getHeightUnits() {
@@ -261,13 +303,15 @@ public class Panel
        }
 
        /**
+        * Gets the width property units. 
         * @see com.itmill.toolkit.terminal.Sizeable#getWidthUnits()
         */
        public int getWidthUnits() {
                return widthUnit;
        }
 
-       /** Set height units.
+       /** 
+        * Sets the height units.
         * Panel supports only Sizeable.UNITS_PIXELS and this is ignored.
         * @see com.itmill.toolkit.terminal.Sizeable#setHeightUnits(int)
         */
@@ -275,8 +319,9 @@ public class Panel
                // Ignored
        }
 
-       /** Set width units.
-        *  Panel supports only Sizeable.UNITS_PIXELS, and this is ignored.
+       /** 
+        * Sets the width units.
+        * Panel supports only Sizeable.UNITS_PIXELS, and this is ignored.
         * @see com.itmill.toolkit.terminal.Sizeable#setWidthUnits(int)
         */
        public void setWidthUnits(int units) {
@@ -336,7 +381,8 @@ public class Panel
                layout.replaceComponent(oldComponent, newComponent);
        }
 
-       /** Pass the events from underlying layout forwards.
+       /** 
+        * A new component is attached to container.
         * @see com.itmill.toolkit.ui.ComponentContainer.ComponentAttachListener#componentAttachedToContainer(com.itmill.toolkit.ui.ComponentContainer.ComponentAttachEvent)
         */
        public void componentAttachedToContainer(ComponentAttachEvent event) {
@@ -344,7 +390,8 @@ public class Panel
                        fireComponentAttachEvent(event.getAttachedComponent());
        }
 
-       /** Pass the events from underlying layout forwards.
+       /** 
+        * A component has been detached from container.
         * @see com.itmill.toolkit.ui.ComponentContainer.ComponentDetachListener#componentDetachedFromContainer(com.itmill.toolkit.ui.ComponentContainer.ComponentDetachEvent)
         */
        public void componentDetachedFromContainer(ComponentDetachEvent event) {
@@ -352,20 +399,24 @@ public class Panel
                        fireComponentDetachEvent(event.getDetachedComponent());
        }
 
-       /*
+       /**
+        * Notifies the component that it is connected to an application.
         * @see com.itmill.toolkit.ui.Component#attach()
         */
        public void attach() {
                if (layout != null) layout.attach();
        }
 
-       /*
+       /**
+        * Notifies the component that it is detached from the application.
         * @see com.itmill.toolkit.ui.Component#detach()
         */
        public void detach() {
                if (layout != null) layout.detach();
-       }       
-       /* 
+       }
+       
+       /**
+        * Removes all components from this container. 
         * @see com.itmill.toolkit.ui.ComponentContainer#removeAllComponents()
         */
        public void removeAllComponents() {
index f2bc16098c3e9c3d0f61440ff501cb22970716da..de0e54c94b3dedace7369ebc8ee1d510a2ab0178 100644 (file)
@@ -34,10 +34,10 @@ import com.itmill.toolkit.terminal.PaintException;
 import com.itmill.toolkit.terminal.PaintTarget;
 
 /** 
- * ProgressIndicator is component that shows user state of a process 
+ * <code>ProgressIndicator</code> is component that shows user state of a process 
  * (like long computing or file upload)
  *
- * ProgressIndicator has two mainmodes. One for indeterminate processes and 
+ * <code>ProgressIndicator</code> has two mainmodes. One for indeterminate processes and 
  * other (default) for processes which progress can be measured
  *
  * May view an other property that indicates progress 0...1
@@ -53,12 +53,14 @@ public class ProgressIndicator
                Property.Viewer,
                Property.ValueChangeListener {
 
-       /** Content mode, where the label contains only plain text. The getValue()
+       /** 
+        * Content mode, where the label contains only plain text. The getValue()
         * result is coded to XML when painting. 
         */
        public static final int CONTENT_TEXT = 0;
 
-       /** Content mode, where the label contains preformatted text.
+       /** 
+        * Content mode, where the label contains preformatted text.
         */
        public static final int CONTENT_PREFORMATTED = 1;
        
@@ -68,31 +70,41 @@ public class ProgressIndicator
 
        private int pollingInterval = 1000;
 
-       /** Creates an a new ProgressIndicator. */
+       /** 
+        * Creates an a new ProgressIndicator. 
+        */
        public ProgressIndicator() {
                setPropertyDataSource(new ObjectProperty(new Float(0), Float.class));
        }
 
-       /** Creates a new instance of ProgressIndicator with given state. */
+       /** 
+        * Creates a new instance of ProgressIndicator with given state.
+        * @param value 
+        */
        public ProgressIndicator(Float value) {
                setPropertyDataSource(new ObjectProperty(value, Float.class));
        }
 
-       /** Creates a new instance of ProgressIndicator with stae read from given datasource. */
+       /** 
+        * Creates a new instance of ProgressIndicator with stae read from given datasource. 
+        * @param contentSource
+        */
        public ProgressIndicator(Property contentSource) {
                setPropertyDataSource(contentSource);
        }
 
-       /** Get component UIDL tag.
-        * @return Component UIDL tag as string.
+       /** 
+        * Gets the component UIDL tag.
+        * @return the Component UIDL tag as string.
         */
        public String getTag() {
                return "progressindicator";
        }
 
-       /** Set the component to read-only.
+       /** 
+        * Sets the component to read-only.
         * Readonly is not used in ProgressIndicator.
-        * @param readOnly True to enable read-only mode, False to disable it
+        * @param readOnly True to enable read-only mode, False to disable it.
         */
        public void setReadOnly(boolean readOnly) {
                if (dataSource == null)
@@ -100,9 +112,10 @@ public class ProgressIndicator
                dataSource.setReadOnly(readOnly);
        }
 
-       /** Is the component read-only ?
+       /** 
+        * Is the component read-only ?
         * Readonly is not used in ProgressIndicator - this returns allways false.
-        * @return True iff the component is in read only mode
+        * @return True if the component is in read only mode.
         */
        public boolean isReadOnly() {
                if (dataSource == null)
@@ -110,8 +123,10 @@ public class ProgressIndicator
                return dataSource.isReadOnly();
        }
 
-       /** Paint the content of this component.
-        * @param event PaintEvent.
+       /** 
+        * Paints the content of this component.
+        * @param target the Paint Event.
+        * @throws PaintException if the Paint Operation fails.
         */
        public void paintContent(PaintTarget target) throws PaintException {
                target.addAttribute("indeterminate", indeterminate);
@@ -119,9 +134,11 @@ public class ProgressIndicator
                target.addAttribute("state", this.getValue().toString());
        }
 
-       /** Get the value of the ProgressIndicator.
-        * Value of the ProgressIndicator is Float between 0 and 1
-        * @return Value of the ProgressIndicator
+       /** 
+        * Gets the value of the ProgressIndicator.
+        * Value of the ProgressIndicator is Float between 0 and 1.
+        * @return the Value of the ProgressIndicator.
+        * @see com.itmill.toolkit.ui.AbstractField#getValue()
         */
        public Object getValue() {
                if (dataSource == null)
@@ -129,79 +146,96 @@ public class ProgressIndicator
                return dataSource.getValue();
        }
 
-       /** Set the value of the ProgressIndicator.
-        * Value of the ProgressIndicator is the Float  between 0 and 1
-        * @param newValue New value of the ProgressIndicator
+       /**
+        * Sets the value of the ProgressIndicator.
+        * Value of the ProgressIndicator is the Float  between 0 and 1.
+        * @param newValue the New value of the ProgressIndicator.
+        * @see com.itmill.toolkit.ui.AbstractField#setValue(java.lang.Object)
         */
        public void setValue(Object newValue) {
                if (dataSource == null)
                        throw new IllegalStateException("Datasource must be se");
                this.dataSource.setValue(newValue);
        }
-
+       
+       /**
+        * @see com.itmill.toolkit.ui.AbstractField#toString()
+        */
        public String toString() {
                if (dataSource == null)
                        throw new IllegalStateException("Datasource must be se");
                return dataSource.toString();
        }
-
+       
+       /**
+        * @see com.itmill.toolkit.ui.AbstractField#getType()
+        */
        public Class getType() {
                if (dataSource == null)
                        throw new IllegalStateException("Datasource must be se");
                return dataSource.getType();
        }
 
-       /** Get viewing data-source property.  */
+       /**
+        * Gets the viewing data-source property.
+        * @return the datasource.  
+        * @see com.itmill.toolkit.ui.AbstractField#getPropertyDataSource()
+        */
        public Property getPropertyDataSource() {
                return dataSource;
        }
 
-       /** Set the property as data-source for viewing.  */
+       /**
+        * Sets the property as data-source for viewing.
+        * @param newDataSource the new data source.  
+        * @see com.itmill.toolkit.ui.AbstractField#setPropertyDataSource(com.itmill.toolkit.data.Property)
+        */
        public void setPropertyDataSource(Property newDataSource) {
-               // Stop listening the old data source changes
+               // Stops listening the old data source changes
                if (dataSource != null
                        && Property.ValueChangeNotifier.class.isAssignableFrom(
                                dataSource.getClass()))
                         ((Property.ValueChangeNotifier) dataSource).removeListener(this);
 
-               // Set the new data source
+               // Sets the new data source
                dataSource = newDataSource;
 
-               // Listen the new data source if possible
+               // Listens the new data source if possible
                if (dataSource != null
                        && Property.ValueChangeNotifier.class.isAssignableFrom(
                                dataSource.getClass()))
                         ((Property.ValueChangeNotifier) dataSource).addListener(this);
        }
 
-       /** Get the mode of ProgressIndicator.
+       /** 
+        * Gets the mode of ProgressIndicator.
         * 
-        * @return true if in indeterminate mode
+        * @return true if in indeterminate mode.
         */
        public boolean getContentMode() {
                return indeterminate;
        }
        
        /**
-        * Set ProgressIndicator to indeterminate mode
+        * Sets the ProgressIndicator to indeterminate mode.
         * 
-        * @param newValue true to set to indeterminate mode
+        * @param newValue true to set to indeterminate mode.
         */
        public void setIndeterminate(boolean newValue) {
                indeterminate = newValue;
        }
        
        /**
-        * Set interval that compnent checks for progress
-        * @param newValue interval in milliseconds
+        * Sets the interval that component checks for progress.
+        * @param newValue the interval in milliseconds.
         */
        public void setPollingInterval(int newValue) {
                pollingInterval = newValue;
        }
        
        /**
-        * Get interval that component checks for progress
-        * @return interval in milliseconds
+        * Gets the interval that component checks for progress.
+        * @return the interval in milliseconds.
         */
        public int getPollingInterval() {
                return pollingInterval;
index 2c490bb2297d816108e6254ea794c918e794114e..5c66e1463ac75fcd32e6b16a57131c7ecb1087b2 100644 (file)
@@ -122,37 +122,59 @@ public class Select extends AbstractField implements Container,
         */
        public static final int ITEM_CAPTION_MODE_PROPERTY = 6;
 
-       /** Is the select in multiselect mode? */
+       /** 
+        * Is the select in multiselect mode? 
+        */
        private boolean multiSelect = false;
 
-       /** Select options */
+       /** 
+        * Select options. 
+        */
        protected Container items;
 
-       /** Is the user allowed to add new options? */
+       /** 
+        * Is the user allowed to add new options? 
+        */
        private boolean allowNewOptions;
 
-       /** Keymapper used to map key values */
+       /** 
+        * Keymapper used to map key values. 
+        */
        protected KeyMapper itemIdMapper = new KeyMapper();
 
-       /** Item icons */
+       /** 
+        * Item icons. 
+        */
        private HashMap itemIcons = new HashMap();
 
-       /** Item captions */
+       /** 
+        * Item captions. 
+        */
        private HashMap itemCaptions = new HashMap();
 
-       /** Item caption mode */
+       /** 
+        * Item caption mode. 
+        */
        private int itemCaptionMode = ITEM_CAPTION_MODE_EXPLICIT_DEFAULTS_ID;
 
-       /** Item caption source property id */
+       /** 
+        * Item caption source property id. 
+        */
        private Object itemCaptionPropertyId = null;
 
-       /** Item icon source property id */
+       /** 
+        * Item icon source property id. 
+        */
        private Object itemIconPropertyId = null;
 
-       /** List of property set change event listeners */
+       /** 
+        * List of property set change event listeners. 
+        */
        private LinkedList propertySetEventListeners = null;
 
-       /** List of item set change event listeners */
+       /** 
+        * List of item set change event listeners. 
+        */
        private LinkedList itemSetEventListeners = null;
 
        /**
@@ -166,7 +188,8 @@ public class Select extends AbstractField implements Container,
         */
        private Object nullSelectionItemId = null;
 
-       /** Mechanism for streaming select options outside of the UIDL.
+       /** 
+        * Mechanism for streaming select options outside of the UIDL.
         * 
         * By default streaming is not enabled and this is null. Streaming can 
         * be enabled with setOptionsLoadingLazy(true). 
@@ -193,13 +216,10 @@ public class Select extends AbstractField implements Container,
 
        /**
         * Creates a new select wthat is connected to a data-source.
-        * 
-        * @param dataSource
-        *            Container datasource to be selected from by this select.
         * @param caption
-        *            Caption of the component.
-        * @param selected
-        *            Selected item id or null, if none selected.
+        *            the Caption of the component.
+        * @param dataSource
+        *            the Container datasource to be selected from by this select.
         */
        public Select(String caption, Container dataSource) {
                setCaption(caption);
@@ -210,15 +230,13 @@ public class Select extends AbstractField implements Container,
         * Creates a new select that is filled from a collection of option values.
         * 
         * @param caption
-        *            Caption of this field.
+        *            the Caption of this field.
         * @param options
-        *            Collection containing the options.
-        * @param selected
-        *            Selected option or null, if none selected.
+        *            the Collection containing the options.
         */
        public Select(String caption, Collection options) {
 
-               // Create options container and add given options to it
+               // Creates the options container and add given options to it
                Container c = new IndexedContainer();
                if (options != null)
                        for (Iterator i = options.iterator(); i.hasNext();)
@@ -231,25 +249,25 @@ public class Select extends AbstractField implements Container,
        /* Component methods **************************************************** */
 
        /**
-        * Paint the content of this component.
+        * Paints the content of this component.
         * 
-        * @param event
-        *            PaintEvent.
+        * @param target
+        *            the Paint Event.
         * @throws PaintException
-        *             The paint operation failed.
+        *             if the paint operation failed.
         */
        public void paintContent(PaintTarget target) throws PaintException {
 
-               // Paint field properties
+               // Paints field properties
                super.paintContent(target);
 
-               // Paint select attributes
+               // Paints select attributes
                if (isMultiSelect())
                        target.addAttribute("selectmode", "multi");
                if (isNewItemsAllowed())
                        target.addAttribute("allownewitem", true);
 
-               // Construct selected keys array
+               // Constructs selected keys array
                String[] selectedKeys;
                if (isMultiSelect())
                        selectedKeys = new String[((Set) getValue()).size()];
@@ -257,7 +275,7 @@ public class Select extends AbstractField implements Container,
                        selectedKeys = new String[(getValue() == null
                                        && getNullSelectionItemId() == null ? 0 : 1)];
                
-               // Paint options and create array of selected id keys
+               // Paints the options and create array of selected id keys
                target.startTag("options");
                // TODO Also use conventional rendering if lazy loading is not supported by terminal
                if (!isLazyLoading()) {
@@ -268,13 +286,13 @@ public class Select extends AbstractField implements Container,
                        if (getNullSelectionItemId() != null
                                        && (!ids.contains(getNullSelectionItemId()))) {
 
-                               // Get the option attribute values
+                               // Gets the option attribute values
                                Object id = getNullSelectionItemId();
                                String key = itemIdMapper.key(id);
                                String caption = getItemCaption(id);
                                Resource icon = getItemIcon(id);
 
-                               // Paint option
+                               // Paints option
                                target.startTag("so");
                                if (icon != null)
                                        target.addAttribute("icon", icon);
@@ -288,16 +306,16 @@ public class Select extends AbstractField implements Container,
                                target.endTag("so");
                        }
 
-                       // Paint available selection options from data source
+                       // Paints the available selection options from data source
                        for (Iterator i = getItemIds().iterator(); i.hasNext();) {
 
-                               // Get the option attribute values
+                               // Gets the option attribute values
                                Object id = i.next();
                                String key = itemIdMapper.key(id);
                                String caption = getItemCaption(id);
                                Resource icon = getItemIcon(id);
 
-                               // Paint option
+                               // Paints the option
                                target.startTag("so");
                                if (icon != null)
                                        target.addAttribute("icon", icon);
@@ -331,10 +349,7 @@ public class Select extends AbstractField implements Container,
 
        /**
         * Invoked when the value of a variable has changed.
-        * 
-        * @param event
-        *            Variable change event containing the information about the
-        *            changed variable.
+        * @see com.itmill.toolkit.ui.AbstractComponent#changeVariables(java.lang.Object, java.util.Map)
         */
        public void changeVariables(Object source, Map variables) {
 
@@ -344,14 +359,14 @@ public class Select extends AbstractField implements Container,
                String newitem = (String) variables.get("newitem");
                if (newitem != null && newitem.length() > 0) {
 
-                       // Check for readonly
+                       // Checks for readonly
                        if (isReadOnly())
                                throw new Property.ReadOnlyException();
 
-                       // Add new option
+                       // Adds new option
                        if (addItem(newitem) != null) {
 
-                               // Set the caption property, if used
+                               // Sets the caption property, if used
                                if (getItemCaptionPropertyId() != null)
                                        try {
                                                getContainerProperty(newitem,
@@ -371,7 +386,7 @@ public class Select extends AbstractField implements Container,
                        // Multiselect mode
                        if (isMultiSelect()) {
 
-                               // Convert the key-array to id-set
+                               // Converts the key-array to id-set
                                LinkedList s = new LinkedList();
                                for (int i = 0; i < ka.length; i++) {
                                        Object id = itemIdMapper.get(ka[i]);
@@ -382,7 +397,7 @@ public class Select extends AbstractField implements Container,
                                                s.add(newitem);
                                }
 
-                               // Limit the deselection to the set of visible items
+                               // Limits the deselection to the set of visible items
                                // (non-visible items can not be deselected)
                                Collection visible = getVisibleItemIds();
                                if (visible != null) {
@@ -401,7 +416,7 @@ public class Select extends AbstractField implements Container,
                        else {
                                if (ka.length == 0) {
 
-                                       // Allow deselection only if the deselected item is visible
+                                       // Allows deselection only if the deselected item is visible
                                        Object current = getValue();
                                        Collection visible = getVisibleItemIds();
                                        if (visible != null && visible.contains(current))
@@ -420,16 +435,16 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
-        * Get component UIDL tag.
+        * Gets the component UIDL tag.
         * 
-        * @return Component UIDL tag as string.
+        * @return the Component UIDL tag as string.
         */
        public String getTag() {
                return "select";
        }
 
        /**
-        * Get the visible item ids. In Select, this returns list of all item ids,
+        * Gets the visible item ids. In Select, this returns list of all item ids,
         * but can be overriden in subclasses if they paint only part of the items
         * to the terminal or null if no items is visible.
         */
@@ -442,12 +457,12 @@ public class Select extends AbstractField implements Container,
        /* Property methods ***************************************************** */
 
        /**
-        * Return the type of the property. getValue and setValue functions must be
-        * compatible with this type: one can safely cast getValue() to given type
+        * Returns the type of the property. <code>getValue</code> and <code>setValue</code> methods must be
+        * compatible with this type: one can safely cast <code>getValue</code> to given type
         * and pass any variable assignable to this type as a parameter to
-        * setValue().
+        * <code>setValue</code>.
         * 
-        * @return type Type of the property.
+        * @return the Type of the property.
         */
        public Class getType() {
                if (isMultiSelect())
@@ -455,9 +470,10 @@ public class Select extends AbstractField implements Container,
                else
                        return Object.class;
        }
-
+       
        /**
-        * Get the selected item id or in multiselect mode a set of selected ids.
+        * Gets the selected item id or in multiselect mode a set of selected ids.
+        * @see com.itmill.toolkit.ui.AbstractField#getValue()
         */
        public Object getValue() {
                Object retValue = super.getValue();
@@ -483,7 +499,7 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
-        * Set the visible value of the property.
+        * Sets the visible value of the property.
         * 
         * <p>
         * The value of the select is the selected item id. If the select is in
@@ -492,7 +508,8 @@ public class Select extends AbstractField implements Container,
         * </p>
         * 
         * @param newValue
-        *            New selected item or collection of selected items.
+        *            the New selected item or collection of selected items.
+        * @see com.itmill.toolkit.ui.AbstractField#setValue(java.lang.Object)
         */
        public void setValue(Object newValue) throws Property.ReadOnlyException,
                        Property.ConversionException {
@@ -509,55 +526,59 @@ public class Select extends AbstractField implements Container,
        /* Container methods **************************************************** */
 
        /**
-        * Get the item from the container with given id. If the container does not
+        * Gets the item from the container with given id. If the container does not
         * contain the requested item, null is returned.
+        * @param itemId the item id.
+        * @return the item from the container.
         */
        public Item getItem(Object itemId) {
                return items.getItem(itemId);
        }
 
        /**
-        * Get item Id collection from the container.
+        * Gets the item Id collection from the container.
         * 
-        * @return Collection of item ids.
+        * @return the Collection of item ids.
         */
        public Collection getItemIds() {
                return items.getItemIds();
        }
 
        /**
-        * Get property Id collection from the container.
+        * Gets the property Id collection from the container.
         * 
-        * @return Collection of property ids.
+        * @return the Collection of property ids.
         */
        public Collection getContainerPropertyIds() {
                return items.getContainerPropertyIds();
        }
 
        /**
-        * Get property type.
+        * Gets the property type.
         * 
-        * @param id
-        *            Id identifying the of the property.
+        * @param propertyId
+        *            the Id identifying the property.
+        * @see com.itmill.toolkit.data.Container#getType(java.lang.Object)
         */
        public Class getType(Object propertyId) {
                return items.getType(propertyId);
        }
 
-       /**
-        * Get the number of items in the container.
+       /*
+        * Gets the number of items in the container.
         * 
-        * @return Number of items in the container.
+        * @return the Number of items in the container.
+        * @see com.itmill.toolkit.data.Container#size()
         */
        public int size() {
                return items.size();
        }
 
        /**
-        * Test, if the collection contains an item with given id.
+        * Tests, if the collection contains an item with given id.
         * 
         * @param itemId
-        *            Id the of item to be tested.
+        *            the Id the of item to be tested.
         */
        public boolean containsId(Object itemId) {
                if (itemId != null)
@@ -567,6 +588,8 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
+        * Gets the Property identified by the given itemId and propertyId from the
+     * Container
         * @see com.itmill.toolkit.data.Container#getContainerProperty(Object,
         *      Object)
         */
@@ -574,16 +597,17 @@ public class Select extends AbstractField implements Container,
                return items.getContainerProperty(itemId, propertyId);
        }
 
-       /* Container.Managed methods ******************************************** */
+        /* Container.Managed methods ******************************************** */
 
        /**
-        * Add new property to all items. Adds a property with given id, type and
+        * Adds the new property to all items. Adds a property with given id, type and
         * default value to all items in the container.
         * 
         * This functionality is optional. If the function is unsupported, it always
         * returns false.
         * 
-        * @return True iff the operation succeeded.
+        * @return True if the operation succeeded.
+        * @see com.itmill.toolkit.data.Container#addContainerProperty(java.lang.Object, java.lang.Class, java.lang.Object)
         */
        public boolean addContainerProperty(Object propertyId, Class type,
                        Object defaultValue) throws UnsupportedOperationException {
@@ -597,12 +621,13 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
-        * Remove all items from the container.
+        * Removes all items from the container.
         * 
         * This functionality is optional. If the function is unsupported, it always
         * returns false.
         * 
-        * @return True iff the operation succeeded.
+        * @return True if the operation succeeded.
+        * @see com.itmill.toolkit.data.Container#removeAllItems()
         */
        public boolean removeAllItems() throws UnsupportedOperationException {
 
@@ -617,11 +642,12 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
-        * Create a new item into container with container managed id. The id of the
+        * Creates a new item into container with container managed id. The id of the
         * created new item is returned. The item can be fetched with getItem()
         * method. if the creation fails, null is returned.
         * 
-        * @return Id of the created item or null in case of failure.
+        * @return the Id of the created item or null in case of failure.
+        * @see com.itmill.toolkit.data.Container#addItem()
         */
        public Object addItem() throws UnsupportedOperationException {
 
@@ -642,8 +668,9 @@ public class Select extends AbstractField implements Container,
         * returns null.
         * 
         * @param itemId
-        *            Identification of the item to be created.
-        * @return Created item with the given id, or null in case of failure.
+        *            the Identification of the item to be created.
+        * @return the Created item with the given id, or null in case of failure.
+        * @see com.itmill.toolkit.data.Container#addItem(java.lang.Object)
         */
        public Item addItem(Object itemId) throws UnsupportedOperationException {
 
@@ -655,11 +682,12 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
-        * Remove item identified by Id from the container. This functionality is
+        * Removes the item identified by Id from the container. This functionality is
         * optional. If the function is not implemented, the functions allways
         * returns false.
         * 
-        * @return True iff the operation succeeded.
+        * @return True if the operation succeeded.
+        * @see com.itmill.toolkit.data.Container#removeItem(java.lang.Object)
         */
        public boolean removeItem(Object itemId)
                        throws UnsupportedOperationException {
@@ -673,13 +701,14 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
-        * Remove property from all items. Removes a property with given id from all
+        * Removes the property from all items. Removes a property with given id from all
         * the items in the container.
         * 
         * This functionality is optional. If the function is unsupported, it always
         * returns false.
         * 
-        * @return True iff the operation succeeded.
+        * @return True if the operation succeeded.
+        * @see com.itmill.toolkit.data.Container#removeContainerProperty(java.lang.Object)
         */
        public boolean removeContainerProperty(Object propertyId)
                        throws UnsupportedOperationException {
@@ -692,14 +721,17 @@ public class Select extends AbstractField implements Container,
 
        /* Container.Viewer methods ********************************************* */
 
-       /** Set the container as data-source for viewing. */
+       /** 
+        * Sets the container as data-source for viewing. 
+        * @param newDataSource the new data source.
+        */
        public void setContainerDataSource(Container newDataSource) {
                if (newDataSource == null)
                        newDataSource = new IndexedContainer();
 
                if (items != newDataSource) {
 
-                       // Remove listeners from the old datasource
+                       // Removes listeners from the old datasource
                        if (items != null) {
                                try {
                                        ((Container.ItemSetChangeNotifier) items)
@@ -715,13 +747,13 @@ public class Select extends AbstractField implements Container,
                                }
                        }
 
-                       // Assign new data source
+                       // Assigns new data source
                        items = newDataSource;
 
-                       // Clear itemIdMapper also
+                       // Clears itemIdMapper also
                        this.itemIdMapper.removeAll();
 
-                       // Add listeners
+                       // Adds listeners
                        if (items != null) {
                                try {
                                        ((Container.ItemSetChangeNotifier) items)
@@ -741,7 +773,10 @@ public class Select extends AbstractField implements Container,
                }
        }
 
-       /** Get viewing data-source container. */
+       /**
+        * Gets the viewing data-source container. 
+        * @see com.itmill.toolkit.data.Container.Viewer#getContainerDataSource()
+        */
        public Container getContainerDataSource() {
                return items;
        }
@@ -751,19 +786,19 @@ public class Select extends AbstractField implements Container,
        /**
         * Is the select in multiselect mode? In multiselect mode
         * 
-        * @return Value of property multiSelect.
+        * @return the Value of property multiSelect.
         */
        public boolean isMultiSelect() {
                return this.multiSelect;
        }
 
        /**
-        * Set the multiselect mode. Setting multiselect mode false may loose
+        * Sets the multiselect mode. Setting multiselect mode false may loose
         * selection information: if selected items set contains one or more
         * selected items, only one of the selected items is kept as selected.
         * 
         * @param multiSelect
-        *            New value of property multiSelect.
+        *            the New value of property multiSelect.
         */
        public void setMultiSelect(boolean multiSelect) {
 
@@ -801,7 +836,7 @@ public class Select extends AbstractField implements Container,
         * used as id. No that data-source must allow adding new items (it must
         * implement Container.Managed).
         * 
-        * @return True iff additions are allowed.
+        * @return True if additions are allowed.
         */
        public boolean isNewItemsAllowed() {
 
@@ -809,10 +844,10 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
-        * Enable or disable possibility to add new options by the user.
+        * Enables or disables possibility to add new options by the user.
         * 
         * @param allowNewOptions
-        *            New value of property allowNewOptions.
+        *            the New value of property allowNewOptions.
         */
        public void setNewItemsAllowed(boolean allowNewOptions) {
 
@@ -830,9 +865,9 @@ public class Select extends AbstractField implements Container,
         * item and index captions.
         * 
         * @param itemId
-        *            The id of the item to be recaptioned.
+        *            the id of the item to be recaptioned.
         * @param caption
-        *            New caption.
+        *            the New caption.
         */
        public void setItemCaption(Object itemId, String caption) {
                if (itemId != null) {
@@ -842,13 +877,13 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
-        * Get the caption of an item. The caption is generated as specified by the
+        * Gets the caption of an item. The caption is generated as specified by the
         * item caption mode. See <code>setItemCaptionMode()</code> for more
         * details.
         * 
         * @param itemId
-        *            The id of the item to be queried.
-        * @return caption for specified item.
+        *            the id of the item to be queried.
+        * @return the caption for specified item.
         */
        public String getItemCaption(Object itemId) {
 
@@ -901,12 +936,12 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
-        * Set icon for an item.
+        * Sets the icon for an item.
         * 
         * @param itemId
-        *            The id of the item to be assigned an icon.
+        *            the id of the item to be assigned an icon.
         * @param icon
-        *            New icon.
+        *            the New icon.
         */
        public void setItemIcon(Object itemId, Resource icon) {
                if (itemId != null) {
@@ -919,11 +954,11 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
-        * Get the item icon.
+        * Gets the item icon.
         * 
         * @param itemId
-        *            The id of the item to be assigned an icon.
-        * @return Icon for the item or null, if not specified.
+        *            the id of the item to be assigned an icon.
+        * @return the Icon for the item or null, if not specified.
         */
        public Resource getItemIcon(Object itemId) {
                Resource explicit = (Resource) itemIcons.get(itemId);
@@ -944,18 +979,18 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
-        * Set the item caption mode.
+        * Sets the item caption mode.
         * 
         * <p>
         * The mode can be one of the following ones:
         * <ul>
         * <li><code>ITEM_CAPTION_MODE_EXPLICIT_DEFAULTS_ID</code> : Items
-        * Id-objects <code>toString()</code> is used as item caption. If caption
+        * Id-objects <code>toString</code> is used as item caption. If caption
         * is explicitly specified, it overrides the id-caption.
         * <li><code>ITEM_CAPTION_MODE_ID</code> : Items Id-objects
-        * <code>toString()</code> is used as item caption.</li>
+        * <code>toString</code> is used as item caption.</li>
         * <li><code>ITEM_CAPTION_MODE_ITEM</code> : Item-objects
-        * <code>toString()</code> is used as item caption.</li>
+        * <code>toString</code> is used as item caption.</li>
         * <li><code>ITEM_CAPTION_MODE_INDEX</code> : The index of the item is
         * used as item caption. The index mode can only be used with the containers
         * implementing <code>Container.Indexed</code> interface.</li>
@@ -963,14 +998,14 @@ public class Select extends AbstractField implements Container,
         * be explicitly specified.</li>
         * <li><code>ITEM_CAPTION_MODE_PROPERTY</code> : The item captions are
         * read from property, that must be specified with
-        * <code>setItemCaptionPropertyId()</code>.</li>
+        * <code>setItemCaptionPropertyId</code>.</li>
         * </ul>
         * The <code>ITEM_CAPTION_MODE_EXPLICIT_DEFAULTS_ID</code> is the default
         * mode.
         * </p>
         * 
         * @param mode
-        *            One of the modes listed above.
+        *            the One of the modes listed above.
         */
        public void setItemCaptionMode(int mode) {
                if (ITEM_CAPTION_MODE_ID <= mode && mode <= ITEM_CAPTION_MODE_PROPERTY) {
@@ -980,18 +1015,18 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
-        * Get the item caption mode.
+        * Gets the item caption mode.
         * 
         * <p>
         * The mode can be one of the following ones:
         * <ul>
         * <li><code>ITEM_CAPTION_MODE_EXPLICIT_DEFAULTS_ID</code> : Items
-        * Id-objects <code>toString()</code> is used as item caption. If caption
+        * Id-objects <code>toString</code> is used as item caption. If caption
         * is explicitly specified, it overrides the id-caption.
         * <li><code>ITEM_CAPTION_MODE_ID</code> : Items Id-objects
-        * <code>toString()</code> is used as item caption.</li>
+        * <code>toString</code> is used as item caption.</li>
         * <li><code>ITEM_CAPTION_MODE_ITEM</code> : Item-objects
-        * <code>toString()</code> is used as item caption.</li>
+        * <code>toString</code> is used as item caption.</li>
         * <li><code>ITEM_CAPTION_MODE_INDEX</code> : The index of the item is
         * used as item caption. The index mode can only be used with the containers
         * implementing <code>Container.Indexed</code> interface.</li>
@@ -999,20 +1034,20 @@ public class Select extends AbstractField implements Container,
         * be explicitly specified.</li>
         * <li><code>ITEM_CAPTION_MODE_PROPERTY</code> : The item captions are
         * read from property, that must be specified with
-        * <code>setItemCaptionPropertyId()</code>.</li>
+        * <code>setItemCaptionPropertyId</code>.</li>
         * </ul>
         * The <code>ITEM_CAPTION_MODE_EXPLICIT_DEFAULTS_ID</code> is the default
         * mode.
         * </p>
         * 
-        * @return One of the modes listed above.
+        * @return the One of the modes listed above.
         */
        public int getItemCaptionMode() {
                return itemCaptionMode;
        }
 
        /**
-        * Set the item caption property.
+        * Sets the item caption property.
         * 
         * <p>
         * Setting the id to a existing property implicitly sets the item caption
@@ -1026,6 +1061,7 @@ public class Select extends AbstractField implements Container,
         * Setting the property id to null disables this feature. The id is null by
         * default
         * </p>.
+        * @param propertyId the id of the property.
         * 
         */
        public void setItemCaptionPropertyId(Object propertyId) {
@@ -1042,16 +1078,16 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
-        * Get the item caption property.
+        * Gets the item caption property.
         * 
-        * @return Id of the property used as item caption source.
+        * @return the Id of the property used as item caption source.
         */
        public Object getItemCaptionPropertyId() {
                return itemCaptionPropertyId;
        }
 
        /**
-        * Set the item icon property.
+        * Sets the item icon property.
         * 
         * <p>
         * If the property id is set to a valid value, each item is given an icon
@@ -1060,7 +1096,7 @@ public class Select extends AbstractField implements Container,
         * </p>
         * 
         * <p>
-        * Note that the icons set with <code>setItemIcon</code> function override
+        * Note : The icons set with <code>setItemIcon</code> function override
         * the icons from the property.
         * </p>
         * 
@@ -1070,7 +1106,7 @@ public class Select extends AbstractField implements Container,
         * </p>.
         * 
         * @param propertyId
-        *            Id of the property that specifies icons for items.
+        *            the Id of the property that specifies icons for items.
         */
        public void setItemIconPropertyId(Object propertyId) {
                if ((propertyId != null)
@@ -1082,7 +1118,7 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
-        * Get the item icon property.
+        * Gets the item icon property.
         * 
         * <p>
         * If the property id is set to a valid value, each item is given an icon
@@ -1091,7 +1127,7 @@ public class Select extends AbstractField implements Container,
         * </p>
         * 
         * <p>
-        * Note that the icons set with <code>setItemIcon</code> function override
+        * Note : The icons set with <code>setItemIcon</code> function override
         * the icons from the property.
         * </p>
         * 
@@ -1100,25 +1136,25 @@ public class Select extends AbstractField implements Container,
         * default
         * </p>.
         * 
-        * @return Id of the property containing the item icons.
+        * @return the Id of the property containing the item icons.
         */
        public Object getItemIconPropertyId() {
                return itemIconPropertyId;
        }
 
        /**
-        * Test if an item is selected
+        * Tests if an item is selected.
         * 
         * <p>
         * In single select mode testing selection status of the item identified by
         * {@link #getNullSelectionItemId()} returns true if the value of the
         * property is null.
         * </p>
-        * 
+        * @param itemId
+        *            the Id the of the item to be tested.
         * @see #getNullSelectionItemId()
         * @see #setNullSelectionItemId(Object)
-        * @param itemId
-        *            Id the of the item to be tested
+        * 
         */
        public boolean isSelected(Object itemId) {
                if (itemId == null)
@@ -1133,17 +1169,17 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
-        * Select an item.
+        * Selects an item.
         * 
         * <p>
         * In single select mode selecting item identified by
         * {@link #getNullSelectionItemId()} sets the value of the property to null.
         * </p>
-        * 
+        * @param itemId
+        *            the tem to be selected.
         * @see #getNullSelectionItemId()
         * @see #setNullSelectionItemId(Object)
-        * @param itemId
-        *            Item to be selected.
+        * 
         */
        public void select(Object itemId) {
                if (!isSelected(itemId) && items.containsId(itemId)) {
@@ -1159,12 +1195,12 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
-        * Unselect an item.
-        * 
+        * Unselects an item.
+        * @param itemId
+        *            the Item to be unselected.
         * @see #getNullSelectionItemId()
         * @see #setNullSelectionItemId(Object)
-        * @param itemId
-        *            Item to be unselected.
+        * 
         */
        public void unselect(Object itemId) {
                if (isSelected(itemId)) {
@@ -1178,6 +1214,7 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
+        * Notifies this listener that the Containers contents has changed.
         * @see com.itmill.toolkit.data.Container.PropertySetChangeListener#containerPropertySetChange(com.itmill.toolkit.data.Container.PropertySetChangeEvent)
         */
        public void containerPropertySetChange(
@@ -1186,6 +1223,7 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
+        * Adds a new Property set change listener for this Container.
         * @see com.itmill.toolkit.data.Container.PropertySetChangeNotifier#addListener(com.itmill.toolkit.data.Container.PropertySetChangeListener)
         */
        public void addListener(Container.PropertySetChangeListener listener) {
@@ -1195,6 +1233,7 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
+        * Removes a previously registered Property set change listener.
         * @see com.itmill.toolkit.data.Container.PropertySetChangeNotifier#removeListener(com.itmill.toolkit.data.Container.PropertySetChangeListener)
         */
        public void removeListener(Container.PropertySetChangeListener listener) {
@@ -1206,6 +1245,7 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
+        * Adds an Item set change listener for the object.
         * @see com.itmill.toolkit.data.Container.ItemSetChangeNotifier#addListener(com.itmill.toolkit.data.Container.ItemSetChangeListener)
         */
        public void addListener(Container.ItemSetChangeListener listener) {
@@ -1215,6 +1255,7 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
+        * Removes the Item set change listener from the object.
         * @see com.itmill.toolkit.data.Container.ItemSetChangeNotifier#removeListener(com.itmill.toolkit.data.Container.ItemSetChangeListener)
         */
        public void removeListener(Container.ItemSetChangeListener listener) {
@@ -1226,17 +1267,20 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
+        * Lets the listener know a Containers Item set has changed.
         * @see com.itmill.toolkit.data.Container.ItemSetChangeListener#containerItemSetChange(com.itmill.toolkit.data.Container.ItemSetChangeEvent)
         */
        public void containerItemSetChange(Container.ItemSetChangeEvent event) {
-               // Clear item id mapping table
+               // Clears the item id mapping table
                this.itemIdMapper.removeAll();
 
                // Notify all listeners
                fireItemSetChange();
        }
 
-       /** Fire property set change event */
+       /** 
+        * Fires the property set change event.
+        */
        protected void firePropertySetChange() {
                if (propertySetEventListeners != null
                                && !propertySetEventListeners.isEmpty()) {
@@ -1249,7 +1293,9 @@ public class Select extends AbstractField implements Container,
                requestRepaint();
        }
 
-       /** Fire item set change event */
+       /** 
+        * Fires the item set change event. 
+        */
        protected void fireItemSetChange() {
                if (itemSetEventListeners != null && !itemSetEventListeners.isEmpty()) {
                        Container.ItemSetChangeEvent event = new ItemSetChangeEvent();
@@ -1261,10 +1307,13 @@ public class Select extends AbstractField implements Container,
                requestRepaint();
        }
 
-       /** Implementation of item set change event */
+       /** 
+        * Implementation of item set change event. 
+        */
        private class ItemSetChangeEvent implements Container.ItemSetChangeEvent {
 
                /**
+                * Gets the Property where the event occurred.
                 * @see com.itmill.toolkit.data.Container.ItemSetChangeEvent#getContainer()
                 */
                public Container getContainer() {
@@ -1273,11 +1322,14 @@ public class Select extends AbstractField implements Container,
 
        }
 
-       /** Implementation of property set change event */
+       /** 
+        * Implementation of property set change event. 
+        */
        private class PropertySetChangeEvent implements
                        Container.PropertySetChangeEvent {
 
                /**
+                * Retrieves the Container whose contents have been modified.
                 * @see com.itmill.toolkit.data.Container.PropertySetChangeEvent#getContainer()
                 */
                public Container getContainer() {
@@ -1296,7 +1348,7 @@ public class Select extends AbstractField implements Container,
         * setting only affects the single select mode.
         * </p>
         * 
-        * @return Object Null value item id.
+        * @return the Object Null value item id.
         * @see #setNullSelectionItemId(Object)
         * @see #isSelected(Object)
         * @see #select(Object)
@@ -1314,8 +1366,8 @@ public class Select extends AbstractField implements Container,
         * setting only affects the single select mode.
         * </p>
         * 
-        * @param nullPropertyValueContainerItemId
-        *            The nullPropertyValueContainerItemId to set
+        * @param nullSelectionItemId
+        *            the nullSelectionItemId to set.
         * @see #getNullSelectionItemId()
         * @see #isSelected(Object)
         * @see #select(Object)
@@ -1348,7 +1400,8 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
-        * @see org.millstone.base.ui.Component#attach()
+        * Notifies the component that it is connected to an application.
+        * @see com.itmill.toolkit.ui.AbstractField#attach()
         */
        public void attach() {
                super.attach();
@@ -1357,7 +1410,8 @@ public class Select extends AbstractField implements Container,
        }
 
        /**
-        * @see org.millstone.base.ui.Component#detach()
+        * Detaches the component from application.
+        * @see com.itmill.toolkit.ui.AbstractComponent#detach()
         */
        public void detach() {
                if (optionsStream != null)
@@ -1373,7 +1427,11 @@ public class Select extends AbstractField implements Container,
 
                private String uri = "selectOptionsStream"
                                + (long) (Math.random() * 1000000000000000000L);
-
+               
+               /**
+                * Handles the given relative URI.
+                * @see com.itmill.toolkit.terminal.URIHandler#handleURI(java.net.URL, java.lang.String)
+                */
                public DownloadStream handleURI(URL context, String relativeUri) {
 
                        if (!"".equals(uri)) {
@@ -1408,11 +1466,13 @@ public class Select extends AbstractField implements Container,
                }
 
                /**
-                * Creates DownloadStream for response
+                * Creates the DownloadStream for response.
                 * 
-                * @param visibleitems
-                *            Items to be return
-                * @return new DownloadStream
+                * @param size
+                *            the Items to be return.
+                * @param first
+                * @param filter
+                * @return the new DownloadStream.
                 */
                public DownloadStream createDownloadStream(int size, int first, String filter) {
 
@@ -1435,10 +1495,10 @@ public class Select extends AbstractField implements Container,
                }
 
                /**
-                * Update visible items by given prefix.
+                * Updates the visible items by given prefix.
                 * 
                 * @param prefix
-                *            Filter prefix
+                *            the Filter prefix
                 * @return All item ids filtered by given prefix.
                 */
                public ArrayList filterContent(String prefix) {
@@ -1487,7 +1547,7 @@ public class Select extends AbstractField implements Container,
                                currentFilter = filter;
                        }       
 
-                       // Create list of shown options
+                       // Creates list of shown options
                        ArrayList keys = new ArrayList();
                        ArrayList values = new ArrayList();
 
@@ -1507,7 +1567,7 @@ public class Select extends AbstractField implements Container,
                                        values.add(String.valueOf(id));
                        }
 
-                       // Construct JSON format for response
+                       // Constructs JSON format for response
                        StringBuffer json = new StringBuffer();
                        json.append("{\"keys\":[");
                        addToJSONArray(json, keys);
index b96788caa8c3779daa1aa9c37f793b00488aff6a..80e0c1189f33a42269cafe43b4ee357411e0cd1a 100644 (file)
@@ -36,7 +36,8 @@ import java.util.Map;
 
 import com.itmill.toolkit.terminal.*;
 
-/** Tabsheet component. 
+/** 
+ * Tabsheet component. 
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -44,39 +45,52 @@ import com.itmill.toolkit.terminal.*;
  */
 public class TabSheet extends AbstractComponentContainer {
 
-       /** Linked list of component tabs */
+       /** 
+        * Linked list of component tabs. 
+        */
        private LinkedList tabs = new LinkedList();
 
-       /** Tab -> caption mapping */
+       /** 
+        * Tab -> caption mapping. 
+        */
        private Hashtable tabCaptions = new Hashtable();
 
-       /** Tab -> icon mapping */
+       /** 
+        * Tab -> icon mapping .
+        */
        private Hashtable tabIcons = new Hashtable();
 
-       /** Selected tab */
+       /** 
+        * Selected tab. 
+        */
        private Component selected = null;
        private KeyMapper keyMapper = new KeyMapper();
 
-       /** Holds value of property tabsHIdden. */
+       /** 
+        * Holds the value of property tabsHIdden. 
+        */
        private boolean tabsHidden;
 
-       /** Construct new Tabsheet.
-        *  Tabsheet is immediate by default.
+       /** 
+        * Constructs the new Tabsheet.
+        * Tabsheet is immediate by default.
         */
        public TabSheet() {
                super();
                setImmediate(true);
        }
 
-       /** Get component container iterator for going trough all the components in the container.
-        * @return Iterator of the components inside the container.
+       /** 
+        * Gets the component container iterator for going trough all the components in the container.
+        * @return the Iterator of the components inside the container.
         */
        public Iterator getComponentIterator() {
                return java.util.Collections.unmodifiableList(tabs).iterator();
        }
 
-       /** Remove a component from this container.
-        * @param c The component to be removed.
+       /** 
+        * Removes the component from this container.
+        * @param c the component to be removed.
         */
        public void removeComponent(Component c) {
                if (c != null && tabs.contains(c)) {
@@ -96,19 +110,21 @@ public class TabSheet extends AbstractComponentContainer {
                }
        }
 
-       /** Add a component into this container.
+       /** 
+        * Adds the component into this container.
         * The component is added as a tab where its default tab-caption is 
         * the caption of the component.
-        * @param c The component to be added.
+        * @param c the component to be added.
         */
        public void addComponent(Component c) {
                addTab(c, c.getCaption(), getIcon());
        }
 
-       /** Add a new tab into TabSheet.
-        * @param c The component to be added onto tab.
-        * @param caption The caption of the tab.
-        * @param icon Set the icon of the tab.
+       /** 
+        * Adds the new tab into TabSheet.
+        * @param c the component to be added onto tab.
+        * @param caption the caption of the tab.
+        * @param icon the Set the icon of the tab.
         */
        public void addTab(Component c, String caption, Resource icon) {
                if (c != null) {
@@ -125,16 +141,18 @@ public class TabSheet extends AbstractComponentContainer {
                }
        }
 
-       /** Get component UIDL tag.
-        * @return Component UIDL tag as string.
+       /** 
+        * Gets the component UIDL tag.
+        * @return the Component UIDL tag as string.
         */
        public String getTag() {
                return "tabsheet";
        }
 
-       /** Move all components from another container to this container.
+       /** 
+        * Moves all components from another container to this container.
         * The components are removed from the other container.
-        * @param source The container components are removed from.
+        * @param source the container components are removed from.
         */
        public void moveComponentsFrom(ComponentContainer source) {
                for (Iterator i = source.getComponentIterator(); i.hasNext();) {
@@ -151,9 +169,10 @@ public class TabSheet extends AbstractComponentContainer {
                }
        }
 
-       /** Paint the content of this component.
-        * @param event PaintEvent.
-        * @throws PaintException The paint operation failed.
+       /** 
+        * Paints the content of this component.
+        * @param event the Paint Event.
+        * @throws PaintException if the paint operation failed.
         */
        public void paintContent(PaintTarget target) throws PaintException {
 
@@ -191,14 +210,16 @@ public class TabSheet extends AbstractComponentContainer {
                        target.addVariable(this, "selected", keyMapper.key(selected));
        }
 
-       /** Are tabs hidden.
-        * @return Property visibility
+       /** 
+        * Are tabs hidden.
+        * @return the Property visibility.
         */
        public boolean areTabsHidden() {
                return this.tabsHidden;
        }
 
-       /** Setter for property tabsHidden.
+       /** 
+        * Setter for property tabsHidden.
         * @param tabsHidden True if the tabs should be hidden.
         */
        public void hideTabs(boolean tabsHidden) {
@@ -206,7 +227,10 @@ public class TabSheet extends AbstractComponentContainer {
                requestRepaint();
        }
 
-       /** Get the caption for a component */
+       /** 
+        * Gets the caption for a component.
+        * @param c the component. 
+        */
        public String getTabCaption(Component c) {
                String caption = (String) tabCaptions.get(c);
                if (caption == null)
@@ -214,18 +238,29 @@ public class TabSheet extends AbstractComponentContainer {
                return caption;
        }
 
-       /** Set the caption for a component */
+       /** 
+        * Sets the caption for a component.
+        * @param c the component.
+        * @param caption the caption to set. 
+        */
        public void setTabCaption(Component c, String caption) {
                tabCaptions.put(c, caption);
                requestRepaint();
        }
 
-       /** Get the icon for a component */
+       /** 
+        * Gets the icon for a component. 
+        * @param c the component.
+        */
        public Resource getTabIcon(Component c) {
                return (Resource) tabIcons.get(c);
        }
 
-       /** Set the icon for a component */
+       /** ]
+        * Sets the icon for a component.
+        * @param c
+        * @param icon 
+        */
        public void setTabIcon(Component c, Resource icon) {
                if (icon == null)
                        tabIcons.remove(c);
@@ -234,7 +269,10 @@ public class TabSheet extends AbstractComponentContainer {
                requestRepaint();
        }
 
-       /** Set the selected tab */
+       /** 
+        * Sets the selected tab. 
+        * @param c 
+        */
        public void setSelectedTab(Component c) {
                if (c != null && tabs.contains(c) && !selected.equals(c)) {
                        selected = c;
@@ -243,14 +281,17 @@ public class TabSheet extends AbstractComponentContainer {
                }
        }
 
-       /** Get the selected tab */
+       /** 
+        * Gets the selected tab.
+        * @return the selected tab. 
+        */
        public Component getSelectedTab() {
                return selected;
        }
 
-       /** Invoked when the value of a variable has changed.
-        * @param event Variable change event containing the information about
-        * the changed variable.
+       /**
+        * Invoked when the value of a variable has changed.
+        * @see com.itmill.toolkit.ui.AbstractComponent#changeVariables(java.lang.Object, java.util.Map)
         */
        public void changeVariables(Object source, Map variables) {
                if (variables.containsKey("selected"))
@@ -263,13 +304,13 @@ public class TabSheet extends AbstractComponentContainer {
                Component oldComponent,
                Component newComponent) {
 
-               // Get the captions
+               // Gets the captions
                String oldCaption = getTabCaption(oldComponent);
                Resource oldIcon = getTabIcon(oldComponent);
                String newCaption = getTabCaption(newComponent);
                Resource newIcon = getTabIcon(newComponent);
 
-               // Get the locations                    
+               // Gets the locations                   
                int oldLocation = -1;
                int newLocation = -1;
                int location = 0;
@@ -330,11 +371,13 @@ public class TabSheet extends AbstractComponentContainer {
                }
        }
 
-       /** Selected Tab Change event. This event is thrown, when the selected tab
+       /** 
+        * Selected Tab Change event. This event is thrown, when the selected tab
         * in the tab sheet is changed.
+        * 
         * @author IT Mill Ltd.
-                * @version @VERSION@
-                * @since 3.0
+     * @version @VERSION@
+        * @since 3.0
         */
        public class SelectedTabChangeEvent extends Component.Event {
 
@@ -343,37 +386,43 @@ public class TabSheet extends AbstractComponentContainer {
          */
         private static final long serialVersionUID = 3258129141914940469L;
 
-        /** New instance of selected tab change event
-               * @param source Source of the event.
+        /** 
+         * New instance of selected tab change event
+               * @param source the Source of the event.
                */
                public SelectedTabChangeEvent(Component source) {
                        super(source);
                }
 
-               /** Select where the event occurred
-                * @return Source of the event.
+               /** 
+                * Select where the event occurred
+                * @return the Source of the event.
                 */
                public Select getSelect() {
                        return (Select) getSource();
                }
        }
 
-       /** Selected Tab Change Event listener
+       /** 
+        * Selected Tab Change Event listener
         * @author IT Mill Ltd.
-                * @version @VERSION@
-                * @since 3.0
+        * 
+        * @version @VERSION@
+        * @since 3.0
         */
        public interface SelectedTabChangeListener {
 
-               /** Visible tab in tab sheet has has been changed.
-                * @param event Selected tab change event.
+               /**
+                * Visible tab in tab sheet has has been changed.
+                * @param event the Selected tab change event.
                 */
                public void selectedTabChange(SelectedTabChangeEvent event);
        }
 
-       /** Add selected tab change listener
-       * @param listener Listener to be added.
-       */
+       /** 
+        * Adds the selected tab change listener
+        * @param listener the Listener to be added.
+        */
        public void addListener(SelectedTabChangeListener listener) {
                addListener(
                        SelectedTabChangeEvent.class,
@@ -381,9 +430,10 @@ public class TabSheet extends AbstractComponentContainer {
                        SELECTED_TAB_CHANGE_METHOD);
        }
 
-       /** Remove selected tab change listener
-       * @param listener Listener to be removed.
-       */
+       /** 
+        * Removes the selected tab change listener
+        * @param listener the Listener to be removed.
+        */
        public void removeListener(SelectedTabChangeListener listener) {
                removeListener(
                        SelectedTabChangeEvent.class,
@@ -391,7 +441,9 @@ public class TabSheet extends AbstractComponentContainer {
                        SELECTED_TAB_CHANGE_METHOD);
        }
 
-       /** Emit options change event. */
+       /** 
+        * Emits the options change event. 
+        */
        protected void fireSelectedTabChange() {
                fireEvent(new SelectedTabChangeEvent(this));
        }
index 2f63d857263b1c6b38810319bf8349d8f4e0b234..e51c4b44a6538e88bbbeb85e911c773080763154 100644 (file)
@@ -51,7 +51,7 @@ import com.itmill.toolkit.terminal.Resource;
 import com.itmill.toolkit.terminal.Sizeable;
 
 /**
- * Table component is used for representing data or components in pageable and
+ * <code>TableComponent</code> is used for representing data or components in pageable and
  * selectable table.
  * 
  * @author IT Mill Ltd.
@@ -71,16 +71,24 @@ public class Table extends Select implements Action.Container,
 
     private static final int CELL_FIRSTCOL = 4;
     
-       /** Width of the table or -1 if unspecified */
+       /** 
+        * Width of the table or -1 if unspecified. 
+        */
        private int width = -1;
 
-       /** Height of the table or -1 if unspecified */
+       /** 
+        * Height of the table or -1 if unspecified. 
+        */
        private int height = -1;
 
-       /** Width unit */
+       /** 
+        * Width unit. 
+        */
        private int widthUnit = Sizeable.UNITS_PIXELS;
 
-       /** Height unit */
+       /** 
+        * Height unit. 
+        */
        private int heightUnit = Sizeable.UNITS_PIXELS;
 
     /**
@@ -88,10 +96,14 @@ public class Table extends Select implements Action.Container,
      */
     public static final String ALIGN_LEFT = "b";
 
-    /** Center column alignment. */
+    /** 
+     * Center column alignment. 
+     */
     public static final String ALIGN_CENTER = "c";
 
-    /** Right column alignment. */
+    /** 
+     * Right column alignment. 
+     */
     public static final String ALIGN_RIGHT = "e";
 
     /**
@@ -107,13 +119,13 @@ public class Table extends Select implements Action.Container,
 
     /**
      * Column header mode: Column headers are explicitly specified with
-     * <code>setColumnHeaders()</code>
+     * <code>setColumnHeaders</code>.
      */
     public static final int COLUMN_HEADER_MODE_EXPLICIT = 1;
 
     /**
      * Column header mode: Column headers are explicitly specified with
-     * <code>setColumnHeaders()</code>
+     * <code>setColumnHeaders</code>
      */
     public static final int COLUMN_HEADER_MODE_EXPLICIT_DEFAULTS_ID = 2;
 
@@ -124,19 +136,19 @@ public class Table extends Select implements Action.Container,
     public static final int ROW_HEADER_MODE_HIDDEN = -1;
 
     /**
-     * Row caption mode: Items Id-objects toString() is used as row caption.
+     * Row caption mode: Items Id-objects toString is used as row caption.
      */
     public static final int ROW_HEADER_MODE_ID = Select.ITEM_CAPTION_MODE_ID;
 
     /**
-     * Row caption mode: Item-objects toString() is used as row caption.
+     * Row caption mode: Item-objects toString is used as row caption.
      */
     public static final int ROW_HEADER_MODE_ITEM = Select.ITEM_CAPTION_MODE_ITEM;
 
     /**
-     * Row caption mode: Index of the item is used as item caption. * The index
-     * mode can only be used with the containers implementing Container.Indexed
-     * interface.
+     * Row caption mode: Index of the item is used as item caption. 
+     * The index mode can only be used with the containers implementing 
+     * Container.Indexed interface.
      */
     public static final int ROW_HEADER_MODE_INDEX = Select.ITEM_CAPTION_MODE_INDEX;
 
@@ -165,52 +177,84 @@ public class Table extends Select implements Action.Container,
 
     /* Private table extensions to Select *********************************** */
 
-    /** True if column collapsing is allowed */
+    /** 
+     * True if column collapsing is allowed. 
+     */
     private boolean columnCollapsingAllowed = false;
 
-    /** True if reordering of columns is allowed on the client side */
+    /** 
+     * True if reordering of columns is allowed on the client side. 
+     */
     private boolean columnReorderingAllowed = false;
 
-    /** Keymapper for column ids */
+    /** 
+     * Keymapper for column ids. 
+     */
     private KeyMapper columnIdMap = new KeyMapper();
 
-    /** Holds visible column propertyIds - in order */
+    /** 
+     * Holds visible column propertyIds - in order. 
+     */
     private LinkedList visibleColumns = new LinkedList();
 
-    /** Holds propertyIds of currently collapsed columns */
+    /** 
+     * Holds propertyIds of currently collapsed columns. 
+     */
     private HashSet collapsedColumns = new HashSet();
 
-    /** Holds headers for visible columns (by propertyId) */
+    /** 
+     * Holds headers for visible columns (by propertyId). 
+     */
     private HashMap columnHeaders = new HashMap();
 
-    /** Holds icons for visible columns (by propertyId) */
+    /** 
+     * Holds icons for visible columns (by propertyId). 
+     */
     private HashMap columnIcons = new HashMap();
 
-    /** Holds alignments for visible columns (by propertyId) */
+    /** 
+     * Holds alignments for visible columns (by propertyId). 
+     */
     private HashMap columnAlignments = new HashMap();
 
-    /** Holds value of property pageLength. 0 disables paging. */
+    /** 
+     * Holds value of property pageLength. 0 disables paging. 
+     */
     private int pageLength = 15;
 
-    /** Id the first item on the current page. */
+    /** 
+     * Id the first item on the current page. 
+     */
     private Object currentPageFirstItemId = null;
 
-    /** Index of the first item on the current page. */
+    /** 
+     * Index of the first item on the current page. 
+     */
     private int currentPageFirstItemIndex = 0;
 
-    /** Holds value of property pageBuffering. */
+    /** 
+     * Holds value of property pageBuffering. 
+     */
     private boolean pageBuffering = false;
 
-    /** Holds value of property selectable. */
+    /** 
+     * Holds value of property selectable. 
+     */
     private boolean selectable = false;
 
-    /** Holds value of property columnHeaderMode. */
+    /** 
+     * Holds value of property columnHeaderMode. 
+     */
     private int columnHeaderMode = COLUMN_HEADER_MODE_EXPLICIT_DEFAULTS_ID;
 
-    /** True iff the row captions are hidden. */
+    /** 
+     * True iff the row captions are hidden. 
+     */
     private boolean rowCaptionsAreHidden = true;
 
-    /** Page contents buffer used in buffered mode */
+    /** 
+     * Page contents buffer used in buffered mode. 
+     */
     private Object[][] pageBuffer = null;
 
     /**
@@ -219,38 +263,56 @@ public class Table extends Select implements Action.Container,
      */
     private LinkedList listenedProperties = null;
 
-    /** List of visible components - the is used for needsRepaint calculation. */
+    /** 
+     * List of visible components - the is used for needsRepaint calculation. 
+     */
     private LinkedList visibleComponents = null;
 
-    /** List of action handlers */
+    /** 
+     * List of action handlers. 
+     */
     private LinkedList actionHandlers = null;
 
-    /** Action mapper */
+    /** 
+     * Action mapper. 
+     */
     private KeyMapper actionMapper = null;
 
-    /** Table cell editor factory */
+    /** 
+     * Table cell editor factory. 
+     */
     private FieldFactory fieldFactory = new BaseFieldFactory();
 
-    /** Is table editable */
+    /** 
+     * Is table editable. 
+     */
     private boolean editable = false;
 
-    /** Current sorting direction */
+    /** 
+     * Current sorting direction. 
+     */
     private boolean sortAscending = true;
 
-    /** Currently table is sorted on this propertyId */
+    /** 
+     * Currently table is sorted on this propertyId. 
+     */
     private Object sortContainerPropertyId = null;
 
-    /** Is table sorting disabled alltogether; even if some of the properties would be 
-     * sortable. */
+    /** 
+     * Is table sorting disabled alltogether; even if some of the properties would be 
+     * sortable. 
+     */
     private boolean sortDisabled = false;
     
-    /** Number of rows explicitly requested by the client to be painted on next paint. 
+    /** 
+     * Number of rows explicitly requested by the client to be painted on next paint. 
      * This is -1 if no request by the client is made. Painting the component will automatically
      * reset this to -1. 
      */
     private int reqRowsToPaint = -1;
     
-    /** Index of the first rows explicitly requested by the client to be painted.
+    /** 
+     * Index of the first rows explicitly requested by the client to be painted.
      * This is -1 if no request by the client is made. Painting the component will automatically
      * reset this to -1.  
      */
@@ -258,18 +320,27 @@ public class Table extends Select implements Action.Container,
     
     /* Table constructors *************************************************** */
 
-    /** Create new empty table */
+    /** 
+     * Creates new empty table. 
+     */
     public Table() {
         setRowHeaderMode(ROW_HEADER_MODE_HIDDEN);
     }
 
-    /** Create new empty table with caption. */
+    /** 
+     * Creates the new empty table with caption. 
+     * @param caption
+     */
     public Table(String caption) {
         this();
         setCaption(caption);
     }
 
-    /** Create new table with caption and connect it to a Container. */
+    /** 
+     * Creates the new table with caption and connect it to a Container.
+     * @param caption
+     * @param dataSource  
+     */
     public Table(String caption, Container dataSource) {
         this();
         setCaption(caption);
@@ -279,13 +350,13 @@ public class Table extends Select implements Action.Container,
     /* Table functionality ************************************************** */
 
     /**
-     * Get the array of visible column property id:s.
+     * Gets the array of visible column property id:s.
      * 
      * <p>
-     * The columns are show in the order of their appearance in this array
+     * The columns are show in the order of their appearance in this array.
      * </p>
      * 
-     * @return Value of property availableColumns.
+     * @return the Value of property availableColumns.
      */
     public Object[] getVisibleColumns() {
         if (this.visibleColumns == null) {
@@ -295,14 +366,14 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
-     * Set the array of visible column property id:s.
+     * Sets the array of visible column property id:s.
      * 
      * <p>
-     * The columns are show in the order of their appearance in this array
+     * The columns are show in the order of their appearance in this array.
      * </p>
      * 
-     * @param availableColumns
-     *            Array of shown property id:s.
+     * @param visibleColumns
+     *            the Array of shown property id:s.
      */
     public void setVisibleColumns(Object[] visibleColumns) {
 
@@ -311,7 +382,7 @@ public class Table extends Select implements Action.Container,
             throw new NullPointerException(
                     "Can not set visible columns to null value");
 
-        // Check that the new visible columns contains no nulls and properties
+        // Checks that the new visible columns contains no nulls and properties
         // exist
         Collection properties = getContainerPropertyIds();
         for (int i = 0; i < visibleColumns.length; i++) {
@@ -330,7 +401,7 @@ public class Table extends Select implements Action.Container,
             newVC.add(visibleColumns[i]);
         }
 
-        // Remove alignments, icons and headers from hidden columns
+        // Removes alignments, icons and headers from hidden columns
         if (this.visibleColumns != null)
             for (Iterator i = this.visibleColumns.iterator(); i.hasNext();) {
                 Object col = i.next();
@@ -343,12 +414,12 @@ public class Table extends Select implements Action.Container,
 
         this.visibleColumns = newVC;
 
-        // Assure visual refresh
+        // Assures visual refresh
         refreshCurrentPage();
     }
 
     /**
-     * Get the headers of the columns.
+     * Gets the headers of the columns.
      * 
      * <p>
      * The headers match the property id:s given my the set visible column
@@ -359,7 +430,7 @@ public class Table extends Select implements Action.Container,
      * with id.toString() outputs when rendering.
      * </p>
      * 
-     * @return Array of column headers.
+     * @return the Array of column headers.
      */
     public String[] getColumnHeaders() {
         if (this.columnHeaders == null) {
@@ -374,7 +445,7 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
-     * Set the headers of the columns.
+     * Sets the headers of the columns.
      * 
      * <p>
      * The headers match the property id:s given my the set visible column
@@ -386,8 +457,8 @@ public class Table extends Select implements Action.Container,
      * </p>
      * 
      * @param columnHeaders
-     *            Array of column headers that match the
-     *            <code>getVisibleColumns()</code>.
+     *            the Array of column headers that match the
+     *            <code>getVisibleColumns</code> method.
      */
     public void setColumnHeaders(String[] columnHeaders) {
 
@@ -402,12 +473,12 @@ public class Table extends Select implements Action.Container,
             this.columnHeaders.put(it.next(), columnHeaders[i]);
         }
 
-        // Assure visual refresh
+        // Assures the visual refresh
         refreshCurrentPage();
     }
 
     /**
-     * Get the icons of the columns.
+     * Gets the icons of the columns.
      * 
      * <p>
      * The icons in headers match the property id:s given my the set visible
@@ -417,7 +488,7 @@ public class Table extends Select implements Action.Container,
      * headers with icons.
      * </p>
      * 
-     * @return Array of icons that match the <code>getVisibleColumns()</code>.
+     * @return the Array of icons that match the <code>getVisibleColumns</code>.
      */
     public Resource[] getColumnIcons() {
         if (this.columnIcons == null) {
@@ -433,7 +504,7 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
-     * Set the icons of the columns.
+     * Sets the icons of the columns.
      * 
      * <p>
      * The icons in headers match the property id:s given my the set visible
@@ -444,7 +515,7 @@ public class Table extends Select implements Action.Container,
      * </p>
      * 
      * @param columnIcons
-     *            Array of icons that match the <code>getVisibleColumns()</code>.
+     *            the Array of icons that match the <code>getVisibleColumns</code>.
      */
     public void setColumnIcons(Resource[] columnIcons) {
 
@@ -464,7 +535,7 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
-     * Get array of column alignments.
+     * Gets the array of column alignments.
      * 
      * <p>
      * The items in the array must match the properties identified by
@@ -479,7 +550,7 @@ public class Table extends Select implements Action.Container,
      * rendered as align lefts.
      * </p>
      * 
-     * @return Column alignments array.
+     * @return the Column alignments array.
      */
     public String[] getColumnAlignments() {
         if (this.columnAlignments == null) {
@@ -495,7 +566,7 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
-     * Set the column alignments.
+     * Sets the column alignments.
      * 
      * <p>
      * The items in the array must match the properties identified by
@@ -510,7 +581,7 @@ public class Table extends Select implements Action.Container,
      * </p>
      * 
      * @param columnAlignments
-     *            Column alignments array.
+     *            the Column alignments array.
      */
     public void setColumnAlignments(String[] columnAlignments) {
 
@@ -518,7 +589,7 @@ public class Table extends Select implements Action.Container,
             throw new IllegalArgumentException(
                     "The length of the alignments array must match the number of visible columns");
 
-        // Check all alignments
+        // Checks all alignments
         for (int i = 0; i < columnAlignments.length; i++) {
             String a = columnAlignments[i];
             if (a != null && !a.equals(ALIGN_LEFT) && !a.equals(ALIGN_CENTER)
@@ -527,7 +598,7 @@ public class Table extends Select implements Action.Container,
                         + " aligment '" + a + "' is invalid");
         }
 
-        // Reset alignments
+        // Resets the alignments
         HashMap newCA = new HashMap();
         int i = 0;
         for (Iterator it = this.visibleColumns.iterator(); it.hasNext()
@@ -536,39 +607,38 @@ public class Table extends Select implements Action.Container,
         }
         this.columnAlignments = newCA;
 
-        // Assure visual refresh
+        // Assures the visual refresh
         refreshCurrentPage();
     }
 
     /**
-     * Get the page length.
+     * Gets the page length.
      * 
      * <p>
      * Setting page length 0 disables paging.
      * </p>
      * 
-     * @return Lenght of one page.
+     * @return the Length of one page.
      */
     public int getPageLength() {
         return this.pageLength;
     }
 
     /**
-     * Set the page length.
+     * Sets the page length.
      * 
      * <p>
      * Setting page length 0 disables paging. The page length defaults to 15.
      * </p>
      * 
-     * @param Lenght
-     *            of one page.
+     * @param pageLength the Length of one page.
      */
     public void setPageLength(int pageLength) {
         if (pageLength >= 0 && this.pageLength != pageLength) {
             this.pageLength = pageLength;
             // "scroll" to first row
             this.setCurrentPageFirstItemIndex(0);
-            // Assure visual refresh
+            // Assures the visual refresh
             refreshCurrentPage();
         }
     }
@@ -576,7 +646,7 @@ public class Table extends Select implements Action.Container,
     /**
      * Getter for property currentPageFirstItem.
      * 
-     * @return Value of property currentPageFirstItem.
+     * @return the Value of property currentPageFirstItem.
      */
     public Object getCurrentPageFirstItemId() {
 
@@ -598,14 +668,14 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
-     * Setter for property currentPageFirstItem.
+     * Setter for property currentPageFirstItemId.
      * 
-     * @param currentPageFirstItem
-     *            New value of property currentPageFirstItem.
+     * @param currentPageFirstItemId
+     *            the New value of property currentPageFirstItemId.
      */
     public void setCurrentPageFirstItemId(Object currentPageFirstItemId) {
 
-        // Get the corresponding index
+        // Gets the corresponding index
         int index = -1;
         try {
             index = ((Container.Indexed) items)
@@ -613,7 +683,7 @@ public class Table extends Select implements Action.Container,
         } catch (ClassCastException e) {
 
             // If the table item container does not have index, we have to
-            // calculate the index by hand
+            // calculates the index by hand
             Object id = ((Container.Ordered) items).firstItemId();
             while (id != null && !id.equals(currentPageFirstItemId)) {
                 index++;
@@ -629,7 +699,7 @@ public class Table extends Select implements Action.Container,
             this.currentPageFirstItemIndex = index;
         }
 
-        // Assure visual refresh
+        // Assures the visual refresh
         refreshCurrentPage();
 
     }
@@ -664,7 +734,7 @@ public class Table extends Select implements Action.Container,
         else
             this.columnIcons.put(propertyId, icon);
 
-        // Assure visual refresh
+        // Assures the visual refresh
         refreshCurrentPage();
     }
 
@@ -689,7 +759,7 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
-     * Sets column header for the specified column;
+     * Sets the column header for the specified column;
      * 
      * @param propertyId
      *            the propertyId indentifying the column.
@@ -704,7 +774,7 @@ public class Table extends Select implements Action.Container,
         }
         this.columnHeaders.put(propertyId, header);
 
-        // Assure visual refresh
+        // Assures the visual refresh
         refreshCurrentPage();
     }
 
@@ -735,7 +805,7 @@ public class Table extends Select implements Action.Container,
      */
     public void setColumnAlignment(Object propertyId, String alignment) {
 
-        // Check for valid alignments
+        // Checks for valid alignments
         if (alignment != null && !alignment.equals(ALIGN_LEFT)
                 && !alignment.equals(ALIGN_CENTER)
                 && !alignment.equals(ALIGN_RIGHT))
@@ -749,7 +819,7 @@ public class Table extends Select implements Action.Container,
 
         this.columnAlignments.put(propertyId, alignment);
 
-        // Assure visual refresh
+        // Assures the visual refresh
         refreshCurrentPage();
     }
 
@@ -773,6 +843,7 @@ public class Table extends Select implements Action.Container,
      *            the propertyID identifying the column.
      * @param collapsed
      *            the desired collapsedness.
+     * @throws IllegalAccessException
      */
     public void setColumnCollapsed(Object propertyId, boolean collapsed)
             throws IllegalAccessException {
@@ -785,12 +856,12 @@ public class Table extends Select implements Action.Container,
         else
             this.collapsedColumns.remove(propertyId);
 
-        // Assure visual refresh
+        // Assures the visual refresh
         refreshCurrentPage();
     }
 
     /**
-     * Check if column collapsing is allowed.
+     * Checks if column collapsing is allowed.
      * 
      * @return true if columns can be collapsed; false otherwise.
      */
@@ -810,12 +881,12 @@ public class Table extends Select implements Action.Container,
         if (!collapsingAllowed)
             collapsedColumns.clear();
 
-        // Assure visual refresh
+        // Assures the visual refresh
         refreshCurrentPage();
     }
 
     /**
-     * Check if column reordering is allowed.
+     * Checks if column reordering is allowed.
      * 
      * @return true if columns can be reordered; false otherwise.
      */
@@ -832,7 +903,7 @@ public class Table extends Select implements Action.Container,
     public void setColumnReorderingAllowed(boolean reorderingAllowed) {
         this.columnReorderingAllowed = reorderingAllowed;
 
-        // Assure visual refresh
+        // Assures the visual refresh
         refreshCurrentPage();
     }
 
@@ -868,7 +939,7 @@ public class Table extends Select implements Action.Container,
     /**
      * Getter for property currentPageFirstItem.
      * 
-     * @return Value of property currentPageFirstItem.
+     * @return the Value of property currentPageFirstItem.
      */
     public int getCurrentPageFirstItemIndex() {
         return this.currentPageFirstItemIndex;
@@ -878,11 +949,11 @@ public class Table extends Select implements Action.Container,
      * Setter for property currentPageFirstItem.
      * 
      * @param newIndex
-     *            New value of property currentPageFirstItem.
+     *            the New value of property currentPageFirstItem.
      */
     public void setCurrentPageFirstItemIndex(int newIndex) {
 
-        // Ensure that the new value is valid
+        // Ensures that the new value is valid
         if (newIndex < 0)
             newIndex = 0;
         if (newIndex >= size())
@@ -949,14 +1020,14 @@ public class Table extends Select implements Action.Container,
             }
         }
 
-        // Assure visual refresh
+        // Assures the visual refresh
         refreshCurrentPage();
     }
 
     /**
      * Getter for property pageBuffering.
      * 
-     * @return Value of property pageBuffering.
+     * @return the Value of property pageBuffering.
      */
     public boolean isPageBufferingEnabled() {
         return this.pageBuffering;
@@ -966,7 +1037,7 @@ public class Table extends Select implements Action.Container,
      * Setter for property pageBuffering.
      * 
      * @param pageBuffering
-     *            New value of property pageBuffering.
+     *            the New value of property pageBuffering.
      */
     public void setPageBufferingEnabled(boolean pageBuffering) {
 
@@ -984,7 +1055,7 @@ public class Table extends Select implements Action.Container,
      * The table is not selectable by default.
      * </p>
      * 
-     * @return Value of property selectable.
+     * @return the Value of property selectable.
      */
     public boolean isSelectable() {
         return this.selectable;
@@ -998,7 +1069,7 @@ public class Table extends Select implements Action.Container,
      * </p>
      * 
      * @param selectable
-     *            New value of property selectable.
+     *           the New value of property selectable.
      */
     public void setSelectable(boolean selectable) {
         if (this.selectable != selectable) {
@@ -1010,7 +1081,7 @@ public class Table extends Select implements Action.Container,
     /**
      * Getter for property columnHeaderMode.
      * 
-     * @return Value of property columnHeaderMode.
+     * @return the Value of property columnHeaderMode.
      */
     public int getColumnHeaderMode() {
         return this.columnHeaderMode;
@@ -1020,19 +1091,19 @@ public class Table extends Select implements Action.Container,
      * Setter for property columnHeaderMode.
      * 
      * @param columnHeaderMode
-     *            New value of property columnHeaderMode.
+     *           the New value of property columnHeaderMode.
      */
     public void setColumnHeaderMode(int columnHeaderMode) {
         if (columnHeaderMode >= COLUMN_HEADER_MODE_HIDDEN
                 && columnHeaderMode <= COLUMN_HEADER_MODE_EXPLICIT_DEFAULTS_ID)
             this.columnHeaderMode = columnHeaderMode;
 
-        // Assure visual refresh
+        // Assures the visual refresh
         refreshCurrentPage();
     }
 
     /**
-     * Refresh the current page contents. If the page buffering is turned off,
+     * Refreshes the current page contents. If the page buffering is turned off,
      * it is not necessary to call this explicitely.
      */
     public void refreshCurrentPage() {
@@ -1043,7 +1114,7 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
-     * Set the row header mode.
+     * Sets the row header mode.
      * <p>
      * The mode can be one of the following ones:
      * <ul>
@@ -1068,7 +1139,7 @@ public class Table extends Select implements Action.Container,
      * </p>
      * 
      * @param mode
-     *            One of the modes listed above.
+     *            the One of the modes listed above.
      */
     public void setRowHeaderMode(int mode) {
         if (ROW_HEADER_MODE_HIDDEN == mode)
@@ -1083,9 +1154,9 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
-     * Get the row header mode.
+     * Gets the row header mode.
      * 
-     * @return Row header mode.
+     * @return the Row header mode.
      * @see #setRowHeaderMode(int)
      */
     public int getRowHeaderMode() {
@@ -1094,14 +1165,14 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
-     * Add new row to table and fill the visible cells with given values.
+     * Adds the new row to table and fill the visible cells with given values.
      * 
      * @param cells
-     *            Object array that is used for filling the visible cells new
+     *            the Object array that is used for filling the visible cells new
      *            row. The types must be settable to visible column property
      *            types.
      * @param itemId
-     *            Id the new row. If null, a new id is automatically assigned.
+     *            the Id the new row. If null, a new id is automatically assigned.
      *            If given, the table cant already have a item with given id.
      * @return Returns item id for the new row. Returns null if operation fails.
      */
@@ -1110,11 +1181,11 @@ public class Table extends Select implements Action.Container,
 
         Object[] cols = getVisibleColumns();
 
-        // Check that a correct number of cells are given
+        // Checks that a correct number of cells are given
         if (cells.length != cols.length)
             return null;
 
-        // Create new item
+        // Creates new item
         Item item;
         if (itemId == null) {
             itemId = items.addItem();
@@ -1126,7 +1197,7 @@ public class Table extends Select implements Action.Container,
         if (item == null)
             return null;
 
-        // Fill the item properties
+        // Fills the item properties
         for (int i = 0; i < cols.length; i++)
             item.getItemProperty(cols[i]).setValue(cells[i]);
 
@@ -1136,6 +1207,7 @@ public class Table extends Select implements Action.Container,
     /* Overriding select behavior******************************************** */
 
     /**
+     * Sets the Container that serves as the data source of the viewer.
      * @see com.itmill.toolkit.data.Container.Viewer#setContainerDataSource(Container)
      */
     public void setContainerDataSource(Container newDataSource) {
@@ -1143,7 +1215,7 @@ public class Table extends Select implements Action.Container,
         if (newDataSource == null)
             newDataSource = new IndexedContainer();
 
-        // Assure that the data source is ordered by making unordered
+        // Assures that the data source is ordered by making unordered
         // containers ordered by wrapping them
         if (newDataSource instanceof Container.Ordered)
             super.setContainerDataSource(newDataSource);
@@ -1151,11 +1223,11 @@ public class Table extends Select implements Action.Container,
             super.setContainerDataSource(new ContainerOrderedWrapper(
                     newDataSource));
 
-        // Reset page position
+        // Resets page position
         currentPageFirstItemId = null;
         currentPageFirstItemIndex = 0;
 
-        // Reset column properties
+        // Resets column properties
         if (this.collapsedColumns != null)
             this.collapsedColumns.clear();
         setVisibleColumns(getContainerPropertyIds().toArray());
@@ -1164,14 +1236,11 @@ public class Table extends Select implements Action.Container,
         refreshCurrentPage();
     }
 
-    /* Component basics ***************************************************** */
+     /* Component basics ***************************************************** */
 
     /**
      * Invoked when the value of a variable has changed.
-     * 
-     * @param event
-     *            Variable change event containing the information about the
-     *            changed variable.
+     * @see com.itmill.toolkit.ui.Select#changeVariables(java.lang.Object, java.util.Map)
      */
     public void changeVariables(Object source, Map variables) {
 
@@ -1184,7 +1253,7 @@ public class Table extends Select implements Action.Container,
                 setCurrentPageFirstItemIndex(value.intValue() - 1);
         }
 
-        // Set requested firstrow and rows for the next paint
+        // Sets requested firstrow and rows for the next paint
         if (variables.containsKey("reqfirstrow") || variables.containsKey("reqrows")) {
             Integer value = (Integer) variables.get("reqfirstrow");
             if (value != null) 
@@ -1265,12 +1334,12 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
-     * Paint the content of this component.
+     * Paints the content of this component.
      * 
      * @param target
-     *            Paint target.
+     *            the Paint target.
      * @throws PaintException
-     *             The paint operation failed.
+     *             if the paint operation failed.
      */
     public void paintContent(PaintTarget target) throws PaintException {
 
@@ -1441,7 +1510,7 @@ public class Table extends Select implements Action.Container,
             target.addVariable(this, "sortascending", this.sortAscending);
         }
 
-        // Reset and paint "to be painted next" variables. Also reset pageBuffer
+        // Resets and paints "to be painted next" variables. Also reset pageBuffer
         reqFirstRowToPaint = -1;
         reqRowsToPaint = -1;
         pageBuffer = null;
@@ -1512,22 +1581,25 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
-     * Get UIDL tag corresponding to component.
+     * Gets the UIDL tag corresponding to component.
      * 
-     * @return UIDL tag as string.
+     * @return the UIDL tag as string.
      */
     public String getTag() {
         return "table";
     }
 
-    /** Return cached visible table contents */
+    /** 
+     * Gets the cached visible table contents.
+     * @return the cahced visible table conetents.
+     */
     private Object[][] getVisibleCells() {
 
-        // Return a buffered value if possible
+        // Returns a buffered value if possible
         if (pageBuffer != null && isPageBufferingEnabled())
             return pageBuffer;
 
-        // Stop listening the old properties and initialise the list
+        // Stops listening the old properties and initialise the list
         if (listenedProperties == null)
             listenedProperties = new LinkedList();
         else
@@ -1543,7 +1615,7 @@ public class Table extends Select implements Action.Container,
                 ((Component) i.next()).setParent(null);
             }
 
-        // Collect basic facts about the table page
+        // Collects the basic facts about the table page
         Object[] colids = getVisibleColumns();
         int cols = colids.length;
         int pagelen = getPageLength();
@@ -1569,7 +1641,7 @@ public class Table extends Select implements Action.Container,
         if (rows == 0)
             return cells;
 
-        // Get first item id
+        // Gets the first item id
         if (items instanceof Container.Indexed) 
                id = ((Container.Indexed) items).getIdByIndex(firstIndex);
         else {
@@ -1583,7 +1655,7 @@ public class Table extends Select implements Action.Container,
             iscomponent[i] = Component.class
                     .isAssignableFrom(getType(colids[i]));
         
-        // Create page contents
+        // Creates the page contents
         int filledRows = 0;
         for (int i = 0; i < rows && id != null; i++) {
             cells[CELL_ITEMID][i] = id;
@@ -1632,7 +1704,7 @@ public class Table extends Select implements Action.Container,
             filledRows++;
         }
 
-        // Assure that all the rows of the cell-buffer are valid
+        // Assures that all the rows of the cell-buffer are valid
         if (filledRows != cells[0].length) {
             Object[][] temp = new Object[cells.length][filledRows];
             for (int i = 0; i < cells.length; i++)
@@ -1641,7 +1713,7 @@ public class Table extends Select implements Action.Container,
             cells = temp;
         }
 
-        // Save the results to internal buffer iff in buffering mode
+        // Saves the results to internal buffer iff in buffering mode
         // to possible conserve memory from large non-buffered pages
         if (isPageBufferingEnabled())
             pageBuffer = cells;
@@ -1650,20 +1722,20 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
-     * Get value of property.
+     * Gets the value of property.
      * 
      * By default if the table is editable the fieldFactory is used to create
      * editors for table cells. Otherwise formatPropertyValue is used to format
      * the value representation.
      * 
-     * @see #setFieldFactory(FieldFactory)
      * @param rowId
-     *            Id of the row (same as item Id)
+     *            the Id of the row (same as item Id).
      * @param colId
-     *            Id of the column
+     *            the Id of the column.
      * @param property
-     *            Property to be presented
+     *            the Property to be presented.
      * @return Object Either formatted value or Component for field.
+     * @see #setFieldFactory(FieldFactory)
      */
     protected Object getPropertyValue(Object rowId, Object colId,
             Property property) {
@@ -1683,10 +1755,11 @@ public class Table extends Select implements Action.Container,
      * Formats table cell property values. By default the property.toString()
      * and return a empty string for null properties.
      * 
-     * @param itemId
+     * @param rowId   the Id of the row (same as item Id).
+     * @param colId the Id of the column.
      * @param property
-     *            Property to be formatted
-     * @return String representation of property and its value.
+     *            the Property to be formatted.
+     * @return the String representation of property and its value.
      * @since 3.1
      */
     protected String formatPropertyValue(Object rowId, Object colId,
@@ -1700,6 +1773,7 @@ public class Table extends Select implements Action.Container,
     /* Action container *************************************************** */
 
     /**
+     * Registers a new action handler for this container
      * @see com.itmill.toolkit.event.Action.Container#addActionHandler(Action.Handler)
      */
     public void addActionHandler(Action.Handler actionHandler) {
@@ -1720,6 +1794,8 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
+     * Removes a previously registered action handler for the contents
+        * of this container.
      * @see com.itmill.toolkit.event.Action.Container#removeActionHandler(Action.Handler)
      */
     public void removeActionHandler(Action.Handler actionHandler) {
@@ -1740,6 +1816,7 @@ public class Table extends Select implements Action.Container,
     /* Property value change listening support **************************** */
 
     /**
+     * Notifies this listener that the Property's value has changed.
      * @see com.itmill.toolkit.data.Property.ValueChangeListener#valueChange(Property.ValueChangeEvent)
      */
     public void valueChange(Property.ValueChangeEvent event) {
@@ -1748,6 +1825,7 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
+     * Notifies the component that it is connected to an application.
      * @see com.itmill.toolkit.ui.Component#attach()
      */
     public void attach() {
@@ -1759,7 +1837,8 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
-     * @see com.itmill.toolkit.ui.Component#attach()
+     * Notifies the component that it is detached from the application
+     * @see com.itmill.toolkit.ui.Component#detach()
      */
     public void detach() {
         super.detach();
@@ -1770,6 +1849,7 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
+     * Removes all Items from the Container.
      * @see com.itmill.toolkit.data.Container#removeAllItems()
      */
     public boolean removeAllItems() {
@@ -1779,6 +1859,7 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
+     * Removes the Item identified by <code>ItemId</code> from the Container.
      * @see com.itmill.toolkit.data.Container#removeItem(Object)
      */
     public boolean removeItem(Object itemId) {
@@ -1792,6 +1873,7 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
+     * Removes a Property specified by the given Property ID from the Container.
      * @see com.itmill.toolkit.data.Container#removeContainerProperty(Object)
      */
     public boolean removeContainerProperty(Object propertyId)
@@ -1808,16 +1890,14 @@ public class Table extends Select implements Action.Container,
 
     /**
      * Adds a new property to the table and show it as a visible column.
-     * 
-     * @see com.itmill.toolkit.data.Container#addContainerProperty(Object,
-     *      Class, Object)
-     * 
      * @param propertyId
-     *            Id of the proprty
+     *            the Id of the proprty.
      * @param type
-     *            The class of the property
+     *            the class of the property.
      * @param defaultValue
-     *            The default value given for all existing items
+     *            the default value given for all existing items.
+     * @see com.itmill.toolkit.data.Container#addContainerProperty(Object,
+     *      Class, Object)
      */
     public boolean addContainerProperty(Object propertyId, Class type,
             Object defaultValue) throws UnsupportedOperationException {
@@ -1831,23 +1911,23 @@ public class Table extends Select implements Action.Container,
     /**
      * Adds a new property to the table and show it as a visible column.
      * 
-     * @see com.itmill.toolkit.data.Container#addContainerProperty(Object,
-     *      Class, Object)
-     * 
      * @param propertyId
-     *            Id of the proprty
+     *            the Id of the proprty
      * @param type
-     *            The class of the property
+     *            the class of the property
      * @param defaultValue
-     *            The default value given for all existing items
+     *            the default value given for all existing items
      * @param columnHeader
-     *            Explicit header of the column. If explicit header is not
+     *            the Explicit header of the column. If explicit header is not
      *            needed, this should be set null.
      * @param columnIcon
-     *            Icon of the column. If icon is not needed, this should be set
+     *            the Icon of the column. If icon is not needed, this should be set
      *            null.
      * @param columnAlignment
-     *            Alignment of the column. Null implies align left.
+     *            the Alignment of the column. Null implies align left.
+     * @throws UnsupportedOperationException if the operation is not supported.
+     * @see com.itmill.toolkit.data.Container#addContainerProperty(Object,
+     *      Class, Object)
      */
     public boolean addContainerProperty(Object propertyId, Class type,
             Object defaultValue, String columnHeader, Resource columnIcon,
@@ -1861,7 +1941,7 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
-     * Return list of items on the current page
+     * Returns the list of items on the current page
      * 
      * @see com.itmill.toolkit.ui.Select#getVisibleItemIds()
      */
@@ -1902,10 +1982,9 @@ public class Table extends Select implements Action.Container,
 
     /**
      * Adding new items is not supported.
-     * 
-     * @see com.itmill.toolkit.ui.Select#setNewItemsAllowed(boolean)
      * @throws UnsupportedOperationException
      *             if set to true.
+     * @see com.itmill.toolkit.ui.Select#setNewItemsAllowed(boolean)
      */
     public void setNewItemsAllowed(boolean allowNewOptions)
             throws UnsupportedOperationException {
@@ -1915,16 +1994,17 @@ public class Table extends Select implements Action.Container,
 
     /**
      * Focusing to this component is not supported.
-     * 
-     * @see com.itmill.toolkit.ui.AbstractField#focus()
      * @throws UnsupportedOperationException
      *             if invoked.
+     * @see com.itmill.toolkit.ui.AbstractField#focus()
      */
     public void focus() throws UnsupportedOperationException {
         throw new UnsupportedOperationException();
     }
 
     /**
+     * Gets the ID of the Item following the Item that corresponds to
+     * itemId.
      * @see com.itmill.toolkit.data.Container.Ordered#nextItemId(java.lang.Object)
      */
     public Object nextItemId(Object itemId) {
@@ -1932,6 +2012,8 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
+     * Gets the ID of the Item preceding the Item that corresponds to
+     * the itemId.
      * @see com.itmill.toolkit.data.Container.Ordered#prevItemId(java.lang.Object)
      */
     public Object prevItemId(Object itemId) {
@@ -1939,6 +2021,7 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
+     * Gets the ID of the first Item in the Container.
      * @see com.itmill.toolkit.data.Container.Ordered#firstItemId()
      */
     public Object firstItemId() {
@@ -1946,6 +2029,7 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
+     * Gets the ID of the last Item in the Container.
      * @see com.itmill.toolkit.data.Container.Ordered#lastItemId()
      */
     public Object lastItemId() {
@@ -1953,6 +2037,8 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
+     * Tests if the Item corresponding to the given Item ID is the first
+     * Item in the Container.
      * @see com.itmill.toolkit.data.Container.Ordered#isFirstId(java.lang.Object)
      */
     public boolean isFirstId(Object itemId) {
@@ -1960,6 +2046,8 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
+     * Tests if the Item corresponding to the given Item ID is the last Item
+     * in the Container.
      * @see com.itmill.toolkit.data.Container.Ordered#isLastId(java.lang.Object)
      */
     public boolean isLastId(Object itemId) {
@@ -1967,6 +2055,7 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
+     * Adds new item after the given item.
      * @see com.itmill.toolkit.data.Container.Ordered#addItemAfter(java.lang.Object)
      */
     public Object addItemAfter(Object previousItemId)
@@ -1975,6 +2064,7 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
+     * Adds new item after the given item.
      * @see com.itmill.toolkit.data.Container.Ordered#addItemAfter(java.lang.Object,
      *      java.lang.Object)
      */
@@ -1985,27 +2075,26 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
-     * Get the FieldFactory that is used to create editor for table cells.
+     * Gets the FieldFactory that is used to create editor for table cells.
      * 
      * The FieldFactory is only used if the Table is editable.
-     * 
-     * @see #isEditable
      * @return FieldFactory used to create the Field instances.
+     * @see #isEditable
      */
     public FieldFactory getFieldFactory() {
         return fieldFactory;
     }
 
     /**
-     * Set the FieldFactory that is used to create editor for table cells.
+     * Sets the FieldFactory that is used to create editor for table cells.
      * 
      * The FieldFactory is only used if the Table is editable. By default the
      * BaseFieldFactory is used.
-     * 
+     * @param fieldFactory
+     *            the field factory to set.
      * @see #isEditable
      * @see BaseFieldFactory
-     * @param fieldFactory
-     *            The field factory to set
+
      */
     public void setFieldFactory(FieldFactory fieldFactory) {
         this.fieldFactory = fieldFactory;
@@ -2023,17 +2112,17 @@ public class Table extends Select implements Action.Container,
      * To provide custom editors for table cells create a class implementins the
      * FieldFactory interface, and assign it to table, and set the editable
      * property to true.
-     * 
+     * @return true if table is editable, false oterwise.
      * @see Field
      * @see FieldFactory
-     * @return true if table is editable, false oterwise.
+     * 
      */
     public boolean isEditable() {
         return editable;
     }
 
     /**
-     * Set the editable property.
+     * Sets the editable property.
      * 
      * If table is editable a editor of type Field is created for each table
      * cell. The assigned FieldFactory is used to create the instances.
@@ -2041,11 +2130,11 @@ public class Table extends Select implements Action.Container,
      * To provide custom editors for table cells create a class implementins the
      * FieldFactory interface, and assign it to table, and set the editable
      * property to true.
-     * 
-     * @see Field
-     * @see FieldFactory
      * @param editable
      *            true if table should be editable by user.
+     * @see Field
+     * @see FieldFactory
+     * 
      */
     public void setEditable(boolean editable) {
         this.editable = editable;
@@ -2055,14 +2144,13 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
-     * Sort table.
-     * 
-     * @see com.itmill.toolkit.data.Container.Sortable#sort(java.lang.Object[],
-     *      boolean[])
-     * 
+     * Sorts the table.
      * @throws UnsupportedOperationException
      *             if the container data source does not implement
      *             Container.Sortable
+     * @see com.itmill.toolkit.data.Container.Sortable#sort(java.lang.Object[],
+     *      boolean[])
+     * 
      */
     public void sort(Object[] propertyId, boolean[] ascending)
             throws UnsupportedOperationException {
@@ -2078,7 +2166,7 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
-     * Sort table by currently selected sorting column.
+     * Sorts the table by currently selected sorting column.
      * 
      * @throws UnsupportedOperationException
      *             if the container data source does not implement
@@ -2091,8 +2179,8 @@ public class Table extends Select implements Action.Container,
                 new boolean[] { this.sortAscending });
     }
 
-    /*
-     * (non-Javadoc)
+    /**
+     * Gets the container property IDs, which can be used to sort the item.
      * 
      * @see com.itmill.toolkit.data.Container.Sortable#getSortableContainerPropertyIds()
      */
@@ -2106,19 +2194,19 @@ public class Table extends Select implements Action.Container,
     }
 
     /**
-     * Get the currently sorted column property ID.
+     * Gets the currently sorted column property ID.
      * 
-     * @return Container property id of the currently sorted column.
+     * @return the Container property id of the currently sorted column.
      */
     public Object getSortContainerPropertyId() {
         return this.sortContainerPropertyId;
     }
 
     /**
-     * Set the currently sorted column property id.
+     * Sets the currently sorted column property id.
      * 
      * @param propertyId
-     *            Container property id of the currently sorted column.
+     *            the Container property id of the currently sorted column.
      */
     public void setSortContainerPropertyId(Object propertyId) {
         if ((this.sortContainerPropertyId != null && !this.sortContainerPropertyId
@@ -2128,7 +2216,7 @@ public class Table extends Select implements Action.Container,
             sort();
         }
 
-        // Assure visual refresh
+        // Assures the visual refresh
         refreshCurrentPage();
     }
 
@@ -2136,18 +2224,18 @@ public class Table extends Select implements Action.Container,
      * Is the table currently sorted in ascending order.
      * 
      * @return <code>true</code> if ascending, <code>false</code> if
-     *         descending
+     *         descending.
      */
     public boolean isSortAscending() {
         return this.sortAscending;
     }
 
     /**
-     * Set the table in ascending order.
+     * Sets the table in ascending order.
      * 
      * @param ascending
      *            <code>true</code> if ascending, <code>false</code> if
-     *            descending
+     *            descending.
      */
     public void setSortAscending(boolean ascending) {
         if (this.sortAscending != ascending) {
@@ -2155,11 +2243,12 @@ public class Table extends Select implements Action.Container,
             sort();
         }
 
-        // Assure visual refresh
+        // Assures the visual refresh
         refreshCurrentPage();
     }
 
-    /** Is sorting disabled alltogether.
+    /**
+     *  Is sorting disabled alltogether.
      * 
      * True iff no sortable columns are given even in the case where datasource would support this.
      * 
@@ -2170,12 +2259,13 @@ public class Table extends Select implements Action.Container,
     }
 
 
-    /** Disable sorting alltogether.
+    /** 
+     * Disables the sorting alltogether.
      * 
      * To disable sorting alltogether, set to true. In this case no 
      * sortable columns are given even in the case where datasource would support this.
      * 
-     * @param sortDisabled True iff sorting is disabled
+     * @param sortDisabled True iff sorting is disabled.
      */
     public void setSortDisabled(boolean sortDisabled) {
         if (this.sortDisabled != sortDisabled) {
@@ -2185,6 +2275,7 @@ public class Table extends Select implements Action.Container,
     }
 
        /**
+        * Gets the height property units.
         * @see com.itmill.toolkit.terminal.Sizeable#getHeightUnits()
         */
        public int getHeightUnits() {
@@ -2192,13 +2283,15 @@ public class Table extends Select implements Action.Container,
        }
 
        /**
+        * Gets the width property units.
         * @see com.itmill.toolkit.terminal.Sizeable#getWidthUnits()
         */
        public int getWidthUnits() {
                return widthUnit;
        }
 
-       /** Set height units.
+       /** 
+        * Sets the height units.
         * Table supports only Sizeable.UNITS_PIXELS. Setting to any other throws
         * IllegalArgumentException.
         * @see com.itmill.toolkit.terminal.Sizeable#setHeightUnits(int)
@@ -2209,8 +2302,9 @@ public class Table extends Select implements Action.Container,
                this.heightUnit = units;
        }
 
-       /** Set width units.
-        *  Tabel supports only Sizeable.UNITS_PIXELS and Sizeable.UNITS_PERCENTAGE. Setting to any other throws
+       /** 
+        * Sets the width units.
+        * Tabel supports only Sizeable.UNITS_PIXELS and Sizeable.UNITS_PERCENTAGE. Setting to any other throws
         * IllegalArgumentException.
         * @see com.itmill.toolkit.terminal.Sizeable#setWidthUnits(int)
         */
@@ -2221,39 +2315,47 @@ public class Table extends Select implements Action.Container,
        }
        
        /**
-        * @return  The height in pixels or negative value if not assigned.
+        * Gets the height in pixels.
+        * @return  the height in pixels or negative value if not assigned.
+        * @see com.itmill.toolkit.terminal.Sizeable#getHeight()
         */
        public int getHeight() {
                return height;
        }
 
        /**
-        * @return The width in pixels or negative value if not assigned. 
+        * Gets the width in pixels.
+        * @return the width in pixels or negative value if not assigned. 
+        * @see com.itmill.toolkit.terminal.Sizeable#getWidth()
         */
        public int getWidth() {
                return width;
        }
 
-       /** Sets the height in pixels.
+       /** 
+        * Sets the height in pixels.
         * Use negative value to let the client decide the height.
-        * @param height The height to set
+        * @param height the height to set.
         */
        public void setHeight(int height) {
                this.height = height;
                requestRepaint();
        }
 
-       /** Sets the width in pixels.
+       /** 
+        * Sets the width in pixels.
         * Use negative value to allow the client decide the width.
-        * @param width The width to set
+        * @param width the width to set.
         */
        public void setWidth(int width) {
                this.width = width;
                requestRepaint();
        }
 
-       /** Table does not support lazy options loading mode. 
+       /**
+        * Table does not support lazy options loading mode. 
         * Setting this true will throw UnsupportedOperationException. 
+        * @see com.itmill.toolkit.ui.Select#setLazyLoading(boolean)
         */
     public void setLazyLoading(boolean useLazyLoading) {
        if (useLazyLoading)
index b963774d1ac624104a1b805e3710e959f6f523e2..b377c657ad15e262602ddd9cdc4b01729c8040aa 100644 (file)
@@ -35,15 +35,20 @@ import com.itmill.toolkit.data.Property;
 import com.itmill.toolkit.terminal.PaintException;
 import com.itmill.toolkit.terminal.PaintTarget;
 
-/** <p>A text editor component that can be bound to any bindable Property.
+/** 
+ * <p>
+ * A text editor component that can be bound to any bindable Property.
  * The text editor supports both multiline and single line modes, default
- * is one-line mode.</p>
+ * is one-line mode.
+ * </p>
  *
- * <p>Since <code>TextField</code> extends <code>AbstractField</code> it
+ * <p>
+ * Since <code>TextField</code> extends <code>AbstractField</code> it
  * implements the {@link com.itmill.toolkit.data.Buffered} interface. A
  * <code>TextField</code> is in write-through mode by default, so
  * {@link com.itmill.toolkit.ui.AbstractField#setWriteThrough(boolean)}
- * must be called to enable buffering.</p>
+ * must be called to enable buffering.
+ * </p>
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -53,74 +58,94 @@ public class TextField extends AbstractField {
 
        /* Private members ************************************************* */
 
-       /** Value formatter used to format the string contents*/
+       /** 
+        * Value formatter used to format the string contents.
+        */
        private Format format;
 
-       /** Number of visible columns in the TextField. */
+       /** 
+        * Number of visible columns in the TextField. 
+        */
        private int columns = 0;
 
-       /** Number of visible rows in a multiline TextField. Value 0 implies a
+       /** 
+        * Number of visible rows in a multiline TextField. Value 0 implies a
         * single-line text-editor.
         */
        private int rows = 0;
 
-       /** Tells if word-wrapping should be used in multiline mode. */
+       /** 
+        * Tells if word-wrapping should be used in multiline mode. 
+        */
        private boolean wordwrap = true;
 
-       /** Tells if input is used to enter sensitive information that is
-        *  not echoed to display. Typically passwords. 
+       /** 
+        * Tells if input is used to enter sensitive information that is
+        * not echoed to display. Typically passwords. 
         */
        private boolean secret = false;
 
-       /** Null representation. */
+       /** 
+        * Null representation. 
+        */
        private String nullRepresentation = "null";
 
-       /** Is setting to null from non-null value allowed by setting with 
-        * null representation */
+       /** 
+        * Is setting to null from non-null value allowed by setting with 
+        * null representation .
+        */
        private boolean nullSettingAllowed = false;
 
        /* Constructors **************************************************** */
 
-       /** Constructs an empty <code>TextField</code> with no caption. */
+       /** 
+        * Constructs an empty <code>TextField</code> with no caption. 
+        */
        public TextField() {
                setValue("");
        }
 
-       /** Constructs an empty <code>TextField</code> with given caption. */
+       /** 
+        * Constructs an empty <code>TextField</code> with given caption.
+        * @param caption the caption <code>String</code> for the editor. 
+        */
        public TextField(String caption) {
                setValue("");
                setCaption(caption);
        }
 
-       /** Constructs a new <code>TextField</code> that's bound to the
+       /** 
+        * Constructs a new <code>TextField</code> that's bound to the
         * specified <code>Property</code> and has no caption.
         * 
-        * @param dataSource the Property to be edited with this editor
+        * @param dataSource the Property to be edited with this editor.
         */
        public TextField(Property dataSource) {
                setPropertyDataSource(dataSource);
        }
 
-       /** Constructs a new <code>TextField</code> that's bound to the
+       /** 
+        * Constructs a new <code>TextField</code> that's bound to the
         * specified <code>Property</code> and has the given caption
         * <code>String</code>.
         * 
-        * @param caption caption <code>String</code> for the editor
-        * @param dataSource the Property to be edited with this editor
+        * @param caption the caption <code>String</code> for the editor.
+        * @param dataSource the Property to be edited with this editor.
         */
        public TextField(String caption, Property dataSource) {
                this(dataSource);
                setCaption(caption);
        }
 
-       /** Constructs a new <code>TextField</code> with the given caption and
+       /** 
+        * Constructs a new <code>TextField</code> with the given caption and
         * initial text contents. The editor constructed this way will not be
         * bound to a Property unless
         * {@link com.itmill.toolkit.data.Property.Viewer#setPropertyDataSource(Property)}
         * is called to bind it.
         * 
-        * @param caption caption <code>String</code> for the editor
-        * @param text initial text content of the editor
+        * @param caption the caption <code>String</code> for the editor.
+        * @param text the initial text content of the editor.
         */
        public TextField(String caption, String value) {
                setValue(value);
@@ -129,18 +154,18 @@ public class TextField extends AbstractField {
 
        /* Component basic features ********************************************* */
 
-       /* Paint this component.
+       /* Paints this component.
         * Don't add a JavaDoc comment here, we use the default documentation
         * from implemented interface.
         */
        public void paintContent(PaintTarget target) throws PaintException {
                super.paintContent(target);
 
-               // Set secret attribute
+               // Sets the secret attribute
                if (this.isSecret())
                        target.addAttribute("secret", true);
 
-               // Add the number of column and rows
+               // Adds the number of column and rows
                int c = getColumns();
                int r = getRows();
                if (c != 0)
@@ -152,7 +177,7 @@ public class TextField extends AbstractField {
                                target.addAttribute("wordwrap", false);
                }
 
-               // Add content as variable
+               // Adds the content as variable
                String value = getFormattedValue();
                if (value == null)
                        value = getNullRepresentation();
@@ -161,10 +186,11 @@ public class TextField extends AbstractField {
                target.addVariable(this, "text", value);
        }
 
-       /** Get the formatted dtring value.
-        *  Sets the field value by using the assigned Format.
-        * @param value to be formatted
-        * @return Formatted value
+       /** 
+        * Gets the formatted dtring value.
+        * Sets the field value by using the assigned Format.
+        * 
+        * @return the Formatted value.
         * @see #setFormat(Format)
         * @see Format
         */
@@ -195,7 +221,7 @@ public class TextField extends AbstractField {
         */
        public void changeVariables(Object source, Map variables) {
 
-               // Set the text
+               // Sets the text
                if (variables.containsKey("text") && !isReadOnly()) {
 
                        // Only do the setting if the string representation of the value
@@ -215,21 +241,23 @@ public class TextField extends AbstractField {
 
        /* Text field configuration ********************************************* */
 
-       /** Gets the number of columns in the editor. If the number of columns
+       /** 
+        * Gets the number of columns in the editor. If the number of columns
         * is set 0, the actual number of displayed columns is determined
         * implicitly by the adapter.
         * 
-        * @param the number of columns for this editor
+        * @return the number of columns in the editor.
         */
        public int getColumns() {
                return this.columns;
        }
 
-       /** Sets the number of columns in the editor. If the number of columns
+       /** 
+        * Sets the number of columns in the editor. If the number of columns
         * is set 0, the actual number of displayed columns is determined
         * implicitly by the adapter.
         * 
-        * @return number of explicitly set columns
+        * @param columns the number of columns to set.
         */
        public void setColumns(int columns) {
                if (columns < 0)
@@ -238,21 +266,23 @@ public class TextField extends AbstractField {
                requestRepaint();
        }
 
-       /** Gets the number of rows in the editor. If the number of rows is set
+       /** 
+        * Gets the number of rows in the editor. If the number of rows is set
         * to 0, the actual number of displayed rows is determined implicitly by
         * the adapter.
         * 
-        * @return number of explicitly set rows
+        * @return number of explicitly set rows.
         */
        public int getRows() {
                return this.rows;
        }
 
-       /** Sets the number of rows in the editor. If the number of rows is set
+       /** 
+        * Sets the number of rows in the editor. If the number of rows is set
         * to 0, the actual number of displayed rows is determined implicitly by
         * the adapter.
         * 
-        * @param the number of rows for this editor
+        * @param rows the number of rows for this editor.
         */
        public void setRows(int rows) {
                if (rows < 0)
@@ -261,18 +291,20 @@ public class TextField extends AbstractField {
                requestRepaint();
        }
 
-       /** Tests if the editor is in word-wrap mode.
+       /** 
+        * Tests if the editor is in word-wrap mode.
         * 
         * @return <code>true</code> if the component is in the word-wrap mode,
-        * <code>false</code> if not
+        * <code>false</code> if not.
         */
        public boolean isWordwrap() {
                return this.wordwrap;
        }
 
-       /** Sets the editor's word-wrap mode on or off. 
+       /** 
+        * Sets the editor's word-wrap mode on or off. 
         * 
-        * @param wordwrap boolean value specifying if the editor should be in
+        * @param wordwrap the boolean value specifying if the editor should be in
         * word-wrap mode after the call or not.
         */
        public void setWordwrap(boolean wordwrap) {
@@ -288,51 +320,56 @@ public class TextField extends AbstractField {
        public Class getType() {
                return String.class;
        }
-       /** Get the secret property on and off.
+       /** 
+        * Gets the secret property on and off.
         * If a field is used to enter secretinformation
         * the information is not echoed to display.
-        * @return true if the field is used to enter secret information, false otherwise.
+        * @return <code>true</code> if the field is used to enter secret information, <code>false</code> otherwise.
         */
        public boolean isSecret() {
                return secret;
        }
 
-       /** Set the secret property on and off.
+       /** 
+        * Sets the secret property on and off.
         * If a field is used to enter secretinformation
         * the information is not echoed to display.
-        * @param secret value specifying if the field is used to enter secret information.
+        * @param secret the value specifying if the field is used to enter secret information.
         */
        public void setSecret(boolean secret) {
                this.secret = secret;
        }
 
-       /** Get the null-string representation.
+       /** 
+        * Gets the null-string representation.
         * 
         * <p>The null-valued strings are represented on the user interface by replacing the 
         * null value with this string. If the null representation is set null (not 'null' string),
         * painting null value throws exception.</p>
         * 
-        * <p>The default value is string 'null'</p>
-        * 
+        * <p>The default value is string 'null'.</p>
+        * @return the String Textual representation for null strings.
         * @see TextField#isNullSettingAllowed()
-        * @return String Textual representation for null strings.
         */
        public String getNullRepresentation() {
                return nullRepresentation;
        }
 
-       /** Is setting nulls with null-string representation allowed.
+       /** 
+        * Is setting nulls with null-string representation allowed.
         * 
-        * <p>If this property is true, writing null-representation string to text 
+        * <p>
+        * If this property is true, writing null-representation string to text 
         * field allways sets the field value to real null. If this property is 
         * false, null setting is not made, but the null values are maintained. 
         * Maintenance of null-values is made by only converting the textfield
         * contents to real null, if the text field matches the null-string 
-        * representation and the current value of the field is null.</p>
+        * representation and the current value of the field is null.
+        * </p>
         * 
         * <p>By default this setting is false</p>
         * 
-        * @return boolean Should the null-string represenation be allways
+        * @return  boolean Should the null-string represenation be allways
         * converted to null-values.
         * @see TextField#getNullRepresentation()
         */
@@ -340,22 +377,23 @@ public class TextField extends AbstractField {
                return nullSettingAllowed;
        }
 
-       /** Sets the null-string representation.
+       /** 
+        * Sets the null-string representation.
         * 
         * <p>The null-valued strings are represented on the user interface by replacing the 
         * null value with this string. If the null representation is set null (not 'null' string),
         * painting null value throws exception.</p>
         * 
         * <p>The default value is string 'null'</p>
-        * 
-        * @see TextField#setNullSettingAllowed(boolean)
         * @param nullRepresentation Textual representation for null strings.
+        * @see TextField#setNullSettingAllowed(boolean)
         */
        public void setNullRepresentation(String nullRepresentation) {
                this.nullRepresentation = nullRepresentation;
        }
 
-       /** Set the null conversion mode.
+       /** 
+        * Sets the null conversion mode.
         * 
         * <p>If this property is true, writing null-representation string to text 
         * field allways sets the field value to real null. If this property is 
@@ -364,7 +402,7 @@ public class TextField extends AbstractField {
         * contents to real null, if the text field matches the null-string 
         * representation and the current value of the field is null.</p>
         * 
-        * <p>By default this setting is false</p>
+        * <p>By default this setting is false.</p>
         * 
         * @param nullSettingAllowed Should the null-string represenation be allways
         * converted to null-values.
@@ -374,18 +412,19 @@ public class TextField extends AbstractField {
                this.nullSettingAllowed = nullSettingAllowed;
        }
 
-       /** Get the value formatter of TextField.
-        * 
+       /** 
+        * Gets the value formatter of TextField.
         * 
-        * @return The Format used to format the value.
+        * @return the Format used to format the value.
         */
        public Format getFormat() {
                return format;
        }
 
-       /** Get the value formatter of TextField.
+       /** 
+        * Gets the value formatter of TextField.
         * 
-        * @param The Format used to format the value. Null disables the formatting.
+        * @param format the Format used to format the value. Null disables the formatting.
         */
        public void setFormat(Format format) {
                this.format = format;
index cdb95d5ec2ddd1fb722be938e56a4adc7ec8b875..191f5e2375620105694f967cc2a45e156fd7ddc0 100644 (file)
@@ -47,9 +47,10 @@ import com.itmill.toolkit.terminal.PaintException;
 import com.itmill.toolkit.terminal.PaintTarget;
 import com.itmill.toolkit.terminal.Resource;
 
-/** MenuTree component.
- *  MenuTree can be used to select an item (or multiple items)
- *  from a hierarchical set of items.
+/** 
+ * MenuTree component.
+ * MenuTree can be used to select an item (or multiple items)
+ * from a hierarchical set of items.
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -82,30 +83,47 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
 
        /* Private members **************************************************** */
 
-       /** Set of expanded nodes */
+       /** 
+        * Set of expanded nodes. 
+        */
        private HashSet expanded = new HashSet();
 
-       /** List of action handlers */
+       /** 
+        * List of action handlers. 
+        */
        private LinkedList actionHandlers = null;
 
-       /** Action mapper */
+       /** 
+        * Action mapper. 
+        */
        private KeyMapper actionMapper = null;
 
-       /** Is the tree selectable */
+       /** 
+        * Is the tree selectable .
+        */
        private boolean selectable = true;
 
        /* Tree constructors ************************************************** */
 
-       /** Create new empty tree */
+       /** 
+        * Creates the new empty tree. 
+        */
        public Tree() {
        }
 
-       /** Create new empty tree with caption. */
+       /** 
+        * Creates the new empty tree with caption.
+        * @param caption  
+        */
        public Tree(String caption) {
                setCaption(caption);
        }
 
-       /** Create new tree with caption and connect it to a Container. */
+       /** 
+        * Creates the new tree with caption and connect it to a Container. 
+        * @param caption 
+        * @param dataSource
+        */
        public Tree(String caption, Container dataSource) {
                setCaption(caption);
                setContainerDataSource(dataSource);
@@ -113,15 +131,18 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
 
        /* Expanding and collapsing ******************************************* */
 
-       /** Check is an item is expanded
-        * @return true iff the item is expanded
+       /** 
+        * Check is an item is expanded
+        * @param itemId the item id.
+        * @return true iff the item is expanded.
         */
        public boolean isExpanded(Object itemId) {
                return expanded.contains(itemId);
        }
 
-       /** Expand an item.
-        * 
+       /** 
+        * Expands an item.
+        * @param itemId the item id.
         * @return True iff the expand operation succeeded
         */
        public boolean expandItem(Object itemId) {
@@ -134,7 +155,7 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
                if (!areChildrenAllowed(itemId))
                        return false;
 
-               // Expand
+               // Expands
                expanded.add(itemId);
                requestRepaint();
                fireExpandEvent(itemId);
@@ -142,10 +163,12 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
                return true;
        }
 
-       /** Expand items recursively
+       /** 
+        * Expands the items recursively
         * 
         * Expands all the children recursively starting from an item.
         * Operation succeeds only if all expandable items are expanded.
+        * @param startItemId
         * @return True iff the expand operation succeeded
         */
        public boolean expandItemsRecursively(Object startItemId) {
@@ -156,7 +179,7 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
                Stack todo = new Stack();
                todo.add(startItemId);
 
-               // Expand recursively
+               // Expands recursively
                while (!todo.isEmpty()) {
                        Object id = todo.pop();
                        if (areChildrenAllowed(id) && !expandItem(id)) {
@@ -170,8 +193,9 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
                return result;
        }
 
-       /** Collapse an item.
-        * 
+       /** 
+        * Collapses an item.
+        * @param itemId the item id.
         * @return True iff the collapse operation succeeded
         */
        public boolean collapseItem(Object itemId) {
@@ -188,10 +212,12 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
                return true;
        }
 
-       /** Collapse items recursively
+       /** 
+        * Collapses the items recursively.
         * 
         * Collapse all the children recursively starting from an item.
         * Operation succeeds only if all expandable items are collapsed.
+        * @param startItemId
         * @return True iff the collapse operation succeeded
         */
        public boolean collapseItemsRecursively(Object startItemId) {
@@ -216,21 +242,23 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
                return result;
        }
 
-       /** Getter for property selectable.
+       /** 
+        * Getter for property selectable.
         * 
         * <p>The tree is selectable by default.</p>
         * 
-        * @return Value of property selectable.
+        * @return the Value of property selectable.
         */
        public boolean isSelectable() {
                return this.selectable;
        }
 
-       /** Setter for property selectable.
+       /**
+        * Setter for property selectable.
         * 
         * <p>The tree is selectable by default.</p>
         * 
-        * @param selectable New value of property selectable.
+        * @param selectable the New value of property selectable.
         */
        public void setSelectable(boolean selectable) {
                if (this.selectable != selectable) {
@@ -242,6 +270,7 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
        /* Component API ****************************************************** */
 
        /**
+        * Gets the UIDL tag corresponding to the component.
         * @see com.itmill.toolkit.ui.AbstractComponent#getTag()
         */
        public String getTag() {
@@ -249,11 +278,13 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
        }
 
        /**
+        * Called when one or more variables handled by the implementing class
+     * are changed.
         * @see com.itmill.toolkit.terminal.VariableOwner#changeVariables(Object source, Map variables)
         */
        public void changeVariables(Object source, Map variables) {
 
-                       // Collapse nodes
+                       // Collapses the nodes
                        if (variables.containsKey("collapse")) {
                                String[] keys = (String[]) variables.get("collapse");
                                for (int i = 0; i < keys.length; i++) {
@@ -263,7 +294,7 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
                                }
                        }
 
-                       // Expand nodes
+                       // Expands the nodes
                        if (variables.containsKey("expand")) {
                                String[] keys = (String[]) variables.get("expand");
                                for (int i = 0; i < keys.length; i++) {
@@ -299,6 +330,8 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
        }
 
        /**
+        * Paints any needed component-specific things to the given UIDL
+        * stream.
         * @see com.itmill.toolkit.ui.AbstractComponent#paintContent(PaintTarget)
         */
        public void paintContent(PaintTarget target) throws PaintException {
@@ -333,39 +366,39 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
                int keyIndex = 0;
                LinkedList expandedKeys = new LinkedList();
 
-               // Iterate trough hierarchical tree using a stack of iterators
+               // Iterates through hierarchical tree using a stack of iterators
                Stack iteratorStack = new Stack();
                Collection ids = rootItemIds();
                if (ids != null)
                        iteratorStack.push(ids.iterator());
                while (!iteratorStack.isEmpty()) {
 
-                       // Get the iterator for current tree level
+                       // Gets the iterator for current tree level
                        Iterator i = (Iterator) iteratorStack.peek();
 
                        // If the level is finished, back to previous tree level
                        if (!i.hasNext()) {
 
-                               // Remove used iterator from the stack
+                               // Removes used iterator from the stack
                                iteratorStack.pop();
 
-                               // Close node
+                               // Closes node
                                if (!iteratorStack.isEmpty())
                                        target.endTag("node");
                        }
 
-                       // Add the item on current level
+                       // Adds the item on current level
                        else {
                                Object itemId = i.next();
 
-                               // Start the item / node
+                               // Starts the item / node
                                boolean isNode = areChildrenAllowed(itemId);
                                if (isNode)
                                        target.startTag("node");
                                else
                                        target.startTag("leaf");
 
-                               // Add attributes
+                               // Adds the attributes
                                target.addAttribute("caption", getItemCaption(itemId));
                                Resource icon = getItemIcon(itemId);
                                if (icon != null)
@@ -401,7 +434,7 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
                                        target.endTag("al");
                                }
 
-                               // Add children if expanded, or close the tag
+                               // Adds the children if expanded, or close the tag
                                if (isExpanded(itemId) && hasChildren(itemId) 
                                        && areChildrenAllowed(itemId)) {
                                        iteratorStack.push(getChildren(itemId).iterator());
@@ -448,6 +481,7 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
        /* Container.Hierarchical API ***************************************** */
 
        /**
+        * Tests if the Item with given ID can have any children.
         * @see com.itmill.toolkit.data.Container.Hierarchical#areChildrenAllowed(Object)
         */
        public boolean areChildrenAllowed(Object itemId) {
@@ -455,6 +489,7 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
        }
 
        /**
+        * Gets the IDs of all Items that are children of the specified Item.
         * @see com.itmill.toolkit.data.Container.Hierarchical#getChildren(Object)
         */
        public Collection getChildren(Object itemId) {
@@ -462,6 +497,7 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
        }
 
        /**
+        * Gets the ID of the parent Item of the specified Item.
         * @see com.itmill.toolkit.data.Container.Hierarchical#getParent(Object)
         */
        public Object getParent(Object itemId) {
@@ -469,6 +505,8 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
        }
 
        /**
+        * Tests if the Item specified with <code>itemId</code> has any child
+     * Items, that is, is it a leaf Item.
         * @see com.itmill.toolkit.data.Container.Hierarchical#hasChildren(Object)
         */
        public boolean hasChildren(Object itemId) {
@@ -476,6 +514,8 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
        }
 
        /**
+        * Tests if the Item specified with <code>itemId</code> is a root
+     * Item.
         * @see com.itmill.toolkit.data.Container.Hierarchical#isRoot(Object)
         */
        public boolean isRoot(Object itemId) {
@@ -483,6 +523,7 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
        }
 
        /**
+        * Gets the IDs of all Items in the container that don't have a parent.
         * @see com.itmill.toolkit.data.Container.Hierarchical#rootItemIds()
         */
        public Collection rootItemIds() {
@@ -490,6 +531,7 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
        }
 
        /**
+        * Sets the given Item's capability to have children.
         * @see com.itmill.toolkit.data.Container.Hierarchical#setChildrenAllowed(Object, boolean)
         */
        public boolean setChildrenAllowed(
@@ -505,6 +547,7 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
        }
 
        /**
+        * Sets the parent of an Item.
         * @see com.itmill.toolkit.data.Container.Hierarchical#setParent(Object, Object)
         */
        public boolean setParent(Object itemId, Object newParentId) {
@@ -518,6 +561,7 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
        /* Overriding select behavior******************************************** */
 
        /**
+        * Sets the Container that serves as the data source of the viewer.
         * @see com.itmill.toolkit.data.Container.Viewer#setContainerDataSource(Container)
         */
        public void setContainerDataSource(Container newDataSource) {
@@ -536,10 +580,12 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
 
        /* Expand event and listener ****************************************** */
 
-       /** Event to fired when a node is expanded.
-        *  ExapandEvent is fired when a node is to be expanded.
-        *  it can me used to dynamically fill the sub-nodes of the
-        *  node.
+       /**
+        * Event to fired when a node is expanded.
+        * ExapandEvent is fired when a node is to be expanded.
+        * it can me used to dynamically fill the sub-nodes of the
+        * node.
+        * 
         * @author IT Mill Ltd.
         * @version @VERSION@
         * @since 3.0
@@ -551,61 +597,75 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
          */
         private static final long serialVersionUID = 3832624001804481075L;
         private Object expandedItemId;
-               /** New instance of options change event
-                * @param source Source of the event.
+        
+               /** 
+                * New instance of options change event
+                * @param source the Source of the event.
+                * @param expandedItemId
                 */
                public ExpandEvent(Component source, Object expandedItemId) {
                        super(source);
                        this.expandedItemId = expandedItemId;
                }
 
-               /** Node where the event occurred
-                * @return Source of the event.
+               /** 
+                * Node where the event occurred.
+                * @return the Source of the event.
                 */
                public Object getItemId() {
                        return this.expandedItemId;
                }
        }
 
-       /** Expand event listener
+       /** 
+        * Expand event listener.
+        * 
         * @author IT Mill Ltd.
         * @version @VERSION@
         * @since 3.0 
         */
        public interface ExpandListener {
 
-               /** A node has been expanded.
-                * @param event Expand event.
+               /** 
+                * A node has been expanded.
+                * @param event the Expand event.
                 */
                public void nodeExpand(ExpandEvent event);
        }
 
-       /** Add expand listener
-        * @param listener Listener to be added.
+       /** 
+        * Adds the expand listener.
+        * @param listener the Listener to be added.
         */
        public void addListener(ExpandListener listener) {
                addListener(ExpandEvent.class, listener, EXPAND_METHOD);
        }
 
-       /** Remove expand listener
-        * @param listener Listener to be removed.
+       /** 
+        * Removes the expand listener.
+        * @param listener the Listener to be removed.
         */
        public void removeListener(ExpandListener listener) {
                removeListener(ExpandEvent.class, listener, EXPAND_METHOD);
        }
 
-       /** Emit expand  event. */
+       /** 
+        * Emits the expand  event.
+        * @param itemId the item id. 
+        */
        protected void fireExpandEvent(Object itemId) {
                fireEvent(new ExpandEvent(this, itemId));
        }
 
        /* Collapse  event ****************************************** */
 
-       /** Collapse event 
+       /** 
+        * Collapse event 
+        * 
         * @author IT Mill Ltd.
-                * @version @VERSION@
-                * @since 3.0
-                */
+        * @version @VERSION@
+     * @since 3.0
+        */
        public class CollapseEvent extends Component.Event {
 
                /**
@@ -615,57 +675,69 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
         
         private Object collapsedItemId;
 
-               /** New instance of options change event
-                * @param source Source of the event.
+               /** 
+                * New instance of options change event.
+                * @param source the Source of the event.
+                * @param collapsedItemId
                 */
                public CollapseEvent(Component source, Object collapsedItemId) {
                        super(source);
                        this.collapsedItemId = collapsedItemId;
                }
 
-               /** Node where the event occurred
-                * @return Source of the event.
+               /** 
+                * Gets tge Collapsed Item id.
+                * @return the collapsed item id.
                 */
                public Object getItemId() {
                        return collapsedItemId;
                }
        }
 
-       /** Collapse event listener 
+       /** 
+        * Collapse event listener.
+        * 
         * @author IT Mill Ltd.
-                * @version @VERSION@
+        * @version @VERSION@
         * @since 3.0
         */
        public interface CollapseListener {
 
-               /** A node has been collapsed.
-                * @param event Collapse event.
+               /** 
+                * A node has been collapsed.
+                * @param event the Collapse event.
                 */
                public void nodeCollapse(CollapseEvent event);
        }
 
-       /** Add collapse listener
-        * @param listener Listener to be added.
+       /** 
+        * Adds the collapse listener.
+        * @param listener the Listener to be added.
         */
        public void addListener(CollapseListener listener) {
                addListener(CollapseEvent.class, listener, COLLAPSE_METHOD);
        }
 
-       /** Remove collapse listener
-        * @param listener Listener to be removed.
+       /** 
+        * Removes the collapse listener.
+        * @param listener the Listener to be removed.
         */
        public void removeListener(CollapseListener listener) {
                removeListener(CollapseEvent.class, listener, COLLAPSE_METHOD);
        }
 
-       /** Emit collapse  event. */
+       /** 
+        * Emits collapse  event.
+        * @param itemId the item id. 
+        */
        protected void fireCollapseEvent(Object itemId) {
                fireEvent(new CollapseEvent(this, itemId));
        }
 
        /* Action container *************************************************** */
 
-       /** Adds an action handler.
+       /** 
+        * Adds an action handler.
         * @see com.itmill.toolkit.event.Action.Container#addActionHandler(Action.Handler)
         */
        public void addActionHandler(Action.Handler actionHandler) {
@@ -684,7 +756,8 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
                }
        }
 
-       /** Removes an action handler.
+       /** 
+        * Removes an action handler.
         * @see com.itmill.toolkit.event.Action.Container#removeActionHandler(Action.Handler)
         */
        public void removeActionHandler(Action.Handler actionHandler) {
@@ -703,36 +776,37 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
        }
     
        /**
+        * Gets the visible item ids.
         * @see com.itmill.toolkit.ui.Select#getVisibleItemIds()
         */
        public Collection getVisibleItemIds() {
 
                LinkedList visible = new LinkedList();
 
-               // Iterate trough hierarchical tree using a stack of iterators
+               // Iterates trough hierarchical tree using a stack of iterators
                Stack iteratorStack = new Stack();
                Collection ids = rootItemIds();
                if (ids != null)
                        iteratorStack.push(ids.iterator());
                while (!iteratorStack.isEmpty()) {
 
-                       // Get the iterator for current tree level
+                       // Gets the iterator for current tree level
                        Iterator i = (Iterator) iteratorStack.peek();
 
                        // If the level is finished, back to previous tree level
                        if (!i.hasNext()) {
 
-                               // Remove used iterator from the stack
+                               // Removes used iterator from the stack
                                iteratorStack.pop();
                        }
 
-                       // Add the item on current level
+                       // Adds the item on current level
                        else {
                                Object itemId = i.next();
 
                                visible.add(itemId);
 
-                               // Add children if expanded, or close the tag
+                               // Adds children if expanded, or close the tag
                                if (isExpanded(itemId) && hasChildren(itemId)) {
                                        iteratorStack.push(getChildren(itemId).iterator());
                                }
@@ -742,9 +816,10 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
                return visible;
        }
 
-       /** Adding new items is not supported. 
-        * @see com.itmill.toolkit.ui.Select#setNewItemsAllowed(boolean)
+       /** 
+        * Adding new items is not supported. 
         * @throws UnsupportedOperationException if set to true.
+        * @see com.itmill.toolkit.ui.Select#setNewItemsAllowed(boolean)
         */
        public void setNewItemsAllowed(boolean allowNewOptions)
                throws UnsupportedOperationException {
@@ -752,16 +827,19 @@ public class Tree extends Select implements Container.Hierarchical, Action.Conta
                        throw new UnsupportedOperationException();
        }
 
-       /** Focusing to this component is not supported.
-        * @see com.itmill.toolkit.ui.AbstractField#focus()
+       /** 
+        * Focusing to this component is not supported.
         * @throws UnsupportedOperationException if invoked.
+        * @see com.itmill.toolkit.ui.AbstractField#focus()
         */
        public void focus() throws UnsupportedOperationException {
                throw new UnsupportedOperationException();
        }
        
-       /** Tree does not support lazy options loading mode. 
+       /**
+        * Tree does not support lazy options loading mode. 
         * Setting this true will throw UnsupportedOperationException. 
+        * @see com.itmill.toolkit.ui.Select#setLazyLoading(boolean)
         */
     public void setLazyLoading(boolean useLazyLoading) {
        if (useLazyLoading)
index 98fbf31ad30a2a309dd00a52eec757010e1cfa81..95da0bf7d14b1d9cd1d0d723d331d0e6306e8b51 100644 (file)
@@ -39,7 +39,8 @@ import com.itmill.toolkit.terminal.UploadStream;
 import java.io.IOException;
 import java.io.OutputStream;
 
-/** Component for client file uploading.
+/** 
+ * Component for client file uploading.
  *
  * @author IT Mill Ltd.
  * @version @VERSION@
@@ -47,25 +48,35 @@ import java.io.OutputStream;
  */
 public class Upload extends AbstractComponent implements Component.Focusable {
 
-       /** Upload buffer size. */
+       /** 
+        * Upload buffer size. 
+        */
        private static final int BUFFER_SIZE = 64 * 1024; // 64k
 
-       /** Should the field be focused on next repaint */
+       /** 
+        * Should the field be focused on next repaint? 
+        */
        private boolean focus = false;
 
-       /** The tab order number of this field */
+       /** 
+        * The tab order number of this field. 
+        */
        private int tabIndex = 0;
 
-       /** The output of the upload is redirected to this receiver. */
+       /** 
+        * The output of the upload is redirected to this receiver. 
+        */
        private Receiver receiver;
        
        private long focusableId = -1;
 
     /* TODO: Add a default constructor, receive to temp file. */
     
-       /** Creates a new instance of Upload that redirects the 
+       /** 
+        * Creates a new instance of Upload that redirects the 
         * uploaded data to given stream. 
-        * 
+        * @param caption
+        * @param uploadReceiver
         */
        public Upload(String caption, Receiver uploadReceiver) {
                this.focusableId = Window.getNewFocusableId(this);
@@ -73,28 +84,32 @@ public class Upload extends AbstractComponent implements Component.Focusable {
                receiver = uploadReceiver;
        }
 
-       /** Get component type.
+       /** 
+        * Gets the component type.
         * @return Component type as string.
         */
        public String getTag() {
                return "upload";
        }
 
-       /** Invoked when the value of a variable has changed.  */
+       /**
+        * Invoked when the value of a variable has changed. 
+        * @see com.itmill.toolkit.ui.AbstractComponent#changeVariables(java.lang.Object, java.util.Map)
+        */
        public void changeVariables(Object source, Map variables) {
 
-               // Check the variable name
+               // Checks the variable name
                if (!variables.containsKey("stream"))
                        return;
 
-               // Get the upload stream    
+               // Gets the upload stream    
                UploadStream upload = (UploadStream) variables.get("stream");
 
-               // Get file properties
+               // Gets file properties
                String filename = upload.getContentName();
                String type = upload.getContentType();
 
-               // Get the output target stream
+               // Gets the output target stream
                OutputStream out = receiver.receiveUpload(filename, type);
                if (out == null)
                        throw new RuntimeException("Error getting outputstream from upload receiver");
@@ -126,9 +141,10 @@ public class Upload extends AbstractComponent implements Component.Focusable {
                }
        }
 
-       /** Paint the content of this component.
+       /** 
+        * Paints the content of this component.
         * @param target Target to paint the content on.
-        * @throws PaintException The paint operation failed.
+        * @throws PaintException if the paint operation failed.
         */
        public void paintContent(PaintTarget target) throws PaintException {
                // The field should be focused
@@ -142,16 +158,19 @@ public class Upload extends AbstractComponent implements Component.Focusable {
                target.addUploadStreamVariable(this, "stream");
        }
 
-       /** Interface that must be implemented by the upload receivers. 
+       /** 
+        * Interface that must be implemented by the upload receivers.
+        *  
         * @author IT Mill Ltd.
         * @version @VERSION@
         * @since 3.0
         */
        public interface Receiver {
 
-               /** Invoked when a new upload arrives. 
-                * @param filename The desired filename of the upload, usually as specified by the client.
-                * @param MIMEType The MIME type of the uploaded file. 
+               /** 
+                * Invoked when a new upload arrives. 
+                * @param filename the desired filename of the upload, usually as specified by the client.
+                * @param MIMEType the MIME type of the uploaded file. 
                 * @return Stream to which the uploaded file should be written.
                 */
                public OutputStream receiveUpload(String filename, String MIMEType);
@@ -183,8 +202,10 @@ public class Upload extends AbstractComponent implements Component.Focusable {
                }
        }
 
-       /** Upload.Received event is sent when the upload receives a file,
+       /** 
+        * Upload.Received event is sent when the upload receives a file,
         * regardless if the receival was successfull.
+        * 
         * @author IT Mill Ltd.
         * @version @VERSION@
         * @since 3.0
@@ -196,15 +217,28 @@ public class Upload extends AbstractComponent implements Component.Focusable {
          */
         private static final long serialVersionUID = 3257288015385670969L;
 
-        /** Length of the received file. */
+        /** 
+         * Length of the received file. 
+         */
                private long length;
 
-               /** MIME type of the received file. */
+               /** 
+                * MIME type of the received file. 
+                */
                private String type;
 
-               /** Received file name */
+               /** 
+                * Received file name. 
+                */
                private String filename;
-
+               
+               /**
+                * 
+                * @param source the source of the file.
+                * @param filename the received file name.
+                * @param MIMEType the MIME type of the received file.
+                * @param length the length of the received file.
+                */
                public FinishedEvent(
                        Upload source,
                        String filename,
@@ -216,28 +250,32 @@ public class Upload extends AbstractComponent implements Component.Focusable {
                        this.length = length;
                }
 
-               /** Upload where the event occurred
-                * @return Source of the event.
+               /** 
+                * Uploads where the event occurred.
+                * @return the Source of the event.
                 */
                public Upload getUpload() {
                        return (Upload) getSource();
                }
                /**
-                * Returns the filename.
+                * Gets the file name.
+                * @return the filename.
                 */
                public String getFilename() {
                        return filename;
                }
 
                /**
-                * Returns the length.
+                * Gets the length of the file.
+                * @return the length.
                 */
                public long getLength() {
                        return length;
                }
 
                /**
-                * Returns the type.
+                * Gets the MIME Type of the file.
+                * @return the MIME type.
                 */
                public String getMIMEType() {
                        return type;
@@ -245,8 +283,10 @@ public class Upload extends AbstractComponent implements Component.Focusable {
 
        }
 
-       /** Upload.Interrupted event is sent when the upload is received, but the
+       /** 
+        * Upload.Interrupted event is sent when the upload is received, but the
         * reception is interrupted for some reason.
+        * 
         * @author IT Mill Ltd.
         * @version @VERSION@
         * @since 3.0
@@ -257,7 +297,14 @@ public class Upload extends AbstractComponent implements Component.Focusable {
          * Serial generated by eclipse.
          */
         private static final long serialVersionUID = 3833746590157386293L;
-
+        
+               /**
+                * 
+                * @param source
+                * @param filename
+                * @param MIMEType
+                * @param length
+                */
         public FailedEvent(
                        Upload source,
                        String filename,
@@ -268,7 +315,9 @@ public class Upload extends AbstractComponent implements Component.Focusable {
 
        }
 
-       /** Upload.Success event is sent when the upload is received successfully.
+       /** 
+        * Upload.Success event is sent when the upload is received successfully.
+        * 
         * @author IT Mill Ltd.
         * @version @VERSION@
         * @since 3.0
@@ -279,7 +328,14 @@ public class Upload extends AbstractComponent implements Component.Focusable {
          * Serial generated by eclipse.
          */
         private static final long serialVersionUID = 3256445798169524023L;
-
+        
+               /**
+                * 
+                * @param source
+                * @param filename
+                * @param MIMEType
+                * @param length
+                */
         public SucceededEvent(
                        Upload source,
                        String filename,
@@ -290,88 +346,107 @@ public class Upload extends AbstractComponent implements Component.Focusable {
 
        }
 
-       /** Receives events when the uploads are ready.
+       /** 
+        * Receives the events when the uploads are ready.
+        * 
         * @author IT Mill Ltd.
         * @version @VERSION@
         * @since 3.0
         */
        public interface FinishedListener {
 
-               /** Upload has finished.
-                * @param event Upload finished event.
+               /** 
+                * Upload has finished.
+                * @param event the Upload finished event.
                 */
                public void uploadFinished(FinishedEvent event);
        }
 
-       /** Receives events when the uploads are finished, but unsuccessful.
+       /** 
+        * Receives events when the uploads are finished, but unsuccessful.
+        * 
         * @author IT Mill Ltd.
-                * @version @VERSION@
+        * @version @VERSION@
         * @since 3.0
         */
        public interface FailedListener {
 
-               /** Upload has finished unsuccessfully.
-                * @param event Upload failed event.
+               /** 
+                * Upload has finished unsuccessfully.
+                * @param event the Upload failed event.
                 */
                public void uploadFailed(FailedEvent event);
        }
 
-       /** Receives events when the uploads are successfully finished.
+       /** 
+        * Receives events when the uploads are successfully finished.
         * @author IT Mill Ltd.
-                * @version @VERSION@
+        * @version @VERSION@
         * @since 3.0
         */
        public interface SucceededListener {
 
-               /** Upload successfull..
-                * @param event Upload successfull event.
+               /** 
+                * Upload successfull..
+                * @param event the Upload successfull event.
                 */
                public void uploadSucceeded(SucceededEvent event);
        }
 
-       /** Add upload received event listener
-        * @param listener Listener to be added.
+       /** 
+        * Adds the upload received event listener.
+        * @param listener the Listener to be added.
         */
        public void addListener(FinishedListener listener) {
                addListener(FinishedEvent.class, listener, UPLOAD_FINISHED_METHOD);
        }
 
-       /** Remove upload received event listener
-        * @param listener Listener to be removed.
+       /** 
+        * Removes the upload received event listener.
+        * @param listener the Listener to be removed.
         */
        public void removeListener(FinishedListener listener) {
                removeListener(FinishedEvent.class, listener, UPLOAD_FINISHED_METHOD);
        }
 
-       /** Add upload interrupted event listener
-        * @param listener Listener to be added.
+       /** 
+        * Adds the upload interrupted event listener.
+        * @param listener the Listener to be added.
         */
        public void addListener(FailedListener listener) {
                addListener(FailedEvent.class, listener, UPLOAD_FAILED_METHOD);
        }
 
-       /** Remove upload interrupted event listener
-        * @param listener Listener to be removed.
+       /** 
+        * Removes the upload interrupted event listener.
+        * @param listener the Listener to be removed.
         */
        public void removeListener(FailedListener listener) {
                removeListener(FinishedEvent.class, listener, UPLOAD_FAILED_METHOD);
        }
 
-       /** Add upload success event listener
-        * @param listener Listener to be added.
+       /** 
+        * Adds the upload success event listener.
+        * @param listener the Listener to be added.
         */
        public void addListener(SucceededListener listener) {
                addListener(SucceededEvent.class, listener, UPLOAD_SUCCEEDED_METHOD);
        }
 
-       /** Remove upload success event listener
-        * @param listener Listener to be removed.
+       /** 
+        * Removes the upload success event listener.
+        * @param listener the Listener to be removed.
         */
        public void removeListener(SucceededListener listener) {
                removeListener(SucceededEvent.class, listener, UPLOAD_SUCCEEDED_METHOD);
        }
 
-       /** Emit upload received event. */
+       /** 
+        * Emit upload received event.
+        * @param filename
+        * @param MIMEType 
+        * @param length 
+        */
        protected void fireUploadReceived(
                String filename,
                String MIMEType,
@@ -379,7 +454,12 @@ public class Upload extends AbstractComponent implements Component.Focusable {
                fireEvent(new Upload.FinishedEvent(this, filename, MIMEType, length));
        }
 
-       /** Emit upload interrupted event. */
+       /** 
+        * Emits the upload interrupted event.
+        * @param filename
+        * @param MIMEType
+        * @param length  
+        */
        protected void fireUploadInterrupted(
                String filename,
                String MIMEType,
@@ -387,27 +467,37 @@ public class Upload extends AbstractComponent implements Component.Focusable {
                fireEvent(new Upload.FailedEvent(this, filename, MIMEType, length));
        }
 
-       /** Emit upload success event. */
+       /** 
+        * Emits the upload success event.
+        * @param filename
+        * @param MIMEType
+        * @param length
+        *  
+        */
        protected void fireUploadSuccess(
                String filename,
                String MIMEType,
                long length) {
                fireEvent(new Upload.SucceededEvent(this, filename, MIMEType, length));
        }
-       /** Returns the current receiver.
-        * @return Receiver
+       /** 
+        * Returns the current receiver.
+        * @return the Receiver.
         */
        public Receiver getReceiver() {
                return receiver;
        }
 
-       /** Sets the receiver.
-        * @param receiver The receiver to set
+       /** 
+        * Sets the receiver.
+        * @param receiver the receiver to set.
         */
        public void setReceiver(Receiver receiver) {
                this.receiver = receiver;
        }
+       
        /**
+        * Sets the focus to this component.
         * @see com.itmill.toolkit.ui.Component.Focusable#focus()
         */
        public void focus() {
@@ -418,6 +508,7 @@ public class Upload extends AbstractComponent implements Component.Focusable {
        }
        
        /**
+        * Gets the Tabulator index of this Focusable component.
         * @see com.itmill.toolkit.ui.Component.Focusable#getTabIndex()
         */
        public int getTabIndex() {
@@ -425,6 +516,7 @@ public class Upload extends AbstractComponent implements Component.Focusable {
        }
        
        /**
+        * Sets the Tabulator index of this Focusable component.
         * @see com.itmill.toolkit.ui.Component.Focusable#setTabIndex(int)
         */
        public void setTabIndex(int tabIndex) {
@@ -432,6 +524,7 @@ public class Upload extends AbstractComponent implements Component.Focusable {
        }
        
        /**
+        * Gets the unique ID of focusable.
         * @see com.itmill.toolkit.ui.Component.Focusable#getFocusableId()
         */
        public long getFocusableId() {
index 5da9560f421b8ae560a048e5b33b00c6b64dad3a..29337e0ed33be731b8f8e3e214f25f891bd6611d 100644 (file)
@@ -57,56 +57,84 @@ import java.util.Iterator;
  */
 public class Window extends Panel implements URIHandler, ParameterHandler {
 
-       /** Window with no border */
+       /** 
+        * Window with no border. 
+        */
        public static final int BORDER_NONE = 0;
 
-       /** Window with only minimal border */
+       /** 
+        * Window with only minimal border. 
+        */
        public static final int BORDER_MINIMAL = 1;
 
-       /** Window with default borders */
+       /** 
+        * Window with default borders. 
+        */
        public static final int BORDER_DEFAULT = 2;
 
-       /** The terminal this window is attached to */
+       /** 
+        * The terminal this window is attached to. 
+        */
        private Terminal terminal = null;
 
-       /** The applicaiton this window is attached to */
+       /** 
+        * The applicaiton this window is attached to. 
+        */
        private Application application = null;
 
-       /** List of URI handlers for this window */
+       /** 
+        * List of URI handlers for this window. 
+        */
        private LinkedList uriHandlerList = null;
 
-       /** List of parameter handlers for this window */
+       /** 
+        * List of parameter handlers for this window. 
+        */
        private LinkedList parameterHandlerList = null;
 
        /**
         * Explicitly specified theme of this window. If null, application theme is
-        * used
+        * used.
         */
        private String theme = null;
 
-       /** Resources to be opened automatically on next repaint */
+       /** 
+        * Resources to be opened automatically on next repaint. 
+        */
        private LinkedList openList = new LinkedList();
 
-       /** The name of the window */
+       /** 
+        * The name of the window. 
+        */
        private String name = null;
 
-       /** Window border mode */
+       /** 
+        * Window border mode. 
+        */
        private int border = BORDER_DEFAULT;
 
-       /** Focused component */
+       /** 
+        * Focused component. 
+        */
        private Focusable focusedComponent;
        
-       /** Distance of Window top border in pixels from top border of the containing (main window) or -1 if unspecified */
+       /** 
+        * Distance of Window top border in pixels from top border of the 
+        * containing (main window) or -1 if unspecified. 
+        */
        private int positionY = -1;
 
-       /** Distance of Window left border in pixels from left border of the containing (main window) or -1 if unspecified */
+       /** 
+        * Distance of Window left border in pixels from left border of the 
+        * containing (main window) or -1 if unspecified .
+        */
        private int positionX = -1;
 
 
        /* ********************************************************************* */
 
        /**
-        * Create new empty unnamed window with default layout.
+        * Creates the new empty unnamed window with default layout.
         * 
         * <p>
         * To show the window in application, it must be added to application with
@@ -118,14 +146,14 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
         * </p>
         * 
         * @param caption
-        *            Title of the window
+        *            the Title of the window.
         */
        public Window() {
                this("", null);
        }
 
        /**
-        * Create new empty window with default layout.
+        * Creates the new empty window with default layout.
         * 
         * <p>
         * To show the window in application, it must be added to application with
@@ -137,14 +165,14 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
         * </p>
         * 
         * @param caption
-        *            Title of the window
+        *            the Title of the window.
         */
        public Window(String caption) {
                this(caption, null);
        }
 
        /**
-        * Create new window.
+        * Creates the new window.
         * 
         * <p>
         * To show the window in application, it must be added to application with
@@ -156,9 +184,9 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
         * </p>
         * 
         * @param caption
-        *            Title of the window
+        *            the Title of the window.
         * @param layout
-        *            Layout of the window
+        *            the Layout of the window.
         */
        public Window(String caption, Layout layout) {
                super(caption, layout);
@@ -166,9 +194,9 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
        }
 
        /**
-        * Get terminal type.
+        * Gets the terminal type.
         * 
-        * @return Value of property terminal.
+        * @return the Value of property terminal.
         */
        public Terminal getTerminal() {
                return this.terminal;
@@ -177,22 +205,22 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
        /* ********************************************************************* */
 
        /**
-        * Get window of the component. Returns the window where this component
+        * Gets the window of the component. Returns the window where this component
         * belongs to. If the component does not yet belong to a window the returns
         * null.
         * 
-        * @return parent window of the component.
+        * @return the parent window of the component.
         */
        public final Window getWindow() {
                return this;
        }
 
        /**
-        * Get application instance of the component. Returns the application where
+        * Gets the application instance of the component. Returns the application where
         * this component belongs to. If the component does not yet belong to a
         * application the returns null.
         * 
-        * @return parent application of the component.
+        * @return the parent application of the component.
         */
        public final Application getApplication() {
                return this.application;
@@ -202,7 +230,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
         * Getter for property parent. Parent is the visual parent of a component.
         * Each component can belong to only one ComponentContainer at time.
         * 
-        * @return Value of property parent.
+        * @return the Value of property parent.
         */
        public final Component getParent() {
                return null;
@@ -214,16 +242,16 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
         * allowed for the window, and thus this call should newer be called.
         * 
         * @param parent
-        *            New value of property parent.
+        *            the New value of property parent.
         */
        public void setParent(Component parent) {
                throw new RuntimeException("Setting parent for Window is not allowed");
        }
 
        /**
-        * Get component UIDL tag.
+        * Gets the component UIDL tag.
         * 
-        * @return Component UIDL tag as string.
+        * @return the Component UIDL tag as string.
         */
        public String getTag() {
                return "window";
@@ -231,7 +259,10 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
 
        /* ********************************************************************* */
 
-       /** Add new URI handler to this window */
+       /** 
+        * Adds the new URI handler to this window.
+        * @param handler the URI handler to add. 
+        */
        public void addURIHandler(URIHandler handler) {
                if (uriHandlerList == null)
                        uriHandlerList = new LinkedList();
@@ -241,7 +272,10 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
                }
        }
 
-       /** Remove given URI handler from this window */
+       /** 
+        * Removes the given URI handler from this window.
+        * @param handler the URI handler to remove. 
+        */
        public void removeURIHandler(URIHandler handler) {
                if (handler == null || uriHandlerList == null)
                        return;
@@ -253,7 +287,9 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
        }
 
        /**
-        * Handle uri recursively.
+        * Handles uri recursively.
+        * @param context
+        * @param relativeUri
         */
        public DownloadStream handleURI(URL context, String relativeUri) {
                DownloadStream result = null;
@@ -279,7 +315,10 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
 
        /* ********************************************************************* */
 
-       /** Add new parameter handler to this window. */
+       /** 
+        * Adds the new parameter handler to this window.
+        * @param handler the parameter handler to add. 
+        */
        public void addParameterHandler(ParameterHandler handler) {
                if (parameterHandlerList == null)
                        parameterHandlerList = new LinkedList();
@@ -289,7 +328,10 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
                }
        }
 
-       /** Remove given URI handler from this window. */
+       /** 
+        * Removes the given URI handler from this window.
+        * @param handler the parameter handler to remove. 
+        */
        public void removeParameterHandler(ParameterHandler handler) {
                if (handler == null || parameterHandlerList == null)
                        return;
@@ -315,9 +357,9 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
        /* ********************************************************************* */
 
        /**
-        * Get theme for this window.
+        * Gets the theme for this window.
         * 
-        * @return Name of the theme used in window. If the theme for this
+        * @return the Name of the theme used in window. If the theme for this
         *         individual window is not explicitly set, the application theme is
         *         used instead. If application is not assigned the
         *         terminal.getDefaultTheme is used. If terminal is not set, null is
@@ -334,10 +376,10 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
        }
 
        /**
-        * Set theme for this window.
+        * Sets the theme for this window.
         * 
         * @param theme
-        *            New theme for this window. Null implies the default theme.
+        *            the New theme for this window. Null implies the default theme.
         */
        public void setTheme(String theme) {
                this.theme = theme;
@@ -345,23 +387,23 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
        }
 
        /**
-        * Paint the content of this component.
+        * Paints the content of this component.
         * 
         * @param event
-        *            PaintEvent.
+        *            the Paint Event.
         * @throws PaintException
-        *             The paint operation failed.
+        *             if the paint operation failed.
         */
        public synchronized void paintContent(PaintTarget target)
                        throws PaintException {
 
-               // Set the window name
+               // Sets the window name
                target.addAttribute("name", getName());
 
-               // Set the window theme
+               // Sets the window theme
                target.addAttribute("theme", getTheme());
 
-               // Mark main window
+               // Marks the main window
                if (getApplication() != null
                                && this == getApplication().getMainWindow())
                        target.addAttribute("main", true);
@@ -385,7 +427,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
                // Window closing
                target.addVariable(this, "close", false);
 
-               // Set focused component
+               // Sets the focused component
                if (this.focusedComponent != null)
                        target.addVariable(this, "focused", ""
                                        + this.focusedComponent.getFocusableId());
@@ -397,7 +439,8 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
        /* ********************************************************************* */
 
        /**
-        * Open the given resource in this window.
+        * Opens the given resource in this window.
+        * @param resource 
         */
        public void open(Resource resource) {
                synchronized (openList) {
@@ -411,9 +454,11 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
        /* ********************************************************************* */
 
        /**
-        * Open the given resource in named terminal window. Empty or
+        * Opens the given resource in named terminal window. Empty or
         * <code>null</code> window name results the resource to be opened in this
         * window.
+        * @param resouorce the resource.
+        * @param windowName the name of the window.
         */
        public void open(Resource resource, String windowName) {
                synchronized (openList) {
@@ -427,9 +472,14 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
        /* ********************************************************************* */
 
        /**
-        * Open the given resource in named terminal window with given size and
+        * Opens the given resource in named terminal window with given size and
         * border properties. Empty or <code>null</code> window name results the
         * resource to be opened in this window.
+        * @param resource 
+        * @param windowName
+        * @param width
+        * @param height
+        * @param border 
         */
        public void open(Resource resource, String windowName, int width,
                        int height, int border) {
@@ -447,7 +497,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
         * Returns the full url of the window, this returns window specific url even
         * for the main window.
         * 
-        * @return String
+        * @return the URL of the window.
         */
        public URL getURL() {
 
@@ -462,9 +512,9 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
        }
 
        /**
-        * Get the unique name of the window that indentifies it on the terminal.
+        * Gets the unique name of the window that indentifies it on the terminal.
         * 
-        * @return String
+        * @return the Name of the Window.
         */
        public String getName() {
                return name;
@@ -473,7 +523,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
        /**
         * Returns the border.
         * 
-        * @return int
+        * @return the border.
         */
        public int getBorder() {
                return border;
@@ -483,7 +533,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
         * Sets the border.
         * 
         * @param border
-        *            The border to set
+        *            the border to set.
         */
        public void setBorder(int border) {
                this.border = border;
@@ -507,7 +557,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
         * <p>
         * 
         * @param application
-        *            The application to set
+        *            the application to set.
         */
        public void setApplication(Application application) {
 
@@ -515,15 +565,15 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
                if (application == this.application)
                        return;
 
-               // Send detach event if the window is connected to application
+               // Sends detach event if the window is connected to application
                if (this.application != null) {
                        detach();
                }
 
-               // Connect to new parent
+               // Connects to new parent
                this.application = application;
 
-               // Send attach event if connected to a window
+               // Sends the attach event if connected to a window
                if (application != null)
                        attach();
        }
@@ -541,7 +591,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
         * </p>
         * 
         * @param name
-        *            The name to set
+        *            the name to set.
         */
        public void setName(String name) {
 
@@ -551,7 +601,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
                                        "Window name can not be changed while "
                                                        + "the window is in application");
 
-               // Check the name format
+               // Checks the name format
                if (name != null)
                        for (int i = 0; i < name.length(); i++) {
                                char c = name.charAt(i);
@@ -566,11 +616,11 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
        }
 
        /**
-        * Set terminal type. The terminal type is set by the the terminal adapter
+        * Sets the terminal type. The terminal type is set by the the terminal adapter
         * and may change from time to time.
         * 
         * @param type
-        *            terminal type to set
+        *            the terminal type to set.
         */
        public void setTerminal(Terminal type) {
                this.terminal = type;
@@ -596,7 +646,9 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
                        throw new IllegalArgumentException("Only pixels are supported");
        }
 
-       /** Private data structure for storing opening window properties */
+       /** 
+        * Private data structure for storing opening window properties. 
+        */
        private class OpenResource {
 
                private Resource resource;
@@ -609,7 +661,14 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
 
                private int border;
 
-               /** Create new open resource */
+               /** 
+                * Creates the new open resource.
+                * @param resource
+                * @param name
+                * @param width
+                * @param height
+                * @param border 
+                */
                private OpenResource(Resource resource, String name, int width,
                                int height, int border) {
                        this.resource = resource;
@@ -619,7 +678,11 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
                        this.border = border;
                }
 
-               /** Paint the open-tag inside the window. */
+               /** 
+                * Paints the open-tag inside the window.
+                * @param target the Paint Event.
+                * @throws PaintException if the Paint Operation fails. 
+                */
                private void paintContent(PaintTarget target) throws PaintException {
                        target.startTag("open");
                        target.addAttribute("src", resource);
@@ -643,13 +706,15 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
        }
 
        /**
+        * Called when one or more variables handled by the implementing class
+     * are changed.
         * @see com.itmill.toolkit.terminal.VariableOwner#changeVariables(java.lang.Object,
         *      java.util.Map)
         */
        public void changeVariables(Object source, Map variables) {
                super.changeVariables(source, variables);
 
-               // Get focused component
+               // Gets the focused component
                String focusedId = (String) variables.get("focused");
                if (focusedId != null) {
                        try {
@@ -681,19 +746,19 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
        }
 
        /**
-        * Get currently focused component in this window.
+        * Gets the currently focused component in this window.
         * 
-        * @return Focused component or null if none is focused.
+        * @return the Focused component or null if none is focused.
         */
        public Component.Focusable getFocusedComponent() {
                return this.focusedComponent;
        }
 
        /**
-        * Set currently focused component in this window.
+        * Sets the currently focused component in this window.
         * 
         * @param focusable
-        *            Focused component or null if none is focused.
+        *            the Focused component or null if none is focused.
         */
        public void setFocusedComponent(Component.Focusable focusable) {
                this.application.setFocusedComponent(focusable);
@@ -706,7 +771,10 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
 
        private static Map focusableComponents = new HashMap();
 
-       /** Get an id for focusable component. */
+       /** 
+        * Gets an id for focusable component.
+        * @param focusable the focused component. 
+        */
        public static long getNewFocusableId(Component.Focusable focusable) {
                long newId = ++lastUsedFocusableId;
                WeakReference ref = new WeakReference(focusable);
@@ -714,7 +782,11 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
                return newId;
        }
 
-       /** Map focusable id back to focusable component. */
+       /** 
+        * Map focusable id back to focusable component.
+        * @param focusableId the Focused Id. 
+        * @return the focusable Id.
+        */
        public static Component.Focusable getFocusableById(long focusableId) {
                WeakReference ref = (WeakReference) focusableComponents.get(new Long(
                                focusableId));
@@ -727,7 +799,10 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
                return null;
        }
 
-       /** Release focusable component id when not used anymore. */
+       /** 
+        * Releases the focusable component id when not used anymore.
+        * @param focusableId the focusable Id to remove. 
+        */
        public static void removeFocusableId(long focusableId) {
                Long id = new Long(focusableId);
                WeakReference ref = (WeakReference) focusableComponents.get(id);
@@ -735,24 +810,33 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
                focusableComponents.remove(id);
        }
 
-       /** Get the distance of Window left border in pixels from left border of the containing (main window).
-        * @return Distance of Window left border in pixels from left border of the containing (main window). or -1 if unspecified.
+       /** 
+        * Gets the distance of Window left border in pixels from left 
+        * border of the containing (main window).
+        * @return the Distance of Window left border in pixels from left
+        * border of the containing (main window). or -1 if unspecified.
         * @since 4.0.0
         */
        public int getPositionX() {
                return positionX;
        }
 
-       /** Set the distance of Window left border in pixels from left border of the containing (main window).
-        * @param positionX Distance of Window left border in pixels from left border of the containing (main window). or -1 if unspecified 
+       /** 
+        * Sets the distance of Window left border in pixels from left border 
+        * of the containing (main window).
+        * @param positionX the Distance of Window left border in pixels from left
+        * border of the containing (main window). or -1 if unspecified. 
         * @since 4.0.0
         */
        public void setPositionX(int positionX) {
                this.positionX = positionX;
        }
 
-       /** Get the distance of Window top border in pixels from top border of the containing (main window).
-        * @return Distance of Window top border in pixels from top border of the containing (main window). or -1 if unspecified 
+       /** 
+        * Gets the distance of Window top border in pixels from top border of
+        * the containing (main window).
+        * @return Distance of Window top border in pixels from top border of the
+        * containing (main window). or -1 if unspecified .
         * 
         * @since 4.0.0
         */
@@ -760,8 +844,9 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
                return positionY;
        }
 
-       /** Set the distance of Window top border in pixels from top border of the containing (main window).
-        * @param positionY of Window top border in pixels from top border of the containing (main window). or -1 if unspecified 
+       /** 
+        * Sets the distance of Window top border in pixels from top border of the containing (main window).
+        * @param positionY the Distance of Window top border in pixels from top border of the containing (main window). or -1 if unspecified 
         * 
         * @since 4.0.0
         */
@@ -788,9 +873,19 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
          * Serial generated by eclipse.
                 */
                private static final long serialVersionUID = -7235770057344367327L;
+               
+               /**
+                * 
+                * @param source
+                */
                public CloseEvent(Component source) {
                        super(source);
                }
+               
+               /**
+                * Gets the Window.
+                * @return the window
+                */
                public Window getWindow() {
                        return (Window) getSource();
                }
@@ -800,10 +895,18 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
                public void windowClose(CloseEvent e);
        }
        
+       /**
+        * Adds the listener.
+        * @param listener the listener to add.
+        */
        public void addListener(CloseListener listener) {
                addListener(CloseEvent.class, listener, WINDOW_CLOSE_METHOD);
        }
 
+       /**
+        * Removes the listener.
+        * @param listener the listener to remove.
+        */
        public void removeListener(CloseListener listener) {
                addListener(CloseEvent.class, listener, WINDOW_CLOSE_METHOD);
        }