View Javadoc

1   /*
2    * Joey and its relative products are published under the terms
3    * of the Apache Software License.
4    */
5   /*
6    * Created on 2004/01/12
7    */
8   package org.asyrinx.joey.tapestry.components.stative;
9   
10  import java.io.Serializable;
11  import java.util.Stack;
12  
13  import org.apache.tapestry.IPage;
14  import org.apache.tapestry.IRequestCycle;
15  import org.asyrinx.brownie.core.user.IUser;
16  import org.asyrinx.joey.om.SearchCondition;
17  
18  /***
19   * @author akima
20   */
21  public class BaseVisit implements Serializable {
22  
23  	/***
24  	 * 
25  	 */
26  	public BaseVisit() {
27  		super();
28  	}
29  
30  	private IUser loginUser = null;
31  
32  	private boolean requestDebug = false;
33  	private boolean disableInspector = false;
34  
35  	public boolean isUserLogined() {
36  		return loginUser != null;
37  	}
38  
39  	public String getLoginUserDisplayName() {
40  		return (loginUser != null) ? loginUser.getDisplayName() : "";
41  	}
42  
43  	public void setRequestDebug(boolean value) {
44  		this.requestDebug = value;
45  	}
46  
47  	public boolean getRequestDebug() {
48  		return requestDebug;
49  	}
50  
51  	public boolean getDisableInspector() {
52  		return disableInspector;
53  	}
54  
55  	public void setDisableInspector(boolean disableInspector) {
56  		this.disableInspector = disableInspector;
57  	}
58  
59  	private final Stack accessHistories = new Stack();
60  
61  	class AccessObject implements Serializable {
62  		public AccessObject(String pageName, Object object) {
63  			super();
64  			this.pageName = pageName;
65  			this.object = object;
66  		}
67  		final String pageName;
68  		final Object object;
69  	}
70  
71  	public void saveLastAccessPage(IPage page) {
72  		if (page == null)
73  			return;
74  		final Object object;
75  		if (page instanceof BaseEditPage) {
76  			final BaseEditPage editPage = (BaseEditPage) page;
77  			object = editPage.getEditObject();
78  		} else {
79  			final BaseListPage listPage = (BaseListPage) page;
80  			object = listPage.getWayToSearch();
81  		}
82  		accessHistories.push(new AccessObject(page.getPageName(), object));
83  	}
84  
85  	public void goBackToLastAccessPage(IRequestCycle cycle) {
86  		if (accessHistories.isEmpty())
87  			return;
88  		AccessObject accessObject = (AccessObject) accessHistories.pop();
89  		final IPage page = cycle.getPage(accessObject.pageName);
90  		if (page == null)
91  			return;
92  		if (page instanceof BaseEditPage) {
93  			final BaseEditPage editPage = (BaseEditPage) page;
94  			editPage.setEditObject(accessObject.object);
95  		} else {
96  			final BaseListPage listPage = (BaseListPage) page;
97  			if (accessObject.object instanceof SearchCondition)
98  				listPage.setWayToSearch((SearchCondition) accessObject.object);
99  			listPage.search(cycle);
100 		}
101 		cycle.activate(page);
102 	}
103 
104 	/***
105 	 * @return
106 	 */
107 	public IUser getLoginUser() {
108 		return loginUser;
109 	}
110 
111 	/***
112 	 * @param user
113 	 */
114 	public void setLoginUser(IUser user) {
115 		loginUser = user;
116 	}
117 
118 }