diff options
author | Joonas Lehtinen <joonas.lehtinen@itmill.com> | 2007-07-17 08:28:41 +0000 |
---|---|---|
committer | Joonas Lehtinen <joonas.lehtinen@itmill.com> | 2007-07-17 08:28:41 +0000 |
commit | 511a2b97c27f986d0f6ee5231e76c913cf467f39 (patch) | |
tree | c412a5626c8ab676e4ede4829c43790ec539ed7f /src/com/itmill/toolkit/terminal/web/WebApplicationContext.java | |
parent | 2b666eb05f7a3faf454c3654168fa3e6f7cf62f3 (diff) | |
download | vaadin-framework-511a2b97c27f986d0f6ee5231e76c913cf467f39.tar.gz vaadin-framework-511a2b97c27f986d0f6ee5231e76c913cf467f39.zip |
Started a major refactoring: removed terminal.web, added terminal.gwt.server. Refactoring is not even nearly complete, but can already replace old web terminal implementation
svn changeset:1864/svn branch:trunk
Diffstat (limited to 'src/com/itmill/toolkit/terminal/web/WebApplicationContext.java')
-rw-r--r-- | src/com/itmill/toolkit/terminal/web/WebApplicationContext.java | 261 |
1 files changed, 0 insertions, 261 deletions
diff --git a/src/com/itmill/toolkit/terminal/web/WebApplicationContext.java b/src/com/itmill/toolkit/terminal/web/WebApplicationContext.java deleted file mode 100644 index 09a1279995..0000000000 --- a/src/com/itmill/toolkit/terminal/web/WebApplicationContext.java +++ /dev/null @@ -1,261 +0,0 @@ -/* ************************************************************************* - - IT Mill Toolkit - - Development of Browser User Interfaces Made Easy - - Copyright (C) 2000-2006 IT Mill Ltd - - ************************************************************************* - - This product is distributed under commercial license that can be found - from the product package on license.pdf. Use of this product might - require purchasing a commercial license from IT Mill Ltd. For guidelines - on usage, see licensing-guidelines.html - - ************************************************************************* - - For more information, contact: - - IT Mill Ltd phone: +358 2 4802 7180 - Ruukinkatu 2-4 fax: +358 2 4802 7181 - 20540, Turku email: info@itmill.com - Finland company www: www.itmill.com - - Primary source for information and releases: www.itmill.com - - ********************************************************************** */ - -package com.itmill.toolkit.terminal.web; - -import java.io.File; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.Collection; -import java.util.Collections; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.WeakHashMap; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import com.itmill.toolkit.Application; -import com.itmill.toolkit.service.ApplicationContext; -import com.itmill.toolkit.ui.Window; - -/** - * Web application context for the IT Mill Toolkit applications. - * - * @author IT Mill Ltd. - * @version - * @VERSION@ - * @since 3.1 - */ -public class WebApplicationContext implements ApplicationContext { - - private List listeners; - - private HttpSession session; - - private WeakHashMap formActions = new WeakHashMap(); - - /** - * Creates a new Web Application Context. - * - * @param session - * the HTTP session. - */ - WebApplicationContext(HttpSession session) { - this.session = session; - } - - /** - * Gets the form action for given window. - * <p> - * By default, this action is "", which preserves the current url. Commonly - * this is wanted to be set to <code>application.getUrl.toString</code> or - * <code>window.getUrl.toString</code> in order to clean any local links - * or parameters set from the action. - * </p> - * - * @param window - * the Window for which the action is queried. - * @return the Action to be set into Form action attribute. - */ - public String getWindowFormAction(Window window) { - String action = (String) formActions.get(window); - return action == null ? "" : action; - } - - /** - * Sets the form action for given window. - * <p> - * By default, this action is "", which preserves the current url. Commonly - * this is wanted to be set to <code>application.getUrl.toString</code> or - * <code>window.getUrl.toString</code> in order to clean any local links - * or parameters set from the action. - * </p> - * - * @param window - * the Window for which the action is set. - * @param action - * the New action for the window. - */ - public void setWindowFormAction(Window window, String action) { - if (action == null || action == "") - formActions.remove(window); - else - formActions.put(window, action); - } - - /** - * Gets the application context base directory. - * - * @see com.itmill.toolkit.service.ApplicationContext#getBaseDirectory() - */ - public File getBaseDirectory() { - String realPath = ApplicationServlet.getResourcePath(session - .getServletContext(), "/"); - if (realPath == null) - return null; - return new File(realPath); - } - - /** - * Gets the http-session application is running in. - * - * @return HttpSession this application context resides in. - */ - public HttpSession getHttpSession() { - return session; - } - - /** - * Gets the applications in this context. - * - * @see com.itmill.toolkit.service.ApplicationContext#getApplications() - */ - public Collection getApplications() { - LinkedList applications = (LinkedList) session - .getAttribute(ApplicationServlet.SESSION_ATTR_APPS); - - return Collections - .unmodifiableCollection(applications == null ? (new LinkedList()) - : applications); - } - - /** - * Gets the application context for HttpSession. - * - * @param session - * the HTTP session. - * @return the application context for HttpSession. - */ - static public WebApplicationContext getApplicationContext( - HttpSession session) { - return new WebApplicationContext(session); - } - - /** - * Returns <code>true</code> if and only if the argument is not - * <code>null</code> and is a Boolean object that represents the same - * boolean value as this object. - * - * @param obj - * the object to compare with. - * @see java.lang.Object#equals(java.lang.Object) - */ - public boolean equals(Object obj) { - return session.equals(obj); - } - - /** - * Returns the hash code value . - * - * @see java.lang.Object#hashCode() - */ - public int hashCode() { - return session.hashCode(); - } - - /** - * Adds the transaction listener to this context. - * - * @see com.itmill.toolkit.service.ApplicationContext#addTransactionListener(com.itmill.toolkit.service.ApplicationContext.TransactionListener) - */ - public void addTransactionListener(TransactionListener listener) { - if (this.listeners == null) - this.listeners = new LinkedList(); - this.listeners.add(listener); - } - - /** - * Removes the transaction listener from this context. - * - * @see com.itmill.toolkit.service.ApplicationContext#removeTransactionListener(com.itmill.toolkit.service.ApplicationContext.TransactionListener) - */ - public void removeTransactionListener(TransactionListener listener) { - if (this.listeners != null) - this.listeners.remove(listener); - - } - - /** - * Notifies the transaction start. - * - * @param application - * @param request - * the HTTP request. - */ - protected void startTransaction(Application application, - HttpServletRequest request) { - if (this.listeners == null) - return; - for (Iterator i = this.listeners.iterator(); i.hasNext();) { - ((ApplicationContext.TransactionListener) i.next()) - .transactionStart(application, request); - } - } - - /** - * Notifies the transaction end. - * - * @param application - * @param request - * the HTTP request. - */ - protected void endTransaction(Application application, - HttpServletRequest request) { - if (this.listeners == null) - return; - - LinkedList exceptions = null; - for (Iterator i = this.listeners.iterator(); i.hasNext();) - try { - ((ApplicationContext.TransactionListener) i.next()) - .transactionEnd(application, request); - } catch (RuntimeException t) { - if (exceptions == null) - exceptions = new LinkedList(); - exceptions.add(t); - } - - // If any runtime exceptions occurred, throw a combined exception - if (exceptions != null) { - StringBuffer msg = new StringBuffer(); - for (Iterator i = listeners.iterator(); i.hasNext();) { - RuntimeException e = (RuntimeException) i.next(); - if (msg.length() == 0) - msg.append("\n\n--------------------------\n\n"); - msg.append(e.getMessage() + "\n"); - StringWriter trace = new StringWriter(); - e.printStackTrace(new PrintWriter(trace, true)); - msg.append(trace.toString()); - } - throw new RuntimeException(msg.toString()); - } - } - -} |