View Javadoc

1   /*
2    * Copyright 2010 James Pether Sörling
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *   http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   *
16   *	$Id: ApplicationUserStateHolder.java 5436 2011-04-26 18:25:22Z pether $
17   *  $HeadURL: https://cia.svn.sourceforge.net/svnroot/cia/trunk/citizen-intelligence-agency/src/main/java/com/hack23/cia/web/impl/ui/common/ApplicationUserStateHolder.java $
18  */
19  package com.hack23.cia.web.impl.ui.common;
20  
21  import com.vaadin.Application;
22  import com.vaadin.terminal.gwt.server.WebApplicationContext;
23  import com.vaadin.terminal.gwt.server.WebBrowser;
24  
25  /**
26   * The Class ApplicationUserStateHolder.
27   */
28  public final class ApplicationUserStateHolder {
29  
30  	/** The current application. */
31  	private static ThreadLocal<ApplicationUserState> currentApplication = new ThreadLocal<ApplicationUserState>();
32  
33  	/**
34  	 * Adds the current application user state.
35  	 *
36  	 * @param applicationUserState
37  	 *            the application user state
38  	 */
39  	public static void addCurrentApplicationUserState(
40  			final ApplicationUserState applicationUserState) {
41  		currentApplication.set(applicationUserState);
42  	}
43  
44  	/**
45  	 * Gets the user state.
46  	 *
47  	 * @return the user state
48  	 */
49  	public static ApplicationUserState getUserState() {
50  		return currentApplication.get();
51  	}
52  
53  	/**
54  	 * Gets the web browser.
55  	 *
56  	 * @return the web browser
57  	 */
58  	public static WebBrowser getWebBrowser() {
59  		return ((WebApplicationContext) ((Application) currentApplication.get()).getContext()).getBrowser();
60  	}
61  
62  	/**
63  	 * Removes the current application user state.
64  	 */
65  	public static void removeCurrentApplicationUserState() {
66  		currentApplication.set(null);
67  		currentApplication.remove();
68  	}
69  
70  	/**
71  	 * Instantiates a new application user state holder.
72  	 */
73  	private ApplicationUserStateHolder() {
74  		super();
75  	}
76  }