1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  package com.gridsystems.config.modules.tomcat;
25  
26  import java.io.File;
27  import java.util.Iterator;
28  import java.util.List;
29  
30  import com.gridsystems.config.Configurator;
31  import com.gridsystems.config.ConfiguratorModel;
32  import com.gridsystems.config.tools.ErrorSupport;
33  import com.gridsystems.config.tools.IpVerifier;
34  import com.gridsystems.config.tools.PasswordVerifier;
35  import com.gridsystems.config.tools.PortVerifier;
36  import com.gridsystems.config.tools.console.AbstractConsoleView;
37  import com.gridsystems.config.tools.console.GroupField;
38  import com.gridsystems.config.tools.console.PasswordField;
39  import com.gridsystems.config.tools.console.ValueField;
40  
41  
42  
43  
44  
45  
46  
47  public class TomcatConsoleView extends AbstractConsoleView {
48  
49    
50  
51  
52    private ValueField ipField = null;
53  
54    
55  
56  
57    ValueField fldShutdownPort;
58  
59    
60  
61  
62    ValueField fldKeystoreDir;
63  
64    
65  
66  
67    PasswordField fldKeystorePass;
68  
69    
70  
71  
72    ConnectorGroupField grpConns;
73  
74    
75  
76  
77  
78  
79    public TomcatConsoleView(Configurator config) {
80      super(config);
81  
82      String numPattern = "{0,number,0}";
83      ErrorSupport support = new ErrorSupport(this.getConfigurator());
84      support.addError("badIP", getString("errors.badIP"));
85      support.addError("loopbackIP", getString("errors.loopback.ip.short"));
86      ipField = createValueField("field.num.ip", null);
87      IpVerifier ipVerifier =
88        new IpVerifier(support, "badIP", TomcatConfigModel.ALLOWED_IP_TYPE);
89      ipVerifier.setLoopbackAddressAllowed(false);
90      ipVerifier.setErrorLoopbackId("loopbackIP");
91      ipField.setVerifier(ipVerifier);
92  
93      fldShutdownPort = createValueField("fldShutdownPort", numPattern);
94      fldKeystoreDir = createValueField("fldKeystoreDir", null);
95      fldKeystorePass = createPasswordField("fldKeystorePass");
96  
97      this.addKeyMapping(bundle.getString("field.num.ip.keyMap"), this.ipField);
98  
99      grpConns = new ConnectorGroupField(bundle);
100   }
101 
102   
103 
104 
105   public String getTitle() {
106     return bundle.getString("config.name");
107   }
108 
109   
110 
111 
112   public String getSubtitle() {
113     return bundle.getString("config.description");
114   }
115 
116   
117 
118 
119 
120 
121   public void removeConnector(int i) {
122     
123     grpConns.removeField(i);
124 
125     
126     removeKeyMapping((GroupField)grpConns);
127     List fields = grpConns.getFields();
128     for (int pos = i; pos < fields.size(); pos++) {
129       ConnectorField cf = (ConnectorField)fields.get(pos);
130       cf.setIndex(pos);
131     }
132     addKeyMapping((GroupField)grpConns);
133   }
134 
135   
136 
137 
138   public void addConnector() {
139     int port = 0;
140     for (Iterator it = grpConns.getFields().iterator(); it.hasNext();) {
141       ConnectorField f = (ConnectorField)it.next();
142       Connector cc = f.getConnector();
143       port = Math.max(port, cc.getPort());
144     }
145 
146     Connector c = new Connector(getString("ConnectorEditor.unnamed.text"),
147       port + 1, Connector.HTTP);
148     ConnectorField cf = new ConnectorField(bundle, c, grpConns.getFields().size(),
149                                           bundle.getString("fldConnectorsList.keyMap"));
150     grpConns.addField(cf);
151     addKeyMapping(cf);
152   }
153 
154   
155 
156 
157   public void getValues(ConfiguratorModel model) {
158     TomcatConfigModel m = (TomcatConfigModel)model;
159     this.ipField.setValue(m.getIp());
160 
161     Connector[] conns = m.getConnectors();
162 
163     grpConns.clearFields();
164     for (int i = 0; i < conns.length; i++) {
165       grpConns.addField(
166           new ConnectorField(this.bundle, conns[i], i,
167               this.bundle.getString("fldConnectorsList.keyMap")));
168     }
169 
170     fldShutdownPort.setValue(new Integer(m.getShutdownPort()));
171     fldKeystoreDir.setValue(m.getKeystoreDir().getAbsolutePath());
172     fldKeystorePass.setValue(m.getKeystorePassword());
173 
174   }
175 
176   
177 
178 
179   public void setValues(ConfiguratorModel model) {
180     TomcatConfigModel m = (TomcatConfigModel)model;
181 
182     try {
183       m.setIp((String) this.ipField.getValue());
184       m.setConnectors(grpConns.getConnectors());
185 
186       m.setShutdownPort(((Number)fldShutdownPort.getValue()).intValue());
187 
188       m.setKeystoreDir(new File(fldKeystoreDir.getValue().toString()));
189       m.setKeystorePassword(fldKeystorePass.getValue().toString());
190     } catch (Exception e) {
191     }
192   }
193 
194   
195 
196 
197   protected void getContents(List<Object> list) {
198     list.add(this.ipField);
199     ErrorSupport support = new ErrorSupport(getConfigurator());
200     support.addError("shPortInvalid", getString("errors.shPortInvalid", null));
201 
202     PortVerifier verShut  = new PortVerifier(support, "shPortInvalid");
203     PasswordVerifier verPass = new PasswordVerifier(support, 6, 32);
204 
205     fldShutdownPort.setVerifier(verShut);
206     fldKeystorePass.setVerifier(verPass);
207 
208     GroupField grpHttp = new GroupField(bundle, "pnlHttp.title");
209     GroupField grpHttps = new GroupField(bundle, "pnlHttps.title");
210 
211     grpHttp.addField(fldShutdownPort);
212     grpHttp.addField(grpConns);
213 
214     grpHttps.addField(fldKeystoreDir);
215     grpHttps.addField(fldKeystorePass);
216 
217     list.add(grpHttp);
218     list.add("-");
219     list.add(grpHttps);
220 
221     addKeyMapping((GroupField)grpConns);
222     addKeyMapping(fldShutdownPort);
223     addKeyMapping(fldKeystoreDir);
224     addKeyMapping(fldKeystorePass);
225   }
226 }