2 |
26 Feb 07 |
jari |
1 |
/* |
2 |
26 Feb 07 |
jari |
Copyright @ 1999-2004, The Institute for Genomic Research (TIGR). |
2 |
26 Feb 07 |
jari |
All rights reserved. |
2 |
26 Feb 07 |
jari |
4 |
*/ |
2 |
26 Feb 07 |
jari |
5 |
/* |
2 |
26 Feb 07 |
jari |
* ScriptValueChangeDialog.java |
2 |
26 Feb 07 |
jari |
7 |
* |
2 |
26 Feb 07 |
jari |
* Created on March 10, 2004, 11:36 AM |
2 |
26 Feb 07 |
jari |
9 |
*/ |
2 |
26 Feb 07 |
jari |
10 |
|
2 |
26 Feb 07 |
jari |
11 |
package org.tigr.microarray.mev.script.scriptGUI; |
2 |
26 Feb 07 |
jari |
12 |
|
2 |
26 Feb 07 |
jari |
13 |
import java.awt.Color; |
2 |
26 Feb 07 |
jari |
14 |
import java.awt.Dimension; |
2 |
26 Feb 07 |
jari |
15 |
import java.awt.GridBagConstraints; |
2 |
26 Feb 07 |
jari |
16 |
import java.awt.GridBagLayout; |
2 |
26 Feb 07 |
jari |
17 |
import java.awt.GridLayout; |
2 |
26 Feb 07 |
jari |
18 |
import java.awt.Insets; |
2 |
26 Feb 07 |
jari |
19 |
import java.awt.Toolkit; |
2 |
26 Feb 07 |
jari |
20 |
import java.awt.event.ActionEvent; |
2 |
26 Feb 07 |
jari |
21 |
import java.awt.event.ActionListener; |
2 |
26 Feb 07 |
jari |
22 |
import java.awt.event.WindowEvent; |
2 |
26 Feb 07 |
jari |
23 |
import java.util.Hashtable; |
2 |
26 Feb 07 |
jari |
24 |
|
2 |
26 Feb 07 |
jari |
25 |
import javax.swing.BorderFactory; |
2 |
26 Feb 07 |
jari |
26 |
import javax.swing.JButton; |
2 |
26 Feb 07 |
jari |
27 |
import javax.swing.JComboBox; |
2 |
26 Feb 07 |
jari |
28 |
import javax.swing.JComponent; |
2 |
26 Feb 07 |
jari |
29 |
import javax.swing.JDialog; |
2 |
26 Feb 07 |
jari |
30 |
import javax.swing.JFrame; |
2 |
26 Feb 07 |
jari |
31 |
import javax.swing.JLabel; |
2 |
26 Feb 07 |
jari |
32 |
import javax.swing.JOptionPane; |
2 |
26 Feb 07 |
jari |
33 |
import javax.swing.JPanel; |
2 |
26 Feb 07 |
jari |
34 |
import javax.swing.JScrollPane; |
2 |
26 Feb 07 |
jari |
35 |
import javax.swing.JTextField; |
2 |
26 Feb 07 |
jari |
36 |
import javax.swing.JTextPane; |
2 |
26 Feb 07 |
jari |
37 |
import javax.swing.border.BevelBorder; |
2 |
26 Feb 07 |
jari |
38 |
|
2 |
26 Feb 07 |
jari |
39 |
import org.tigr.microarray.mev.cluster.gui.impl.GUIFactory; |
2 |
26 Feb 07 |
jari |
40 |
import org.tigr.microarray.mev.cluster.gui.impl.dialogs.AlgorithmDialog; |
2 |
26 Feb 07 |
jari |
41 |
import org.tigr.microarray.mev.cluster.gui.impl.dialogs.ParameterPanel; |
2 |
26 Feb 07 |
jari |
42 |
import org.tigr.microarray.mev.cluster.gui.impl.dialogs.dialogHelpUtil.HelpWindow; |
2 |
26 Feb 07 |
jari |
43 |
import org.tigr.microarray.mev.script.ScriptManager; |
2 |
26 Feb 07 |
jari |
44 |
import org.tigr.microarray.mev.script.util.ParameterAttributes; |
2 |
26 Feb 07 |
jari |
45 |
|
2 |
26 Feb 07 |
jari |
46 |
/** |
2 |
26 Feb 07 |
jari |
47 |
* |
2 |
26 Feb 07 |
jari |
* @author braisted |
2 |
26 Feb 07 |
jari |
49 |
*/ |
2 |
26 Feb 07 |
jari |
50 |
public class ScriptValueChangeDialog extends AlgorithmDialog { |
2 |
26 Feb 07 |
jari |
51 |
|
2 |
26 Feb 07 |
jari |
52 |
private int result = JOptionPane.CANCEL_OPTION; |
2 |
26 Feb 07 |
jari |
53 |
private ScriptManager manager; |
2 |
26 Feb 07 |
jari |
54 |
private String algName; |
2 |
26 Feb 07 |
jari |
55 |
private String origLine; |
2 |
26 Feb 07 |
jari |
56 |
private String line; |
2 |
26 Feb 07 |
jari |
57 |
private String key; |
2 |
26 Feb 07 |
jari |
58 |
private String origValue; |
2 |
26 Feb 07 |
jari |
59 |
private String valueType; |
2 |
26 Feb 07 |
jari |
60 |
|
2 |
26 Feb 07 |
jari |
61 |
private String leadingSpaces; |
2 |
26 Feb 07 |
jari |
62 |
private JLabel prefix; |
2 |
26 Feb 07 |
jari |
63 |
private String value; |
2 |
26 Feb 07 |
jari |
64 |
private JLabel suffix; |
2 |
26 Feb 07 |
jari |
65 |
|
2 |
26 Feb 07 |
jari |
66 |
private JComponent valueComponent; |
2 |
26 Feb 07 |
jari |
67 |
|
2 |
26 Feb 07 |
jari |
68 |
private Hashtable parameterHash; |
2 |
26 Feb 07 |
jari |
69 |
|
2 |
26 Feb 07 |
jari |
/** Creates a new instance of ScriptValueChangeDialog |
2 |
26 Feb 07 |
jari |
* @param origLine original line from xml fiels |
2 |
26 Feb 07 |
jari |
* @param algName Algorithm name |
2 |
26 Feb 07 |
jari |
* @param manager |
2 |
26 Feb 07 |
jari |
74 |
*/ |
2 |
26 Feb 07 |
jari |
75 |
public ScriptValueChangeDialog(String origLine, String algName, ScriptManager manager) { |
2 |
26 Feb 07 |
jari |
76 |
super(new JFrame(), "Value Editor", true); |
2 |
26 Feb 07 |
jari |
77 |
this.manager = manager; |
2 |
26 Feb 07 |
jari |
78 |
this.algName = algName; |
2 |
26 Feb 07 |
jari |
79 |
this.origLine = origLine; |
2 |
26 Feb 07 |
jari |
80 |
leadingSpaces = new String(); |
2 |
26 Feb 07 |
jari |
81 |
|
2 |
26 Feb 07 |
jari |
82 |
initializeValues(); |
2 |
26 Feb 07 |
jari |
83 |
|
2 |
26 Feb 07 |
jari |
84 |
ParameterPanel paramPanel = new ParameterPanel("Script Line"); |
2 |
26 Feb 07 |
jari |
85 |
paramPanel.setLayout(new GridBagLayout()); |
2 |
26 Feb 07 |
jari |
86 |
|
2 |
26 Feb 07 |
jari |
87 |
JLabel hintLabel = null; |
2 |
26 Feb 07 |
jari |
88 |
int lineBottomInset = 0; |
2 |
26 Feb 07 |
jari |
89 |
|
2 |
26 Feb 07 |
jari |
/* if(valueType != null) { |
2 |
26 Feb 07 |
jari |
if(valueType.equals("unknown")) |
2 |
26 Feb 07 |
jari |
hintLabel = new JLabel("(The proper value type could not be determined.)"); |
2 |
26 Feb 07 |
jari |
else if(!valueType.equals("boolean")) |
2 |
26 Feb 07 |
jari |
hintLabel = new JLabel("(Hint: The input value type appears to be "+valueType+".)"); |
2 |
26 Feb 07 |
jari |
else |
2 |
26 Feb 07 |
jari |
lineBottomInset = 15; |
2 |
26 Feb 07 |
jari |
97 |
} |
2 |
26 Feb 07 |
jari |
98 |
*/ |
2 |
26 Feb 07 |
jari |
99 |
|
2 |
26 Feb 07 |
jari |
100 |
paramPanel.add(prefix, new GridBagConstraints(0,0,1,1,0,0,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,0,lineBottomInset,0), 0, 0)); |
2 |
26 Feb 07 |
jari |
101 |
paramPanel.add(valueComponent, new GridBagConstraints(1,0,1,1,0,0,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,2,lineBottomInset,2), 0, 0)); |
2 |
26 Feb 07 |
jari |
102 |
paramPanel.add(suffix, new GridBagConstraints(2,0,1,1,0,0,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,0,lineBottomInset,0), 0, 0)); |
2 |
26 Feb 07 |
jari |
103 |
if(hintLabel != null) |
2 |
26 Feb 07 |
jari |
104 |
paramPanel.add(hintLabel, new GridBagConstraints(0,1,3,1,0,0,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(20,0,5,0), 0, 0)); |
2 |
26 Feb 07 |
jari |
105 |
|
2 |
26 Feb 07 |
jari |
106 |
JButton paramButton = new JButton("View Valid Parameters"); |
2 |
26 Feb 07 |
jari |
107 |
paramButton.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED)); |
2 |
26 Feb 07 |
jari |
108 |
paramButton.setFocusPainted(false); |
2 |
26 Feb 07 |
jari |
109 |
paramButton.addActionListener(new ParameterListener()); |
2 |
26 Feb 07 |
jari |
110 |
paramButton.setPreferredSize(new Dimension(180, 30)); |
2 |
26 Feb 07 |
jari |
111 |
paramButton.setSize(180, 30); |
2 |
26 Feb 07 |
jari |
112 |
paramPanel.add(paramButton, new GridBagConstraints(0,1,3,1,0,0,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(20,0,5,0), 0, 0)); |
2 |
26 Feb 07 |
jari |
113 |
|
2 |
26 Feb 07 |
jari |
114 |
parameterHash = manager.getParameterHash(algName); |
2 |
26 Feb 07 |
jari |
115 |
|
2 |
26 Feb 07 |
jari |
116 |
ButtonPanel bp = new ButtonPanel(); |
2 |
26 Feb 07 |
jari |
117 |
|
2 |
26 Feb 07 |
jari |
118 |
supplantButtonPanel(bp); |
2 |
26 Feb 07 |
jari |
119 |
addContent(paramPanel); |
2 |
26 Feb 07 |
jari |
120 |
pack(); |
2 |
26 Feb 07 |
jari |
121 |
} |
2 |
26 Feb 07 |
jari |
122 |
|
2 |
26 Feb 07 |
jari |
123 |
private void initializeValues() { |
2 |
26 Feb 07 |
jari |
124 |
String strPre; |
2 |
26 Feb 07 |
jari |
125 |
String strPost; |
2 |
26 Feb 07 |
jari |
126 |
int pnt = origLine.indexOf("value"); |
2 |
26 Feb 07 |
jari |
127 |
|
2 |
26 Feb 07 |
jari |
128 |
if(pnt >= 0) { |
2 |
26 Feb 07 |
jari |
129 |
|
2 |
26 Feb 07 |
jari |
130 |
strPre = origLine.substring(0, pnt); |
2 |
26 Feb 07 |
jari |
131 |
|
2 |
26 Feb 07 |
jari |
132 |
leadingSpaces = ""; |
2 |
26 Feb 07 |
jari |
133 |
|
2 |
26 Feb 07 |
jari |
134 |
char [] array = strPre.toCharArray(); |
2 |
26 Feb 07 |
jari |
135 |
int i = 0; |
2 |
26 Feb 07 |
jari |
136 |
while( i < array.length && array[i] == ' ' ){ |
2 |
26 Feb 07 |
jari |
137 |
leadingSpaces += " "; |
2 |
26 Feb 07 |
jari |
138 |
i++; |
2 |
26 Feb 07 |
jari |
139 |
} |
2 |
26 Feb 07 |
jari |
140 |
|
2 |
26 Feb 07 |
jari |
141 |
strPre = strPre.trim(); |
2 |
26 Feb 07 |
jari |
142 |
|
2 |
26 Feb 07 |
jari |
143 |
strPost = origLine.substring(pnt); |
2 |
26 Feb 07 |
jari |
144 |
|
2 |
26 Feb 07 |
jari |
145 |
pnt = strPost.indexOf("\""); |
2 |
26 Feb 07 |
jari |
146 |
value = strPost.substring(pnt+1); |
2 |
26 Feb 07 |
jari |
147 |
strPost = new String(value); |
2 |
26 Feb 07 |
jari |
148 |
|
2 |
26 Feb 07 |
jari |
149 |
pnt = value.indexOf("\""); |
2 |
26 Feb 07 |
jari |
150 |
value = value.substring(0, pnt); |
2 |
26 Feb 07 |
jari |
151 |
value.trim(); |
2 |
26 Feb 07 |
jari |
152 |
|
2 |
26 Feb 07 |
jari |
153 |
strPost = strPost.substring(pnt+1); |
2 |
26 Feb 07 |
jari |
154 |
|
2 |
26 Feb 07 |
jari |
155 |
prefix = createJLabel(strPre+" value=\""); |
2 |
26 Feb 07 |
jari |
156 |
suffix = createJLabel("\""+strPost); |
2 |
26 Feb 07 |
jari |
157 |
valueComponent = getValueComponent(value); |
2 |
26 Feb 07 |
jari |
158 |
} else { |
2 |
26 Feb 07 |
jari |
159 |
prefix = createJLabel(" "); |
2 |
26 Feb 07 |
jari |
160 |
suffix = createJLabel(" "); |
2 |
26 Feb 07 |
jari |
161 |
valueComponent = new JLabel("Incorrect construction"); |
2 |
26 Feb 07 |
jari |
162 |
} |
2 |
26 Feb 07 |
jari |
163 |
|
2 |
26 Feb 07 |
jari |
//get key |
2 |
26 Feb 07 |
jari |
165 |
pnt = origLine.indexOf("key"); |
2 |
26 Feb 07 |
jari |
166 |
if(pnt >= 0) { |
2 |
26 Feb 07 |
jari |
167 |
strPost = origLine.substring(pnt); |
2 |
26 Feb 07 |
jari |
168 |
pnt = strPost.indexOf("\""); //leading quote |
2 |
26 Feb 07 |
jari |
169 |
strPost = strPost.substring(pnt+1); |
2 |
26 Feb 07 |
jari |
170 |
pnt = strPost.indexOf("\""); |
2 |
26 Feb 07 |
jari |
171 |
this.key = strPost.substring(0, pnt); |
2 |
26 Feb 07 |
jari |
172 |
this.key = this.key.trim(); |
2 |
26 Feb 07 |
jari |
173 |
} |
2 |
26 Feb 07 |
jari |
174 |
|
2 |
26 Feb 07 |
jari |
175 |
|
2 |
26 Feb 07 |
jari |
176 |
// } |
2 |
26 Feb 07 |
jari |
177 |
} |
2 |
26 Feb 07 |
jari |
178 |
|
2 |
26 Feb 07 |
jari |
179 |
private JLabel createJLabel(String text) { |
2 |
26 Feb 07 |
jari |
180 |
JLabel label = new JLabel(text); |
2 |
26 Feb 07 |
jari |
181 |
label.setBackground(Color.white); |
2 |
26 Feb 07 |
jari |
182 |
return label; |
2 |
26 Feb 07 |
jari |
183 |
} |
2 |
26 Feb 07 |
jari |
184 |
|
2 |
26 Feb 07 |
jari |
185 |
private JComponent getValueComponent(String val) { |
2 |
26 Feb 07 |
jari |
186 |
String type = "unknown"; |
2 |
26 Feb 07 |
jari |
187 |
if(val.equals("true") || val.equals("false")) { |
2 |
26 Feb 07 |
jari |
188 |
String [] vals = new String[2]; |
2 |
26 Feb 07 |
jari |
189 |
vals[0] = "true"; |
2 |
26 Feb 07 |
jari |
190 |
vals[1] = "false"; |
2 |
26 Feb 07 |
jari |
191 |
JComboBox box = new JComboBox(vals); |
2 |
26 Feb 07 |
jari |
192 |
if(val.equals("true")) |
2 |
26 Feb 07 |
jari |
193 |
box.setSelectedIndex(0); |
2 |
26 Feb 07 |
jari |
194 |
else |
2 |
26 Feb 07 |
jari |
195 |
box.setSelectedIndex(1); |
2 |
26 Feb 07 |
jari |
196 |
type = "boolean"; |
2 |
26 Feb 07 |
jari |
197 |
valueType = type; |
2 |
26 Feb 07 |
jari |
198 |
return box; |
2 |
26 Feb 07 |
jari |
199 |
} else { |
2 |
26 Feb 07 |
jari |
200 |
boolean haveType = false; |
2 |
26 Feb 07 |
jari |
201 |
char [] array = val.toCharArray(); |
2 |
26 Feb 07 |
jari |
202 |
for(int i = 0; i < array.length; i++) { |
2 |
26 Feb 07 |
jari |
203 |
if(Character.isLetter(array[i]) && array[i] != '.'){ |
2 |
26 Feb 07 |
jari |
204 |
type = "a character string"; |
2 |
26 Feb 07 |
jari |
205 |
haveType = true; |
2 |
26 Feb 07 |
jari |
206 |
break; |
2 |
26 Feb 07 |
jari |
207 |
} |
2 |
26 Feb 07 |
jari |
208 |
} |
2 |
26 Feb 07 |
jari |
209 |
|
2 |
26 Feb 07 |
jari |
210 |
int dotCnt = 0; |
2 |
26 Feb 07 |
jari |
211 |
|
2 |
26 Feb 07 |
jari |
212 |
if(!haveType) { //must be integer or fp |
2 |
26 Feb 07 |
jari |
213 |
for(int i = 0; i < array.length; i++) { |
2 |
26 Feb 07 |
jari |
214 |
if(array[i] == '.'){ |
2 |
26 Feb 07 |
jari |
215 |
dotCnt++; |
2 |
26 Feb 07 |
jari |
216 |
} |
2 |
26 Feb 07 |
jari |
217 |
} |
2 |
26 Feb 07 |
jari |
218 |
if(dotCnt == 1) { |
2 |
26 Feb 07 |
jari |
219 |
type = "a floating point number"; |
2 |
26 Feb 07 |
jari |
220 |
haveType = true; |
2 |
26 Feb 07 |
jari |
221 |
} else if (dotCnt > 1) { |
2 |
26 Feb 07 |
jari |
222 |
type = "a character string"; |
2 |
26 Feb 07 |
jari |
223 |
haveType = true; |
2 |
26 Feb 07 |
jari |
224 |
} else if (dotCnt == 0) { |
2 |
26 Feb 07 |
jari |
225 |
type = "an integer number"; |
2 |
26 Feb 07 |
jari |
226 |
haveType = true; |
2 |
26 Feb 07 |
jari |
227 |
} |
2 |
26 Feb 07 |
jari |
228 |
} |
2 |
26 Feb 07 |
jari |
229 |
|
2 |
26 Feb 07 |
jari |
230 |
|
2 |
26 Feb 07 |
jari |
231 |
|
2 |
26 Feb 07 |
jari |
232 |
JTextField valField = new JTextField(val, val.length()+3); |
2 |
26 Feb 07 |
jari |
233 |
valueType = type; |
2 |
26 Feb 07 |
jari |
234 |
return valField; |
2 |
26 Feb 07 |
jari |
235 |
} |
2 |
26 Feb 07 |
jari |
236 |
} |
2 |
26 Feb 07 |
jari |
237 |
|
2 |
26 Feb 07 |
jari |
238 |
/** |
2 |
26 Feb 07 |
jari |
* Shows the dialog. |
2 |
26 Feb 07 |
jari |
240 |
*/ |
2 |
26 Feb 07 |
jari |
241 |
public int showModal() { |
2 |
26 Feb 07 |
jari |
242 |
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); |
2 |
26 Feb 07 |
jari |
243 |
setLocation((screenSize.width - getSize().width)/2, (screenSize.height - getSize().height)/2); |
2 |
26 Feb 07 |
jari |
244 |
show(); |
2 |
26 Feb 07 |
jari |
245 |
return result; |
2 |
26 Feb 07 |
jari |
246 |
} |
2 |
26 Feb 07 |
jari |
247 |
|
2 |
26 Feb 07 |
jari |
248 |
public void onReset() { |
2 |
26 Feb 07 |
jari |
249 |
|
2 |
26 Feb 07 |
jari |
250 |
} |
2 |
26 Feb 07 |
jari |
251 |
|
2 |
26 Feb 07 |
jari |
/** Returns the currently selected and possibly edited XML line |
2 |
26 Feb 07 |
jari |
253 |
*/ |
2 |
26 Feb 07 |
jari |
254 |
public String getLine() { |
2 |
26 Feb 07 |
jari |
255 |
return line; |
2 |
26 Feb 07 |
jari |
256 |
} |
2 |
26 Feb 07 |
jari |
257 |
|
2 |
26 Feb 07 |
jari |
/** Returns the edited line |
2 |
26 Feb 07 |
jari |
259 |
*/ |
2 |
26 Feb 07 |
jari |
260 |
public String getValue() { |
2 |
26 Feb 07 |
jari |
261 |
if(valueComponent != null) { |
2 |
26 Feb 07 |
jari |
262 |
if(valueComponent instanceof JTextField) |
2 |
26 Feb 07 |
jari |
263 |
return ((JTextField)valueComponent).getText(); |
2 |
26 Feb 07 |
jari |
264 |
if(valueComponent instanceof JComboBox) |
2 |
26 Feb 07 |
jari |
265 |
return (String)(((JComboBox)valueComponent).getSelectedItem()); |
2 |
26 Feb 07 |
jari |
266 |
} |
2 |
26 Feb 07 |
jari |
267 |
return null; |
2 |
26 Feb 07 |
jari |
268 |
} |
2 |
26 Feb 07 |
jari |
269 |
|
2 |
26 Feb 07 |
jari |
270 |
private boolean validateValue(String val) { |
2 |
26 Feb 07 |
jari |
271 |
ParameterAttributes atts = manager.getParameterAttributes(this.algName, this.key); |
2 |
26 Feb 07 |
jari |
272 |
|
2 |
26 Feb 07 |
jari |
273 |
if(atts == null) { |
2 |
26 Feb 07 |
jari |
274 |
JOptionPane.showMessageDialog(this, "Parameter value, type, and constraints could not be verified.\n"+ |
2 |
26 Feb 07 |
jari |
275 |
"Value will be committed but please consider it's validity.", "Parameter Validataion Warning", JOptionPane.WARNING_MESSAGE); |
2 |
26 Feb 07 |
jari |
276 |
return true; |
2 |
26 Feb 07 |
jari |
277 |
} |
2 |
26 Feb 07 |
jari |
278 |
|
2 |
26 Feb 07 |
jari |
279 |
String type = atts.getValueType(); |
2 |
26 Feb 07 |
jari |
280 |
if(!checkType(val, type)) { |
2 |
26 Feb 07 |
jari |
281 |
JOptionPane.showMessageDialog(this, "Parameter type seems incorrect ( requires: "+type+" )","Parameter Validataion Error", JOptionPane.ERROR_MESSAGE); |
2 |
26 Feb 07 |
jari |
282 |
return false; |
2 |
26 Feb 07 |
jari |
283 |
} |
2 |
26 Feb 07 |
jari |
284 |
|
2 |
26 Feb 07 |
jari |
285 |
if(atts.hasConstraints()) { |
2 |
26 Feb 07 |
jari |
286 |
String minStr = atts.getMin(); |
2 |
26 Feb 07 |
jari |
287 |
String maxStr = atts.getMax(); |
2 |
26 Feb 07 |
jari |
288 |
|
2 |
26 Feb 07 |
jari |
289 |
if(!checkConstraints(val, type, minStr, maxStr)){ |
2 |
26 Feb 07 |
jari |
290 |
JOptionPane.showMessageDialog(this, "Parameter falls outside the constraints.","Parameter Validataion Error", JOptionPane.ERROR_MESSAGE); |
2 |
26 Feb 07 |
jari |
291 |
return false; |
2 |
26 Feb 07 |
jari |
292 |
|
2 |
26 Feb 07 |
jari |
293 |
} |
2 |
26 Feb 07 |
jari |
294 |
|
2 |
26 Feb 07 |
jari |
295 |
} |
2 |
26 Feb 07 |
jari |
296 |
return true; |
2 |
26 Feb 07 |
jari |
297 |
} |
2 |
26 Feb 07 |
jari |
298 |
|
2 |
26 Feb 07 |
jari |
299 |
|
2 |
26 Feb 07 |
jari |
300 |
private boolean checkConstraints(String val, String type, String min, String max) { |
2 |
26 Feb 07 |
jari |
301 |
if(type.equals("int")){ |
2 |
26 Feb 07 |
jari |
302 |
int value = Integer.parseInt(val); |
2 |
26 Feb 07 |
jari |
303 |
if(!min.equals("") && !max.equals("")) |
2 |
26 Feb 07 |
jari |
304 |
return (value >= Integer.parseInt(min) && value <= Integer.parseInt(max)); |
2 |
26 Feb 07 |
jari |
305 |
else if(!max.equals("")) |
2 |
26 Feb 07 |
jari |
306 |
return (value <= Integer.parseInt(max)); |
2 |
26 Feb 07 |
jari |
307 |
else if(!min.equals("")) |
2 |
26 Feb 07 |
jari |
308 |
return (value >= Integer.parseInt(min)); |
2 |
26 Feb 07 |
jari |
309 |
return true; |
2 |
26 Feb 07 |
jari |
310 |
} else if(type.equals("float")){ |
2 |
26 Feb 07 |
jari |
311 |
float value = Float.parseFloat(val); |
2 |
26 Feb 07 |
jari |
312 |
if(!min.equals("") && !max.equals("")) |
2 |
26 Feb 07 |
jari |
313 |
return (value >= Float.parseFloat(min) && value <= Float.parseFloat(max)); |
2 |
26 Feb 07 |
jari |
314 |
else if(!max.equals("")) |
2 |
26 Feb 07 |
jari |
315 |
return (value <= Float.parseFloat(max)); |
2 |
26 Feb 07 |
jari |
316 |
else if(!min.equals("")) |
2 |
26 Feb 07 |
jari |
317 |
return (value >= Float.parseFloat(min)); |
2 |
26 Feb 07 |
jari |
318 |
return true; |
2 |
26 Feb 07 |
jari |
319 |
} else if(type.equals("long")){ |
2 |
26 Feb 07 |
jari |
320 |
long value = Long.parseLong(val); |
2 |
26 Feb 07 |
jari |
321 |
if(!min.equals("") && !max.equals("")) |
2 |
26 Feb 07 |
jari |
322 |
return (value >= Long.parseLong(min) && value <= Long.parseLong(max)); |
2 |
26 Feb 07 |
jari |
323 |
else if(!max.equals("")) |
2 |
26 Feb 07 |
jari |
324 |
return (value <= Long.parseLong(max)); |
2 |
26 Feb 07 |
jari |
325 |
else if(!min.equals("")) |
2 |
26 Feb 07 |
jari |
326 |
return (value >= Long.parseLong(min)); |
2 |
26 Feb 07 |
jari |
327 |
return true; |
2 |
26 Feb 07 |
jari |
328 |
} else if(type.equals("double")){ |
2 |
26 Feb 07 |
jari |
329 |
double value = Double.parseDouble(val); |
2 |
26 Feb 07 |
jari |
330 |
if(!min.equals("") && !max.equals("")) |
2 |
26 Feb 07 |
jari |
331 |
return (value >= Double.parseDouble(min) && value <= Double.parseDouble(max)); |
2 |
26 Feb 07 |
jari |
332 |
else if(!max.equals("")) |
2 |
26 Feb 07 |
jari |
333 |
return (value <= Double.parseDouble(max)); |
2 |
26 Feb 07 |
jari |
334 |
else if(!min.equals("")) |
2 |
26 Feb 07 |
jari |
335 |
return (value >= Double.parseDouble(min)); |
2 |
26 Feb 07 |
jari |
336 |
return true; |
2 |
26 Feb 07 |
jari |
337 |
} |
2 |
26 Feb 07 |
jari |
338 |
return true; |
2 |
26 Feb 07 |
jari |
339 |
} |
2 |
26 Feb 07 |
jari |
340 |
|
2 |
26 Feb 07 |
jari |
341 |
private boolean checkType(String val, String type) { |
2 |
26 Feb 07 |
jari |
342 |
try { |
2 |
26 Feb 07 |
jari |
343 |
if(type.equals("int")) |
2 |
26 Feb 07 |
jari |
344 |
Integer.parseInt(val); |
2 |
26 Feb 07 |
jari |
345 |
else if(type.equals("float")) |
2 |
26 Feb 07 |
jari |
346 |
Float.parseFloat(val); |
2 |
26 Feb 07 |
jari |
347 |
else if(type.equals("long")) |
2 |
26 Feb 07 |
jari |
348 |
Long.parseLong(val); |
2 |
26 Feb 07 |
jari |
349 |
else if(type.equals("double")) |
2 |
26 Feb 07 |
jari |
350 |
Double.parseDouble(val); |
2 |
26 Feb 07 |
jari |
351 |
} catch (Exception e) { |
2 |
26 Feb 07 |
jari |
352 |
return false; |
2 |
26 Feb 07 |
jari |
353 |
} |
2 |
26 Feb 07 |
jari |
354 |
return true; |
2 |
26 Feb 07 |
jari |
355 |
} |
2 |
26 Feb 07 |
jari |
356 |
|
2 |
26 Feb 07 |
jari |
357 |
|
2 |
26 Feb 07 |
jari |
358 |
private class ParameterListener implements ActionListener { |
2 |
26 Feb 07 |
jari |
359 |
public void actionPerformed(ActionEvent ae) { |
2 |
26 Feb 07 |
jari |
360 |
if(manager != null && algName != null) { |
2 |
26 Feb 07 |
jari |
361 |
String table = manager.getValidParametersTable(algName); |
2 |
26 Feb 07 |
jari |
362 |
if(table != null && table.length() > 0) { |
2 |
26 Feb 07 |
jari |
363 |
JFrame frame = new JFrame("Valid Parameters for "+algName); |
2 |
26 Feb 07 |
jari |
364 |
javax.swing.JDialog d = new JDialog(ScriptValueChangeDialog.this, "Valid Parameters for "+algName); |
2 |
26 Feb 07 |
jari |
365 |
JTextPane pane = new JTextPane(); |
2 |
26 Feb 07 |
jari |
366 |
pane.setContentType("text/html"); |
2 |
26 Feb 07 |
jari |
367 |
pane.setText(table); |
2 |
26 Feb 07 |
jari |
368 |
pane.setEditable(false); |
2 |
26 Feb 07 |
jari |
369 |
pane.setBackground(new Color(Integer.parseInt("FFFFCC",16))); |
2 |
26 Feb 07 |
jari |
370 |
pane.setMargin(new Insets(5,10,5,10)); |
2 |
26 Feb 07 |
jari |
371 |
JScrollPane spane = new JScrollPane(pane); |
2 |
26 Feb 07 |
jari |
372 |
d.getContentPane().add(spane); |
2 |
26 Feb 07 |
jari |
373 |
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); |
2 |
26 Feb 07 |
jari |
374 |
d.setSize(screenSize.width/3, (int)(screenSize.height/1.5)); |
2 |
26 Feb 07 |
jari |
375 |
d.setLocation((screenSize.width - d.getSize().width)/2, (screenSize.height - d.getSize().height)/2); |
2 |
26 Feb 07 |
jari |
376 |
d.setVisible(true); |
2 |
26 Feb 07 |
jari |
377 |
} |
2 |
26 Feb 07 |
jari |
378 |
} |
2 |
26 Feb 07 |
jari |
379 |
} |
2 |
26 Feb 07 |
jari |
380 |
} |
2 |
26 Feb 07 |
jari |
381 |
|
2 |
26 Feb 07 |
jari |
382 |
|
2 |
26 Feb 07 |
jari |
383 |
private class ButtonPanel extends JPanel { |
2 |
26 Feb 07 |
jari |
384 |
|
2 |
26 Feb 07 |
jari |
385 |
private JButton refreshBut; |
2 |
26 Feb 07 |
jari |
386 |
private JButton resetBut; |
2 |
26 Feb 07 |
jari |
387 |
private JButton cancelBut; |
2 |
26 Feb 07 |
jari |
388 |
private JButton okBut; |
2 |
26 Feb 07 |
jari |
389 |
private JButton infoButton; |
2 |
26 Feb 07 |
jari |
390 |
|
2 |
26 Feb 07 |
jari |
391 |
public ButtonPanel() { |
2 |
26 Feb 07 |
jari |
392 |
super(new GridBagLayout()); |
2 |
26 Feb 07 |
jari |
393 |
ButtonListener listener = new ButtonListener(); |
2 |
26 Feb 07 |
jari |
394 |
JPanel buttonsPanel = new JPanel(new GridLayout(1, 3, 10, 10)); |
2 |
26 Feb 07 |
jari |
395 |
|
2 |
26 Feb 07 |
jari |
396 |
resetBut = new JButton("Reset"); |
2 |
26 Feb 07 |
jari |
397 |
resetBut.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED)); |
2 |
26 Feb 07 |
jari |
398 |
resetBut.setFocusPainted(false); |
2 |
26 Feb 07 |
jari |
399 |
resetBut.setActionCommand("reset-cmd"); |
2 |
26 Feb 07 |
jari |
400 |
resetBut.addActionListener(listener); |
2 |
26 Feb 07 |
jari |
401 |
|
2 |
26 Feb 07 |
jari |
402 |
buttonsPanel.add(resetBut); |
2 |
26 Feb 07 |
jari |
403 |
|
2 |
26 Feb 07 |
jari |
404 |
cancelBut = new JButton("Cancel"); |
2 |
26 Feb 07 |
jari |
405 |
cancelBut.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED)); |
2 |
26 Feb 07 |
jari |
406 |
cancelBut.setSize(60,30); |
2 |
26 Feb 07 |
jari |
407 |
cancelBut.setPreferredSize(new Dimension(60,30)); |
2 |
26 Feb 07 |
jari |
408 |
cancelBut.setFocusPainted(false); |
2 |
26 Feb 07 |
jari |
409 |
cancelBut.setActionCommand("cancel-cmd"); |
2 |
26 Feb 07 |
jari |
410 |
cancelBut.addActionListener(listener); |
2 |
26 Feb 07 |
jari |
411 |
buttonsPanel.add(cancelBut); |
2 |
26 Feb 07 |
jari |
412 |
|
2 |
26 Feb 07 |
jari |
413 |
okBut = new JButton("Commit"); |
2 |
26 Feb 07 |
jari |
414 |
okBut.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED, new Color(240,240,240), new Color(180,180,180), new Color(10,0,0), new Color(10,10,10) )); |
2 |
26 Feb 07 |
jari |
415 |
okBut.setSize(60,30); |
2 |
26 Feb 07 |
jari |
416 |
okBut.setPreferredSize(new Dimension(60,30)); |
2 |
26 Feb 07 |
jari |
417 |
okBut.setFocusPainted(false); |
2 |
26 Feb 07 |
jari |
418 |
okBut.setActionCommand("commit-cmd"); |
2 |
26 Feb 07 |
jari |
419 |
okBut.addActionListener(listener); |
2 |
26 Feb 07 |
jari |
420 |
buttonsPanel.add(okBut); |
2 |
26 Feb 07 |
jari |
421 |
|
2 |
26 Feb 07 |
jari |
422 |
infoButton = new JButton(null, GUIFactory.getIcon("Information24.gif")); |
2 |
26 Feb 07 |
jari |
423 |
infoButton.setActionCommand("info-cmd"); |
2 |
26 Feb 07 |
jari |
424 |
infoButton.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED)); |
2 |
26 Feb 07 |
jari |
425 |
infoButton.setSize(30,30); |
2 |
26 Feb 07 |
jari |
426 |
infoButton.setPreferredSize(new Dimension(30,30)); |
2 |
26 Feb 07 |
jari |
427 |
infoButton.setFocusPainted(false); |
2 |
26 Feb 07 |
jari |
428 |
infoButton.addActionListener(listener); |
2 |
26 Feb 07 |
jari |
429 |
|
2 |
26 Feb 07 |
jari |
430 |
add(infoButton, new GridBagConstraints(0,0,1,1,1.0,1.0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0,0,0,0),0,0)); |
2 |
26 Feb 07 |
jari |
431 |
add(buttonsPanel, new GridBagConstraints(1,0,1,1,1.0,1.0,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,0,0,0),0,0)); |
2 |
26 Feb 07 |
jari |
432 |
} |
2 |
26 Feb 07 |
jari |
433 |
|
2 |
26 Feb 07 |
jari |
434 |
public class ButtonListener implements ActionListener { |
2 |
26 Feb 07 |
jari |
435 |
|
2 |
26 Feb 07 |
jari |
436 |
public void actionPerformed(ActionEvent ae) { |
2 |
26 Feb 07 |
jari |
437 |
String cmd = ae.getActionCommand(); |
2 |
26 Feb 07 |
jari |
438 |
if(cmd.equals("apply-cmd")) { |
2 |
26 Feb 07 |
jari |
439 |
|
2 |
26 Feb 07 |
jari |
440 |
} else if(cmd.equals("cancel-cmd")) { |
2 |
26 Feb 07 |
jari |
441 |
dispose(); |
2 |
26 Feb 07 |
jari |
442 |
} else if(cmd.equals("commit-cmd")) { |
2 |
26 Feb 07 |
jari |
443 |
result = JOptionPane.OK_OPTION; |
2 |
26 Feb 07 |
jari |
444 |
|
2 |
26 Feb 07 |
jari |
445 |
if(valueType != null && valueType.equals("boolean")){ |
2 |
26 Feb 07 |
jari |
446 |
value = (String)((JComboBox)valueComponent).getSelectedItem(); |
2 |
26 Feb 07 |
jari |
447 |
line = leadingSpaces + prefix.getText()+value+suffix.getText(); |
2 |
26 Feb 07 |
jari |
448 |
dispose(); |
2 |
26 Feb 07 |
jari |
449 |
} else { |
2 |
26 Feb 07 |
jari |
450 |
value = ((JTextField)valueComponent).getText(); |
2 |
26 Feb 07 |
jari |
451 |
if(validateValue(value)) { |
2 |
26 Feb 07 |
jari |
452 |
line = leadingSpaces + prefix.getText()+value+suffix.getText(); |
2 |
26 Feb 07 |
jari |
453 |
dispose(); |
2 |
26 Feb 07 |
jari |
454 |
} |
2 |
26 Feb 07 |
jari |
455 |
} |
2 |
26 Feb 07 |
jari |
456 |
} else if(cmd.equals("reset-cmd")) { |
2 |
26 Feb 07 |
jari |
457 |
|
2 |
26 Feb 07 |
jari |
458 |
} else if(cmd.equals("info-cmd")) { |
2 |
26 Feb 07 |
jari |
459 |
HelpWindow hw = new HelpWindow(ScriptValueChangeDialog.this, "Script Value Input Dialog"); |
2 |
26 Feb 07 |
jari |
460 |
if(hw.getWindowContent()){ |
2 |
26 Feb 07 |
jari |
461 |
hw.setSize(450,650); |
2 |
26 Feb 07 |
jari |
462 |
hw.setLocation(); |
2 |
26 Feb 07 |
jari |
463 |
hw.show(); |
2 |
26 Feb 07 |
jari |
464 |
} |
2 |
26 Feb 07 |
jari |
465 |
} |
2 |
26 Feb 07 |
jari |
466 |
} |
2 |
26 Feb 07 |
jari |
467 |
|
2 |
26 Feb 07 |
jari |
468 |
public void windowClosing(WindowEvent e) { |
2 |
26 Feb 07 |
jari |
469 |
result = JOptionPane.CLOSED_OPTION; |
2 |
26 Feb 07 |
jari |
470 |
dispose(); |
2 |
26 Feb 07 |
jari |
471 |
} |
2 |
26 Feb 07 |
jari |
472 |
|
2 |
26 Feb 07 |
jari |
473 |
} |
2 |
26 Feb 07 |
jari |
474 |
} |
2 |
26 Feb 07 |
jari |
475 |
|
2 |
26 Feb 07 |
jari |
476 |
} |