summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorArtur Signell <artur.signell@itmill.com>2008-08-28 06:03:32 +0000
committerArtur Signell <artur.signell@itmill.com>2008-08-28 06:03:32 +0000
commitb3a85cbe273719e3f0775f30c47563df9285f5bd (patch)
tree04f68b042a19f5f41c22480e957ad3b62278e9ef /src
parent452df5fe16c63346db03bfe9edad17241bc7f785 (diff)
downloadvaadin-framework-b3a85cbe273719e3f0775f30c47563df9285f5bd.tar.gz
vaadin-framework-b3a85cbe273719e3f0775f30c47563df9285f5bd.zip
Fixed for #2006 - updated error handling
svn changeset:5281/svn branch:trunk
Diffstat (limited to 'src')
-rw-r--r--src/com/itmill/toolkit/Application.java164
-rw-r--r--src/com/itmill/toolkit/data/util/FilesystemContainer.java104
-rw-r--r--src/com/itmill/toolkit/event/EventRouter.java38
-rw-r--r--src/com/itmill/toolkit/event/ListenerMethod.java198
-rwxr-xr-xsrc/com/itmill/toolkit/terminal/gwt/client/ApplicationConnection.java34
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/BrowserInfo.java3
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ClientExceptionHandler.java27
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/DateTimeService.java29
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/UIDL.java2
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/IDateField.java9
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/IPopupView.java22
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/ITextualDate.java7
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/server/ApplicationServlet.java318
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/server/CommunicationManager.java40
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/server/SystemMessageException.java57
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/server/WebApplicationContext.java10
-rw-r--r--src/com/itmill/toolkit/ui/AbstractComponent.java8
-rw-r--r--src/com/itmill/toolkit/ui/AbstractComponentContainer.java9
-rw-r--r--src/com/itmill/toolkit/ui/AbstractField.java46
-rw-r--r--src/com/itmill/toolkit/ui/AbstractSelect.java166
-rw-r--r--src/com/itmill/toolkit/ui/Button.java47
-rw-r--r--src/com/itmill/toolkit/ui/Form.java46
-rw-r--r--src/com/itmill/toolkit/ui/GridLayout.java105
-rw-r--r--src/com/itmill/toolkit/ui/Label.java91
-rw-r--r--src/com/itmill/toolkit/ui/LoginForm.java3
-rw-r--r--src/com/itmill/toolkit/ui/Slider.java97
-rw-r--r--src/com/itmill/toolkit/ui/TabSheet.java45
-rw-r--r--src/com/itmill/toolkit/ui/Table.java211
-rw-r--r--src/com/itmill/toolkit/ui/TextField.java52
-rw-r--r--src/com/itmill/toolkit/ui/Tree.java65
-rw-r--r--src/com/itmill/toolkit/ui/Upload.java71
-rw-r--r--src/com/itmill/toolkit/ui/Window.java156
32 files changed, 1180 insertions, 1100 deletions
diff --git a/src/com/itmill/toolkit/Application.java b/src/com/itmill/toolkit/Application.java
index d2067b32ff..6296319498 100644
--- a/src/com/itmill/toolkit/Application.java
+++ b/src/com/itmill/toolkit/Application.java
@@ -38,9 +38,8 @@ import com.itmill.toolkit.ui.Component.Focusable;
* <p>
* Base class required for all IT Mill Toolkit applications. This class provides
* all the basic services required by the toolkit. These services allow external
- * discovery and manipulation of the user,
- * {@link com.itmill.toolkit.ui.Window windows} and themes, and starting and
- * stopping the application.
+ * discovery and manipulation of the user, {@link com.itmill.toolkit.ui.Window
+ * windows} and themes, and starting and stopping the application.
* </p>
*
* <p>
@@ -63,8 +62,8 @@ import com.itmill.toolkit.ui.Component.Focusable;
* </p>
*
* <p>
- * <strong>Window access.</strong> <code>Application</code> provides methods
- * to list, add and remove the windows it contains.
+ * <strong>Window access.</strong> <code>Application</code> provides methods to
+ * list, add and remove the windows it contains.
* </p>
*
* <p>
@@ -194,8 +193,8 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* <p>
* Since version 5.0 all windows can be referenced by their names in url
* <code>http://host:port/foo/bar/</code> where
- * <code>http://host:port/foo/</code> is the application url as returned
- * by getURL() and <code>bar</code> is the name of the window.
+ * <code>http://host:port/foo/</code> is the application url as returned by
+ * getURL() and <code>bar</code> is the name of the window.
* </p>
*
* <p>
@@ -207,10 +206,11 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* <p>
* The method should return null if the window does not exists (and is not
* created as a side-effect) or if the application is not running anymore
- * </p>.
+ * </p>
+ * .
*
* @param name
- * the name of the window.
+ * the name of the window.
* @return the window associated with the given URI or <code>null</code>
*/
public Window getWindow(String name) {
@@ -237,22 +237,22 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* <p>
* Note that all application-level windows can be accessed by their names in
* url <code>http://host:port/foo/bar/</code> where
- * <code>http://host:port/foo/</code> is the application url as returned
- * by getURL() and <code>bar</code> is the name of the window. Also note
- * that not all windows should be added to application - one can also add
- * windows inside other windows - these windows show as smaller windows
- * inside those windows.
+ * <code>http://host:port/foo/</code> is the application url as returned by
+ * getURL() and <code>bar</code> is the name of the window. Also note that
+ * not all windows should be added to application - one can also add windows
+ * inside other windows - these windows show as smaller windows inside those
+ * windows.
* </p>
*
* @param window
- * the new <code>Window</code> to add. If the name of the
- * window is <code>null</code>, an unique name is
- * automatically given for the window.
+ * the new <code>Window</code> to add. If the name of the window
+ * is <code>null</code>, an unique name is automatically given
+ * for the window.
* @throws IllegalArgumentException
- * if a window with the same name as the new window already
- * exists in the application.
+ * if a window with the same name as the new window already
+ * exists in the application.
* @throws NullPointerException
- * if the given <code>Window</code> is <code>null</code>.
+ * if the given <code>Window</code> is <code>null</code>.
*/
public void addWindow(Window window) throws IllegalArgumentException,
NullPointerException {
@@ -327,7 +327,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* 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)) {
@@ -382,7 +382,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* </p>
*
* @param user
- * the new user.
+ * the new user.
*/
public void setUser(Object user) {
final Object prevUser = this.user;
@@ -428,12 +428,12 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* {@link javax.servlet.ServletContext}.
*
* @param applicationUrl
- * the URL the application should respond to.
+ * the URL the application should respond to.
* @param applicationProperties
- * the Application properties as specified by the servlet
- * configuration.
+ * the Application properties as specified by the servlet
+ * configuration.
* @param context
- * the context application will be running in.
+ * the context application will be running in.
*
*/
public void start(URL applicationUrl, Properties applicationProperties,
@@ -494,7 +494,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* </p>
*
* @param theme
- * the new theme for this application.
+ * the new theme for this application.
*/
public void setTheme(String theme) {
@@ -537,7 +537,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* </p>
*
* @param mainWindow
- * the mainWindow to set.
+ * the mainWindow to set.
*/
public void setMainWindow(Window mainWindow) {
@@ -567,7 +567,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* are defined.
*
* @param name
- * the name of the property.
+ * the name of the property.
* @return the value in this property list with the specified key value.
*/
public String getProperty(String name) {
@@ -579,7 +579,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* user of the application.
*
* @param resource
- * the resource to add.
+ * the resource to add.
*/
public void addResource(ApplicationResource resource) {
@@ -600,7 +600,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* Removes the resource from the application.
*
* @param resource
- * the resource to remove.
+ * the resource to remove.
*/
public void removeResource(ApplicationResource resource) {
final Object key = resourceKeyMap.get(resource);
@@ -614,7 +614,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* Gets the relative uri of the resource.
*
* @param resource
- * the resource to get relative location.
+ * the resource to get relative location.
* @return the relative uri of the resource.
*/
public String getRelativeLocation(ApplicationResource resource) {
@@ -692,6 +692,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
: "";
return window.handleURI(windowContext, windowUri);
} catch (final MalformedURLException e) {
+ terminalError(new ApplicationError(e));
return null;
}
}
@@ -722,7 +723,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* Sets the default locale for this application.
*
* @param locale
- * the Locale object.
+ * the Locale object.
*
*/
public void setLocale(Locale locale) {
@@ -761,11 +762,11 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* Constructor for user change event.
*
* @param source
- * the application source.
+ * the application source.
* @param newUser
- * the new User.
+ * the new User.
* @param prevUser
- * the previous User.
+ * the previous User.
*/
public UserChangeEvent(Application source, Object newUser,
Object prevUser) {
@@ -818,7 +819,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* application user has changed.
*
* @param event
- * the change event.
+ * the change event.
*/
public void applicationUserChanged(Application.UserChangeEvent event);
}
@@ -827,7 +828,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* Adds the user change listener.
*
* @param listener
- * the user change listener to add.
+ * the user change listener to add.
*/
public void addListener(UserChangeListener listener) {
if (userChangeListeners == null) {
@@ -840,7 +841,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* Removes the user change listener.
*
* @param listener
- * the user change listener to remove.
+ * the user change listener to remove.
*/
public void removeListener(UserChangeListener listener) {
if (userChangeListeners == null) {
@@ -868,7 +869,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* Creates a event.
*
* @param window
- * the Detached window.
+ * the Detached window.
*/
public WindowDetachEvent(Window window) {
super(Application.this);
@@ -910,7 +911,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* Creates a event.
*
* @param window
- * the Attached window.
+ * the Attached window.
*/
public WindowAttachEvent(Window window) {
super(Application.this);
@@ -945,7 +946,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* Window attached
*
* @param event
- * the window attach event.
+ * the window attach event.
*/
public void windowAttached(WindowAttachEvent event);
}
@@ -959,7 +960,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* Window detached.
*
* @param event
- * the window detach event.
+ * the window detach event.
*/
public void windowDetached(WindowDetachEvent event);
}
@@ -968,7 +969,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* Adds the window attach listener.
*
* @param listener
- * the window attach listener to add.
+ * the window attach listener to add.
*/
public void addListener(WindowAttachListener listener) {
if (windowAttachListeners == null) {
@@ -981,7 +982,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* Adds the window detach listener.
*
* @param listener
- * the window detach listener to add.
+ * the window detach listener to add.
*/
public void addListener(WindowDetachListener listener) {
if (windowDetachListeners == null) {
@@ -994,7 +995,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* Removes the window attach listener.
*
* @param listener
- * the window attach listener to remove.
+ * the window attach listener to remove.
*/
public void removeListener(WindowAttachListener listener) {
if (windowAttachListeners != null) {
@@ -1009,7 +1010,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* Removes the window detach listener.
*
* @param listener
- * the window detach listener to remove.
+ * the window detach listener to remove.
*/
public void removeListener(WindowDetachListener listener) {
if (windowDetachListeners != null) {
@@ -1022,8 +1023,8 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
/**
* 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.
+ * <code>null</code>, the application is closed normally as defined by the
+ * application running environment.
* <p>
* Desktop application just closes the application window and
* web-application redirects the browser to application main URL.
@@ -1037,13 +1038,13 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
/**
* 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: Desktop application just closes the
+ * <code>null</code>, the application is closed normally as defined by the
+ * application running environment: Desktop application just closes the
* application window and web-application redirects the browser to
* application main URL.
*
* @param logoutURL
- * the logoutURL to set.
+ * the logoutURL to set.
*/
public void setLogoutURL(String logoutURL) {
this.logoutURL = logoutURL;
@@ -1068,9 +1069,9 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* <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 and prints stack trace to
- * standard error stream.
+ * implementation sets the exceptions as <code>ComponentErrors</code> to the
+ * component that initiated the exception and prints stack trace to standard
+ * error stream.
* </p>
* <p>
* You can safely override this method in your application in order to
@@ -1078,7 +1079,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* </p>
*
* @param event
- * the change event.
+ * the change event.
* @see com.itmill.toolkit.terminal.Terminal.ErrorListener#terminalError(com.itmill.toolkit.terminal.Terminal.ErrorEvent)
*/
public void terminalError(Terminal.ErrorEvent event) {
@@ -1324,18 +1325,18 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* <p>
* The default behavior is to show a notification, and restart the
* application the the user clicks the message. <br/> Instead of restarting
- * the application, you can set a specific URL that the user is taken to.<br/>
- * Setting both caption and message to null will restart the application (or
- * go to the specified URL) without displaying a notification.
- * set*NotificationEnabled(false) will achieve the same thing.
+ * the application, you can set a specific URL that the user is taken
+ * to.<br/> Setting both caption and message to null will restart the
+ * application (or go to the specified URL) without displaying a
+ * notification. set*NotificationEnabled(false) will achieve the same thing.
* </p>
* <p>
* The situations are:
- * <li> Session expired: the user session has expired, usually due to
+ * <li>Session expired: the user session has expired, usually due to
* inactivity.</li>
- * <li> Internal error: unhandled critical server error (e.g out of memory,
+ * <li>Internal error: unhandled critical server error (e.g out of memory,
* database crash)
- * <li> Out of sync: the client is not in sync with the server. E.g the user
+ * <li>Out of sync: the client is not in sync with the server. E.g the user
* opens two windows showing the same application, and makes changes in one
* of the windows - the other window is no longer in sync, and (for
* instance) pressing a button that is no longer present in the UI will
@@ -1351,7 +1352,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* Sets the URL to go to when the session has expired.
*
* @param sessionExpiredURL
- * the URL to go to, or null to reload current
+ * the URL to go to, or null to reload current
*/
public void setSessionExpiredURL(String sessionExpiredURL) {
this.sessionExpiredURL = sessionExpiredURL;
@@ -1362,7 +1363,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* current) is loaded directly.
*
* @param sessionExpiredNotificationEnabled
- * true = enabled, false = disabled
+ * true = enabled, false = disabled
*/
public void setSessionExpiredNotificationEnabled(
boolean sessionExpiredNotificationEnabled) {
@@ -1374,7 +1375,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* both caption and message is null, the notification is disabled;
*
* @param sessionExpiredCaption
- * the caption
+ * the caption
*/
public void setSessionExpiredCaption(String sessionExpiredCaption) {
this.sessionExpiredCaption = sessionExpiredCaption;
@@ -1385,7 +1386,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* both caption and message is null, the notification is disabled;
*
* @param sessionExpiredMessage
- * the message
+ * the message
*/
public void setSessionExpiredMessage(String sessionExpiredMessage) {
this.sessionExpiredMessage = sessionExpiredMessage;
@@ -1395,7 +1396,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* Sets the URL to go to when an internal error occurs.
*
* @param internalErrorURL
- * the URL to go to, or null to reload current
+ * the URL to go to, or null to reload current
*/
public void setInternalErrorURL(String internalErrorURL) {
this.internalErrorURL = internalErrorURL;
@@ -1406,7 +1407,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* current) is loaded directly.
*
* @param internalErrorNotificationEnabled
- * true = enabled, false = disabled
+ * true = enabled, false = disabled
*/
public void setInternalErrorNotificationEnabled(
boolean internalErrorNotificationEnabled) {
@@ -1418,7 +1419,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* both caption and message is null, the notification is disabled;
*
* @param internalErrorCaption
- * the caption
+ * the caption
*/
public void setInternalErrorCaption(String internalErrorCaption) {
this.internalErrorCaption = internalErrorCaption;
@@ -1429,7 +1430,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* both caption and message is null, the notification is disabled;
*
* @param internalErrorMessage
- * the message
+ * the message
*/
public void setInternalErrorMessage(String internalErrorMessage) {
this.internalErrorMessage = internalErrorMessage;
@@ -1439,7 +1440,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* Sets the URL to go to when the client is out-of-sync.
*
* @param outOfSyncURL
- * the URL to go to, or null to reload current
+ * the URL to go to, or null to reload current
*/
public void setOutOfSyncURL(String outOfSyncURL) {
this.outOfSyncURL = outOfSyncURL;
@@ -1450,7 +1451,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* current) is loaded directly.
*
* @param outOfSyncNotificationEnabled
- * true = enabled, false = disabled
+ * true = enabled, false = disabled
*/
public void setOutOfSyncNotificationEnabled(
boolean outOfSyncNotificationEnabled) {
@@ -1462,7 +1463,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* both caption and message is null, the notification is disabled;
*
* @param outOfSyncCaption
- * the caption
+ * the caption
*/
public void setOutOfSyncCaption(String outOfSyncCaption) {
this.outOfSyncCaption = outOfSyncCaption;
@@ -1473,7 +1474,7 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
* both caption and message is null, the notification is disabled;
*
* @param outOfSyncMessage
- * the message
+ * the message
*/
public void setOutOfSyncMessage(String outOfSyncMessage) {
this.outOfSyncMessage = outOfSyncMessage;
@@ -1481,4 +1482,17 @@ public abstract class Application implements URIHandler, Terminal.ErrorListener
}
+ public class ApplicationError implements Terminal.ErrorEvent {
+
+ private Throwable throwable;
+
+ public ApplicationError(Throwable throwable) {
+ this.throwable = throwable;
+ }
+
+ public Throwable getThrowable() {
+ return throwable;
+ }
+
+ }
} \ No newline at end of file
diff --git a/src/com/itmill/toolkit/data/util/FilesystemContainer.java b/src/com/itmill/toolkit/data/util/FilesystemContainer.java
index b19cefa743..5ede26cc4f 100644
--- a/src/com/itmill/toolkit/data/util/FilesystemContainer.java
+++ b/src/com/itmill/toolkit/data/util/FilesystemContainer.java
@@ -85,7 +85,8 @@ public class FilesystemContainer implements Container.Hierarchical {
FILEITEM_ICON = FileItem.class.getMethod("getIcon", new Class[] {});
FILEITEM_SIZE = FileItem.class.getMethod("getSize", new Class[] {});
} catch (final NoSuchMethodException e) {
-
+ throw new RuntimeException(
+ "Internal error finding methods in FilesystemContainer");
}
}
@@ -96,12 +97,12 @@ public class FilesystemContainer implements Container.Hierarchical {
private boolean recursive = true;
/**
- * Constructs a new <code>FileSystemContainer</code> with the specified
- * file as the root of the filesystem. The files are included recursively.
+ * Constructs a new <code>FileSystemContainer</code> with the specified file
+ * as the root of the filesystem. The files are included recursively.
*
* @param root
- * the root file for the new file-system container. Null
- * values are ignored.
+ * the root file for the new file-system container. Null values
+ * are ignored.
*/
public FilesystemContainer(File root) {
if (root != null) {
@@ -110,13 +111,13 @@ public class FilesystemContainer implements Container.Hierarchical {
}
/**
- * Constructs a new <code>FileSystemContainer</code> with the specified
- * file as the root of the filesystem. The files are included recursively.
+ * Constructs a new <code>FileSystemContainer</code> with the specified file
+ * as the root of the filesystem. The files are included recursively.
*
* @param root
- * the root file for the new file-system container.
+ * the root file for the new file-system container.
* @param recursive
- * should the container recursively contain subdirectories.
+ * should the container recursively contain subdirectories.
*/
public FilesystemContainer(File root, boolean recursive) {
this(root);
@@ -124,16 +125,16 @@ public class FilesystemContainer implements Container.Hierarchical {
}
/**
- * Constructs a new <code>FileSystemContainer</code> with the specified
- * file as the root of the filesystem.
+ * Constructs a new <code>FileSystemContainer</code> with the specified file
+ * as the root of the filesystem.
*
* @param root
- * the root file for the new file-system container.
+ * the root file for the new file-system container.
* @param extension
- * the Filename extension (w/o separator) to limit the files
- * in container.
+ * the Filename extension (w/o separator) to limit the files in
+ * container.
* @param recursive
- * should the container recursively contain subdirectories.
+ * should the container recursively contain subdirectories.
*/
public FilesystemContainer(File root, String extension, boolean recursive) {
this(root);
@@ -142,15 +143,15 @@ public class FilesystemContainer implements Container.Hierarchical {
}
/**
- * Constructs a new <code>FileSystemContainer</code> with the specified
- * root and recursivity status.
+ * Constructs a new <code>FileSystemContainer</code> with the specified root
+ * and recursivity status.
*
* @param root
- * the root file for the new file-system container.
+ * the root file for the new file-system container.
* @param filter
- * the Filename filter to limit the files in container.
+ * the Filename filter to limit the files in container.
* @param recursive
- * should the container recursively contain subdirectories.
+ * should the container recursively contain subdirectories.
*/
public FilesystemContainer(File root, FilenameFilter filter,
boolean recursive) {
@@ -164,8 +165,8 @@ public class FilesystemContainer implements Container.Hierarchical {
* directory in the <code>FilesystemContainer</code>.
*
* @param root
- * the File to be added as root directory. Null values are
- * ignored.
+ * the File to be added as root directory. Null values are
+ * ignored.
*/
public void addRoot(File root) {
if (root != null) {
@@ -184,7 +185,7 @@ public class FilesystemContainer implements Container.Hierarchical {
* method returns <code>true</code> for directory Items only.
*
* @param itemId
- * the id of the item.
+ * the id of the item.
* @return <code>true</code> if the specified Item is a directory,
* <code>false</code> otherwise.
*/
@@ -303,14 +304,14 @@ public class FilesystemContainer implements Container.Hierarchical {
* not supported.
*
* @param itemId
- * the ID of the item.
+ * the ID of the item.
* @param areChildrenAllowed
- * the boolean value specifying if the Item can have children
- * or not.
+ * 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.
+ * if the setChildrenAllowed is not supported.
*/
public boolean setChildrenAllowed(Object itemId, boolean areChildrenAllowed)
throws UnsupportedOperationException {
@@ -320,18 +321,18 @@ public class FilesystemContainer implements Container.Hierarchical {
}
/**
- * Returns <code>false</code> when moving files around in the filesystem
- * is not supported.
+ * Returns <code>false</code> when moving files around in the filesystem is
+ * not supported.
*
* @param itemId
- * the ID of the item.
+ * 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.
+ * 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.
+ * if the setParent is not supported.
*/
public boolean setParent(Object itemId, Object newParentId)
throws UnsupportedOperationException {
@@ -385,9 +386,9 @@ public class FilesystemContainer implements Container.Hierarchical {
* to the collection.
*
* @param col
- * the collection where the found items are added
+ * the collection where the found items are added
* @param f
- * the root file where to start adding files
+ * the root file where to start adding files
*/
private void addItemIds(Collection col, File f) {
File[] l;
@@ -450,9 +451,9 @@ public class FilesystemContainer implements Container.Hierarchical {
* not one of those, <code>null</code> is returned.
*
* @param itemId
- * the ID of the file whose property is requested.
+ * the ID of the file whose property is requested.
* @param propertyId
- * the property's ID.
+ * the property's ID.
* @return the requested property's value, or <code>null</code>
*/
public Property getContainerProperty(Object itemId, Object propertyId) {
@@ -495,11 +496,11 @@ public class FilesystemContainer implements Container.Hierarchical {
/**
* 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 propertyId is not one of those, <code>null</code> is returned.
+ * "Size" is a <code>Long</code>, "Last Modified" is a <code>Date</code>. If
+ * propertyId is not one of those, <code>null</code> is returned.
*
* @param propertyId
- * the ID of the property whose type is requested.
+ * 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) {
@@ -524,7 +525,7 @@ public class FilesystemContainer implements Container.Hierarchical {
* directory.
*
* @param f
- * the root to start counting from.
+ * the root to start counting from.
*/
private int getFileCounts(File f) {
File[] l;
@@ -636,7 +637,7 @@ public class FilesystemContainer implements Container.Hierarchical {
* Properties got from an Item with the same ID are equal.
*
* @param obj
- * an object to compare with this object.
+ * 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
*/
@@ -745,7 +746,7 @@ public class FilesystemContainer implements Container.Hierarchical {
* Constructs a new FileExtensionFilter using given extension.
*
* @param fileExtension
- * the File extension without the separator (dot).
+ * the File extension without the separator (dot).
*/
public FileExtensionFilter(String fileExtension) {
filter = "." + fileExtension;
@@ -778,7 +779,7 @@ public class FilesystemContainer implements Container.Hierarchical {
* Sets the file filter used to limit the files in this container.
*
* @param filter
- * The filter to set. <code>null</code> disables filtering.
+ * The filter to set. <code>null</code> disables filtering.
*/
public void setFilter(FilenameFilter filter) {
this.filter = filter;
@@ -788,8 +789,8 @@ public class FilesystemContainer implements Container.Hierarchical {
* 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.
+ * the Filename extension (w/o separator) to limit the files in
+ * container.
*/
public void setFilter(String extension) {
filter = new FileExtensionFilter(extension);
@@ -813,7 +814,7 @@ public class FilesystemContainer implements Container.Hierarchical {
* </p>
*
* @param recursive
- * the New value for recursive property.
+ * the New value for recursive property.
*/
public void setRecursive(boolean recursive) {
this.recursive = recursive;
@@ -822,8 +823,9 @@ public class FilesystemContainer implements Container.Hierarchical {
/*
* (non-Javadoc)
*
- * @see com.itmill.toolkit.data.Container#addContainerProperty(java.lang.Object,
- * java.lang.Class, java.lang.Object)
+ * @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 {
@@ -875,7 +877,9 @@ public class FilesystemContainer implements Container.Hierarchical {
/*
* (non-Javadoc)
*
- * @see com.itmill.toolkit.data.Container#removeContainerProperty(java.lang.Object)
+ * @see
+ * com.itmill.toolkit.data.Container#removeContainerProperty(java.lang.Object
+ * )
*/
public boolean removeContainerProperty(Object propertyId)
throws UnsupportedOperationException {
diff --git a/src/com/itmill/toolkit/event/EventRouter.java b/src/com/itmill/toolkit/event/EventRouter.java
index a66cbb7fb3..8ccd9b47d0 100644
--- a/src/com/itmill/toolkit/event/EventRouter.java
+++ b/src/com/itmill/toolkit/event/EventRouter.java
@@ -60,14 +60,10 @@ public class EventRouter implements MethodEventSource {
if (listenerList != null) {
final Iterator i = listenerList.iterator();
while (i.hasNext()) {
- try {
- final ListenerMethod lm = (ListenerMethod) i.next();
- if (lm.matches(eventType, target)) {
- i.remove();
- return;
- }
- } catch (final java.lang.ClassCastException e) {
- // Class cast exceptions are ignored
+ final ListenerMethod lm = (ListenerMethod) i.next();
+ if (lm.matches(eventType, target)) {
+ i.remove();
+ return;
}
}
}
@@ -82,14 +78,10 @@ public class EventRouter implements MethodEventSource {
if (listenerList != null) {
final Iterator i = listenerList.iterator();
while (i.hasNext()) {
- try {
- final ListenerMethod lm = (ListenerMethod) i.next();
- if (lm.matches(eventType, target, method)) {
- i.remove();
- return;
- }
- } catch (final java.lang.ClassCastException e) {
- // Class cast exceptions are ignored
+ final ListenerMethod lm = (ListenerMethod) i.next();
+ if (lm.matches(eventType, target, method)) {
+ i.remove();
+ return;
}
}
}
@@ -118,14 +110,10 @@ public class EventRouter implements MethodEventSource {
if (listenerList != null) {
final Iterator i = listenerList.iterator();
while (i.hasNext()) {
- try {
- final ListenerMethod lm = (ListenerMethod) i.next();
- if (lm.matches(eventType, target, method)) {
- i.remove();
- return;
- }
- } catch (final java.lang.ClassCastException e) {
- // Class cast exceptions are ignored
+ final ListenerMethod lm = (ListenerMethod) i.next();
+ if (lm.matches(eventType, target, method)) {
+ i.remove();
+ return;
}
}
}
@@ -144,7 +132,7 @@ public class EventRouter implements MethodEventSource {
* the activation method should be called or not.
*
* @param event
- * the Event to be sent to all listeners.
+ * the Event to be sent to all listeners.
*/
public void fireEvent(EventObject event) {
// It is not necessary to send any events if there are no listeners
diff --git a/src/com/itmill/toolkit/event/ListenerMethod.java b/src/com/itmill/toolkit/event/ListenerMethod.java
index 49be2017f1..689028a342 100644
--- a/src/com/itmill/toolkit/event/ListenerMethod.java
+++ b/src/com/itmill/toolkit/event/ListenerMethod.java
@@ -60,9 +60,9 @@ public class ListenerMethod implements EventListener {
private Object[] arguments;
/**
- * 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.
+ * 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;
@@ -79,25 +79,24 @@ public class ListenerMethod implements EventListener {
* </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.
+ * 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
+ * the object instance that contains the trigger method
* @param method
- * the trigger method
+ * the trigger method
* @param arguments
- * the arguments to be passed to the trigger method
+ * 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 the
- * eventArgumentIndex is negative, the triggering event
- * object will not be passed to the trigger method, though it
- * is still called.
+ * 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 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> is not a member of
- * <code>object</code>.
+ * if <code>method</code> is not a member of <code>object</code>
+ * .
*/
public ListenerMethod(Class eventType, Object object, Method method,
Object[] arguments, int eventArgumentIndex)
@@ -132,34 +131,31 @@ public class ListenerMethod implements EventListener {
* 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.
+ * <code>object</code>, and <code>java.lang.IllegalArgumentException</code>
+ * is thrown unless exactly one match is found.
* </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.
+ * 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.
+ * 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.
+ * 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
- * the arguments to be passed to the trigger method.
+ * 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 the
- * eventArgumentIndex is negative, the triggering event
- * object will not be passed to the trigger method, though it
- * is still called.
+ * 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 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 <code>methodName</code> is
- * found in <code>object</code>.
+ * unless exactly one match <code>methodName</code> is found in
+ * <code>object</code>.
*/
public ListenerMethod(Class eventType, Object object, String methodName,
Object[] arguments, int eventArgumentIndex)
@@ -210,18 +206,17 @@ public class ListenerMethod implements EventListener {
* </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.
+ * 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.
+ * the object instance that contains the trigger method.
* @param method
- * the trigger method.
+ * the trigger method.
* @param arguments
- * the arguments to be passed to the trigger method.
+ * 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>.
+ * if <code>method</code> is not a member of <code>object</code>
+ * .
*/
public ListenerMethod(Class eventType, Object object, Method method,
Object[] arguments) throws java.lang.IllegalArgumentException {
@@ -248,26 +243,24 @@ public class ListenerMethod implements EventListener {
*
* <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.
+ * <code>java.lang.IllegalArgumentException</code> is thrown unless exactly
+ * one match is found.
* </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.
+ * 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.
+ * 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.
+ * 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
- * the arguments to be passed to the trigger method.
+ * 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>.
+ * unless exactly one match <code>methodName</code> is found in
+ * <code>object</code>.
*/
public ListenerMethod(Class eventType, Object object, String methodName,
Object[] arguments) throws java.lang.IllegalArgumentException {
@@ -304,16 +297,15 @@ public class ListenerMethod implements EventListener {
* </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.
+ * 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.
+ * the object instance that contains the trigger method.
* @param method
- * the trigger method.
+ * the trigger method.
* @throws java.lang.IllegalArgumentException
- * if <code>method</code> is not a member of
- * <code>object</code>.
+ * if <code>method</code> is not a member of <code>object</code>
+ * .
*/
public ListenerMethod(Class eventType, Object object, Method method)
throws java.lang.IllegalArgumentException {
@@ -349,24 +341,22 @@ public class ListenerMethod implements EventListener {
*
* <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.
+ * <code>java.lang.IllegalArgumentException</code> is thrown unless exactly
+ * one match is found.
* </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.
+ * 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.
+ * 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.
+ * 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 <code>methodName</code> is
- * found in <code>object</code>.
+ * unless exactly one match <code>methodName</code> is found in
+ * <code>object</code>.
*/
public ListenerMethod(Class eventType, Object object, String methodName)
throws java.lang.IllegalArgumentException {
@@ -407,9 +397,9 @@ public class ListenerMethod implements EventListener {
* result in the trigger method to be called.
*
* @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.
+ * 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.
*/
public void receiveEvent(EventObject event) {
// Only send events supported by the method
@@ -432,13 +422,11 @@ public class ListenerMethod implements EventListener {
} catch (final java.lang.IllegalAccessException e) {
// This should never happen
- e.printStackTrace();
throw new java.lang.RuntimeException(
- "Internal error - please report: " + e.toString());
+ "Internal error - please report",e);
} catch (final java.lang.reflect.InvocationTargetException e) {
// This should never happen
- e.printStackTrace();
- throw new MethodException("Invocation if method " + method
+ throw new MethodException("Invocation of method " + method
+ " failed.", e.getTargetException());
}
}
@@ -449,14 +437,14 @@ public class ListenerMethod implements EventListener {
* listener.
*
* @param target
- * the object to be matched against the object stored by this
- * listener.
+ * 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. *
+ * 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. *
*/
public boolean matches(Class eventType, Object target) {
return (target == object) && (eventType.equals(this.eventType));
@@ -467,17 +455,17 @@ public class ListenerMethod implements EventListener {
* in this listener.
*
* @param target
- * the object to be matched against the object stored by this
- * listener.
+ * 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.
+ * 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>
+ * 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>
* equals with the method stored in this object
*/
public boolean matches(Class eventType, Object target, Method method) {
@@ -499,12 +487,14 @@ public class ListenerMethod implements EventListener {
public boolean equals(Object obj) {
- if (this == obj)
+ if (this == obj) {
return true;
+ }
// return false if obj is a subclass (do not use instanceof check)
- if ((obj == null) || (obj.getClass() != this.getClass()))
+ if ((obj == null) || (obj.getClass() != getClass())) {
return false;
+ }
// obj is of same class, test it further
ListenerMethod t = (ListenerMethod) obj;
@@ -551,8 +541,8 @@ public class ListenerMethod implements EventListener {
* 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.
+ * @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() {
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ApplicationConnection.java b/src/com/itmill/toolkit/terminal/gwt/client/ApplicationConnection.java
index 192e934a27..c68f4d073b 100755
--- a/src/com/itmill/toolkit/terminal/gwt/client/ApplicationConnection.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ApplicationConnection.java
@@ -257,8 +257,7 @@ public class ApplicationConnection {
});
} catch (final RequestException e) {
- // TODO Better reporting to user
- console.error(e.getMessage());
+ ClientExceptionHandler.displayError(e);
endRequest();
}
}
@@ -455,7 +454,7 @@ public class ApplicationConnection {
try {
console.dirUIDL(change);
} catch (final Exception e) {
- console.log(e.getMessage());
+ ClientExceptionHandler.displayError(e);
// TODO: dir doesn't work in any browser although it should
// work (works in hosted mode)
// it partially did at some part but now broken.
@@ -466,16 +465,17 @@ public class ApplicationConnection {
paintable.updateFromUIDL(uidl, this);
} else {
if (!uidl.getTag().equals("window")) {
- System.out.println("Received update for "
- + uidl.getTag()
- + ", but there is no such paintable ("
- + uidl.getId() + ") rendered.");
+ ClientExceptionHandler
+ .displayError("Received update for "
+ + uidl.getTag()
+ + ", but there is no such paintable ("
+ + uidl.getId() + ") rendered.");
} else {
view.updateFromUIDL(uidl, this);
}
}
} catch (final Throwable e) {
- e.printStackTrace();
+ ClientExceptionHandler.displayError(e);
}
}
@@ -572,7 +572,7 @@ public class ApplicationConnection {
* Returns Paintable element by its id
*
* @param id
- * Paintable ID
+ * Paintable ID
*/
public Paintable getPaintable(String id) {
return (Paintable) idToPaintable.get(id);
@@ -715,13 +715,13 @@ public class ApplicationConnection {
* when needed.
*
* @param component
- * Widget to be updated, expected to implement an instance of
- * Paintable
+ * Widget to be updated, expected to implement an instance of
+ * Paintable
* @param uidl
- * UIDL to be painted
+ * UIDL to be painted
* @param manageCaption
- * True if you want to delegate caption, icon, description
- * and error message management to parent.
+ * True if you want to delegate caption, icon, description and
+ * error message management to parent.
*
* @return Returns true iff no further painting is needed by caller
*/
@@ -857,7 +857,7 @@ public class ApplicationConnection {
* parent.
*
* @param uidl
- * UIDL to create Paintable from.
+ * UIDL to create Paintable from.
* @return Either existing or new Paintable corresponding to UIDL.
*/
public Paintable getPaintable(UIDL uidl) {
@@ -897,7 +897,7 @@ public class ApplicationConnection {
* to browser due URI's in UIDL may contain custom protocols like theme://.
*
* @param toolkitUri
- * toolkit URI from uidl
+ * toolkit URI from uidl
* @return translated URI ready for browser
*/
public String translateToolkitUri(String toolkitUri) {
@@ -977,7 +977,7 @@ public class ApplicationConnection {
* Adds PNG-fix conditionally (only for IE6) to the specified IMG -element.
*
* @param el
- * the IMG element to fix
+ * the IMG element to fix
*/
public void addPngFix(Element el) {
BrowserInfo b = BrowserInfo.get();
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/BrowserInfo.java b/src/com/itmill/toolkit/terminal/gwt/client/BrowserInfo.java
index d62a4a6571..18dad0c9eb 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/BrowserInfo.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/BrowserInfo.java
@@ -68,8 +68,7 @@ public class BrowserInfo {
ieVersion = Float.parseFloat(ieVersionString);
}
} catch (Exception e) {
- e.printStackTrace();
- ApplicationConnection.getConsole().error(e.getMessage());
+ ClientExceptionHandler.displayError(e);
}
}
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ClientExceptionHandler.java b/src/com/itmill/toolkit/terminal/gwt/client/ClientExceptionHandler.java
new file mode 100644
index 0000000000..10167b7466
--- /dev/null
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ClientExceptionHandler.java
@@ -0,0 +1,27 @@
+package com.itmill.toolkit.terminal.gwt.client;
+
+public class ClientExceptionHandler {
+
+ public static void displayError(Throwable e) {
+ displayError(e.getMessage());
+ e.printStackTrace();
+ }
+
+ public static void displayError(String msg) {
+
+ Console console = ApplicationConnection.getConsole();
+
+ if (console != null) {
+ console.error(msg);
+ // } else {
+ // System.err.println(msg);
+ }
+ }
+
+ public static void displayError(String msg, Throwable e) {
+ displayError(msg);
+ displayError(e);
+
+ }
+
+}
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/DateTimeService.java b/src/com/itmill/toolkit/terminal/gwt/client/DateTimeService.java
index aaa3ebc9b6..49f1bde027 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/DateTimeService.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/DateTimeService.java
@@ -38,7 +38,7 @@ public class DateTimeService {
* Creates a new date time service with a given locale.
*
* @param locale
- * e.g. fi, en etc.
+ * e.g. fi, en etc.
* @throws LocaleNotLoadedException
*/
public DateTimeService(String locale) throws LocaleNotLoadedException {
@@ -61,8 +61,7 @@ public class DateTimeService {
try {
return LocaleService.getMonthNames(currentLocale)[month];
} catch (final LocaleNotLoadedException e) {
- // TODO redirect to console
- System.out.println(e + ":" + e.getMessage());
+ ClientExceptionHandler.displayError(e);
}
return null;
}
@@ -71,8 +70,7 @@ public class DateTimeService {
try {
return LocaleService.getShortMonthNames(currentLocale)[month];
} catch (final LocaleNotLoadedException e) {
- // TODO redirect to console
- System.out.println(e + ":" + e.getMessage());
+ ClientExceptionHandler.displayError(e);
}
return null;
}
@@ -81,8 +79,7 @@ public class DateTimeService {
try {
return LocaleService.getDayNames(currentLocale)[day];
} catch (final LocaleNotLoadedException e) {
- // TODO redirect to console
- System.out.println(e + ":" + e.getMessage());
+ ClientExceptionHandler.displayError(e);
}
return null;
}
@@ -91,8 +88,7 @@ public class DateTimeService {
try {
return LocaleService.getShortDayNames(currentLocale)[day];
} catch (final LocaleNotLoadedException e) {
- // TODO redirect to console
- System.out.println(e + ":" + e.getMessage());
+ ClientExceptionHandler.displayError(e);
}
return null;
}
@@ -101,8 +97,7 @@ public class DateTimeService {
try {
return LocaleService.getFirstDayOfWeek(currentLocale);
} catch (final LocaleNotLoadedException e) {
- // TODO redirect to console
- System.out.println(e + ":" + e.getMessage());
+ ClientExceptionHandler.displayError(e);
}
return 0;
}
@@ -111,8 +106,7 @@ public class DateTimeService {
try {
return LocaleService.isTwelveHourClock(currentLocale);
} catch (final LocaleNotLoadedException e) {
- // TODO redirect to console
- System.out.println(e + ":" + e.getMessage());
+ ClientExceptionHandler.displayError(e);
}
return false;
}
@@ -121,8 +115,7 @@ public class DateTimeService {
try {
return LocaleService.getClockDelimiter(currentLocale);
} catch (final LocaleNotLoadedException e) {
- // TODO redirect to console
- System.out.println(e + ":" + e.getMessage());
+ ClientExceptionHandler.displayError(e);
}
return ":";
}
@@ -131,8 +124,7 @@ public class DateTimeService {
try {
return LocaleService.getAmPmStrings(currentLocale);
} catch (final LocaleNotLoadedException e) {
- // TODO redirect to console
- System.out.println(e + ":" + e.getMessage());
+ ClientExceptionHandler.displayError(e);
}
final String[] temp = new String[2];
temp[0] = "AM";
@@ -148,8 +140,7 @@ public class DateTimeService {
firstDay = LocaleService.getFirstDayOfWeek(currentLocale);
} catch (final LocaleNotLoadedException e) {
firstDay = 0;
- // TODO redirect to console
- System.out.println(e + ":" + e.getMessage());
+ ClientExceptionHandler.displayError(e);
}
int start = dateForFirstOfThisMonth.getDay() - firstDay;
if (start < 0) {
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/UIDL.java b/src/com/itmill/toolkit/terminal/gwt/client/UIDL.java
index 0b8d319e72..b534a675e7 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/UIDL.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/UIDL.java
@@ -316,7 +316,7 @@ public class UIDL {
item.addItem(tmp);
}
} catch (final Exception e) {
- // Ingonered, no variables
+ // Ignored, no variables
}
final Iterator i = getChildIterator();
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IDateField.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IDateField.java
index 123ded4515..b5b7f031f1 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IDateField.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IDateField.java
@@ -9,6 +9,7 @@ import java.util.Date;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.FlowPanel;
import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection;
+import com.itmill.toolkit.terminal.gwt.client.ClientExceptionHandler;
import com.itmill.toolkit.terminal.gwt.client.DateTimeService;
import com.itmill.toolkit.terminal.gwt.client.LocaleNotLoadedException;
import com.itmill.toolkit.terminal.gwt.client.Paintable;
@@ -81,10 +82,10 @@ public class IDateField extends FlowPanel implements Paintable, Field {
currentLocale = locale;
} catch (final LocaleNotLoadedException e) {
currentLocale = dts.getLocale();
- // TODO redirect this to console
- System.out.println("Tried to use an unloaded locale \""
- + locale + "\". Using default locale (" + currentLocale
- + ").");
+ ClientExceptionHandler.displayError(
+ "Tried to use an unloaded locale \"" + locale
+ + "\". Using default locale (" + currentLocale
+ + ").", e);
}
}
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IPopupView.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IPopupView.java
index 303767faa1..750af5c2a2 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IPopupView.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IPopupView.java
@@ -55,11 +55,11 @@ public class IPopupView extends HTML implements Paintable, Container {
setStyleName(CLASSNAME);
popup.setStylePrimaryName(CLASSNAME + "-popup");
- this.setHTML("PopupPanel");
+ setHTML("PopupPanel");
popup.setWidget(loading);
// When we click to open the popup...
- this.addClickListener(new ClickListener() {
+ addClickListener(new ClickListener() {
public void onClick(Widget sender) {
updateState(true);
}
@@ -94,10 +94,10 @@ public class IPopupView extends HTML implements Paintable, Container {
updateWindowSize();
hostPopupVisible = uidl.getBooleanAttribute("popupVisible");
- this.setHTML(uidl.getStringAttribute("html"));
+ setHTML(uidl.getStringAttribute("html"));
if (uidl.hasAttribute("description")) {
- this.setTitle(uidl.getStringAttribute("description"));
+ setTitle(uidl.getStringAttribute("description"));
}
// Render the popup if visible and show it. The component inside can
@@ -175,7 +175,7 @@ public class IPopupView extends HTML implements Paintable, Container {
popup.hide();
if (popup != null) {
- client.unregisterPaintable((Paintable) popup);
+ client.unregisterPaintable(popup);
}
popup = (CustomPopup) newComponent;
@@ -191,10 +191,10 @@ public class IPopupView extends HTML implements Paintable, Container {
}
public static native void nativeBlur(Element e) /*-{
- if(e.focus) {
- e.blur();
- }
- }-*/;
+ if(e.focus) {
+ e.blur();
+ }
+ }-*/;
private class CustomPopup extends ToolkitOverlay implements Container {
@@ -277,12 +277,12 @@ public class IPopupView extends HTML implements Paintable, Container {
public void replaceChildComponent(Widget oldComponent,
Widget newComponent) {
- System.out.println("CustomPopup replacechildcomponent");
+ // System.out.println("CustomPopup replacechildcomponent");
if (oldComponent != null) {
client.unregisterPaintable((Paintable) oldComponent);
}
- popupComponentWidget = (Widget) newComponent;
+ popupComponentWidget = newComponent;
setWidget(popupComponentWidget);
}
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITextualDate.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITextualDate.java
index 688e0c960d..46ae202986 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/ITextualDate.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/ITextualDate.java
@@ -13,6 +13,7 @@ import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;
import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection;
import com.itmill.toolkit.terminal.gwt.client.BrowserInfo;
+import com.itmill.toolkit.terminal.gwt.client.ClientExceptionHandler;
import com.itmill.toolkit.terminal.gwt.client.ContainerResizedListener;
import com.itmill.toolkit.terminal.gwt.client.Focusable;
import com.itmill.toolkit.terminal.gwt.client.LocaleNotLoadedException;
@@ -98,8 +99,7 @@ public class ITextualDate extends IDateField implements Paintable, Field,
formatStr = frmString;
} catch (LocaleNotLoadedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ ClientExceptionHandler.displayError(e);
}
}
}
@@ -139,7 +139,8 @@ public class ITextualDate extends IDateField implements Paintable, Field,
// remove possibly added invalid value indication
removeStyleName(PARSE_ERROR_CLASSNAME);
} catch (final Exception e) {
- ApplicationConnection.getConsole().log(e.getMessage());
+ ClientExceptionHandler.displayError(e.getMessage());
+
addStyleName(PARSE_ERROR_CLASSNAME);
client.updateVariable(id, "lastInvalidDateString", text
.getText(), false);
diff --git a/src/com/itmill/toolkit/terminal/gwt/server/ApplicationServlet.java b/src/com/itmill/toolkit/terminal/gwt/server/ApplicationServlet.java
index 829989793c..b5ca02cb00 100644
--- a/src/com/itmill/toolkit/terminal/gwt/server/ApplicationServlet.java
+++ b/src/com/itmill/toolkit/terminal/gwt/server/ApplicationServlet.java
@@ -167,11 +167,11 @@ public class ApplicationServlet extends HttpServlet {
* is being placed into service.
*
* @param servletConfig
- * the object containing the servlet's configuration and
- * initialization parameters
+ * the object containing the servlet's configuration and
+ * initialization parameters
* @throws javax.servlet.ServletException
- * if an exception has occurred that interferes with the
- * servlet's normal operation.
+ * if an exception has occurred that interferes with the
+ * servlet's normal operation.
*/
public void init(javax.servlet.ServletConfig servletConfig)
throws javax.servlet.ServletException {
@@ -244,9 +244,9 @@ public class ApplicationServlet extends HttpServlet {
classLoader = (ClassLoader) c
.newInstance(new Object[] { getClass().getClassLoader() });
} catch (final Exception e) {
- System.err.println("Could not find specified class loader: "
- + classLoaderName);
- throw new ServletException(e);
+ throw new ServletException(
+ "Could not find specified class loader: "
+ + classLoaderName, e);
}
}
this.classLoader = classLoader;
@@ -278,9 +278,9 @@ public class ApplicationServlet extends HttpServlet {
* Gets an application or system property value.
*
* @param parameterName
- * the Name or the parameter.
+ * the Name or the parameter.
* @param defaultValue
- * the Default to be used.
+ * the Default to be used.
* @return String value or default if not found
*/
private String getApplicationOrSystemProperty(String parameterName,
@@ -328,16 +328,16 @@ public class ApplicationServlet extends HttpServlet {
* dispatches them.
*
* @param request
- * the 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
- * the 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.
+ * if an input or output error occurs while the servlet is
+ * 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 {
@@ -508,20 +508,24 @@ public class ApplicationServlet extends HttpServlet {
} catch (final SessionExpired e) {
// Session has expired, notify user
- Application.SystemMessages ci = getSystemMessages();
- if (!UIDLrequest) {
- // 'plain' http req - e.g. browser reload;
- // just go ahead redirect the browser
- response.sendRedirect(ci.getSessionExpiredURL());
- } else {
- // send uidl redirect
- criticalNotification(request, response, ci
- .getSessionExpiredCaption(), ci
- .getSessionExpiredMessage(), ci.getSessionExpiredURL());
+ try {
+ Application.SystemMessages ci = getSystemMessages();
+ if (!UIDLrequest) {
+ // 'plain' http req - e.g. browser reload;
+ // just go ahead redirect the browser
+ response.sendRedirect(ci.getSessionExpiredURL());
+ } else {
+ // send uidl redirect
+ criticalNotification(request, response, ci
+ .getSessionExpiredCaption(), ci
+ .getSessionExpiredMessage(), ci
+ .getSessionExpiredURL());
+ }
+ } catch (SystemMessageException ee) {
+ throw new ServletException(ee);
}
} catch (final Throwable e) {
- e.printStackTrace();
// if this was an UIDL request, response UIDL back to client
if (UIDLrequest) {
Application.SystemMessages ci = getSystemMessages();
@@ -553,23 +557,21 @@ public class ApplicationServlet extends HttpServlet {
return (Application.SystemMessages) m.invoke(null, null);
} catch (ClassNotFoundException e) {
// This should never happen
- e.printStackTrace();
+ throw new SystemMessageException(e);
} catch (SecurityException e) {
- e.printStackTrace();
- System.out
- .print("Error: getSystemMessage() should be static public");
+ throw new SystemMessageException(
+ "Application.getSystemMessage() should be static public", e);
} catch (NoSuchMethodException e) {
// This is completely ok and should be silently ignored
} catch (IllegalArgumentException e) {
// This should never happen
- e.printStackTrace();
+ throw new SystemMessageException(e);
} catch (IllegalAccessException e) {
- e.printStackTrace();
- System.out
- .print("Error: getSystemMessage() should be static public");
+ throw new SystemMessageException(
+ "Application.getSystemMessage() should be static public", e);
} catch (InvocationTargetException e) {
// This should never happen
- e.printStackTrace();
+ throw new SystemMessageException(e);
}
return Application.getSystemMessages();
}
@@ -588,13 +590,11 @@ public class ApplicationServlet extends HttpServlet {
InputStream is = sc.getResourceAsStream(filename);
if (is == null) {
// try if requested file is found from classloader
- try {
- // strip leading "/" otherwise stream from JAR wont work
- filename = filename.substring(1);
- is = classLoader.getResourceAsStream(filename);
- } catch (final Exception e) {
- e.printStackTrace();
- }
+
+ // strip leading "/" otherwise stream from JAR wont work
+ filename = filename.substring(1);
+ is = classLoader.getResourceAsStream(filename);
+
if (is == null) {
// cannot serve requested file
System.err
@@ -624,17 +624,17 @@ public class ApplicationServlet extends HttpServlet {
* no knowledge of what application client refers to.
*
* @param request
- * the HTTP request instance.
+ * the HTTP request instance.
* @param response
- * the HTTP response to write to.
+ * the HTTP response to write to.
* @param caption
- * for the notification
+ * for the notification
* @param message
- * for the notification
+ * for the notification
* @param url
- * url to load after message, null for current page
+ * url to load after message, null for current page
* @throws IOException
- * if the writing failed due to input/output error.
+ * if the writing failed due to input/output error.
*/
void criticalNotification(HttpServletRequest request,
HttpServletResponse response, String caption, String message,
@@ -676,8 +676,10 @@ public class ApplicationServlet extends HttpServlet {
* @param request
* @return string array consisting of application url first and then
* widgetset url.
+ * @throws MalformedURLException
*/
- private String[] getAppAndWidgetUrl(HttpServletRequest request) {
+ private String[] getAppAndWidgetUrl(HttpServletRequest request)
+ throws MalformedURLException {
// don't use server and port in uri. It may cause problems with some
// virtual server configurations which lose the server name
String appUrl = null;
@@ -691,32 +693,28 @@ public class ApplicationServlet extends HttpServlet {
appUrl = URIparts[1];
} else {
String[] urlParts;
- try {
- urlParts = getApplicationUrl(request).toString().split("\\/");
- appUrl = "";
- widgetsetUrl = "";
- // if context is specified add it to widgetsetUrl
- String ctxPath = request.getContextPath();
- if (ctxPath.length() == 0
- && request
- .getAttribute("javax.servlet.include.context_path") != null) {
- // include request (e.g portlet), get contex path from
- // attribute
- ctxPath = (String) request
- .getAttribute("javax.servlet.include.context_path");
- }
- if (urlParts.length > 3
- && urlParts[3].equals(ctxPath.replaceAll("\\/", ""))) {
- widgetsetUrl += "/" + urlParts[3];
- }
- for (int i = 3; i < urlParts.length; i++) {
- appUrl += "/" + urlParts[i];
- }
- if (appUrl.endsWith("/")) {
- appUrl = appUrl.substring(0, appUrl.length() - 1);
- }
- } catch (final MalformedURLException e) {
- e.printStackTrace();
+ urlParts = getApplicationUrl(request).toString().split("\\/");
+ appUrl = "";
+ widgetsetUrl = "";
+ // if context is specified add it to widgetsetUrl
+ String ctxPath = request.getContextPath();
+ if (ctxPath.length() == 0
+ && request
+ .getAttribute("javax.servlet.include.context_path") != null) {
+ // include request (e.g portlet), get contex path from
+ // attribute
+ ctxPath = (String) request
+ .getAttribute("javax.servlet.include.context_path");
+ }
+ if (urlParts.length > 3
+ && urlParts[3].equals(ctxPath.replaceAll("\\/", ""))) {
+ widgetsetUrl += "/" + urlParts[3];
+ }
+ for (int i = 3; i < urlParts.length; i++) {
+ appUrl += "/" + urlParts[i];
+ }
+ if (appUrl.endsWith("/")) {
+ appUrl = appUrl.substring(0, appUrl.length() - 1);
}
}
@@ -726,19 +724,19 @@ public class ApplicationServlet extends HttpServlet {
/**
*
* @param request
- * the HTTP request.
+ * the HTTP request.
* @param response
- * the HTTP response to write to.
+ * 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.
+ * 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.
+ * if the application is denied access the persistent data store
+ * represented by the given URL.
*/
private void writeAjaxPage(HttpServletRequest request,
HttpServletResponse response, Window window, String themeName,
@@ -763,8 +761,9 @@ public class ApplicationServlet extends HttpServlet {
try {
widgetset = (String) reqParam;
} catch (Exception e) {
- System.err.println("Warning: request param " + REQUEST_WIDGETSET
- + " could not be used (not a String?)" + e);
+ // FIXME: Handle exception
+ System.err.println("Warning: request param '" + REQUEST_WIDGETSET
+ + "' could not be used (is not a String)" + e);
}
if (widgetset == null) {
widgetset = applicationProperties.getProperty(PARAMETER_WIDGETSET);
@@ -987,14 +986,13 @@ public class ApplicationServlet extends HttpServlet {
* it is sent to the client.
*
* @param application
- * the Application owning the URI.
+ * the Application owning the URI.
* @param request
- * the HTTP request instance.
+ * the HTTP request instance.
* @param response
- * 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.
+ * 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,
@@ -1035,17 +1033,19 @@ public class ApplicationServlet extends HttpServlet {
* it is sent to the client.
*
* @param stream
- * the download stream.
+ * the download stream.
*
* @param request
- * the HTTP request instance.
+ * the HTTP request instance.
* @param response
- * the HTTP response to write to.
+ * the HTTP response to write to.
+ * @throws IOException
*
* @see com.itmill.toolkit.terminal.URIHandler
*/
private void handleDownload(DownloadStream stream,
- HttpServletRequest request, HttpServletResponse response) {
+ HttpServletRequest request, HttpServletResponse response)
+ throws IOException {
if (stream.getParameter("Location") != null) {
response.setStatus(HttpServletResponse.SC_FOUND);
@@ -1093,19 +1093,13 @@ public class ApplicationServlet extends HttpServlet {
final byte[] buffer = new byte[bufferSize];
int bytesRead = 0;
- try {
- final OutputStream out = response.getOutputStream();
+ final OutputStream out = response.getOutputStream();
- while ((bytesRead = data.read(buffer)) > 0) {
- out.write(buffer, 0, bytesRead);
- out.flush();
- }
- out.close();
- } catch (final IOException ignored) {
- System.err
- .println("Warning: ApplicationServlet.handleDownload()"
- + " threw IOException.");
+ while ((bytesRead = data.read(buffer)) > 0) {
+ out.write(buffer, 0, bytesRead);
+ out.flush();
}
+ out.close();
}
@@ -1116,15 +1110,14 @@ public class ApplicationServlet extends HttpServlet {
* are provided by the WebAdapterServlet.
*
* @param request
- * the HTTP request.
+ * the HTTP request.
* @param response
- * the HTTP response.
- * @return boolean <code>true</code> if the request was handled and
- * further processing should be suppressed, <code>false</code>
- * 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.
+ * if an exception has occurred that interferes with the
+ * servlet's normal operation.
*/
private boolean handleResourceRequest(HttpServletRequest request,
HttpServletResponse response, String themeName)
@@ -1154,6 +1147,7 @@ public class ApplicationServlet extends HttpServlet {
data = getServletContext().getResourceAsStream(
THEME_DIRECTORY_PATH + themeName + "/" + resourceId);
} catch (final Exception e) {
+ // FIXME: Handle exception
e.printStackTrace();
data = null;
}
@@ -1187,6 +1181,7 @@ public class ApplicationServlet extends HttpServlet {
}
} catch (final java.io.IOException e) {
+ // FIXME: Handle exception
System.err.println("Resource transfer failed: "
+ request.getRequestURI() + ". (" + e.getMessage() + ")");
}
@@ -1198,46 +1193,40 @@ public class ApplicationServlet extends HttpServlet {
* Gets the current application URL from request.
*
* @param request
- * the HTTP request.
+ * the HTTP request.
* @throws MalformedURLException
- * if the application is denied access to the persistent
- * data store represented by the given URL.
+ * if the application is denied access to the persistent data
+ * store represented by the given URL.
*/
private URL getApplicationUrl(HttpServletRequest request)
throws MalformedURLException {
URL applicationUrl;
- try {
- final URL reqURL = new URL(
- (request.isSecure() ? "https://" : "http://")
- + request.getServerName()
- + ((request.isSecure() && request.getServerPort() == 443)
- || (!request.isSecure() && request
- .getServerPort() == 80) ? "" : ":"
- + request.getServerPort())
- + request.getRequestURI());
- String servletPath = "";
- if (request.getAttribute("javax.servlet.include.servlet_path") != null) {
- // this is an include request
- servletPath = request.getAttribute(
- "javax.servlet.include.context_path").toString()
- + request
- .getAttribute("javax.servlet.include.servlet_path");
- } else {
- servletPath = request.getContextPath()
- + request.getServletPath();
- }
- if (servletPath.length() == 0
- || servletPath.charAt(servletPath.length() - 1) != '/') {
- servletPath = servletPath + "/";
- }
- applicationUrl = new URL(reqURL, servletPath);
- } catch (final MalformedURLException e) {
- System.err.println("Error constructing application url "
- + request.getRequestURI() + " (" + e + ")");
- throw e;
+ final URL reqURL = new URL(
+ (request.isSecure() ? "https://" : "http://")
+ + request.getServerName()
+ + ((request.isSecure() && request.getServerPort() == 443)
+ || (!request.isSecure() && request
+ .getServerPort() == 80) ? "" : ":"
+ + request.getServerPort())
+ + request.getRequestURI());
+ String servletPath = "";
+ if (request.getAttribute("javax.servlet.include.servlet_path") != null) {
+ // this is an include request
+ servletPath = request.getAttribute(
+ "javax.servlet.include.context_path").toString()
+ + request
+ .getAttribute("javax.servlet.include.servlet_path");
+
+ } else {
+ servletPath = request.getContextPath() + request.getServletPath();
+ }
+ if (servletPath.length() == 0
+ || servletPath.charAt(servletPath.length() - 1) != '/') {
+ servletPath = servletPath + "/";
}
+ applicationUrl = new URL(reqURL, servletPath);
return applicationUrl;
}
@@ -1287,13 +1276,13 @@ public class ApplicationServlet extends HttpServlet {
* instance for given request based on the requested URL.
*
* @param request
- * the HTTP request.
+ * the HTTP request.
* @param response
* @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.
+ * if the application is denied access to the persistent data
+ * store represented by the given URL.
* @throws SAXException
* @throws IllegalAccessException
* @throws InstantiationException
@@ -1345,13 +1334,13 @@ public class ApplicationServlet extends HttpServlet {
* Creates new application for given request.
*
* @param request
- * the HTTP request.
+ * the HTTP request.
* @param response
* @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.
+ * if the application is denied access to the persistent data
+ * store represented by the given URL.
* @throws SAXException
* @throws IllegalAccessException
* @throws InstantiationException
@@ -1396,12 +1385,8 @@ public class ApplicationServlet extends HttpServlet {
return application;
} catch (final IllegalAccessException e) {
- System.err.println("Illegal access to application class "
- + applicationClass.getName());
throw e;
} catch (final InstantiationException e) {
- System.err.println("Failed to instantiate application class: "
- + applicationClass.getName());
throw e;
}
}
@@ -1410,13 +1395,13 @@ public class ApplicationServlet extends HttpServlet {
* Ends the application.
*
* @param request
- * the HTTP request.
+ * the HTTP request.
* @param response
- * the HTTP response to write to.
+ * the HTTP response to write to.
* @param application
- * the application to end.
+ * the application to end.
* @throws IOException
- * if the writing failed due to input/output error.
+ * if the writing failed due to input/output error.
*/
private void endApplication(HttpServletRequest request,
HttpServletResponse response, Application application)
@@ -1441,13 +1426,13 @@ public class ApplicationServlet extends HttpServlet {
* application based on the requested URI.
*
* @param request
- * the HTTP Request.
+ * the HTTP Request.
* @param application
- * the Application to query for window.
+ * the Application to query for window.
* @return Window matching the given URI or null if not found.
* @throws ServletException
- * if an exception has occurred that interferes with the
- * servlet's normal operation.
+ * if an exception has occurred that interferes with the
+ * servlet's normal operation.
*/
private Window getApplicationWindow(HttpServletRequest request,
Application application) throws ServletException {
@@ -1494,9 +1479,9 @@ public class ApplicationServlet extends HttpServlet {
* Gets relative location of a theme resource.
*
* @param theme
- * the Theme name.
+ * the Theme name.
* @param resource
- * the Theme resource.
+ * the Theme resource.
* @return External URI specifying the resource
*/
public String getResourceLocation(String theme, ThemeResource resource) {
@@ -1512,8 +1497,8 @@ public class ApplicationServlet extends HttpServlet {
* when debug mode is enabled.
*
* @param parameters
- * @return <code>true</code> if the web adapter is in debug mode.
- * otherwise <code>false</code>.
+ * @return <code>true</code> if the web adapter is in debug mode. otherwise
+ * <code>false</code>.
*/
public boolean isDebugMode(Map parameters) {
if (parameters != null) {
@@ -1621,7 +1606,7 @@ public class ApplicationServlet extends HttpServlet {
*
* @param servletContext
* @param path
- * the resource path.
+ * the resource path.
* @return the resource path.
*/
protected static String getResourcePath(ServletContext servletContext,
@@ -1635,6 +1620,7 @@ public class ApplicationServlet extends HttpServlet {
final URL url = servletContext.getResource(path);
resultPath = url.getFile();
} catch (final Exception e) {
+ // FIXME: Handle exception
e.printStackTrace();
}
}
diff --git a/src/com/itmill/toolkit/terminal/gwt/server/CommunicationManager.java b/src/com/itmill/toolkit/terminal/gwt/server/CommunicationManager.java
index 3b6c7882f4..559dda6e81 100644
--- a/src/com/itmill/toolkit/terminal/gwt/server/CommunicationManager.java
+++ b/src/com/itmill/toolkit/terminal/gwt/server/CommunicationManager.java
@@ -103,9 +103,11 @@ public class CommunicationManager implements Paintable.RepaintRequestListener {
* @param request
* @param response
* @throws IOException
+ * @throws FileUploadException
*/
public void handleFileUpload(HttpServletRequest request,
- HttpServletResponse response) throws IOException {
+ HttpServletResponse response) throws IOException,
+ FileUploadException {
// Create a new file upload handler
final ServletFileUpload upload = new ServletFileUpload();
@@ -174,7 +176,7 @@ public class CommunicationManager implements Paintable.RepaintRequestListener {
}
}
} catch (final FileUploadException e) {
- e.printStackTrace();
+ throw e;
}
// Send short response to acknowledge client that request was done
@@ -240,6 +242,7 @@ public class CommunicationManager implements Paintable.RepaintRequestListener {
"getSystemMessages", null);
ci = (Application.SystemMessages) m.invoke(null, null);
} catch (Exception e2) {
+ // FIXME: Handle exception
// Not critical, but something is still wrong; print
// stacktrace
e2.printStackTrace();
@@ -433,6 +436,7 @@ public class CommunicationManager implements Paintable.RepaintRequestListener {
+ ApplicationServlet.THEME_DIRECTORY_PATH
+ themeName + "/" + resource);
} catch (final Exception e) {
+ // FIXME: Handle exception
e.printStackTrace();
}
if (is != null) {
@@ -450,6 +454,7 @@ public class CommunicationManager implements Paintable.RepaintRequestListener {
}
r.close();
} catch (final java.io.IOException e) {
+ // FIXME: Handle exception
System.err.println("Resource transfer failed: "
+ request.getRequestURI() + ". ("
+ e.getMessage() + ")");
@@ -458,6 +463,7 @@ public class CommunicationManager implements Paintable.RepaintRequestListener {
+ JsonPaintTarget.escapeJSON(layout.toString())
+ "\"");
} else {
+ // FIXME: Handle exception
System.err.println("CustomLayout " + "/"
+ ApplicationServlet.THEME_DIRECTORY_PATH
+ themeName + "/" + resource + " not found!");
@@ -736,12 +742,12 @@ public class CommunicationManager implements Paintable.RepaintRequestListener {
/*
* Time formatting (24 or 12 hour clock and AM/PM suffixes)
*/
- final String timeformat = df.substring(timeStart, df.length()); // Doesn't
- // return
- // second
- // or
- // milliseconds
- // We use timeformat to determine 12/24-hour clock
+ final String timeformat = df.substring(timeStart, df.length());
+ /*
+ * Doesn't return second or milliseconds.
+ *
+ * We use timeformat to determine 12/24-hour clock
+ */
final boolean twelve_hour_clock = timeformat.indexOf("a") > -1;
// TODO there are other possibilities as well, like 'h' in french
// (ignore them, too complicated)
@@ -771,13 +777,13 @@ public class CommunicationManager implements Paintable.RepaintRequestListener {
* application based on the requested URI.
*
* @param request
- * the HTTP Request.
+ * the HTTP Request.
* @param application
- * the 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.
+ * if an exception has occurred that interferes with the
+ * servlet's normal operation.
*/
private Window getApplicationWindow(HttpServletRequest request,
Application application) throws ServletException {
@@ -821,13 +827,13 @@ public class CommunicationManager implements Paintable.RepaintRequestListener {
* Ends the Application.
*
* @param request
- * the HTTP request instance.
+ * the HTTP request instance.
* @param response
- * the HTTP response to write to.
+ * the HTTP response to write to.
* @param application
- * the Application to end.
+ * the Application to end.
* @throws IOException
- * if the writing failed due to input/output error.
+ * if the writing failed due to input/output error.
*/
private void endApplication(HttpServletRequest request,
HttpServletResponse response, Application application)
@@ -883,7 +889,7 @@ public class CommunicationManager implements Paintable.RepaintRequestListener {
/**
* @param w
- * root window for which dirty components is to be fetched
+ * root window for which dirty components is to be fetched
* @return
*/
private ArrayList getDirtyComponents(Window w) {
diff --git a/src/com/itmill/toolkit/terminal/gwt/server/SystemMessageException.java b/src/com/itmill/toolkit/terminal/gwt/server/SystemMessageException.java
new file mode 100644
index 0000000000..4eda3a4d05
--- /dev/null
+++ b/src/com/itmill/toolkit/terminal/gwt/server/SystemMessageException.java
@@ -0,0 +1,57 @@
+package com.itmill.toolkit.terminal.gwt.server;
+
+public class SystemMessageException extends RuntimeException {
+
+ /**
+ * Serial generated by eclipse.
+ */
+ private static final long serialVersionUID = -8249486543123286960L;
+
+ /**
+ * Cause of the method exception
+ */
+ private Throwable cause;
+
+ /**
+ * Constructs a new <code>SystemMessageException</code> with the specified
+ * detail message.
+ *
+ * @param msg
+ * the detail message.
+ */
+ public SystemMessageException(String msg) {
+ super(msg);
+ }
+
+ /**
+ * Constructs a new <code>SystemMessageException</code> with the specified
+ * detail message and cause.
+ *
+ * @param msg
+ * the detail message.
+ * @param cause
+ * the cause of the exception.
+ */
+ public SystemMessageException(String msg, Throwable cause) {
+ super(msg, cause);
+ }
+
+ /**
+ * Constructs a new <code>SystemMessageException</code> from another
+ * exception.
+ *
+ * @param cause
+ * the cause of the exception.
+ */
+ public SystemMessageException(Throwable cause) {
+ this.cause = cause;
+ }
+
+ /**
+ * @see java.lang.Throwable#getCause()
+ */
+ public Throwable getCause() {
+ return cause;
+ }
+
+} \ No newline at end of file
diff --git a/src/com/itmill/toolkit/terminal/gwt/server/WebApplicationContext.java b/src/com/itmill/toolkit/terminal/gwt/server/WebApplicationContext.java
index 65587890ab..fe2c000764 100644
--- a/src/com/itmill/toolkit/terminal/gwt/server/WebApplicationContext.java
+++ b/src/com/itmill/toolkit/terminal/gwt/server/WebApplicationContext.java
@@ -21,6 +21,7 @@ import javax.servlet.http.HttpSessionBindingListener;
import com.itmill.toolkit.Application;
import com.itmill.toolkit.service.ApplicationContext;
+import com.itmill.toolkit.terminal.gwt.client.ClientExceptionHandler;
/**
* Web application context for the IT Mill Toolkit applications.
@@ -85,7 +86,7 @@ public class WebApplicationContext implements ApplicationContext,
* Gets the application context for HttpSession.
*
* @param session
- * the HTTP session.
+ * the HTTP session.
* @return the application context for HttpSession.
*/
static public WebApplicationContext getApplicationContext(
@@ -108,7 +109,7 @@ public class WebApplicationContext implements ApplicationContext,
* boolean value as this object.
*
* @param obj
- * the object to compare with.
+ * the object to compare with.
* @see java.lang.Object#equals(java.lang.Object)
*/
public boolean equals(Object obj) {
@@ -153,7 +154,7 @@ public class WebApplicationContext implements ApplicationContext,
*
* @param application
* @param request
- * the HTTP request.
+ * the HTTP request.
*/
protected void startTransaction(Application application,
HttpServletRequest request) {
@@ -171,7 +172,7 @@ public class WebApplicationContext implements ApplicationContext,
*
* @param application
* @param request
- * the HTTP request.
+ * the HTTP request.
*/
protected void endTransaction(Application application,
HttpServletRequest request) {
@@ -244,6 +245,7 @@ public class WebApplicationContext implements ApplicationContext,
// thread doing HTTP socket write and another thread trying to
// remove same application here. Possible if you got e.g. session
// lifetime 1 min but socket write may take longer than 1 min.
+ // FIXME: Handle exception
System.err.println("Could not remove application, leaking memory.");
e.printStackTrace();
}
diff --git a/src/com/itmill/toolkit/ui/AbstractComponent.java b/src/com/itmill/toolkit/ui/AbstractComponent.java
index 0aa9d74fdf..56c06765f0 100644
--- a/src/com/itmill/toolkit/ui/AbstractComponent.java
+++ b/src/com/itmill/toolkit/ui/AbstractComponent.java
@@ -331,7 +331,7 @@ public abstract class AbstractComponent implements Component, MethodEventSource
* actual enabled state of the component.
*
* @param disabledByContainer
- * Should the component be disabled
+ * Should the component be disabled
*/
public void setDisabledByContainer(boolean disabledByContainer) {
if (disabledByContainer != this.disabledByContainer) {
@@ -776,8 +776,8 @@ public abstract class AbstractComponent implements Component, MethodEventSource
new Class[] { Component.Event.class });
} catch (final java.lang.NoSuchMethodException e) {
// This should never happen
- e.printStackTrace();
- throw new java.lang.RuntimeException();
+ throw new java.lang.RuntimeException(
+ "Internal error finding methods in AbstractComponent");
}
}
@@ -1228,7 +1228,7 @@ public abstract class AbstractComponent implements Component, MethodEventSource
* handle the exception.
*
* @param errorHandler
- * AbstractField specific error handler
+ * AbstractField specific error handler
*/
public void setErrorHandler(ComponentErrorHandler errorHandler) {
this.errorHandler = errorHandler;
diff --git a/src/com/itmill/toolkit/ui/AbstractComponentContainer.java b/src/com/itmill/toolkit/ui/AbstractComponentContainer.java
index bce552e3d9..56febe3815 100644
--- a/src/com/itmill/toolkit/ui/AbstractComponentContainer.java
+++ b/src/com/itmill/toolkit/ui/AbstractComponentContainer.java
@@ -93,7 +93,7 @@ public abstract class AbstractComponentContainer extends AbstractComponent
}
}
- /* Events ************************************************************ */
+ /* Events */
private static final Method COMPONENT_ATTACHED_METHOD;
@@ -109,7 +109,8 @@ public abstract class AbstractComponentContainer extends AbstractComponent
new Class[] { ComponentDetachEvent.class });
} catch (final java.lang.NoSuchMethodException e) {
// This should never happen
- throw new java.lang.RuntimeException();
+ throw new java.lang.RuntimeException(
+ "Internal error finding methods in AbstractComponentContainer");
}
}
@@ -143,7 +144,7 @@ public abstract class AbstractComponentContainer extends AbstractComponent
* container.
*
* @param component
- * the component that has been added to this container.
+ * the component that has been added to this container.
*/
protected void fireComponentAttachEvent(Component component) {
fireEvent(new ComponentAttachEvent(this, component));
@@ -155,7 +156,7 @@ public abstract class AbstractComponentContainer extends AbstractComponent
* container.
*
* @param component
- * the component that has been removed from this container.
+ * the component that has been removed from this container.
*/
protected void fireComponentDetachEvent(Component component) {
fireEvent(new ComponentDetachEvent(this, component));
diff --git a/src/com/itmill/toolkit/ui/AbstractField.java b/src/com/itmill/toolkit/ui/AbstractField.java
index 98a001dd57..a421597197 100644
--- a/src/com/itmill/toolkit/ui/AbstractField.java
+++ b/src/com/itmill/toolkit/ui/AbstractField.java
@@ -51,7 +51,7 @@ import com.itmill.toolkit.terminal.PaintTarget;
public abstract class AbstractField extends AbstractComponent implements Field,
Property.ReadOnlyStatusChangeNotifier {
- /* Private members ************************************************* */
+ /* Private members */
private boolean delayedFocus;
@@ -121,7 +121,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
*/
private boolean validationVisible = true;
- /* Component basics ************************************************ */
+ /* Component basics */
/*
* Paints the field. Don't add a JavaDoc comment here, we use the default
@@ -337,7 +337,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
}
}
- /* Property interface implementation ******************************* */
+ /* Property interface implementation */
/**
* Returns the value of the Property in human readable textual format.
@@ -381,7 +381,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
* Sets the value of the field.
*
* @param newValue
- * the New value of the field.
+ * the New value of the field.
* @throws Property.ReadOnlyException
* @throws Property.ConversionException
*/
@@ -394,9 +394,9 @@ public abstract class AbstractField extends AbstractComponent implements Field,
* Sets the value of the field.
*
* @param newValue
- * the New value of the field.
+ * the New value of the field.
* @param repaintIsNotNeeded
- * True iff caller is sure that repaint is not needed.
+ * True iff caller is sure that repaint is not needed.
* @throws Property.ReadOnlyException
* @throws Property.ConversionException
*/
@@ -459,7 +459,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
}
}
- /* External data source ******************************************** */
+ /* External data source */
/**
* Gets the current data source of the field, if any.
@@ -488,7 +488,7 @@ 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) {
@@ -546,14 +546,14 @@ public abstract class AbstractField extends AbstractComponent implements Field,
}
}
- /* Validation ****************************************************** */
+ /* Validation */
/**
* Adds a new validator for the field's value. All validators added to a
* 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) {
@@ -580,7 +580,7 @@ public abstract class AbstractField extends AbstractComponent implements 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) {
@@ -750,7 +750,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
}
- /* Value change events ****************************************** */
+ /* Value change events */
private static final Method VALUE_CHANGE_METHOD;
@@ -761,7 +761,8 @@ public abstract class AbstractField extends AbstractComponent implements Field,
new Class[] { Property.ValueChangeEvent.class });
} catch (final java.lang.NoSuchMethodException e) {
// This should never happen
- throw new java.lang.RuntimeException();
+ throw new java.lang.RuntimeException(
+ "Internal error finding methods in AbstractField");
}
}
@@ -795,7 +796,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
}
}
- /* Read-only status change events *************************************** */
+ /* Read-only status change events */
private static final Method READ_ONLY_STATUS_CHANGE_METHOD;
@@ -807,7 +808,8 @@ public abstract class AbstractField extends AbstractComponent implements Field,
new Class[] { Property.ReadOnlyStatusChangeEvent.class });
} catch (final java.lang.NoSuchMethodException e) {
// This should never happen
- throw new java.lang.RuntimeException();
+ throw new java.lang.RuntimeException(
+ "Internal error finding methods in AbstractField");
}
}
@@ -832,7 +834,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
* New instance of text change event.
*
* @param source
- * the Source of the event.
+ * the Source of the event.
*/
public ReadOnlyStatusChangeEvent(AbstractField source) {
super(source);
@@ -881,8 +883,8 @@ public abstract class AbstractField extends AbstractComponent implements Field,
* forwards.
*
* @param event
- * the value change event telling the data source contents
- * have changed.
+ * the value change event telling the data source contents have
+ * changed.
*/
public void valueChange(Property.ValueChangeEvent event) {
if (isReadThrough() || !isModified()) {
@@ -915,7 +917,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
* </p>
*
* @param propertyType
- * the 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) {
@@ -966,7 +968,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
* variables.
*
* @param newValue
- * the new value to be set.
+ * the new value to be set.
*/
protected void setInternalValue(Object newValue) {
value = newValue;
@@ -1022,7 +1024,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
* field isEmpty() regardless of any attached validators.
*
* @param required
- * Is the field required.
+ * Is the field required.
*/
public void setRequired(boolean required) {
this.required = required;
@@ -1073,7 +1075,7 @@ public abstract class AbstractField extends AbstractComponent implements Field,
* validation in their own code.
*
* @param validateAutomatically
- * True, if automatic validation is enabled.
+ * True, if automatic validation is enabled.
*/
public void setValidationVisible(boolean validateAutomatically) {
if (validationVisible != validateAutomatically) {
diff --git a/src/com/itmill/toolkit/ui/AbstractSelect.java b/src/com/itmill/toolkit/ui/AbstractSelect.java
index b368f755a4..9f9fbc7b0a 100644
--- a/src/com/itmill/toolkit/ui/AbstractSelect.java
+++ b/src/com/itmill/toolkit/ui/AbstractSelect.java
@@ -47,8 +47,8 @@ public abstract class AbstractSelect extends AbstractField implements
Container.ItemSetChangeListener {
/**
- * Item caption mode: Item's ID's <code>String</code> representation is
- * used as caption.
+ * Item caption mode: Item's ID's <code>String</code> representation is used
+ * as caption.
*/
public static final int ITEM_CAPTION_MODE_ID = 0;
/**
@@ -87,8 +87,8 @@ public abstract class AbstractSelect extends AbstractField implements
* entered value. The value is matched to the item caption.
* <code>FILTERINGMODE_OFF</code> (0) turns the filtering off.
* <code>FILTERINGMODE_STARTSWITH</code> (1) matches from the start of the
- * caption. <code>FILTERINGMODE_CONTAINS</code> (1) matches anywhere in
- * the caption.
+ * caption. <code>FILTERINGMODE_CONTAINS</code> (1) matches anywhere in the
+ * caption.
*/
public interface Filtering {
public static final int FILTERINGMODE_OFF = 0;
@@ -99,7 +99,7 @@ public abstract class AbstractSelect extends AbstractField implements
* Sets the option filtering mode.
*
* @param filteringMode
- * the filtering mode to use
+ * the filtering mode to use
*/
public void setFilteringMode(int filteringMode);
@@ -185,7 +185,7 @@ public abstract class AbstractSelect extends AbstractField implements
// Caption (Item / Property) change listeners
CaptionChangeListener captionChangeListener;
- /* Constructors ********************************************************* */
+ /* Constructors */
/**
* Creates an empty Select. The caption is not used.
@@ -206,10 +206,9 @@ public abstract class AbstractSelect extends AbstractField implements
* Creates a new select that is connected to a data-source.
*
* @param caption
- * the Caption of the component.
+ * the Caption of the component.
* @param dataSource
- * the Container datasource to be selected from by this
- * select.
+ * the Container datasource to be selected from by this select.
*/
public AbstractSelect(String caption, Container dataSource) {
setCaption(caption);
@@ -220,9 +219,9 @@ public abstract class AbstractSelect extends AbstractField implements
* Creates a new select that is filled from a collection of option values.
*
* @param caption
- * the Caption of this field.
+ * the Caption of this field.
* @param options
- * the Collection containing the options.
+ * the Collection containing the options.
*/
public AbstractSelect(String caption, Collection options) {
@@ -238,15 +237,15 @@ public abstract class AbstractSelect extends AbstractField implements
setContainerDataSource(c);
}
- /* Component methods **************************************************** */
+ /* Component methods */
/**
* Paints the content of this component.
*
* @param target
- * the Paint Event.
+ * the Paint Event.
* @throws PaintException
- * if the paint operation failed.
+ * if the paint operation failed.
*/
public void paintContent(PaintTarget target) throws PaintException {
@@ -489,9 +488,10 @@ public abstract class AbstractSelect extends AbstractField implements
getItemCaptionPropertyId()).setValue(
newItemCaption);
} catch (final Property.ConversionException ignored) {
- // The conversion exception is safely ignored, the
- // caption is
- // just missing
+ /*
+ * The conversion exception is safely ignored, the
+ * caption is just missing
+ */
}
}
if (isMultiSelect()) {
@@ -526,13 +526,13 @@ public abstract class AbstractSelect extends AbstractField implements
return null;
}
- /* Property methods ***************************************************** */
+ /* Property methods */
/**
* 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 <code>setValue</code>.
+ * <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 <code>setValue</code>.
*
* @return the Type of the property.
*/
@@ -585,7 +585,7 @@ public abstract class AbstractSelect extends AbstractField implements
* </p>
*
* @param newValue
- * the 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,
@@ -607,9 +607,9 @@ public abstract class AbstractSelect extends AbstractField implements
* </p>
*
* @param newValue
- * the New selected item or collection of selected items.
+ * the New selected item or collection of selected items.
* @param repaintIsNotNeeded
- * True if caller is sure that repaint is not needed.
+ * True if caller is sure that repaint is not needed.
* @see com.itmill.toolkit.ui.AbstractField#setValue(java.lang.Object,
* java.lang.Boolean)
*/
@@ -628,14 +628,14 @@ public abstract class AbstractSelect extends AbstractField implements
}
}
- /* Container methods **************************************************** */
+ /* Container methods */
/**
* 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.
+ * the item id.
* @return the item from the container.
*/
public Item getItem(Object itemId) {
@@ -664,7 +664,7 @@ public abstract class AbstractSelect extends AbstractField implements
* Gets the property type.
*
* @param propertyId
- * the Id identifying the property.
+ * the Id identifying the property.
* @see com.itmill.toolkit.data.Container#getType(java.lang.Object)
*/
public Class getType(Object propertyId) {
@@ -686,7 +686,7 @@ public abstract class AbstractSelect extends AbstractField implements
* Tests, if the collection contains an item with given id.
*
* @param itemId
- * the Id the of item to be tested.
+ * the Id the of item to be tested.
*/
public boolean containsId(Object itemId) {
if (itemId != null) {
@@ -779,7 +779,7 @@ public abstract class AbstractSelect extends AbstractField implements
* returns null.
*
* @param itemId
- * the Identification of the item to be created.
+ * 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)
*/
@@ -833,13 +833,13 @@ public abstract class AbstractSelect extends AbstractField implements
return retval;
}
- /* Container.Viewer methods ********************************************* */
+ /* Container.Viewer methods */
/**
* Sets the container as data-source for viewing.
*
* @param newDataSource
- * the new data source.
+ * the new data source.
*/
public void setContainerDataSource(Container newDataSource) {
if (newDataSource == null) {
@@ -852,17 +852,13 @@ public abstract class AbstractSelect extends AbstractField implements
// Removes listeners from the old datasource
if (items != null) {
- try {
+ if (items instanceof Container.ItemSetChangeListener) {
((Container.ItemSetChangeNotifier) items)
.removeListener(this);
- } catch (final ClassCastException ignored) {
- // Ignored
}
- try {
+ if (items instanceof Container.PropertySetChangeNotifier) {
((Container.PropertySetChangeNotifier) items)
.removeListener(this);
- } catch (final ClassCastException ignored) {
- // Ignored
}
}
@@ -874,16 +870,12 @@ public abstract class AbstractSelect extends AbstractField implements
// Adds listeners
if (items != null) {
- try {
+ if (items instanceof Container.ItemSetChangeListener) {
((Container.ItemSetChangeNotifier) items).addListener(this);
- } catch (final ClassCastException ignored) {
- // Ignored
}
- try {
+ if (items instanceof Container.PropertySetChangeNotifier) {
((Container.PropertySetChangeNotifier) items)
.addListener(this);
- } catch (final ClassCastException ignored) {
- // Ignored
}
}
@@ -901,7 +893,7 @@ public abstract class AbstractSelect extends AbstractField implements
return items;
}
- /* Select attributes **************************************************** */
+ /* Select attributes */
/**
* Is the select in multiselect mode? In multiselect mode
@@ -918,7 +910,7 @@ public abstract class AbstractSelect extends AbstractField implements
* selected items, only one of the selected items is kept as selected.
*
* @param multiSelect
- * the New value of property multiSelect.
+ * the New value of property multiSelect.
*/
public void setMultiSelect(boolean multiSelect) {
if (multiSelect && getNullSelectionItemId() != null) {
@@ -970,7 +962,7 @@ public abstract class AbstractSelect extends AbstractField implements
* Enables or disables possibility to add new options by the user.
*
* @param allowNewOptions
- * the New value of property allowNewOptions.
+ * the New value of property allowNewOptions.
*/
public void setNewItemsAllowed(boolean allowNewOptions) {
@@ -988,9 +980,9 @@ public abstract class AbstractSelect extends AbstractField implements
* item and index captions.
*
* @param itemId
- * the id of the item to be recaptioned.
+ * the id of the item to be recaptioned.
* @param caption
- * the New caption.
+ * the New caption.
*/
public void setItemCaption(Object itemId, String caption) {
if (itemId != null) {
@@ -1005,7 +997,7 @@ public abstract class AbstractSelect extends AbstractField implements
* details.
*
* @param itemId
- * the id of the item to be queried.
+ * the id of the item to be queried.
* @return the caption for specified item.
*/
public String getItemCaption(Object itemId) {
@@ -1024,10 +1016,11 @@ public abstract class AbstractSelect extends AbstractField implements
break;
case ITEM_CAPTION_MODE_INDEX:
- try {
+ if (items instanceof Container.Indexed) {
caption = String.valueOf(((Container.Indexed) items)
.indexOfId(itemId));
- } catch (final ClassCastException ignored) {
+ } else {
+ caption = "ERROR: Container is not indexed";
}
break;
@@ -1066,9 +1059,9 @@ public abstract class AbstractSelect extends AbstractField implements
* 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
- * the New icon.
+ * the New icon.
*/
public void setItemIcon(Object itemId, Resource icon) {
if (itemId != null) {
@@ -1085,7 +1078,7 @@ public abstract class AbstractSelect extends AbstractField implements
* Gets the item icon.
*
* @param itemId
- * the id of the item to be assigned an icon.
+ * 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) {
@@ -1124,13 +1117,13 @@ public abstract class AbstractSelect extends AbstractField implements
* <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>
- * <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
+ * <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>
- * <li><code>ITEM_CAPTION_MODE_EXPLICIT</code> : The item captions must
- * be explicitly specified.</li>
- * <li><code>ITEM_CAPTION_MODE_PROPERTY</code> : The item captions are
- * read from property, that must be specified with
+ * <li><code>ITEM_CAPTION_MODE_EXPLICIT</code> : The item captions must 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>
* </ul>
* The <code>ITEM_CAPTION_MODE_EXPLICIT_DEFAULTS_ID</code> is the default
@@ -1138,7 +1131,7 @@ public abstract class AbstractSelect extends AbstractField implements
* </p>
*
* @param mode
- * the 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) {
@@ -1160,13 +1153,13 @@ public abstract class AbstractSelect extends AbstractField implements
* <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>
- * <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
+ * <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>
- * <li><code>ITEM_CAPTION_MODE_EXPLICIT</code> : The item captions must
- * be explicitly specified.</li>
- * <li><code>ITEM_CAPTION_MODE_PROPERTY</code> : The item captions are
- * read from property, that must be specified with
+ * <li><code>ITEM_CAPTION_MODE_EXPLICIT</code> : The item captions must 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>
* </ul>
* The <code>ITEM_CAPTION_MODE_EXPLICIT_DEFAULTS_ID</code> is the default
@@ -1185,18 +1178,19 @@ public abstract class AbstractSelect extends AbstractField implements
* <p>
* Setting the id to a existing property implicitly sets the item caption
* mode to <code>ITEM_CAPTION_MODE_PROPERTY</code>. If the object is in
- * <code>ITEM_CAPTION_MODE_PROPERTY</code> mode, setting caption property
- * id null resets the item caption mode to
+ * <code>ITEM_CAPTION_MODE_PROPERTY</code> mode, setting caption property id
+ * null resets the item caption mode to
* <code>ITEM_CAPTION_EXPLICIT_DEFAULTS_ID</code>.
* </p>
*
* <p>
* Setting the property id to null disables this feature. The id is null by
* default
- * </p>.
+ * </p>
+ * .
*
* @param propertyId
- * the id of the property.
+ * the id of the property.
*
*/
public void setItemCaptionPropertyId(Object propertyId) {
@@ -1232,17 +1226,18 @@ public abstract class AbstractSelect extends AbstractField implements
* </p>
*
* <p>
- * Note : The icons set with <code>setItemIcon</code> function override
- * the icons from the property.
+ * Note : The icons set with <code>setItemIcon</code> function override the
+ * icons from the property.
* </p>
*
* <p>
* Setting the property id to null disables this feature. The id is null by
* default
- * </p>.
+ * </p>
+ * .
*
* @param propertyId
- * the 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)
@@ -1264,14 +1259,15 @@ public abstract class AbstractSelect extends AbstractField implements
* </p>
*
* <p>
- * Note : The icons set with <code>setItemIcon</code> function override
- * the icons from the property.
+ * Note : The icons set with <code>setItemIcon</code> function override the
+ * icons from the property.
* </p>
*
* <p>
* Setting the property id to null disables this feature. The id is null by
* default
- * </p>.
+ * </p>
+ * .
*
* @return the Id of the property containing the item icons.
*/
@@ -1289,7 +1285,7 @@ public abstract class AbstractSelect extends AbstractField implements
* </p>
*
* @param itemId
- * the Id the of the item to be tested.
+ * the Id the of the item to be tested.
* @see #getNullSelectionItemId()
* @see #setNullSelectionItemId(Object)
*
@@ -1316,7 +1312,7 @@ public abstract class AbstractSelect extends AbstractField implements
* </p>
*
* @param itemId
- * the tem to be selected.
+ * the tem to be selected.
* @see #getNullSelectionItemId()
* @see #setNullSelectionItemId(Object)
*
@@ -1336,7 +1332,7 @@ public abstract class AbstractSelect extends AbstractField implements
* Unselects an item.
*
* @param itemId
- * the Item to be unselected.
+ * the Item to be unselected.
* @see #getNullSelectionItemId()
* @see #setNullSelectionItemId(Object)
*
@@ -1495,11 +1491,11 @@ public abstract class AbstractSelect extends AbstractField implements
/**
* Allow of disallow empty selection. If the select is in single-select
* mode, you can make an item represent the empty selection by calling
- * <code>setNullSelectionItemId()</code>. This way you can for instance
- * set an icon and caption for the null selection item.
+ * <code>setNullSelectionItemId()</code>. This way you can for instance set
+ * an icon and caption for the null selection item.
*
* @param nullSelectionAllowed
- * whether or not to allow empty selection
+ * whether or not to allow empty selection
* @see #setNullSelectionItemId(Object)
* @see #isNullSelectionAllowed()
*/
@@ -1546,7 +1542,7 @@ public abstract class AbstractSelect extends AbstractField implements
* </p>
*
* @param nullSelectionItemId
- * the nullSelectionItemId to set.
+ * the nullSelectionItemId to set.
* @see #getNullSelectionItemId()
* @see #isSelected(Object)
* @see #select(Object)
diff --git a/src/com/itmill/toolkit/ui/Button.java b/src/com/itmill/toolkit/ui/Button.java
index f24a9ee63c..9e51b81576 100644
--- a/src/com/itmill/toolkit/ui/Button.java
+++ b/src/com/itmill/toolkit/ui/Button.java
@@ -22,7 +22,7 @@ import com.itmill.toolkit.terminal.PaintTarget;
*/
public class Button extends AbstractField {
- /* Private members ************************************************* */
+ /* Private members */
boolean switchMode = false;
@@ -42,7 +42,7 @@ public class Button extends AbstractField {
* default.
*
* @param caption
- * the Button caption.
+ * the Button caption.
*/
public Button(String caption) {
setCaption(caption);
@@ -53,9 +53,9 @@ public class Button extends AbstractField {
* Creates a new push button with click listener.
*
* @param caption
- * the Button caption.
+ * the Button caption.
* @param listener
- * the Button click listener.
+ * the Button click listener.
*/
public Button(String caption, ClickListener listener) {
this(caption);
@@ -71,12 +71,12 @@ public class Button extends AbstractField {
* of Button.ClickEvent type.
*
* @param caption
- * the Button caption.
+ * the Button caption.
* @param target
- * the Object having the method for listening button clicks.
+ * the Object having the method for listening button clicks.
* @param methodName
- * the name of the method in target object, that receives
- * button click events.
+ * the name of the method in target object, that receives button
+ * click events.
*/
public Button(String caption, Object target, String methodName) {
this(caption);
@@ -87,7 +87,7 @@ public class Button extends AbstractField {
* Creates a new switch button with initial value.
*
* @param state
- * the Initial state of the switch-button.
+ * the Initial state of the switch-button.
* @param initialState
*/
public Button(String caption, boolean initialState) {
@@ -100,7 +100,7 @@ public class Button extends AbstractField {
* Creates a new switch button that is connected to a boolean property.
*
* @param state
- * the Initial state of the switch-button.
+ * the Initial state of the switch-button.
* @param dataSource
*/
public Button(String caption, Property dataSource) {
@@ -122,11 +122,11 @@ public class Button extends AbstractField {
* Paints the content of this component.
*
* @param event
- * the PaintEvent.
+ * the PaintEvent.
* @throws IOException
- * if the writing failed due to input/output error.
+ * if the writing failed due to input/output error.
* @throws PaintException
- * if the paint operation failed.
+ * if the paint operation failed.
*/
public void paintContent(PaintTarget target) throws PaintException {
super.paintContent(target);
@@ -153,10 +153,8 @@ public class Button extends AbstractField {
*/
public void changeVariables(Object source, Map variables) {
super.changeVariables(source, variables);
- if (isReadOnly()) {
- System.err.println("Button: ignoring variable change for"
- + " read-only component, caption=" + getCaption());
- } else if (variables.containsKey("state")) {
+
+ if (!isReadOnly() && variables.containsKey("state")) {
// Gets the new and old button states
final Boolean newValue = (Boolean) variables.get("state");
final Boolean oldValue = (Boolean) getValue();
@@ -199,7 +197,7 @@ public class Button extends AbstractField {
* Sets the switchMode.
*
* @param switchMode
- * The switchMode to set.
+ * The switchMode to set.
*/
public void setSwitchMode(boolean switchMode) {
this.switchMode = switchMode;
@@ -237,7 +235,7 @@ public class Button extends AbstractField {
return Boolean.class;
}
- /* Click event ************************************************ */
+ /* Click event */
private static final Method BUTTON_CLICK_METHOD;
@@ -250,7 +248,8 @@ public class Button extends AbstractField {
"buttonClick", new Class[] { ClickEvent.class });
} catch (final java.lang.NoSuchMethodException e) {
// This should never happen
- throw new java.lang.RuntimeException();
+ throw new java.lang.RuntimeException(
+ "Internal error finding methods in Button");
}
}
@@ -273,7 +272,7 @@ public class Button extends AbstractField {
* New instance of text change event.
*
* @param source
- * the Source of the event.
+ * the Source of the event.
*/
public ClickEvent(Component source) {
super(source);
@@ -303,7 +302,7 @@ public class Button extends AbstractField {
* Button has been pressed.
*
* @param event
- * Button click event.
+ * Button click event.
*/
public void buttonClick(ClickEvent event);
}
@@ -312,7 +311,7 @@ public class Button extends AbstractField {
* Adds the button click listener.
*
* @param listener
- * the Listener to be added.
+ * the Listener to be added.
*/
public void addListener(ClickListener listener) {
addListener(ClickEvent.class, listener, BUTTON_CLICK_METHOD);
@@ -322,7 +321,7 @@ public class Button extends AbstractField {
* Removes the button click listener.
*
* @param listener
- * the Listener to be removed.
+ * the Listener to be removed.
*/
public void removeListener(ClickListener listener) {
removeListener(ClickEvent.class, listener, BUTTON_CLICK_METHOD);
diff --git a/src/com/itmill/toolkit/ui/Form.java b/src/com/itmill/toolkit/ui/Form.java
index 6926916325..d9f452a0e6 100644
--- a/src/com/itmill/toolkit/ui/Form.java
+++ b/src/com/itmill/toolkit/ui/Form.java
@@ -130,7 +130,7 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item,
* </p>
*
* @param formLayout
- * the layout of the form.
+ * the layout of the form.
*/
public Form() {
this(null);
@@ -141,7 +141,7 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item,
* Contructs a new form with given layout.
*
* @param formLayout
- * the layout of the form.
+ * the layout of the form.
*/
public Form(Layout formLayout) {
this(formLayout, new BaseFieldFactory());
@@ -151,9 +151,9 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item,
* Contructs a new form with given layout and FieldFactory.
*
* @param formLayout
- * the layout of the form.
+ * the layout of the form.
* @param fieldFactory
- * the FieldFactory of the form.
+ * the FieldFactory of the form.
*/
public Form(Layout formLayout, FieldFactory fieldFactory) {
super();
@@ -194,9 +194,10 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item,
ErrorMessage validationError = null;
if (isValidationVisible()) {
for (final Iterator i = propertyIds.iterator(); i.hasNext();) {
- try {
- AbstractComponent field = (AbstractComponent) fields.get(i
- .next());
+ Object f = fields.get(i.next());
+ if (f instanceof AbstractComponent) {
+ AbstractComponent field = (AbstractComponent) f;
+
validationError = field.getErrorMessage();
if (validationError != null) {
// Skip empty errors
@@ -205,7 +206,6 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item,
}
break;
}
- } catch (ClassCastException ignored) {
}
}
}
@@ -234,9 +234,8 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item,
* the implicit setting by setting this property as false.
*
* @param makeVisible
- * If true (default), validation is made visible when
- * commit() is called. If false, the visibility is left as it
- * is.
+ * If true (default), validation is made visible when commit() is
+ * called. If false, the visibility is left as it is.
*/
public void setValidationVisibleOnCommit(boolean makeVisible) {
validationVisibleOnCommit = makeVisible;
@@ -263,8 +262,9 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item,
// Only commit on valid state if so requested
if (!isInvalidCommitted() && !isValid()) {
- if (validationVisibleOnCommit)
+ if (validationVisibleOnCommit) {
setValidationVisible(true);
+ }
return;
}
@@ -465,9 +465,9 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item,
* </p>
*
* @param propertyId
- * the Property id the the field.
+ * the Property id the the field.
* @param field
- * the New field added to the form.
+ * the New field added to the form.
*/
public void addField(Object propertyId, Field field) {
@@ -520,7 +520,7 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item,
* Gets the field identified by the propertyid.
*
* @param propertyId
- * the id of the property.
+ * the id of the property.
*/
public Field getField(Object propertyId) {
return (Field) fields.get(propertyId);
@@ -634,7 +634,8 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item,
* Gets the layout of the form.
*
* <p>
- * By default form uses <code>OrderedLayout</code> with <code>form</code>-style.
+ * By default form uses <code>OrderedLayout</code> with <code>form</code>
+ * -style.
* </p>
*
* @return the Layout of the form.
@@ -647,11 +648,12 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item,
* Sets the layout of the form.
*
* <p>
- * By default form uses <code>OrderedLayout</code> with <code>form</code>-style.
+ * By default form uses <code>OrderedLayout</code> with <code>form</code>
+ * -style.
* </p>
*
* @param newLayout
- * the Layout of the form.
+ * the Layout of the form.
*/
public void setLayout(Layout newLayout) {
@@ -681,7 +683,7 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item,
* </p>
*
* @param propertyId
- * the id of the property.
+ * the id of the property.
* @param values
* @param descriptions
* @return the select property generated
@@ -867,7 +869,7 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item,
* By default the form uses BaseFieldFactory to create Field instances.
*
* @param fieldFactory
- * the New factory used to create the fields.
+ * the New factory used to create the fields.
* @see Field
* @see FieldFactory
*/
@@ -974,7 +976,7 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item,
* Sets the visibleProperties.
*
* @param visibleProperties
- * the visibleProperties to set.
+ * the visibleProperties to set.
*/
public void setVisibleItemProperties(Collection visibleProperties) {
visibleItemProperties = visibleProperties;
@@ -1065,7 +1067,7 @@ public class Form extends AbstractField implements Item.Editor, Buffered, Item,
* Sets the layout that is rendered below normal form contens.
*
* @param newFormFooter
- * the new Layout
+ * the new Layout
*/
public void setFooter(Layout newFormFooter) {
if (formFooter != null) {
diff --git a/src/com/itmill/toolkit/ui/GridLayout.java b/src/com/itmill/toolkit/ui/GridLayout.java
index 92082fd546..31f7428af1 100644
--- a/src/com/itmill/toolkit/ui/GridLayout.java
+++ b/src/com/itmill/toolkit/ui/GridLayout.java
@@ -93,9 +93,9 @@ public class GridLayout extends AbstractLayout implements
* if you add components outside the grid's area.
*
* @param columns
- * Number of columns in the grid.
+ * Number of columns in the grid.
* @param rows
- * Number of rows in the grid.
+ * Number of rows in the grid.
*/
public GridLayout(int columns, int rows) {
setColumns(columns);
@@ -123,24 +123,24 @@ public class GridLayout extends AbstractLayout implements
* </p>
*
* @param c
- * the component to be added.
+ * the component to be added.
* @param column1
- * the column of the upper left corner of the area
- * <code>c</code> is supposed to occupy.
+ * the column of the upper left corner of the area <code>c</code>
+ * is supposed to occupy.
* @param row1
- * the row of the upper left corner of the area
- * <code>c</code> is supposed to occupy.
+ * the row of the upper left corner of the area <code>c</code> is
+ * supposed to occupy.
* @param column2
- * the column of the lower right corner of the area
- * <code>c</code> is supposed to occupy.
+ * the column of the lower right corner of the area
+ * <code>c</code> is supposed to occupy.
* @param row2
- * the row of the lower right corner of the area
- * <code>c</code> is supposed to occupy.
+ * the row 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.
+ * if the new component overlaps with any of the components
+ * already in the grid.
* @throws OutOfBoundsException
- * if the cells are outside of the grid area.
+ * if the cells are outside of the grid area.
*/
public void addComponent(Component component, int column1, int row1,
int column2, int row2) throws OverlapsException,
@@ -216,9 +216,9 @@ public class GridLayout extends AbstractLayout implements
* grid.
*
* @param area
- * the Area to be checked for overlapping.
+ * the Area to be checked for overlapping.
* @throws OverlapsException
- * if <code>area</code> overlaps with any existing area.
+ * if <code>area</code> overlaps with any existing area.
*/
private void checkExistingOverlaps(Area area) throws OverlapsException {
for (final Iterator i = areas.iterator(); i.hasNext();) {
@@ -236,11 +236,11 @@ public class GridLayout extends AbstractLayout implements
* the same as column1,row1. Component width and height is 1.
*
* @param c
- * the component to be added.
+ * the component to be added.
* @param column
- * the column index.
+ * the column index.
* @param row
- * the row index.
+ * the row index.
*/
public void addComponent(Component c, int column, int row) {
this.addComponent(c, column, row, column, row);
@@ -279,7 +279,7 @@ public class GridLayout extends AbstractLayout implements
* grid is automatically extended.
*
* @param c
- * the component to be added.
+ * the component to be added.
*/
public void addComponent(Component component) {
@@ -291,7 +291,7 @@ public class GridLayout extends AbstractLayout implements
area = new Area(component, cursorX, cursorY, cursorX, cursorY);
checkExistingOverlaps(area);
done = true;
- } catch (final OverlapsException ignored) {
+ } catch (final OverlapsException e) {
space();
}
}
@@ -307,7 +307,7 @@ public class GridLayout extends AbstractLayout implements
* Removes the given component from this container.
*
* @param c
- * the component to be removed.
+ * the component to be removed.
*/
public void removeComponent(Component component) {
@@ -340,9 +340,9 @@ public class GridLayout extends AbstractLayout implements
* Removes the component specified with it's cell index.
*
* @param column
- * the Component's column.
+ * the Component's column.
* @param row
- * the Component's row.
+ * the Component's row.
*/
public void removeComponent(int column, int row) {
@@ -370,9 +370,9 @@ public class GridLayout extends AbstractLayout implements
* Paints the contents of this component.
*
* @param target
- * the Paint Event.
+ * the Paint Event.
* @throws PaintException
- * if the paint operation failed.
+ * if the paint operation failed.
*/
public void paintContent(PaintTarget target) throws PaintException {
@@ -541,7 +541,9 @@ public class GridLayout extends AbstractLayout implements
/*
* (non-Javadoc)
*
- * @see com.itmill.toolkit.ui.Layout.AlignmentHandler#getComponentAlignment(com.itmill.toolkit.ui.Component)
+ * @see
+ * com.itmill.toolkit.ui.Layout.AlignmentHandler#getComponentAlignment(com
+ * .itmill.toolkit.ui.Component)
*/
public int getComponentAlignment(Component childComponent) {
final Integer bitMask = (Integer) componentToAlignment
@@ -606,22 +608,22 @@ public class GridLayout extends AbstractLayout implements
* </p>
*
* @param component
- * the component connected to the area.
+ * the component connected to the area.
* @param column1
- * The column of the upper left corner cell of the area
- * <code>c</code> is supposed to occupy.
+ * The column of the upper left corner cell of the area
+ * <code>c</code> is supposed to occupy.
* @param row1
- * The row of the upper left corner cell of the area
- * <code>c</code> is supposed to occupy.
+ * The row of the upper left corner cell of the area
+ * <code>c</code> is supposed to occupy.
* @param column2
- * The column of the lower right corner cell of the area
- * <code>c</code> is supposed to occupy.
+ * The column of the lower right corner cell of the area
+ * <code>c</code> is supposed to occupy.
* @param row2
- * The row of the lower right corner cell of the area
- * <code>c</code> is supposed to occupy.
+ * The row of the lower right corner cell 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
+ * if the new component overlaps with any of the components
+ * already in the grid
*/
public Area(Component component, int column1, int row1, int column2,
int row2) {
@@ -636,10 +638,10 @@ public class GridLayout extends AbstractLayout implements
* Tests if the given Area overlaps with an another 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.
+ * 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.
*/
public boolean overlaps(Area other) {
return column1 <= other.getColumn2() && row1 <= other.getRow2()
@@ -665,7 +667,7 @@ public class GridLayout extends AbstractLayout implements
* </p>
*
* @param newComponent
- * the new connected overriding the existing one.
+ * the new connected overriding the existing one.
*/
protected void setComponent(Component newComponent) {
component = newComponent;
@@ -783,8 +785,8 @@ public class GridLayout extends AbstractLayout implements
}
/**
- * An <code>Exception</code> object which is thrown when an area exceeds
- * the bounds of the grid.
+ * An <code>Exception</code> object which is thrown when an area exceeds the
+ * bounds of the grid.
*
* @author IT Mill Ltd.
* @version
@@ -825,7 +827,7 @@ public class GridLayout extends AbstractLayout implements
* reduced if there are any areas that would be outside of the shrunk grid.
*
* @param columns
- * the new number of columns in the grid.
+ * the new number of columns in the grid.
*/
public void setColumns(int columns) {
@@ -869,7 +871,7 @@ public class GridLayout extends AbstractLayout implements
* reduced if there are any areas that would be outside of the shrunk grid.
*
* @param rows
- * the new number of rows in the grid.
+ * the new number of rows in the grid.
*/
public void setRows(int rows) {
@@ -977,8 +979,9 @@ public class GridLayout extends AbstractLayout implements
/*
* (non-Javadoc)
*
- * @see com.itmill.toolkit.ui.Layout.AlignmentHandler#setComponentAlignment(com.itmill.toolkit.ui.Component,
- * int, int)
+ * @see
+ * com.itmill.toolkit.ui.Layout.AlignmentHandler#setComponentAlignment(com
+ * .itmill.toolkit.ui.Component, int, int)
*/
public void setComponentAlignment(Component childComponent,
int horizontalAlignment, int verticalAlignment) {
@@ -1010,7 +1013,7 @@ public class GridLayout extends AbstractLayout implements
* Inserts an empty row at the chosen position in the grid.
*
* @param row
- * Number of the row the new row will be inserted before
+ * Number of the row the new row will be inserted before
*/
public void insertRow(int row) {
if (row > rows) {
@@ -1047,7 +1050,7 @@ public class GridLayout extends AbstractLayout implements
* row.
*
* @param row
- * The row number to remove
+ * The row number to remove
*/
public void removeRow(int row) {
if (row >= rows) {
diff --git a/src/com/itmill/toolkit/ui/Label.java b/src/com/itmill/toolkit/ui/Label.java
index af5b2a0685..a7fbbdba77 100644
--- a/src/com/itmill/toolkit/ui/Label.java
+++ b/src/com/itmill/toolkit/ui/Label.java
@@ -20,15 +20,15 @@ import com.itmill.toolkit.terminal.PaintTarget;
* <p>
* The contents of the label may contain simple formatting:
* <ul>
- * <li> <b>&lt;b></b> Bold
- * <li> <b>&lt;i></b> Italic
- * <li> <b>&lt;u></b> Underlined
- * <li> <b>&lt;br/></b> Linebreak
- * <li> <b>&lt;ul>&lt;li>item 1&lt;/li>&lt;li>item 2&lt;/li>&lt;/ul></b> List
- * of items
+ * <li><b>&lt;b></b> Bold
+ * <li><b>&lt;i></b> Italic
+ * <li><b>&lt;u></b> Underlined
+ * <li><b>&lt;br/></b> Linebreak
+ * <li><b>&lt;ul>&lt;li>item 1&lt;/li>&lt;li>item 2&lt;/li>&lt;/ul></b> List of
+ * items
* </ul>
- * The <b>b</b>,<b>i</b>,<b>u</b> and <b>li</b> tags can contain all the
- * tags in the list recursively.
+ * The <b>b</b>,<b>i</b>,<b>u</b> and <b>li</b> tags can contain all the tags in
+ * the list recursively.
* </p>
*
* @author IT Mill Ltd.
@@ -154,7 +154,7 @@ public class Label extends AbstractComponent implements Property,
* Set the component to read-only. Readonly is not used in label.
*
* @param readOnly
- * True to enable read-only mode, False to disable it.
+ * True to enable read-only mode, False to disable it.
*/
public void setReadOnly(boolean readOnly) {
if (dataSource == null) {
@@ -180,9 +180,9 @@ public class Label extends AbstractComponent implements Property,
* Paints the content of this component.
*
* @param target
- * the Paint Event.
+ * the Paint Event.
* @throws PaintException
- * if the Paint Operation fails.
+ * if the Paint Operation fails.
*/
public void paintContent(PaintTarget target) throws PaintException {
if (contentMode != CONTENT_TEXT) {
@@ -230,7 +230,7 @@ public class Label extends AbstractComponent implements Property,
* label.
*
* @param newValue
- * the New value of the label.
+ * the New value of the label.
*/
public void setValue(Object newValue) {
if (dataSource == null) {
@@ -275,7 +275,7 @@ public class Label extends AbstractComponent implements Property,
* Sets the property as data-source for viewing.
*
* @param newDataSource
- * the new data source Property
+ * the new data source Property
* @see com.itmill.toolkit.data.Property.Viewer#setPropertyDataSource(com.itmill.toolkit.data.Property)
*/
public void setPropertyDataSource(Property newDataSource) {
@@ -303,23 +303,23 @@ public class Label extends AbstractComponent implements Property,
* <p>
* Possible content modes include:
* <ul>
- * <li><b>CONTENT_TEXT</b> Content mode, where the label contains only
- * plain text. The getValue() result is coded to XML when painting.</li>
+ * <li><b>CONTENT_TEXT</b> Content mode, where the label contains only plain
+ * text. The getValue() result is coded to XML when painting.</li>
* <li><b>CONTENT_PREFORMATTED</b> Content mode, where the label contains
* preformatted text.</li>
- * <li><b>CONTENT_UIDL</b> Formatted content mode, where the contents is
- * XML restricted to the UIDL 1.0 formatting markups.</li>
+ * <li><b>CONTENT_UIDL</b> Formatted content mode, where the contents is XML
+ * restricted to the UIDL 1.0 formatting markups.</li>
* <li><b>CONTENT_XHTML</b> 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".</li>
- * <li><b>CONTENT_XML</b> Content mode, where the label contains
- * well-formed or well-balanced XML. Each of the root elements must have
- * their default namespace specified.</li>
- * <li><b>CONTENT_RAW</b> 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 most cases XHTML mode should be preferred.</li>
+ * <li><b>CONTENT_XML</b> Content mode, where the label contains well-formed
+ * or well-balanced XML. Each of the root elements must have their default
+ * namespace specified.</li>
+ * <li><b>CONTENT_RAW</b> 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 most cases XHTML mode should be preferred.</li>
* </ul>
* </p>
*
@@ -335,28 +335,28 @@ public class Label extends AbstractComponent implements Property,
* <p>
* Possible content modes include:
* <ul>
- * <li><b>CONTENT_TEXT</b> Content mode, where the label contains only
- * plain text. The getValue() result is coded to XML when painting.</li>
+ * <li><b>CONTENT_TEXT</b> Content mode, where the label contains only plain
+ * text. The getValue() result is coded to XML when painting.</li>
* <li><b>CONTENT_PREFORMATTED</b> Content mode, where the label contains
* preformatted text.</li>
- * <li><b>CONTENT_UIDL</b> Formatted content mode, where the contents is
- * XML restricted to the UIDL 1.0 formatting markups.</li>
+ * <li><b>CONTENT_UIDL</b> Formatted content mode, where the contents is XML
+ * restricted to the UIDL 1.0 formatting markups.</li>
* <li><b>CONTENT_XHTML</b> 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".</li>
- * <li><b>CONTENT_XML</b> Content mode, where the label contains
- * well-formed or well-balanced XML. Each of the root elements must have
- * their default namespace specified.</li>
- * <li><b>CONTENT_RAW</b> 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 most cases XHTML mode should be preferred.</li>
+ * <li><b>CONTENT_XML</b> Content mode, where the label contains well-formed
+ * or well-balanced XML. Each of the root elements must have their default
+ * namespace specified.</li>
+ * <li><b>CONTENT_RAW</b> 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 most cases XHTML mode should be preferred.</li>
* </ul>
* </p>
*
* @param contentMode
- * the New content mode of the label.
+ * the New content mode of the label.
*/
public void setContentMode(int contentMode) {
if (contentMode >= CONTENT_TEXT && contentMode <= CONTENT_RAW) {
@@ -364,7 +364,7 @@ public class Label extends AbstractComponent implements Property,
}
}
- /* Value change events ****************************************** */
+ /* Value change events */
private static final Method VALUE_CHANGE_METHOD;
@@ -375,7 +375,8 @@ public class Label extends AbstractComponent implements Property,
new Class[] { Property.ValueChangeEvent.class });
} catch (final java.lang.NoSuchMethodException e) {
// This should never happen
- throw new java.lang.RuntimeException();
+ throw new java.lang.RuntimeException(
+ "Internal error finding methods in Label");
}
}
@@ -399,7 +400,7 @@ public class Label extends AbstractComponent implements Property,
* New instance of text change event
*
* @param source
- * the Source of the event.
+ * the Source of the event.
*/
public ValueChangeEvent(Label source) {
super(source);
@@ -419,7 +420,7 @@ public class Label extends AbstractComponent implements Property,
* Adds the value change listener.
*
* @param listener
- * the Listener to be added.
+ * 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) {
@@ -430,7 +431,7 @@ public class Label extends AbstractComponent implements Property,
* Removes the value change listener.
*
* @param listener
- * the Listener to be removed.
+ * 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) {
@@ -472,7 +473,7 @@ public class Label extends AbstractComponent implements Property,
* </p>
*
* @param other
- * the Other object to compare to.
+ * 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)
@@ -505,7 +506,7 @@ public class Label extends AbstractComponent implements Property,
* Strips the tags from the XML.
*
* @param xml
- * the String containing a XML snippet.
+ * the String containing a XML snippet.
* @return the original XML without tags.
*/
private String stripTags(String xml) {
diff --git a/src/com/itmill/toolkit/ui/LoginForm.java b/src/com/itmill/toolkit/ui/LoginForm.java
index 34aea8ad2c..12c7fdb455 100644
--- a/src/com/itmill/toolkit/ui/LoginForm.java
+++ b/src/com/itmill/toolkit/ui/LoginForm.java
@@ -216,7 +216,8 @@ public class LoginForm extends CustomComponent {
new Class[] { LoginEvent.class });
} catch (final java.lang.NoSuchMethodException e) {
// This should never happen
- throw new java.lang.RuntimeException();
+ throw new java.lang.RuntimeException(
+ "Internal error finding methods in LoginForm");
}
}
diff --git a/src/com/itmill/toolkit/ui/Slider.java b/src/com/itmill/toolkit/ui/Slider.java
index ebef0017f0..854430e852 100644
--- a/src/com/itmill/toolkit/ui/Slider.java
+++ b/src/com/itmill/toolkit/ui/Slider.java
@@ -14,31 +14,31 @@ import com.itmill.toolkit.terminal.PaintTarget;
*
* Example code: <code>
* class MyPlayer extends CustomComponent implements ValueChangeListener {
- *
- * Label volumeIndicator = new Label();
- * Slider slider;
- *
- * public MyPlayer() {
- * OrderedLayout ol = new OrderedLayout();
- * setCompositionRoot(ol);
- * slider = new Slider("Volume", 0, 100);
- * slider.setImmediate(true);
- * ol.addComponent(slider);
- * ol.addComponent(volumeIndicator);
- * volumeIndicator.setValue(new Double(50));
- * slider.addListener(this);
- *
- * }
- *
- * public void setVolume(double d) {
- * volumeIndicator.setValue("Current volume : " + d);
- * }
- *
- * public void valueChange(ValueChangeEvent event) {
- * Double d = (Double) event.getProperty().getValue();
- * setVolume(d.doubleValue());
- * }
- * }
+ *
+ * Label volumeIndicator = new Label();
+ * Slider slider;
+ *
+ * public MyPlayer() {
+ * OrderedLayout ol = new OrderedLayout();
+ * setCompositionRoot(ol);
+ * slider = new Slider("Volume", 0, 100);
+ * slider.setImmediate(true);
+ * ol.addComponent(slider);
+ * ol.addComponent(volumeIndicator);
+ * volumeIndicator.setValue(new Double(50));
+ * slider.addListener(this);
+ *
+ * }
+ *
+ * public void setVolume(double d) {
+ * volumeIndicator.setValue("Current volume : " + d);
+ * }
+ *
+ * public void valueChange(ValueChangeEvent event) {
+ * Double d = (Double) event.getProperty().getValue();
+ * setVolume(d.doubleValue());
+ * }
+ * }
*
* </code>
*
@@ -113,7 +113,7 @@ public class Slider extends AbstractField {
* values set to defaults.
*
* @param caption
- * The caption for this Slider (e.g. "Volume").
+ * The caption for this Slider (e.g. "Volume").
*/
public Slider(String caption) {
this();
@@ -173,7 +173,7 @@ public class Slider extends AbstractField {
* is out of new bounds, the value is set to new minimum.
*
* @param max
- * New maximum value of the Slider.
+ * New maximum value of the Slider.
*/
public void setMax(double max) {
this.max = max;
@@ -182,6 +182,11 @@ public class Slider extends AbstractField {
super.setValue(new Double(max));
}
} catch (final ClassCastException e) {
+ // FIXME: Handle exception
+ /*
+ * Where does ClassCastException come from? Can't see any casts
+ * above
+ */
super.setValue(new Double(max));
}
requestRepaint();
@@ -201,7 +206,7 @@ public class Slider extends AbstractField {
* is out of new bounds, the value is set to new minimum.
*
* @param min
- * New minimum value of the Slider.
+ * New minimum value of the Slider.
*/
public void setMin(double min) {
this.min = min;
@@ -210,6 +215,11 @@ public class Slider extends AbstractField {
super.setValue(new Double(min));
}
} catch (final ClassCastException e) {
+ // FIXME: Handle exception
+ /*
+ * Where does ClassCastException come from? Can't see any casts
+ * above
+ */
super.setValue(new Double(min));
}
requestRepaint();
@@ -227,8 +237,7 @@ public class Slider extends AbstractField {
/**
* Set the orientation of the Slider.
*
- * @param int
- * new orientation
+ * @param int new orientation
*/
public void setOrientation(int orientation) {
this.orientation = orientation;
@@ -261,10 +270,10 @@ public class Slider extends AbstractField {
* Set the value of this Slider.
*
* @param value
- * New value of Slider. Must be within Sliders range (min -
- * max), otherwise throws an exception.
+ * New value of Slider. Must be within Sliders range (min - max),
+ * otherwise throws an exception.
* @param repaintIsNotNeeded
- * If true, client-side is not requested to repaint itself.
+ * If true, client-side is not requested to repaint itself.
* @throws ValueOutOfBoundsException
*/
public void setValue(Double value, boolean repaintIsNotNeeded)
@@ -291,8 +300,8 @@ public class Slider extends AbstractField {
* Set the value of this Slider.
*
* @param value
- * New value of Slider. Must be within Sliders range (min -
- * max), otherwise throws an exception.
+ * New value of Slider. Must be within Sliders range (min - max),
+ * otherwise throws an exception.
* @throws ValueOutOfBoundsException
*/
public void setValue(Double value) throws ValueOutOfBoundsException {
@@ -303,8 +312,8 @@ public class Slider extends AbstractField {
* Set the value of this Slider.
*
* @param value
- * New value of Slider. Must be within Sliders range (min -
- * max), otherwise throws an exception.
+ * New value of Slider. Must be within Sliders range (min - max),
+ * otherwise throws an exception.
* @throws ValueOutOfBoundsException
*/
public void setValue(double value) throws ValueOutOfBoundsException {
@@ -325,7 +334,7 @@ public class Slider extends AbstractField {
* Set the size for this Slider.
*
* @param size
- * in pixels, or -1 auto sizing.
+ * in pixels, or -1 auto sizing.
* @deprecated use standard setWidth/setHeight instead
*/
public void setSize(int size) {
@@ -356,7 +365,7 @@ public class Slider extends AbstractField {
* Set the handle size of this Slider.
*
* @param handleSize
- * in percentages relative to slider base size.
+ * in percentages relative to slider base size.
*/
public void setHandleSize(int handleSize) {
if (handleSize < 0) {
@@ -376,17 +385,17 @@ public class Slider extends AbstractField {
*
* @param visible
*//*
- * public void setArrows(boolean visible) { arrows = visible;
- * requestRepaint(); }
- */
+ * public void setArrows(boolean visible) { arrows = visible;
+ * requestRepaint(); }
+ */
/*
* Does the slider have arrows?
*
* @return arrows visible
*//*
- * public boolean isArrowsVisible() { return arrows; }
- */
+ * public boolean isArrowsVisible() { return arrows; }
+ */
public String getTag() {
return "slider";
diff --git a/src/com/itmill/toolkit/ui/TabSheet.java b/src/com/itmill/toolkit/ui/TabSheet.java
index 80cbb7a97d..37bd512d2e 100644
--- a/src/com/itmill/toolkit/ui/TabSheet.java
+++ b/src/com/itmill/toolkit/ui/TabSheet.java
@@ -67,7 +67,7 @@ public class TabSheet extends AbstractComponentContainer implements
* Removes the component from this container.
*
* @param c
- * the component to be removed.
+ * the component to be removed.
*/
public void removeComponent(Component c) {
if (c != null && tabs.contains(c)) {
@@ -91,7 +91,7 @@ public class TabSheet extends AbstractComponentContainer implements
* into tab.
*
* @param c
- * the component to be added.
+ * the component to be added.
*/
public void addComponent(Component c) {
addTab(c);
@@ -101,13 +101,13 @@ public class TabSheet extends AbstractComponentContainer implements
* Adds a new tab into TabSheet.
*
* @param c
- * the component to be added onto tab.
+ * the component to be added onto tab.
* @param caption
- * the caption to be set for the component and used rendered
- * in tab bar
+ * the caption to be set for the component and used rendered in
+ * tab bar
* @param icon
- * the icon to be set for the component and used rendered in
- * tab bar
+ * the icon to be set for the component and used rendered in tab
+ * bar
*/
public void addTab(Component c, String caption, Resource icon) {
if (c != null) {
@@ -126,7 +126,7 @@ public class TabSheet extends AbstractComponentContainer implements
* into tab.
*
* @param c
- * the component to be added onto tab.
+ * the component to be added onto tab.
*/
public void addTab(Component c) {
if (c != null) {
@@ -154,7 +154,7 @@ public class TabSheet extends AbstractComponentContainer implements
* components are removed from the other container.
*
* @param source
- * the container components are removed from.
+ * the container components are removed from.
*/
public void moveComponentsFrom(ComponentContainer source) {
for (final Iterator i = source.getComponentIterator(); i.hasNext();) {
@@ -175,9 +175,9 @@ public class TabSheet extends AbstractComponentContainer implements
* Paints the content of this component.
*
* @param event
- * the Paint Event.
+ * the Paint Event.
* @throws PaintException
- * if the paint operation failed.
+ * if the paint operation failed.
*/
public void paintContent(PaintTarget target) throws PaintException {
@@ -248,7 +248,7 @@ public class TabSheet extends AbstractComponentContainer implements
* Setter for property tabsHidden.
*
* @param tabsHidden
- * True if the tabs should be hidden.
+ * True if the tabs should be hidden.
*/
public void hideTabs(boolean tabsHidden) {
this.tabsHidden = tabsHidden;
@@ -259,7 +259,7 @@ public class TabSheet extends AbstractComponentContainer implements
* Gets the caption for a component.
*
* @param c
- * the component.
+ * the component.
*/
public String getTabCaption(Component c) {
if (c.getCaption() == null) {
@@ -273,9 +273,9 @@ public class TabSheet extends AbstractComponentContainer implements
* Sets tabs captions.
*
* @param c
- * the component.
+ * the component.
* @param caption
- * the caption to set.
+ * the caption to set.
*/
public void setTabCaption(Component c, String caption) {
if (tabs.contains(c)) {
@@ -287,7 +287,7 @@ public class TabSheet extends AbstractComponentContainer implements
* Gets the icon for a component.
*
* @param c
- * the component.
+ * the component.
*/
public Resource getTabIcon(Component c) {
return c.getIcon();
@@ -405,7 +405,7 @@ public class TabSheet extends AbstractComponentContainer implements
}
- /* Click event ************************************************ */
+ /* Click event */
private static final Method SELECTED_TAB_CHANGE_METHOD;
static {
@@ -415,7 +415,8 @@ public class TabSheet extends AbstractComponentContainer implements
new Class[] { SelectedTabChangeEvent.class });
} catch (final java.lang.NoSuchMethodException e) {
// This should never happen
- throw new java.lang.RuntimeException();
+ throw new java.lang.RuntimeException(
+ "Internal error finding methods in TabSheet");
}
}
@@ -439,7 +440,7 @@ public class TabSheet extends AbstractComponentContainer implements
* New instance of selected tab change event
*
* @param source
- * the Source of the event.
+ * the Source of the event.
*/
public SelectedTabChangeEvent(Component source) {
super(source);
@@ -470,7 +471,7 @@ public class TabSheet extends AbstractComponentContainer implements
* Visible tab in tab sheet has has been changed.
*
* @param event
- * the Selected tab change event.
+ * the Selected tab change event.
*/
public void selectedTabChange(SelectedTabChangeEvent event);
}
@@ -479,7 +480,7 @@ public class TabSheet extends AbstractComponentContainer implements
* Adds the selected tab change listener
*
* @param listener
- * the Listener to be added.
+ * the Listener to be added.
*/
public void addListener(SelectedTabChangeListener listener) {
addListener(SelectedTabChangeEvent.class, listener,
@@ -490,7 +491,7 @@ public class TabSheet extends AbstractComponentContainer implements
* Removes the selected tab change listener
*
* @param listener
- * the Listener to be removed.
+ * the Listener to be removed.
*/
public void removeListener(SelectedTabChangeListener listener) {
removeListener(SelectedTabChangeEvent.class, listener,
diff --git a/src/com/itmill/toolkit/ui/Table.java b/src/com/itmill/toolkit/ui/Table.java
index 7910f5b74b..a8b660554f 100644
--- a/src/com/itmill/toolkit/ui/Table.java
+++ b/src/com/itmill/toolkit/ui/Table.java
@@ -140,7 +140,7 @@ public class Table extends AbstractSelect implements Action.Container,
*/
public static final int ROW_HEADER_MODE_EXPLICIT_DEFAULTS_ID = AbstractSelect.ITEM_CAPTION_MODE_EXPLICIT_DEFAULTS_ID;
- /* Private table extensions to Select *********************************** */
+ /* Private table extensions to Select */
/**
* True if column collapsing is allowed.
@@ -306,7 +306,7 @@ public class Table extends AbstractSelect implements Action.Container,
*/
private CellStyleGenerator cellStyleGenerator = null;
- /* Table constructors *************************************************** */
+ /* Table constructors */
/**
* Creates a new empty table.
@@ -337,7 +337,7 @@ public class Table extends AbstractSelect implements Action.Container,
setContainerDataSource(dataSource);
}
- /* Table functionality ************************************************** */
+ /* Table functionality */
/**
* Gets the array of visible column id:s, including generated columns.
@@ -364,7 +364,7 @@ public class Table extends AbstractSelect implements Action.Container,
* </p>
*
* @param visibleColumns
- * the Array of shown property id:s.
+ * the Array of shown property id:s.
*/
public void setVisibleColumns(Object[] visibleColumns) {
@@ -461,8 +461,8 @@ public class Table extends AbstractSelect implements Action.Container,
* </p>
*
* @param columnHeaders
- * the Array of column headers that match the
- * <code>getVisibleColumns</code> method.
+ * the Array of column headers that match the
+ * <code>getVisibleColumns</code> method.
*/
public void setColumnHeaders(String[] columnHeaders) {
@@ -521,8 +521,8 @@ public class Table extends AbstractSelect implements Action.Container,
* </p>
*
* @param columnIcons
- * the Array of icons that match the
- * <code>getVisibleColumns</code>.
+ * the Array of icons that match the
+ * <code>getVisibleColumns</code>.
*/
public void setColumnIcons(Resource[] columnIcons) {
@@ -548,8 +548,8 @@ public class Table extends AbstractSelect implements Action.Container,
*
* <p>
* The items in the array must match the properties identified by
- * <code>getVisibleColumns()</code>. The possible values for the
- * alignments include:
+ * <code>getVisibleColumns()</code>. The possible values for the alignments
+ * include:
* <ul>
* <li><code>ALIGN_LEFT</code>: Left alignment</li>
* <li><code>ALIGN_CENTER</code>: Centered</li>
@@ -579,8 +579,8 @@ public class Table extends AbstractSelect implements Action.Container,
*
* <p>
* The items in the array must match the properties identified by
- * <code>getVisibleColumns()</code>. The possible values for the
- * alignments include:
+ * <code>getVisibleColumns()</code>. The possible values for the alignments
+ * include:
* <ul>
* <li><code>ALIGN_LEFT</code>: Left alignment</li>
* <li><code>ALIGN_CENTER</code>: Centered</li>
@@ -590,7 +590,7 @@ public class Table extends AbstractSelect implements Action.Container,
* </p>
*
* @param columnAlignments
- * the Column alignments array.
+ * the Column alignments array.
*/
public void setColumnAlignments(String[] columnAlignments) {
@@ -629,9 +629,9 @@ public class Table extends AbstractSelect implements Action.Container,
* will make decision of width.
*
* @param columnId
- * colunmns property id
+ * colunmns property id
* @param width
- * width to be reserved for colunmns content
+ * width to be reserved for colunmns content
* @since 4.0.3
*/
public void setColumnWidth(Object columnId, int width) {
@@ -673,7 +673,7 @@ public class Table extends AbstractSelect implements Action.Container,
* </p>
*
* @param pageLength
- * the Length of one page.
+ * the Length of one page.
*/
public void setPageLength(int pageLength) {
if (pageLength >= 0 && this.pageLength != pageLength) {
@@ -715,17 +715,16 @@ public class Table extends AbstractSelect implements Action.Container,
* Setter for property currentPageFirstItemId.
*
* @param currentPageFirstItemId
- * the New value of property currentPageFirstItemId.
+ * the New value of property currentPageFirstItemId.
*/
public void setCurrentPageFirstItemId(Object currentPageFirstItemId) {
// Gets the corresponding index
int index = -1;
- try {
+ if (items instanceof Container.Indexed) {
index = ((Container.Indexed) items)
.indexOfId(currentPageFirstItemId);
- } catch (final ClassCastException e) {
-
+ } else {
// If the table item container does not have index, we have to
// calculates the index by hand
Object id = ((Container.Ordered) items).firstItemId();
@@ -754,7 +753,7 @@ public class Table extends AbstractSelect implements Action.Container,
* Gets the icon Resource for the specified column.
*
* @param propertyId
- * the propertyId indentifying the column.
+ * the propertyId indentifying the column.
* @return the icon for the specified column; null if the column has no icon
* set, or if the column is not visible.
*/
@@ -769,9 +768,9 @@ public class Table extends AbstractSelect implements Action.Container,
* </p>
*
* @param propertyId
- * the propertyId identifying the column.
+ * the propertyId identifying the column.
* @param icon
- * the icon Resource to set.
+ * the icon Resource to set.
*/
public void setColumnIcon(Object propertyId, Resource icon) {
@@ -790,7 +789,7 @@ public class Table extends AbstractSelect implements Action.Container,
* Gets the header for the specified column.
*
* @param propertyId
- * the propertyId indentifying the column.
+ * the propertyId indentifying the column.
* @return the header for the specifed column if it has one.
*/
public String getColumnHeader(Object propertyId) {
@@ -811,9 +810,9 @@ public class Table extends AbstractSelect implements Action.Container,
* Sets the column header for the specified column;
*
* @param propertyId
- * the propertyId indentifying the column.
+ * the propertyId indentifying the column.
* @param header
- * the header to set.
+ * the header to set.
*/
public void setColumnHeader(Object propertyId, String header) {
@@ -831,7 +830,7 @@ public class Table extends AbstractSelect implements Action.Container,
* Gets the specified column's alignment.
*
* @param propertyId
- * the propertyID identifying the column.
+ * the propertyID identifying the column.
* @return the specified column's alignment if it as one; null otherwise.
*/
public String getColumnAlignment(Object propertyId) {
@@ -848,9 +847,9 @@ public class Table extends AbstractSelect implements Action.Container,
* </p>
*
* @param propertyId
- * the propertyID identifying the column.
+ * the propertyID identifying the column.
* @param alignment
- * the desired alignment.
+ * the desired alignment.
*/
public void setColumnAlignment(Object propertyId, String alignment) {
@@ -877,7 +876,7 @@ public class Table extends AbstractSelect implements Action.Container,
* Checks if the specified column is collapsed.
*
* @param propertyId
- * the propertyID identifying the column.
+ * the propertyID identifying the column.
* @return true if the column is collapsed; false otherwise;
*/
public boolean isColumnCollapsed(Object propertyId) {
@@ -890,9 +889,9 @@ public class Table extends AbstractSelect implements Action.Container,
*
*
* @param propertyId
- * the propertyID identifying the column.
+ * the propertyID identifying the column.
* @param collapsed
- * the desired collapsedness.
+ * the desired collapsedness.
* @throws IllegalAccessException
*/
public void setColumnCollapsed(Object propertyId, boolean collapsed)
@@ -925,7 +924,7 @@ public class Table extends AbstractSelect implements Action.Container,
* Sets whether column collapsing is allowed or not.
*
* @param collapsingAllowed
- * specifies whether column collapsing is allowed.
+ * specifies whether column collapsing is allowed.
*/
public void setColumnCollapsingAllowed(boolean collapsingAllowed) {
columnCollapsingAllowed = collapsingAllowed;
@@ -951,7 +950,7 @@ public class Table extends AbstractSelect implements Action.Container,
* Sets whether column reordering is allowed or not.
*
* @param reorderingAllowed
- * specifies whether column reordering is allowed.
+ * specifies whether column reordering is allowed.
*/
public void setColumnReorderingAllowed(boolean reorderingAllowed) {
columnReorderingAllowed = reorderingAllowed;
@@ -1081,7 +1080,7 @@ public class Table extends AbstractSelect implements Action.Container,
* Setter for property currentPageFirstItem.
*
* @param newIndex
- * the New value of property currentPageFirstItem.
+ * the New value of property currentPageFirstItem.
*/
public void setCurrentPageFirstItemIndex(int newIndex) {
setCurrentPageFirstItemIndex(newIndex, true);
@@ -1104,7 +1103,7 @@ public class Table extends AbstractSelect implements Action.Container,
* @deprecated functionality is not needed in ajax rendering model
*
* @param pageBuffering
- * the New value of property pageBuffering.
+ * the New value of property pageBuffering.
*/
public void setPageBufferingEnabled(boolean pageBuffering) {
@@ -1131,7 +1130,7 @@ public class Table extends AbstractSelect implements Action.Container,
* </p>
*
* @param selectable
- * the New value of property selectable.
+ * the New value of property selectable.
*/
public void setSelectable(boolean selectable) {
if (this.selectable != selectable) {
@@ -1153,7 +1152,7 @@ public class Table extends AbstractSelect implements Action.Container,
* Setter for property columnHeaderMode.
*
* @param columnHeaderMode
- * the New value of property columnHeaderMode.
+ * the New value of property columnHeaderMode.
*/
public void setColumnHeaderMode(int columnHeaderMode) {
if (columnHeaderMode >= COLUMN_HEADER_MODE_HIDDEN
@@ -1386,28 +1385,27 @@ public class Table extends AbstractSelect implements Action.Container,
* <p>
* The mode can be one of the following ones:
* <ul>
- * <li><code>ROW_HEADER_MODE_HIDDEN</code>: The row captions are hidden.
- * </li>
+ * <li><code>ROW_HEADER_MODE_HIDDEN</code>: The row captions are hidden.</li>
* <li><code>ROW_HEADER_MODE_ID</code>: Items Id-objects
* <code>toString()</code> is used as row caption.
* <li><code>ROW_HEADER_MODE_ITEM</code>: Item-objects
* <code>toString()</code> is used as row caption.
* <li><code>ROW_HEADER_MODE_PROPERTY</code>: Property set with
* <code>setItemCaptionPropertyId()</code> is used as row header.
- * <li><code>ROW_HEADER_MODE_EXPLICIT_DEFAULTS_ID</code>: Items
- * Id-objects <code>toString()</code> is used as row header. If caption is
- * explicitly specified, it overrides the id-caption.
+ * <li><code>ROW_HEADER_MODE_EXPLICIT_DEFAULTS_ID</code>: Items Id-objects
+ * <code>toString()</code> is used as row header. If caption is explicitly
+ * specified, it overrides the id-caption.
* <li><code>ROW_HEADER_MODE_EXPLICIT</code>: The row headers must be
* explicitly specified.</li>
- * <li><code>ROW_HEADER_MODE_INDEX</code>: The index of the item is used
- * as row caption. The index mode can only be used with the containers
+ * <li><code>ROW_HEADER_MODE_INDEX</code>: The index of the item is used as
+ * row caption. The index mode can only be used with the containers
* implementing <code>Container.Indexed</code> interface.</li>
* </ul>
* The default value is <code>ROW_HEADER_MODE_HIDDEN</code>
* </p>
*
* @param mode
- * the One of the modes listed above.
+ * the One of the modes listed above.
*/
public void setRowHeaderMode(int mode) {
if (ROW_HEADER_MODE_HIDDEN == mode) {
@@ -1437,13 +1435,13 @@ public class Table extends AbstractSelect implements Action.Container,
* columns) with given values.
*
* @param cells
- * the Object array that is used for filling the visible
- * cells new row. The types must be settable to visible
- * column property types.
+ * 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
- * 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.
+ * 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.
*/
public Object addItem(Object[] cells, Object itemId)
@@ -1490,7 +1488,7 @@ public class Table extends AbstractSelect implements Action.Container,
return itemId;
}
- /* Overriding select behavior ******************************************** */
+ /* Overriding select behavior */
public void setValue(Object newValue) throws ReadOnlyException,
ConversionException {
@@ -1559,7 +1557,7 @@ public class Table extends AbstractSelect implements Action.Container,
}
- /* Component basics ***************************************************** */
+ /* Component basics */
/**
* Invoked when the value of a variable has changed.
@@ -1600,6 +1598,7 @@ public class Table extends AbstractSelect implements Action.Container,
lastToBeRenderedInClient = ((Integer) variables
.get("lastToBeRendered")).intValue();
} catch (Exception e) {
+ // FIXME: Handle exception
e.printStackTrace();
}
@@ -1680,7 +1679,9 @@ public class Table extends AbstractSelect implements Action.Container,
setColumnCollapsed(columnIdMap.get(ids[i].toString()),
true);
}
- } catch (final Exception ignored) {
+ } catch (final Exception e) {
+ // FIXME: Handle exception
+ e.printStackTrace();
}
clientNeedsContentRefresh = true;
}
@@ -1694,7 +1695,10 @@ public class Table extends AbstractSelect implements Action.Container,
ids[i] = columnIdMap.get(ids[i].toString());
}
setColumnOrder(ids);
- } catch (final Exception ignored) {
+ } catch (final Exception e) {
+ // FIXME: Handle exception
+ e.printStackTrace();
+
}
clientNeedsContentRefresh = true;
}
@@ -1720,7 +1724,7 @@ public class Table extends AbstractSelect implements Action.Container,
* Go to mode where content content refreshing has effect.
*
* @param refreshContent
- * true if content refresh needs to be done
+ * true if content refresh needs to be done
*/
protected void enableContentRefreshing(boolean refreshContent) {
isContentRefreshesEnabled = true;
@@ -1732,7 +1736,9 @@ public class Table extends AbstractSelect implements Action.Container,
/*
* (non-Javadoc)
*
- * @see com.itmill.toolkit.ui.AbstractSelect#paintContent(com.itmill.toolkit.terminal.PaintTarget)
+ * @see
+ * com.itmill.toolkit.ui.AbstractSelect#paintContent(com.itmill.toolkit.
+ * terminal.PaintTarget)
*/
public void paintContent(PaintTarget target) throws PaintException {
@@ -2100,11 +2106,11 @@ public class Table extends AbstractSelect implements Action.Container,
* the value representation.
*
* @param rowId
- * the Id of the row (same as item Id).
+ * the Id of the row (same as item Id).
* @param colId
- * the Id of the column.
+ * the Id of the column.
* @param property
- * the Property to be presented.
+ * the Property to be presented.
* @return Object Either formatted value or Component for field.
* @see #setFieldFactory(FieldFactory)
*/
@@ -2127,11 +2133,11 @@ public class Table extends AbstractSelect implements Action.Container,
* and return a empty string for null properties.
*
* @param rowId
- * the Id of the row (same as item Id).
+ * the Id of the row (same as item Id).
* @param colId
- * the Id of the column.
+ * the Id of the column.
* @param property
- * the Property to be formatted.
+ * the Property to be formatted.
* @return the String representation of property and its value.
* @since 3.1
*/
@@ -2143,7 +2149,7 @@ public class Table extends AbstractSelect implements Action.Container,
return property.toString();
}
- /* Action container *************************************************** */
+ /* Action container */
/**
* Registers a new action handler for this container
@@ -2188,7 +2194,7 @@ public class Table extends AbstractSelect implements Action.Container,
}
}
- /* Property value change listening support **************************** */
+ /* Property value change listening support */
/**
* Notifies this listener that the Property's value has changed.
@@ -2299,11 +2305,11 @@ public class Table extends AbstractSelect implements Action.Container,
* Adds a new property to the table and show it as a visible column.
*
* @param propertyId
- * the 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)
*/
@@ -2333,21 +2339,21 @@ public class Table extends AbstractSelect implements Action.Container,
* Adds a new property to the table and show it as a visible column.
*
* @param propertyId
- * the 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
- * the Explicit header of the column. If explicit header is
- * not needed, this should be set null.
+ * the Explicit header of the column. If explicit header is not
+ * needed, this should be set null.
* @param columnIcon
- * the Icon of the column. If icon is not needed, this should
- * be set null.
+ * the Icon of the column. If icon is not needed, this should be
+ * set null.
* @param columnAlignment
- * the 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.
+ * if the operation is not supported.
* @see com.itmill.toolkit.data.Container#addContainerProperty(Object,
* Class, Object)
*/
@@ -2382,9 +2388,9 @@ public class Table extends AbstractSelect implements Action.Container,
* </p>
*
* @param id
- * the id of the column to be added
+ * the id of the column to be added
* @param generatedColumn
- * the {@link ColumnGenerator} to use for this column
+ * the {@link ColumnGenerator} to use for this column
*/
public void addGeneratedColumn(Object id, ColumnGenerator generatedColumn) {
if (generatedColumn == null) {
@@ -2406,7 +2412,7 @@ public class Table extends AbstractSelect implements Action.Container,
* Removes a generated column previously added with addGeneratedColumn.
*
* @param id
- * id of the generated column to remove
+ * id of the generated column to remove
* @return true if the column could be removed (existed in the Table)
*/
public boolean removeGeneratedColumn(Object id) {
@@ -2481,7 +2487,7 @@ public class Table extends AbstractSelect implements Action.Container,
* Adding new items is not supported.
*
* @throws UnsupportedOperationException
- * if set to true.
+ * if set to true.
* @see com.itmill.toolkit.ui.Select#setNewItemsAllowed(boolean)
*/
public void setNewItemsAllowed(boolean allowNewOptions)
@@ -2495,7 +2501,7 @@ public class Table extends AbstractSelect implements Action.Container,
* Focusing to this component is not supported.
*
* @throws UnsupportedOperationException
- * if invoked.
+ * if invoked.
* @see com.itmill.toolkit.ui.AbstractField#focus()
*/
public void focus() throws UnsupportedOperationException {
@@ -2611,7 +2617,7 @@ public class Table extends AbstractSelect implements Action.Container,
* BaseFieldFactory is used.
*
* @param fieldFactory
- * the field factory to set.
+ * the field factory to set.
* @see #isEditable
* @see BaseFieldFactory
*
@@ -2654,7 +2660,7 @@ public class Table extends AbstractSelect implements Action.Container,
* property to true.
*
* @param editable
- * true if table should be editable by user.
+ * true if table should be editable by user.
* @see Field
* @see FieldFactory
*
@@ -2671,8 +2677,8 @@ public class Table extends AbstractSelect implements Action.Container,
* Sorts the table.
*
* @throws UnsupportedOperationException
- * if the container data source does not implement
- * Container.Sortable
+ * if the container data source does not implement
+ * Container.Sortable
* @see com.itmill.toolkit.data.Container.Sortable#sort(java.lang.Object[],
* boolean[])
*
@@ -2697,8 +2703,8 @@ public class Table extends AbstractSelect implements Action.Container,
* Sorts the table by currently selected sorting column.
*
* @throws UnsupportedOperationException
- * if the container data source does not implement
- * Container.Sortable
+ * if the container data source does not implement
+ * Container.Sortable
*/
public void sort() {
if (getSortContainerPropertyId() == null) {
@@ -2735,7 +2741,7 @@ public class Table extends AbstractSelect implements Action.Container,
* Sets the currently sorted column property id.
*
* @param propertyId
- * the Container property id of the currently sorted column.
+ * the Container property id of the currently sorted column.
*/
public void setSortContainerPropertyId(Object propertyId) {
setSortContainerPropertyId(propertyId, true);
@@ -2765,8 +2771,7 @@ public class Table extends AbstractSelect implements Action.Container,
/**
* Is the table currently sorted in ascending order.
*
- * @return <code>true</code> if ascending, <code>false</code> if
- * descending.
+ * @return <code>true</code> if ascending, <code>false</code> if descending.
*/
public boolean isSortAscending() {
return sortAscending;
@@ -2776,8 +2781,8 @@ public class Table extends AbstractSelect implements Action.Container,
* Sets the table in ascending order.
*
* @param ascending
- * <code>true</code> if ascending, <code>false</code> if
- * descending.
+ * <code>true</code> if ascending, <code>false</code> if
+ * descending.
*/
public void setSortAscending(boolean ascending) {
setSortAscending(ascending, true);
@@ -2820,7 +2825,7 @@ public class Table extends AbstractSelect implements Action.Container,
* columns are given even in the case where datasource would support this.
*
* @param sortDisabled
- * True iff sorting is disabled.
+ * True iff sorting is disabled.
*/
public void setSortDisabled(boolean sortDisabled) {
if (this.sortDisabled != sortDisabled) {
@@ -2865,13 +2870,12 @@ public class Table extends AbstractSelect implements Action.Container,
* generated.
*
* @param source
- * the source Table
+ * the source Table
* @param itemId
- * the itemId (aka rowId) for the of the cell to be
- * generated
+ * the itemId (aka rowId) for the of the cell to be generated
* @param columnId
- * the id for the generated column (as specified in
- * addGeneratedColumn)
+ * the id for the generated column (as specified in
+ * addGeneratedColumn)
* @return
*/
public abstract Component generateCell(Table source, Object itemId,
@@ -2882,7 +2886,7 @@ public class Table extends AbstractSelect implements Action.Container,
* Set cell style generator for Table.
*
* @param cellStyleGenerator
- * New cell style generator or null to remove generator.
+ * New cell style generator or null to remove generator.
*/
public void setCellStyleGenerator(CellStyleGenerator cellStyleGenerator) {
this.cellStyleGenerator = cellStyleGenerator;
@@ -2910,10 +2914,9 @@ public class Table extends AbstractSelect implements Action.Container,
* Called by Table when a cell (and row) is painted.
*
* @param itemId
- * The itemId of the painted cell
+ * The itemId of the painted cell
* @param propertyId
- * The propertyId of the cell, null when getting row
- * style
+ * The propertyId of the cell, null when getting row style
* @return The style name to add to this cell or row. (the CSS class
* name will be i-table-cell-content-[style name], or
* i-table-row-[style name] for rows)
diff --git a/src/com/itmill/toolkit/ui/TextField.java b/src/com/itmill/toolkit/ui/TextField.java
index e616b1949a..50404d643a 100644
--- a/src/com/itmill/toolkit/ui/TextField.java
+++ b/src/com/itmill/toolkit/ui/TextField.java
@@ -19,8 +19,8 @@ import com.itmill.toolkit.terminal.PaintTarget;
* </p>
*
* <p>
- * Since <code>TextField</code> extends <code>AbstractField</code> it
- * implements the {@link com.itmill.toolkit.data.Buffered} interface. A
+ * 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.
@@ -33,7 +33,7 @@ import com.itmill.toolkit.terminal.PaintTarget;
*/
public class TextField extends AbstractField {
- /* Private members ************************************************* */
+ /* Private members */
/**
* Value formatter used to format the string contents.
@@ -73,7 +73,7 @@ public class TextField extends AbstractField {
*/
private boolean nullSettingAllowed = false;
- /* Constructors **************************************************** */
+ /* Constructors */
/**
* Constructs an empty <code>TextField</code> with no caption.
@@ -86,7 +86,7 @@ public class TextField extends AbstractField {
* Constructs an empty <code>TextField</code> with given caption.
*
* @param caption
- * the caption <code>String</code> for the editor.
+ * the caption <code>String</code> for the editor.
*/
public TextField(String caption) {
setValue("");
@@ -98,7 +98,7 @@ public class TextField 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 TextField(Property dataSource) {
setPropertyDataSource(dataSource);
@@ -109,9 +109,9 @@ public class TextField extends AbstractField {
* <code>Property</code> and has the given caption <code>String</code>.
*
* @param caption
- * the 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 TextField(String caption, Property dataSource) {
this(dataSource);
@@ -126,16 +126,16 @@ public class TextField extends AbstractField {
* is called to bind it.
*
* @param caption
- * the caption <code>String</code> for the editor.
+ * the caption <code>String</code> for the editor.
* @param text
- * the initial text content of the editor.
+ * the initial text content of the editor.
*/
public TextField(String caption, String value) {
setValue(value);
setCaption(caption);
}
- /* Component basic features ********************************************* */
+ /* Component basic features */
/*
* Paints this component. Don't add a JavaDoc comment here, we use the
@@ -188,8 +188,8 @@ public class TextField extends AbstractField {
if (format != null && value != null) {
try {
return format.format(value);
- } catch (final IllegalArgumentException ignored) {
- // Ignored exception
+ } catch (final IllegalArgumentException e) {
+ // FIXME: Handle exception ?
}
}
if (value != null) {
@@ -242,7 +242,7 @@ public class TextField extends AbstractField {
}
- /* Text field configuration ********************************************* */
+ /* Text field configuration */
/**
* Gets the number of columns in the editor. If the number of columns is set
@@ -261,7 +261,7 @@ public class TextField extends AbstractField {
* adapter.
*
* @param columns
- * the number of columns to set.
+ * the number of columns to set.
*/
public void setColumns(int columns) {
if (columns < 0) {
@@ -288,7 +288,7 @@ public class TextField extends AbstractField {
* adapter.
*
* @param rows
- * the number of rows for this editor.
+ * the number of rows for this editor.
*/
public void setRows(int rows) {
if (rows < 0) {
@@ -312,14 +312,14 @@ public class TextField extends AbstractField {
* Sets the editor's word-wrap mode on or off.
*
* @param wordwrap
- * the boolean value specifying if the editor should be in
- * word-wrap mode after the call or not.
+ * the boolean value specifying if the editor should be in
+ * word-wrap mode after the call or not.
*/
public void setWordwrap(boolean wordwrap) {
this.wordwrap = wordwrap;
}
- /* Property features **************************************************** */
+ /* Property features */
/*
* Gets the edited property's type. Don't add a JavaDoc comment here, we use
@@ -345,8 +345,8 @@ public class TextField extends AbstractField {
* secretinformation the information is not echoed to display.
*
* @param secret
- * the value specifying if the field is used to enter secret
- * information.
+ * the value specifying if the field is used to enter secret
+ * information.
*/
public void setSecret(boolean secret) {
this.secret = secret;
@@ -411,7 +411,7 @@ public class TextField extends AbstractField {
* </p>
*
* @param nullRepresentation
- * Textual representation for null strings.
+ * Textual representation for null strings.
* @see TextField#setNullSettingAllowed(boolean)
*/
public void setNullRepresentation(String nullRepresentation) {
@@ -435,8 +435,8 @@ public class TextField extends AbstractField {
* </p>
*
* @param nullSettingAllowed
- * Should the null-string represenation be allways converted
- * to null-values.
+ * Should the null-string represenation be allways converted to
+ * null-values.
* @see TextField#getNullRepresentation()
*/
public void setNullSettingAllowed(boolean nullSettingAllowed) {
@@ -456,8 +456,8 @@ public class TextField extends AbstractField {
* Gets the value formatter of TextField.
*
* @param format
- * the Format used to format the value. Null disables the
- * formatting.
+ * the Format used to format the value. Null disables the
+ * formatting.
*/
public void setFormat(Format format) {
this.format = format;
diff --git a/src/com/itmill/toolkit/ui/Tree.java b/src/com/itmill/toolkit/ui/Tree.java
index 35c5f1daca..67383ef51f 100644
--- a/src/com/itmill/toolkit/ui/Tree.java
+++ b/src/com/itmill/toolkit/ui/Tree.java
@@ -38,7 +38,7 @@ import com.itmill.toolkit.terminal.Resource;
public class Tree extends AbstractSelect implements Container.Hierarchical,
Action.Container {
- /* Static members ***************************************************** */
+ /* Static members */
private static final Method EXPAND_METHOD;
@@ -52,13 +52,12 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
"nodeCollapse", new Class[] { CollapseEvent.class });
} catch (final java.lang.NoSuchMethodException e) {
// This should never happen
- e.printStackTrace();
throw new java.lang.RuntimeException(
- "Internal error, please report");
+ "Internal error finding methods in Tree");
}
}
- /* Private members **************************************************** */
+ /* Private members */
/**
* Set of expanded nodes.
@@ -96,7 +95,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
*/
private boolean initialPaint = true;
- /* Tree constructors ************************************************** */
+ /* Tree constructors */
/**
* Creates a new empty tree.
@@ -124,13 +123,13 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
setContainerDataSource(dataSource);
}
- /* Expanding and collapsing ******************************************* */
+ /* Expanding and collapsing */
/**
* Check is an item is expanded
*
* @param itemId
- * the item id.
+ * the item id.
* @return true iff the item is expanded.
*/
public boolean isExpanded(Object itemId) {
@@ -141,7 +140,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
* Expands an item.
*
* @param itemId
- * the item id.
+ * the item id.
* @return True iff the expand operation succeeded
*/
public boolean expandItem(Object itemId) {
@@ -152,10 +151,10 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
* Expands an item.
*
* @param itemId
- * the item id.
+ * the item id.
* @param sendChildTree
- * flag to indicate if client needs subtree or not (may be
- * cached)
+ * flag to indicate if client needs subtree or not (may be
+ * cached)
* @return True iff the expand operation succeeded
*/
private boolean expandItem(Object itemId, boolean sendChildTree) {
@@ -229,7 +228,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
* Collapses an item.
*
* @param itemId
- * the item id.
+ * the item id.
* @return True iff the collapse operation succeeded
*/
public boolean collapseItem(Object itemId) {
@@ -299,7 +298,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
* </p>
*
* @param selectable
- * the New value of property selectable.
+ * the New value of property selectable.
*/
public void setSelectable(boolean selectable) {
if (this.selectable != selectable) {
@@ -308,7 +307,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
}
}
- /* Component API ****************************************************** */
+ /* Component API */
/**
* Gets the UIDL tag corresponding to the component.
@@ -565,7 +564,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
}
}
- /* Container.Hierarchical API ***************************************** */
+ /* Container.Hierarchical API */
/**
* Tests if the Item with given ID can have any children.
@@ -595,8 +594,8 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
}
/**
- * Tests if the Item specified with <code>itemId</code> has any child
- * Items, that is, is it a leaf Item.
+ * 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)
*/
@@ -652,7 +651,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
return success;
}
- /* Overriding select behavior******************************************** */
+ /* Overriding select behavior */
/**
* Sets the Container that serves as the data source of the viewer.
@@ -678,7 +677,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
}
}
- /* Expand event and listener ****************************************** */
+ /* Expand event and listener */
/**
* Event to fired when a node is expanded. ExapandEvent is fired when a node
@@ -703,7 +702,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
* New instance of options change event
*
* @param source
- * the Source of the event.
+ * the Source of the event.
* @param expandedItemId
*/
public ExpandEvent(Component source, Object expandedItemId) {
@@ -735,7 +734,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
* A node has been expanded.
*
* @param event
- * the Expand event.
+ * the Expand event.
*/
public void nodeExpand(ExpandEvent event);
}
@@ -744,7 +743,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
* Adds the expand listener.
*
* @param listener
- * the Listener to be added.
+ * the Listener to be added.
*/
public void addListener(ExpandListener listener) {
addListener(ExpandEvent.class, listener, EXPAND_METHOD);
@@ -754,7 +753,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
* Removes the expand listener.
*
* @param listener
- * the Listener to be removed.
+ * the Listener to be removed.
*/
public void removeListener(ExpandListener listener) {
removeListener(ExpandEvent.class, listener, EXPAND_METHOD);
@@ -764,13 +763,13 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
* Emits the expand event.
*
* @param itemId
- * the item id.
+ * the item id.
*/
protected void fireExpandEvent(Object itemId) {
fireEvent(new ExpandEvent(this, itemId));
}
- /* Collapse event ****************************************** */
+ /* Collapse event */
/**
* Collapse event
@@ -793,7 +792,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
* New instance of options change event.
*
* @param source
- * the Source of the event.
+ * the Source of the event.
* @param collapsedItemId
*/
public CollapseEvent(Component source, Object collapsedItemId) {
@@ -825,7 +824,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
* A node has been collapsed.
*
* @param event
- * the Collapse event.
+ * the Collapse event.
*/
public void nodeCollapse(CollapseEvent event);
}
@@ -834,7 +833,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
* Adds the collapse listener.
*
* @param listener
- * the Listener to be added.
+ * the Listener to be added.
*/
public void addListener(CollapseListener listener) {
addListener(CollapseEvent.class, listener, COLLAPSE_METHOD);
@@ -844,7 +843,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
* Removes the collapse listener.
*
* @param listener
- * the Listener to be removed.
+ * the Listener to be removed.
*/
public void removeListener(CollapseListener listener) {
removeListener(CollapseEvent.class, listener, COLLAPSE_METHOD);
@@ -854,13 +853,13 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
* Emits collapse event.
*
* @param itemId
- * the item id.
+ * the item id.
*/
protected void fireCollapseEvent(Object itemId) {
fireEvent(new CollapseEvent(this, itemId));
}
- /* Action container *************************************************** */
+ /* Action container */
/**
* Adds an action handler.
@@ -963,7 +962,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
* Adding new items is not supported.
*
* @throws UnsupportedOperationException
- * if set to true.
+ * if set to true.
* @see com.itmill.toolkit.ui.Select#setNewItemsAllowed(boolean)
*/
public void setNewItemsAllowed(boolean allowNewOptions)
@@ -977,7 +976,7 @@ public class Tree extends AbstractSelect implements Container.Hierarchical,
* Focusing to this component is not supported.
*
* @throws UnsupportedOperationException
- * if invoked.
+ * if invoked.
* @see com.itmill.toolkit.ui.AbstractField#focus()
*/
public void focus() throws UnsupportedOperationException {
diff --git a/src/com/itmill/toolkit/ui/Upload.java b/src/com/itmill/toolkit/ui/Upload.java
index d1fcd45add..8f45bf04df 100644
--- a/src/com/itmill/toolkit/ui/Upload.java
+++ b/src/com/itmill/toolkit/ui/Upload.java
@@ -88,11 +88,10 @@ public class Upload extends AbstractComponent implements Component.Focusable {
* stream given by the Receiver.
*
* @param caption
- * Normal component caption. You can set the caption of the
- * upload submit button with setButtonCaption().
+ * Normal component caption. You can set the caption of the
+ * upload submit button with setButtonCaption().
* @param uploadReceiver
- * Receiver to call to retrieve output stream when upload
- * starts.
+ * Receiver to call to retrieve output stream when upload starts.
*/
public Upload(String caption, Receiver uploadReceiver) {
setCaption(caption);
@@ -200,9 +199,9 @@ public class Upload extends AbstractComponent implements Component.Focusable {
* Paints the content of this component.
*
* @param target
- * Target to paint the content on.
+ * Target to paint the content on.
* @throws PaintException
- * if the paint operation failed.
+ * if the paint operation failed.
*/
public void paintContent(PaintTarget target) throws PaintException {
// The field should be focused
@@ -239,16 +238,16 @@ public class Upload extends AbstractComponent implements Component.Focusable {
* Invoked when a new upload arrives.
*
* @param filename
- * the desired filename of the upload, usually as
- * specified by the client.
+ * the desired filename of the upload, usually as specified
+ * by the client.
* @param MIMEType
- * the MIME type of the uploaded file.
+ * the MIME type of the uploaded file.
* @return Stream to which the uploaded file should be written.
*/
public OutputStream receiveUpload(String filename, String MIMEType);
}
- /* Upload events ************************************************ */
+ /* Upload events */
private static final Method UPLOAD_FINISHED_METHOD;
@@ -271,7 +270,8 @@ public class Upload extends AbstractComponent implements Component.Focusable {
new Class[] { SucceededEvent.class });
} catch (final java.lang.NoSuchMethodException e) {
// This should never happen
- throw new java.lang.RuntimeException("Internal error");
+ throw new java.lang.RuntimeException(
+ "Internal error finding methods in Upload");
}
}
@@ -311,13 +311,13 @@ public class Upload extends AbstractComponent implements Component.Focusable {
/**
*
* @param source
- * the source of the file.
+ * the source of the file.
* @param filename
- * the received file name.
+ * the received file name.
* @param MIMEType
- * the MIME type of the received file.
+ * the MIME type of the received file.
* @param length
- * the length of the received file.
+ * the length of the received file.
*/
public FinishedEvent(Upload source, String filename, String MIMEType,
long length) {
@@ -570,7 +570,7 @@ public class Upload extends AbstractComponent implements Component.Focusable {
* Upload has started.
*
* @param event
- * the Upload started event.
+ * the Upload started event.
*/
public void uploadStarted(StartedEvent event);
}
@@ -589,7 +589,7 @@ public class Upload extends AbstractComponent implements Component.Focusable {
* Upload has finished.
*
* @param event
- * the Upload finished event.
+ * the Upload finished event.
*/
public void uploadFinished(FinishedEvent event);
}
@@ -608,7 +608,7 @@ public class Upload extends AbstractComponent implements Component.Focusable {
* Upload has finished unsuccessfully.
*
* @param event
- * the Upload failed event.
+ * the Upload failed event.
*/
public void uploadFailed(FailedEvent event);
}
@@ -627,7 +627,7 @@ public class Upload extends AbstractComponent implements Component.Focusable {
* Upload successfull..
*
* @param event
- * the Upload successfull event.
+ * the Upload successfull event.
*/
public void uploadSucceeded(SucceededEvent event);
}
@@ -636,7 +636,7 @@ public class Upload extends AbstractComponent implements Component.Focusable {
* Adds the upload started event listener.
*
* @param listener
- * the Listener to be added.
+ * the Listener to be added.
*/
public void addListener(StartedListener listener) {
addListener(StartedEvent.class, listener, UPLOAD_STARTED_METHOD);
@@ -646,7 +646,7 @@ public class Upload extends AbstractComponent implements Component.Focusable {
* Removes the upload started event listener.
*
* @param listener
- * the Listener to be removed.
+ * the Listener to be removed.
*/
public void removeListener(StartedListener listener) {
removeListener(StartedEvent.class, listener, UPLOAD_STARTED_METHOD);
@@ -656,7 +656,7 @@ public class Upload extends AbstractComponent implements Component.Focusable {
* Adds the upload received event listener.
*
* @param listener
- * the Listener to be added.
+ * the Listener to be added.
*/
public void addListener(FinishedListener listener) {
addListener(FinishedEvent.class, listener, UPLOAD_FINISHED_METHOD);
@@ -666,7 +666,7 @@ public class Upload extends AbstractComponent implements Component.Focusable {
* Removes the upload received event listener.
*
* @param listener
- * the Listener to be removed.
+ * the Listener to be removed.
*/
public void removeListener(FinishedListener listener) {
removeListener(FinishedEvent.class, listener, UPLOAD_FINISHED_METHOD);
@@ -676,7 +676,7 @@ public class Upload extends AbstractComponent implements Component.Focusable {
* Adds the upload interrupted event listener.
*
* @param listener
- * the Listener to be added.
+ * the Listener to be added.
*/
public void addListener(FailedListener listener) {
addListener(FailedEvent.class, listener, UPLOAD_FAILED_METHOD);
@@ -686,7 +686,7 @@ public class Upload extends AbstractComponent implements Component.Focusable {
* Removes the upload interrupted event listener.
*
* @param listener
- * the Listener to be removed.
+ * the Listener to be removed.
*/
public void removeListener(FailedListener listener) {
removeListener(FailedEvent.class, listener, UPLOAD_FAILED_METHOD);
@@ -696,7 +696,7 @@ public class Upload extends AbstractComponent implements Component.Focusable {
* Adds the upload success event listener.
*
* @param listener
- * the Listener to be added.
+ * the Listener to be added.
*/
public void addListener(SucceededListener listener) {
addListener(SucceededEvent.class, listener, UPLOAD_SUCCEEDED_METHOD);
@@ -706,7 +706,7 @@ public class Upload extends AbstractComponent implements Component.Focusable {
* Removes the upload success event listener.
*
* @param listener
- * the Listener to be removed.
+ * the Listener to be removed.
*/
public void removeListener(SucceededListener listener) {
removeListener(SucceededEvent.class, listener, UPLOAD_SUCCEEDED_METHOD);
@@ -716,7 +716,7 @@ public class Upload extends AbstractComponent implements Component.Focusable {
* Adds the upload success event listener.
*
* @param listener
- * the Listener to be added.
+ * the Listener to be added.
*/
public void addListener(ProgressListener listener) {
if (progressListeners == null) {
@@ -729,7 +729,7 @@ public class Upload extends AbstractComponent implements Component.Focusable {
* Removes the upload success event listener.
*
* @param listener
- * the Listener to be removed.
+ * the Listener to be removed.
*/
public void removeListener(ProgressListener listener) {
if (progressListeners != null) {
@@ -806,9 +806,9 @@ public class Upload extends AbstractComponent implements Component.Focusable {
* Emits the progress event.
*
* @param totalBytes
- * bytes received so far
+ * bytes received so far
* @param contentLength
- * actual size of the file being uploaded, if known
+ * actual size of the file being uploaded, if known
*
*/
protected void fireUpdateProgress(long totalBytes, long contentLength) {
@@ -839,7 +839,7 @@ public class Upload extends AbstractComponent implements Component.Focusable {
* Sets the receiver.
*
* @param receiver
- * the receiver to set.
+ * the receiver to set.
*/
public void setReceiver(Receiver receiver) {
this.receiver = receiver;
@@ -965,10 +965,9 @@ public class Upload extends AbstractComponent implements Component.Focusable {
* Updates progress to listener
*
* @param readBytes
- * bytes transferred
+ * bytes transferred
* @param contentLength
- * total size of file currently being uploaded, -1 if
- * unknown
+ * total size of file currently being uploaded, -1 if unknown
*/
public void updateProgress(long readBytes, long contentLength);
}
@@ -985,7 +984,7 @@ public class Upload extends AbstractComponent implements Component.Focusable {
* method is used to set text in that button.
*
* @param buttonCaption
- * text for uploads button.
+ * text for uploads button.
*/
public void setButtonCaption(String buttonCaption) {
this.buttonCaption = buttonCaption;
diff --git a/src/com/itmill/toolkit/ui/Window.java b/src/com/itmill/toolkit/ui/Window.java
index b1e85f7f2d..b9ecf8b255 100644
--- a/src/com/itmill/toolkit/ui/Window.java
+++ b/src/com/itmill/toolkit/ui/Window.java
@@ -127,7 +127,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* </p>
*
* @param caption
- * the Title of the window.
+ * the Title of the window.
*/
public Window() {
this("", null);
@@ -146,7 +146,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* </p>
*
* @param caption
- * the Title of the window.
+ * the Title of the window.
*/
public Window(String caption) {
this(caption, null);
@@ -165,9 +165,9 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* </p>
*
* @param caption
- * the Title of the window.
+ * the Title of the window.
* @param layout
- * the Layout of the window.
+ * the Layout of the window.
*/
public Window(String caption, Layout layout) {
super(caption, layout);
@@ -220,8 +220,8 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
*
* <p>
* For windows attached directly to the application, parent is
- * <code>null</code>. For windows inside other windows, parent is the
- * window containing this window.
+ * <code>null</code>. For windows inside other windows, parent is the window
+ * containing this window.
* </p>
*
* @return the Value of property parent.
@@ -239,7 +239,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* </p>
*
* @param parent
- * the New value of property parent.
+ * the New value of property parent.
*/
public void setParent(Component parent) {
super.setParent(parent);
@@ -261,7 +261,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* are attached to root level window.
*
* @param handler
- * the URI handler to add.
+ * the URI handler to add.
*/
public void addURIHandler(URIHandler handler) {
if (getParent() != null) {
@@ -285,7 +285,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* Removes the given URI handler from this window.
*
* @param handler
- * the URI handler to remove.
+ * the URI handler to remove.
*/
public void removeURIHandler(URIHandler handler) {
if (getParent() != null) {
@@ -342,7 +342,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* handlers are attached to parent windows.
*
* @param handler
- * the parameter handler to add.
+ * the parameter handler to add.
*/
public void addParameterHandler(ParameterHandler handler) {
if (getParent() != null) {
@@ -367,7 +367,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* Removes the given URI handler from this window.
*
* @param handler
- * the parameter handler to remove.
+ * the parameter handler to remove.
*/
public void removeParameterHandler(ParameterHandler handler) {
if (getParent() != null) {
@@ -439,13 +439,12 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* In Toolkit 5 terminal will reload its host page on theme changes.
*
* @param theme
- * the 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) {
if (getParent() != null) {
throw new UnsupportedOperationException(
- "Setting theme for sub-windws is not supported.");
+ "Setting theme for sub-windows is not supported.");
}
this.theme = theme;
requestRepaint();
@@ -455,9 +454,9 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* Paints the content of this component.
*
* @param event
- * the Paint Event.
+ * the Paint Event.
* @throws PaintException
- * if the paint operation failed.
+ * if the paint operation failed.
*/
public synchronized void paintContent(PaintTarget target)
throws PaintException {
@@ -477,8 +476,8 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
if (resizable) {
target.addAttribute("resizable", true);
}
-
- if(centerRequested) {
+
+ if (centerRequested) {
target.addAttribute("center", true);
centerRequested = false;
}
@@ -568,9 +567,9 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* window.
*
* @param resource
- * the resource.
+ * the resource.
* @param windowName
- * the name of the window.
+ * the name of the window.
*/
public void open(Resource resource, String windowName) {
synchronized (openList) {
@@ -623,7 +622,8 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
try {
return new URL(application.getURL(), getName() + "/");
} catch (final MalformedURLException e) {
- throw new RuntimeException("Internal problem, please report");
+ throw new RuntimeException(
+ "Internal problem getting window URL, please report");
}
}
@@ -635,11 +635,11 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* not used for windows inside other windows. all application-level windows
* can be accessed by their names in url
* <code>http://host:port/foo/bar/</code> where
- * <code>http://host:port/foo/</code> is the application url as returned
- * by getURL() and <code>bar</code> is the name of the window. Also note
- * that not all windows should be added to application - one can also add
- * windows inside other windows - these windows show as smaller windows
- * inside those windows.
+ * <code>http://host:port/foo/</code> is the application url as returned by
+ * getURL() and <code>bar</code> is the name of the window. Also note that
+ * not all windows should be added to application - one can also add windows
+ * inside other windows - these windows show as smaller windows inside those
+ * windows.
* </p>
*
* @return the Name of the Window.
@@ -661,7 +661,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;
@@ -685,7 +685,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) {
@@ -720,7 +720,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) {
@@ -739,7 +739,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* adapter and may change from time to time.
*
* @param type
- * the terminal type to set.
+ * the terminal type to set.
*/
public void setTerminal(Terminal type) {
terminal = type;
@@ -782,9 +782,9 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* Paints the open-tag inside the window.
*
* @param target
- * the Paint Event.
+ * the Paint Event.
* @throws PaintException
- * if the Paint Operation fails.
+ * if the Paint Operation fails.
*/
private void paintContent(PaintTarget target) throws PaintException {
target.startTag("open");
@@ -874,9 +874,8 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* 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.
+ * 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) {
@@ -901,9 +900,8 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* 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
+ * the Distance of Window top border in pixels from top border of
+ * the containing (main window). or -1 if unspecified
*
* @since 4.0.0
*/
@@ -918,7 +916,8 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
"windowClose", new Class[] { CloseEvent.class });
} catch (final java.lang.NoSuchMethodException e) {
// This should never happen
- throw new java.lang.RuntimeException();
+ throw new java.lang.RuntimeException(
+ "Internal error, window close method not found");
}
}
@@ -955,7 +954,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* Adds the listener.
*
* @param listener
- * the listener to add.
+ * the listener to add.
*/
public void addListener(CloseListener listener) {
addListener(CloseEvent.class, listener, WINDOW_CLOSE_METHOD);
@@ -965,7 +964,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* Removes the listener.
*
* @param listener
- * the listener to remove.
+ * the listener to remove.
*/
public void removeListener(CloseListener listener) {
addListener(CloseEvent.class, listener, WINDOW_CLOSE_METHOD);
@@ -991,9 +990,9 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
*
* @param window
* @throws IllegalArgumentException
- * if a window is added inside non-application level window.
+ * if a window is added inside non-application level window.
* @throws NullPointerException
- * if the given <code>Window</code> is <code>null</code>.
+ * if the given <code>Window</code> is <code>null</code>.
*/
public void addWindow(Window window) throws IllegalArgumentException,
NullPointerException {
@@ -1016,7 +1015,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* Remove the given subwindow from this window.
*
* @param window
- * Window to be removed.
+ * Window to be removed.
*/
public void removeWindow(Window window) {
subwindows.remove(window);
@@ -1039,7 +1038,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* <b>Note:</b> affects sub-windows only.
*
* @param modality
- * true if modality is to be turned on
+ * true if modality is to be turned on
*/
public void setModal(boolean modality) {
modal = modality;
@@ -1055,11 +1054,10 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
}
/**
- * Sets sub-window resizable.
- * <b>Note:</b> affects sub-windows only.
+ * Sets sub-window resizable. <b>Note:</b> affects sub-windows only.
*
* @param resizable
- * true if resizability is to be turned on
+ * true if resizability is to be turned on
*/
public void setResizable(boolean resizeability) {
resizable = resizeability;
@@ -1075,8 +1073,8 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
}
/**
- * Request to center this window on the screen.
- * <b>Note:</b> affects sub-windows only.
+ * Request to center this window on the screen. <b>Note:</b> affects
+ * sub-windows only.
*/
public void center() {
centerRequested = true;
@@ -1090,7 +1088,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* @see Notification
*
* @param caption
- * The message
+ * The message
*/
public void showNotification(String caption) {
addNotification(new Notification(caption));
@@ -1105,9 +1103,9 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* @see Notification
*
* @param caption
- * The message
+ * The message
* @param type
- * The message type
+ * The message type
*/
public void showNotification(String caption, int type) {
addNotification(new Notification(caption, type));
@@ -1122,9 +1120,9 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* @see Notification
*
* @param caption
- * The caption of the message
+ * The caption of the message
* @param description
- * The message description
+ * The message description
*
*/
public void showNotification(String caption, String description) {
@@ -1141,11 +1139,11 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* @see Notification
*
* @param caption
- * The caption of the message
+ * The caption of the message
* @param description
- * The message description
+ * The message description
* @param type
- * The message type
+ * The message type
*/
public void showNotification(String caption, String description, int type) {
addNotification(new Notification(caption, description, type));
@@ -1161,7 +1159,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* @see #showNotification(String, String, int)
*
* @param notification
- * The notification message to show
+ * The notification message to show
*/
public void showNotification(Notification notification) {
addNotification(notification);
@@ -1188,25 +1186,25 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* still drawing needed attention. There are several basic types of messages
* that can be used in different situations:
* <ul>
- * <li> TYPE_HUMANIZED_MESSAGE fades away quickly as soon as the user uses
+ * <li>TYPE_HUMANIZED_MESSAGE fades away quickly as soon as the user uses
* the mouse or types something. It can be used to show fairly unimportant
- * messages, such as feedback that an operation succeeded ("Document Saved") -
- * the kind of messages the user ignores once the application is familiar.</li>
+ * messages, such as feedback that an operation succeeded ("Document Saved")
+ * - the kind of messages the user ignores once the application is familiar.
+ * </li>
* <li>TYPE_WARNING_MESSAGE is shown for a short while after the user uses
* the mouse or types something. It's default style is also more noticeable
* than the humanized message. It can be used for messages that do not
* contain a lot of important information, but should be noticed by the
* user. Despite the name, it does not have to be a warning, but can be used
* instead of the humanized message whenever you want to make the message a
- * little more noticeable. </li>
+ * little more noticeable.</li>
* <li>TYPE_ERROR_MESSAGE requires to user to click it before disappearing,
* and can be used for critical messages.</li>
* <li>TYPE_TRAY_NOTIFICATION is shown for a while in the lower left corner
* of the window, and can be used for "convenience notifications" that do
* not have to be noticed immediately, and should not interfere with the
* current task - for instance to show "You have a new message in your
- * inbox" while the user is working in some other area of the application.
- * </li>
+ * inbox" while the user is working in some other area of the application.</li>
* </ul>
* </p>
* <p>
@@ -1244,7 +1242,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* Creates a "humanized" notification message.
*
* @param caption
- * The message to show
+ * The message to show
*/
public Notification(String caption) {
this(caption, null, TYPE_HUMANIZED_MESSAGE);
@@ -1254,9 +1252,9 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* Creates a notification message of the specified type.
*
* @param caption
- * The message to show
+ * The message to show
* @param type
- * The type of message
+ * The type of message
*/
public Notification(String caption, int type) {
this(caption, null, type);
@@ -1267,9 +1265,9 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* smaller description.
*
* @param caption
- * The message caption
+ * The message caption
* @param description
- * The message description
+ * The message description
*/
public Notification(String caption, String description) {
this(caption, description, TYPE_HUMANIZED_MESSAGE);
@@ -1280,11 +1278,11 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* caption and smaller description.
*
* @param caption
- * The message caption
+ * The message caption
* @param description
- * The message description
+ * The message description
* @param type
- * The type of message
+ * The type of message
*/
public Notification(String caption, String description, int type) {
this.caption = caption;
@@ -1327,7 +1325,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* Sets the caption part of the notification message
*
* @param caption
- * The message caption
+ * The message caption
*/
public void setCaption(String caption) {
this.caption = caption;
@@ -1380,7 +1378,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* Sets the position of the notification message.
*
* @param position
- * The desired notification position
+ * The desired notification position
*/
public void setPosition(int position) {
this.position = position;
@@ -1399,7 +1397,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* Sets the icon part of the notification message.
*
* @param icon
- * The desired message icon
+ * The desired message icon
*/
public void setIcon(Resource icon) {
this.icon = icon;
@@ -1419,8 +1417,8 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* Sets the delay before the notification disappears.
*
* @param delayMsec
- * the desired delay in msec, -1 to require the user to
- * click the message
+ * the desired delay in msec, -1 to require the user to click
+ * the message
*/
public void setDelayMsec(int delayMsec) {
this.delayMsec = delayMsec;
@@ -1430,7 +1428,7 @@ public class Window extends Panel implements URIHandler, ParameterHandler {
* Sets the style name for the notification message.
*
* @param styleName
- * The desired style name.
+ * The desired style name.
*/
public void setStyleName(String styleName) {
this.styleName = styleName;