KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sslexplorer > networkplaces > forms > NetworkPlaceForm


1 /*
2  * SSL-Explorer
3  *
4  * Copyright (C) 2003-2006 3SP LTD. All Rights Reserved
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2 of
9  * the License, or (at your option) any later version.
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public
16  * License along with this program; if not, write to the Free Software
17  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  */

19             
20 package com.sslexplorer.networkplaces.forms;
21
22 import javax.servlet.http.HttpServletRequest JavaDoc;
23
24 import org.apache.commons.logging.Log;
25 import org.apache.commons.logging.LogFactory;
26 import org.apache.struts.Globals;
27 import org.apache.struts.action.ActionErrors;
28 import org.apache.struts.action.ActionMapping;
29 import org.apache.struts.action.ActionMessage;
30
31 import com.sslexplorer.boot.PropertyList;
32 import com.sslexplorer.boot.Util;
33 import com.sslexplorer.input.MultiSelectSelectionModel;
34 import com.sslexplorer.input.validators.HostnameOrIPAddressValidator;
35 import com.sslexplorer.input.validators.HostnameOrIPAddressWithPortValidator;
36 import com.sslexplorer.input.validators.HostnameOrIPAddressWithReplacementsValidator;
37 import com.sslexplorer.networkplaces.NetworkPlace;
38 import com.sslexplorer.networkplaces.NetworkPlaceUtil;
39 import com.sslexplorer.policyframework.Resource;
40 import com.sslexplorer.policyframework.forms.AbstractFavoriteResourceForm;
41 import com.sslexplorer.security.User;
42 import com.sslexplorer.vfs.VFSProvider;
43 import com.sslexplorer.vfs.VFSProviderManager;
44
45 public class NetworkPlaceForm extends AbstractFavoriteResourceForm {
46
47     static Log log = LogFactory.getLog(NetworkPlaceForm.class);
48     private String JavaDoc selectedTab = "details";
49     private String JavaDoc host;
50     private String JavaDoc path;
51     private int port;
52     private String JavaDoc username;
53     private String JavaDoc password;
54     private String JavaDoc scheme;
55     private String JavaDoc queryString;
56     private boolean networkPlaceReadOnly;
57     private boolean showHidden;
58     private boolean allowRecursive;
59     private boolean noDelete;
60     private VFSProvider provider;
61
62     public ActionErrors validate(ActionMapping mapping, HttpServletRequest JavaDoc request) {
63         ActionErrors errs = super.validate(mapping, request);
64         if (isCommiting()) {
65             try {
66                 /* Validate all of the elements */
67                 if(provider.getHostRequirement() == VFSProvider.ELEMENT_REQUIRED) {
68                     String JavaDoc name = Util.trimmedOrBlank(host);
69                     if("".equals(name)) {
70                         errs.add(Globals.ERROR_KEY, new ActionMessage("createNetworkPlace.error.noHost"));
71                     }
72                     else {
73 // /* Officialy, the only supported characters in a hostname
74
// * are [a-z], [0-9], '.' and '-'. In practice though other
75
// * characters such as '_' are commonly used. Lets just catch
76
// * the obvious ones for now
77
// * JB Have added a central check using regEX
78
// */
79
//
80
if(!HostnameOrIPAddressWithReplacementsValidator.isValidAsHostOrIp(name)) {
81                             errs.add(Globals.ERROR_KEY, new ActionMessage("createNetworkPlace.error.invalidHost"));
82                         }
83                     }
84                 }
85                 
86                 if(provider.getPortRequirement() == VFSProvider.ELEMENT_REQUIRED &&
87                                 port == 0) {
88                     errs.add(Globals.ERROR_KEY, new ActionMessage("createNetworkPlace.error.noPort"));
89                 }
90                 
91                 if(provider.getUserInfoRequirement() == VFSProvider.ELEMENT_REQUIRED &&
92                                 Util.isNullOrTrimmedBlank(username)) {
93                     errs.add(Globals.ERROR_KEY, new ActionMessage("createNetworkPlace.error.noUserInfo"));
94                 }
95                 
96                 if(provider.getPathRequirement() == VFSProvider.ELEMENT_REQUIRED &&
97                                 Util.isNullOrTrimmedBlank(path)) {
98                     errs.add(Globals.ERROR_KEY, new ActionMessage("createNetworkPlace.error.noPath"));
99                 }
100             } catch (Exception JavaDoc ex) {
101                 log.error("Unexpect error.", ex);
102                 errs.add(Globals.ERROR_KEY, new ActionMessage("vfs.unexpected.error", ex.getMessage()));
103             }
104         }
105         return errs;
106     }
107
108     public int getTabCount() {
109         return 3;
110     }
111
112     public String JavaDoc getTabName(int idx) {
113         switch (idx) {
114             case 0:
115                 return "details";
116             case 1:
117                 return "other";
118             default:
119                 return "policies";
120         }
121     }
122
123     public String JavaDoc getTabTitle(int idx) {
124
125         // Get from resources
126
return null;
127     }
128
129     public void initialise(User user, Resource resource, boolean editing, MultiSelectSelectionModel policyModel,
130                             PropertyList selectedPolicies, User owner, boolean assignOnly) throws Exception JavaDoc {
131         super.initialise(user, resource, editing, policyModel, selectedPolicies, owner, assignOnly);
132         NetworkPlace networkPlace = (NetworkPlace) resource;
133
134         provider = VFSProviderManager.getInstance().getProvider(networkPlace.getScheme());
135         
136         if(provider == null) {
137             networkPlace = NetworkPlaceUtil.createNetworkPlaceForPath(networkPlace.getPath());
138             provider = VFSProviderManager.getInstance().getProvider(networkPlace.getScheme());
139         }
140         this.scheme = networkPlace.getScheme();
141         this.host = networkPlace.getHost();
142         this.path = networkPlace.getPath();
143         this.port = networkPlace.getPort();
144         this.username = networkPlace.getUsername();
145         this.password = networkPlace.getPassword();
146         this.queryString = "";
147         this.networkPlaceReadOnly = networkPlace.isReadOnly();
148         this.showHidden = networkPlace.isShowHidden();
149         this.allowRecursive = networkPlace.isAllowRecursive();
150         this.noDelete = networkPlace.isNoDelete();
151     }
152
153     public String JavaDoc getSelectedTab() {
154         return selectedTab;
155     }
156
157     public void setSelectedTab(String JavaDoc selectedTab) {
158         this.selectedTab = selectedTab;
159     }
160
161     public void applyToResource() throws Exception JavaDoc {
162         NetworkPlace np = (NetworkPlace) getResource();
163         np.setScheme(scheme);
164         np.setHost(getHost());
165         np.setPath(getPath());
166         np.setPort(getPort());
167         np.setUsername(getUsername());
168         np.setPassword(getPassword());
169         np.setScheme(getScheme());
170         np.setReadOnly(isNetworkPlaceReadOnly());
171         np.setAllowResursive(isAllowRecursive());
172         np.setNoDelete(isNoDelete());
173         np.setShowHidden(isShowHidden());
174     }
175
176     public String JavaDoc getPath() {
177         return path;
178     }
179
180     public void setPath(String JavaDoc path) {
181         this.path = path;
182     }
183
184     public boolean isAllowRecursive() {
185         return allowRecursive;
186     }
187
188     public void setAllowRecursive(boolean allowRecursive) {
189         this.allowRecursive = allowRecursive;
190     }
191
192     public boolean isNoDelete() {
193         return noDelete;
194     }
195
196     public void setNoDelete(boolean noDelete) {
197         this.noDelete = noDelete;
198     }
199
200     public boolean isNetworkPlaceReadOnly() {
201         return networkPlaceReadOnly;
202     }
203
204     public void setNetworkPlaceReadOnly(boolean readOnly) {
205         this.networkPlaceReadOnly = readOnly;
206     }
207
208     public boolean isShowHidden() {
209         return showHidden;
210     }
211
212     public void setShowHidden(boolean showHidden) {
213         this.showHidden = showHidden;
214     }
215
216     public String JavaDoc getPassword() {
217         return password;
218     }
219
220     public void setPassword(String JavaDoc password) {
221         this.password = password;
222     }
223
224     public String JavaDoc getUsername() {
225         return username;
226     }
227
228     public void setUsername(String JavaDoc username) {
229         this.username = username;
230     }
231
232     public VFSProvider getProvider() {
233         return provider;
234     }
235
236     public String JavaDoc getScheme() {
237         return scheme;
238     }
239
240     public String JavaDoc getHost() {
241         return host;
242     }
243
244     public void setHost(String JavaDoc host) {
245         this.host = host;
246     }
247
248     public int getPort() {
249         return port;
250     }
251
252     public void setPort(int port) {
253         this.port = port;
254     }
255
256     public String JavaDoc getQueryString() {
257         return queryString;
258     }
259
260     public void setQueryString(String JavaDoc queryString) {
261         this.queryString = queryString;
262     }
263
264     public void reset(ActionMapping mapping, HttpServletRequest JavaDoc request) {
265         super.reset(mapping, request);
266         this.showHidden = false;
267         this.networkPlaceReadOnly = false;
268         this.allowRecursive = false;
269         this.noDelete = false;
270     }
271
272     /*
273      * (non-Javadoc)
274      *
275      * @see com.sslexplorer.tabs.TabModel#getTabBundle(int)
276      */

277     public String JavaDoc getTabBundle(int idx) {
278         return null;
279     }
280 }
Popular Tags