2 |
26 Feb 07 |
jari |
1 |
/* |
2 |
26 Feb 07 |
jari |
Copyright @ 1999-2005, 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 |
* $RCSfile: SOTAInitDialog.java,v $ |
2 |
26 Feb 07 |
jari |
* $Revision: 1.3 $ |
2 |
26 Feb 07 |
jari |
* $Date: 2005/03/10 20:22:06 $ |
2 |
26 Feb 07 |
jari |
* $Author: braistedj $ |
2 |
26 Feb 07 |
jari |
* $State: Exp $ |
2 |
26 Feb 07 |
jari |
11 |
*/ |
2 |
26 Feb 07 |
jari |
12 |
|
2 |
26 Feb 07 |
jari |
13 |
package org.tigr.microarray.mev.cluster.gui.impl.sota; |
2 |
26 Feb 07 |
jari |
14 |
|
2 |
26 Feb 07 |
jari |
15 |
import java.awt.Color; |
2 |
26 Feb 07 |
jari |
16 |
import java.awt.Dimension; |
2 |
26 Feb 07 |
jari |
17 |
import java.awt.GridBagConstraints; |
2 |
26 Feb 07 |
jari |
18 |
import java.awt.GridBagLayout; |
2 |
26 Feb 07 |
jari |
19 |
import java.awt.Insets; |
2 |
26 Feb 07 |
jari |
20 |
import java.awt.Toolkit; |
2 |
26 Feb 07 |
jari |
21 |
import java.awt.event.ActionEvent; |
2 |
26 Feb 07 |
jari |
22 |
import java.awt.event.ActionListener; |
2 |
26 Feb 07 |
jari |
23 |
import java.awt.event.ItemEvent; |
2 |
26 Feb 07 |
jari |
24 |
import java.awt.event.ItemListener; |
2 |
26 Feb 07 |
jari |
25 |
import java.awt.event.WindowEvent; |
2 |
26 Feb 07 |
jari |
26 |
|
2 |
26 Feb 07 |
jari |
27 |
import javax.swing.JCheckBox; |
2 |
26 Feb 07 |
jari |
28 |
import javax.swing.JOptionPane; |
2 |
26 Feb 07 |
jari |
29 |
import javax.swing.JPanel; |
2 |
26 Feb 07 |
jari |
30 |
import javax.swing.JRadioButton; |
2 |
26 Feb 07 |
jari |
31 |
import javax.swing.UIManager; |
2 |
26 Feb 07 |
jari |
32 |
|
2 |
26 Feb 07 |
jari |
33 |
import org.tigr.microarray.mev.cluster.algorithm.Algorithm; |
2 |
26 Feb 07 |
jari |
34 |
import org.tigr.microarray.mev.cluster.gui.impl.dialogs.AlgorithmDialog; |
2 |
26 Feb 07 |
jari |
35 |
import org.tigr.microarray.mev.cluster.gui.impl.dialogs.DialogListener; |
2 |
26 Feb 07 |
jari |
36 |
import org.tigr.microarray.mev.cluster.gui.impl.dialogs.DistanceMetricPanel; |
2 |
26 Feb 07 |
jari |
37 |
import org.tigr.microarray.mev.cluster.gui.impl.dialogs.HCLSelectionPanel; |
2 |
26 Feb 07 |
jari |
38 |
import org.tigr.microarray.mev.cluster.gui.impl.dialogs.SampleSelectionPanel; |
2 |
26 Feb 07 |
jari |
39 |
import org.tigr.microarray.mev.cluster.gui.impl.dialogs.dialogHelpUtil.HelpWindow; |
2 |
26 Feb 07 |
jari |
40 |
|
2 |
26 Feb 07 |
jari |
41 |
/** |
2 |
26 Feb 07 |
jari |
42 |
* |
2 |
26 Feb 07 |
jari |
* @author braisted |
2 |
26 Feb 07 |
jari |
44 |
*/ |
2 |
26 Feb 07 |
jari |
45 |
public class SOTAInitDialog extends AlgorithmDialog { |
2 |
26 Feb 07 |
jari |
46 |
|
2 |
26 Feb 07 |
jari |
47 |
public int result = JOptionPane.CANCEL_OPTION; |
2 |
26 Feb 07 |
jari |
48 |
private float initDiv = 0.01f; |
2 |
26 Feb 07 |
jari |
49 |
|
2 |
26 Feb 07 |
jari |
50 |
private SampleSelectionPanel sampleSelectionPanel; |
2 |
26 Feb 07 |
jari |
51 |
private javax.swing.ButtonGroup divideCritButtonGroup; |
2 |
26 Feb 07 |
jari |
52 |
private javax.swing.JPanel parameters; |
2 |
26 Feb 07 |
jari |
53 |
private javax.swing.JPanel growthCritPanel; |
2 |
26 Feb 07 |
jari |
54 |
private javax.swing.JLabel maxCyclesLabel; |
2 |
26 Feb 07 |
jari |
55 |
private javax.swing.JLabel maxDivLabel; |
2 |
26 Feb 07 |
jari |
56 |
private javax.swing.JTextField maxTreeDiv; |
2 |
26 Feb 07 |
jari |
57 |
private javax.swing.JTextField stopEpochCriteria; |
2 |
26 Feb 07 |
jari |
58 |
private javax.swing.JLabel epochImpLabel; |
2 |
26 Feb 07 |
jari |
59 |
private javax.swing.JTextField maxCyclesText; |
2 |
26 Feb 07 |
jari |
60 |
private javax.swing.JCheckBox runMaxCycles; |
2 |
26 Feb 07 |
jari |
61 |
private javax.swing.JTextField maxEpPerCycleText; |
2 |
26 Feb 07 |
jari |
62 |
private javax.swing.JLabel jLabel52; |
2 |
26 Feb 07 |
jari |
63 |
private javax.swing.JCheckBox runIterative; |
2 |
26 Feb 07 |
jari |
64 |
private javax.swing.JPanel migCritPanel; |
2 |
26 Feb 07 |
jari |
65 |
private javax.swing.JLabel jLabel57; |
2 |
26 Feb 07 |
jari |
66 |
private javax.swing.JTextField migFactor_w; |
2 |
26 Feb 07 |
jari |
67 |
private javax.swing.JLabel jLabel58; |
2 |
26 Feb 07 |
jari |
68 |
private javax.swing.JLabel jLabel49; |
2 |
26 Feb 07 |
jari |
69 |
private javax.swing.JTextField migFactor_s; |
2 |
26 Feb 07 |
jari |
70 |
private javax.swing.JTextField migFactor_p; |
2 |
26 Feb 07 |
jari |
71 |
private java.awt.Choice levelChoice; |
2 |
26 Feb 07 |
jari |
72 |
private javax.swing.JLabel jLabel1; |
2 |
26 Feb 07 |
jari |
73 |
private javax.swing.JPanel cellDivPanel; |
2 |
26 Feb 07 |
jari |
74 |
private javax.swing.JRadioButton useClusterDiversity; |
2 |
26 Feb 07 |
jari |
75 |
private javax.swing.JPanel jPanel1; |
2 |
26 Feb 07 |
jari |
76 |
private javax.swing.JRadioButton useClusterVariance; |
2 |
26 Feb 07 |
jari |
77 |
private javax.swing.JLabel pValueLabel; |
2 |
26 Feb 07 |
jari |
78 |
private javax.swing.JTextField pValue; |
2 |
26 Feb 07 |
jari |
79 |
private HCLSelectionPanel hclOpsPanel; |
2 |
26 Feb 07 |
jari |
80 |
|
2 |
26 Feb 07 |
jari |
81 |
private DistanceMetricPanel metricPanel; |
2 |
26 Feb 07 |
jari |
82 |
private String globalMetricName; |
2 |
26 Feb 07 |
jari |
83 |
private boolean globalAbsoluteSetting; |
2 |
26 Feb 07 |
jari |
84 |
|
2 |
26 Feb 07 |
jari |
/** Creates new form JSOTAInitDialog */ |
2 |
26 Feb 07 |
jari |
86 |
public SOTAInitDialog(java.awt.Frame parent, int factor, String globalMetricName, boolean globalAbsoluteSetting) { |
2 |
26 Feb 07 |
jari |
87 |
super(parent, "SOTA: Self Organizing Tree Algorithm", true); |
2 |
26 Feb 07 |
jari |
88 |
|
2 |
26 Feb 07 |
jari |
89 |
this.globalMetricName = globalMetricName; |
2 |
26 Feb 07 |
jari |
90 |
this.globalAbsoluteSetting = globalAbsoluteSetting; |
2 |
26 Feb 07 |
jari |
91 |
|
2 |
26 Feb 07 |
jari |
92 |
initComponents(); |
2 |
26 Feb 07 |
jari |
93 |
|
2 |
26 Feb 07 |
jari |
94 |
if(factor == -1){ |
2 |
26 Feb 07 |
jari |
95 |
maxTreeDiv.setText("0.90"); |
2 |
26 Feb 07 |
jari |
96 |
initDiv = 0.90f; |
2 |
26 Feb 07 |
jari |
97 |
} |
2 |
26 Feb 07 |
jari |
//use for future feature |
2 |
26 Feb 07 |
jari |
99 |
this.runIterative.setVisible(false); |
2 |
26 Feb 07 |
jari |
100 |
|
2 |
26 Feb 07 |
jari |
101 |
Listener listener = new Listener(); |
2 |
26 Feb 07 |
jari |
102 |
this.addWindowListener(listener); |
2 |
26 Feb 07 |
jari |
103 |
setActionListeners(listener); |
2 |
26 Feb 07 |
jari |
104 |
metricPanel.addActionListener(listener); |
2 |
26 Feb 07 |
jari |
105 |
|
2 |
26 Feb 07 |
jari |
106 |
this.useClusterVariance.addItemListener(listener); |
2 |
26 Feb 07 |
jari |
107 |
setSize(580,630); |
2 |
26 Feb 07 |
jari |
//pack(); |
2 |
26 Feb 07 |
jari |
109 |
} |
2 |
26 Feb 07 |
jari |
110 |
|
2 |
26 Feb 07 |
jari |
111 |
private void updateMaxTreeDiversity() { |
2 |
26 Feb 07 |
jari |
112 |
int function = metricPanel.getMetricIndex(); |
2 |
26 Feb 07 |
jari |
113 |
int factor; |
2 |
26 Feb 07 |
jari |
114 |
|
2 |
26 Feb 07 |
jari |
115 |
if ((function==Algorithm.PEARSON) || |
2 |
26 Feb 07 |
jari |
116 |
(function==Algorithm.PEARSONUNCENTERED) || |
2 |
26 Feb 07 |
jari |
117 |
(function==Algorithm.PEARSONSQARED) || |
2 |
26 Feb 07 |
jari |
118 |
(function==Algorithm.COSINE) || |
2 |
26 Feb 07 |
jari |
119 |
(function==Algorithm.COVARIANCE) || |
2 |
26 Feb 07 |
jari |
120 |
(function==Algorithm.DOTPRODUCT) || |
2 |
26 Feb 07 |
jari |
121 |
(function==Algorithm.SPEARMANRANK) || |
2 |
26 Feb 07 |
jari |
122 |
(function==Algorithm.KENDALLSTAU)) { |
2 |
26 Feb 07 |
jari |
123 |
factor = -1; |
2 |
26 Feb 07 |
jari |
124 |
} else { |
2 |
26 Feb 07 |
jari |
125 |
factor = 1; |
2 |
26 Feb 07 |
jari |
126 |
} |
2 |
26 Feb 07 |
jari |
127 |
|
2 |
26 Feb 07 |
jari |
128 |
|
2 |
26 Feb 07 |
jari |
129 |
if(factor == -1){ |
2 |
26 Feb 07 |
jari |
130 |
maxTreeDiv.setText("0.90"); |
2 |
26 Feb 07 |
jari |
131 |
initDiv = 0.90f; |
2 |
26 Feb 07 |
jari |
132 |
} else { |
2 |
26 Feb 07 |
jari |
133 |
maxTreeDiv.setText("0.01"); |
2 |
26 Feb 07 |
jari |
134 |
|
2 |
26 Feb 07 |
jari |
135 |
} |
2 |
26 Feb 07 |
jari |
136 |
} |
2 |
26 Feb 07 |
jari |
137 |
|
2 |
26 Feb 07 |
jari |
138 |
private void initComponents() { |
2 |
26 Feb 07 |
jari |
139 |
|
2 |
26 Feb 07 |
jari |
140 |
sampleSelectionPanel = new SampleSelectionPanel(Color.white, UIManager.getColor("Label.foreground"), true, "Sample Selection"); |
2 |
26 Feb 07 |
jari |
141 |
|
2 |
26 Feb 07 |
jari |
142 |
metricPanel = new DistanceMetricPanel(globalMetricName, globalAbsoluteSetting, "Euclidean Distance", "SOTA", true, true); |
2 |
26 Feb 07 |
jari |
143 |
|
2 |
26 Feb 07 |
jari |
144 |
maxCyclesLabel = new javax.swing.JLabel(); |
2 |
26 Feb 07 |
jari |
145 |
maxDivLabel = new javax.swing.JLabel(); |
2 |
26 Feb 07 |
jari |
146 |
maxTreeDiv = new javax.swing.JTextField(); |
2 |
26 Feb 07 |
jari |
147 |
stopEpochCriteria = new javax.swing.JTextField(); |
2 |
26 Feb 07 |
jari |
148 |
epochImpLabel = new javax.swing.JLabel(); |
2 |
26 Feb 07 |
jari |
149 |
maxCyclesText = new javax.swing.JTextField(); |
2 |
26 Feb 07 |
jari |
150 |
runMaxCycles = new javax.swing.JCheckBox(); |
2 |
26 Feb 07 |
jari |
151 |
maxEpPerCycleText = new javax.swing.JTextField(); |
2 |
26 Feb 07 |
jari |
152 |
jLabel52 = new javax.swing.JLabel(); |
2 |
26 Feb 07 |
jari |
153 |
runIterative = new javax.swing.JCheckBox(); |
2 |
26 Feb 07 |
jari |
154 |
migCritPanel = new javax.swing.JPanel(); |
2 |
26 Feb 07 |
jari |
155 |
jLabel57 = new javax.swing.JLabel(); |
2 |
26 Feb 07 |
jari |
156 |
migFactor_w = new javax.swing.JTextField(); |
2 |
26 Feb 07 |
jari |
157 |
jLabel58 = new javax.swing.JLabel(); |
2 |
26 Feb 07 |
jari |
158 |
jLabel49 = new javax.swing.JLabel(); |
2 |
26 Feb 07 |
jari |
159 |
migFactor_s = new javax.swing.JTextField(); |
2 |
26 Feb 07 |
jari |
160 |
migFactor_p = new javax.swing.JTextField(); |
2 |
26 Feb 07 |
jari |
161 |
levelChoice = new java.awt.Choice(); |
2 |
26 Feb 07 |
jari |
162 |
for(int i = 5; i >= 0; i--){ |
2 |
26 Feb 07 |
jari |
163 |
this.levelChoice.addItem(String.valueOf(i)); |
2 |
26 Feb 07 |
jari |
164 |
} |
2 |
26 Feb 07 |
jari |
165 |
this.levelChoice.select("5"); |
2 |
26 Feb 07 |
jari |
166 |
jLabel1 = new javax.swing.JLabel(); |
2 |
26 Feb 07 |
jari |
167 |
cellDivPanel = new javax.swing.JPanel(); |
2 |
26 Feb 07 |
jari |
168 |
useClusterDiversity = new javax.swing.JRadioButton(); |
2 |
26 Feb 07 |
jari |
169 |
jPanel1 = new javax.swing.JPanel(); |
2 |
26 Feb 07 |
jari |
170 |
useClusterVariance = new javax.swing.JRadioButton(); |
2 |
26 Feb 07 |
jari |
171 |
pValueLabel = new javax.swing.JLabel(); |
2 |
26 Feb 07 |
jari |
172 |
pValue = new javax.swing.JTextField(); |
2 |
26 Feb 07 |
jari |
173 |
hclOpsPanel = new HCLSelectionPanel(); |
2 |
26 Feb 07 |
jari |
174 |
|
2 |
26 Feb 07 |
jari |
175 |
|
2 |
26 Feb 07 |
jari |
//GROWTH CRITERIA PANEL |
2 |
26 Feb 07 |
jari |
177 |
growthCritPanel = new javax.swing.JPanel(); |
2 |
26 Feb 07 |
jari |
178 |
growthCritPanel.setLayout(new GridBagLayout()); |
2 |
26 Feb 07 |
jari |
179 |
growthCritPanel.setBackground(Color.white); |
2 |
26 Feb 07 |
jari |
180 |
growthCritPanel.setBorder(new javax.swing.border.TitledBorder(new javax.swing.border.LineBorder(Color.gray), "Growth Termination Criteria", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 1, 12), Color.black)); |
2 |
26 Feb 07 |
jari |
181 |
|
2 |
26 Feb 07 |
jari |
182 |
maxCyclesLabel.setText("Max. Cycles"); |
2 |
26 Feb 07 |
jari |
183 |
maxCyclesLabel.setToolTipText("Maximum training cycles (final cluster number = MaxCycles +1)"); |
2 |
26 Feb 07 |
jari |
184 |
|
2 |
26 Feb 07 |
jari |
185 |
maxDivLabel.setText("Max. Cell Diversity"); |
2 |
26 Feb 07 |
jari |
186 |
maxDivLabel.setToolTipText("Training will stop when the most diverse cell crosses this limit. (for Euclidean diversity approaches 0, for Pearson diversity approaches 1.0) "); |
2 |
26 Feb 07 |
jari |
187 |
|
2 |
26 Feb 07 |
jari |
188 |
maxTreeDiv.setColumns(6); |
2 |
26 Feb 07 |
jari |
189 |
maxTreeDiv.setText("0.01"); |
2 |
26 Feb 07 |
jari |
190 |
|
2 |
26 Feb 07 |
jari |
191 |
stopEpochCriteria.setColumns(6); |
2 |
26 Feb 07 |
jari |
192 |
stopEpochCriteria.setText("0.0001"); |
2 |
26 Feb 07 |
jari |
193 |
|
2 |
26 Feb 07 |
jari |
194 |
epochImpLabel.setText("Min. Epoch Error Improvement"); |
2 |
26 Feb 07 |
jari |
195 |
epochImpLabel.setToolTipText("If improvement in relative tree error changes by less than this, current cycle ends"); |
2 |
26 Feb 07 |
jari |
196 |
|
2 |
26 Feb 07 |
jari |
197 |
maxCyclesText.setColumns(6); |
2 |
26 Feb 07 |
jari |
198 |
maxCyclesText.setText("10"); |
2 |
26 Feb 07 |
jari |
199 |
|
2 |
26 Feb 07 |
jari |
200 |
runMaxCycles.setText("Run Maximum Number of Cycles (unrestricted growth)"); |
2 |
26 Feb 07 |
jari |
201 |
runMaxCycles.setBackground(Color.white); |
2 |
26 Feb 07 |
jari |
202 |
runMaxCycles.setForeground(UIManager.getColor("Label.foreground")); |
2 |
26 Feb 07 |
jari |
203 |
runMaxCycles.setAlignmentX(JCheckBox.CENTER_ALIGNMENT); |
2 |
26 Feb 07 |
jari |
204 |
runMaxCycles.setFocusPainted(false); |
2 |
26 Feb 07 |
jari |
205 |
|
2 |
26 Feb 07 |
jari |
206 |
maxEpPerCycleText.setColumns(6); |
2 |
26 Feb 07 |
jari |
207 |
maxEpPerCycleText.setText("1000"); |
2 |
26 Feb 07 |
jari |
208 |
|
2 |
26 Feb 07 |
jari |
209 |
jLabel52.setText("Max. epochs/cycle"); |
2 |
26 Feb 07 |
jari |
210 |
jLabel52.setToolTipText("Maximum training epochs per cycle"); |
2 |
26 Feb 07 |
jari |
// growthCritPanel.add(runIterative); |
2 |
26 Feb 07 |
jari |
212 |
|
2 |
26 Feb 07 |
jari |
213 |
addWindowListener(new java.awt.event.WindowAdapter() { |
2 |
26 Feb 07 |
jari |
214 |
public void windowClosing(java.awt.event.WindowEvent evt) { |
2 |
26 Feb 07 |
jari |
215 |
closeDialog(evt); |
2 |
26 Feb 07 |
jari |
216 |
} |
2 |
26 Feb 07 |
jari |
217 |
}); |
2 |
26 Feb 07 |
jari |
218 |
|
2 |
26 Feb 07 |
jari |
219 |
growthCritPanel.add(maxCyclesLabel, new GridBagConstraints(0,0,1,1,1.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,30,5,0),0,0)); |
2 |
26 Feb 07 |
jari |
220 |
growthCritPanel.add(maxCyclesText, new GridBagConstraints(1,0,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,5,5,0),0,0)); |
2 |
26 Feb 07 |
jari |
221 |
growthCritPanel.add(maxDivLabel, new GridBagConstraints(2,0,1,1,1.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,40,5,0),0,0)); |
2 |
26 Feb 07 |
jari |
222 |
growthCritPanel.add(maxTreeDiv, new GridBagConstraints(3,0,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,5,5,20),0,0)); |
2 |
26 Feb 07 |
jari |
223 |
growthCritPanel.add(jLabel52, new GridBagConstraints(0,1,1,1,1.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,30,0,0),0,0)); |
2 |
26 Feb 07 |
jari |
224 |
growthCritPanel.add(maxEpPerCycleText, new GridBagConstraints(1,1,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,5,0,0),0,0)); |
2 |
26 Feb 07 |
jari |
225 |
growthCritPanel.add(epochImpLabel, new GridBagConstraints(2,1,1,1,1.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,40,0,0),0,0)); |
2 |
26 Feb 07 |
jari |
226 |
growthCritPanel.add(stopEpochCriteria, new GridBagConstraints(3,1,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,5,0,20),0,0)); |
2 |
26 Feb 07 |
jari |
227 |
growthCritPanel.add(runMaxCycles, new GridBagConstraints(0,2,4,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(5,90,0,10),0,0)); |
2 |
26 Feb 07 |
jari |
228 |
|
2 |
26 Feb 07 |
jari |
229 |
migCritPanel.setLayout(new GridBagLayout()); |
2 |
26 Feb 07 |
jari |
230 |
migCritPanel.setBorder(new javax.swing.border.TitledBorder(new javax.swing.border.EtchedBorder(), "Cetroid Migration and Neighborhood Parameters", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 1, 12), Color.black)); |
2 |
26 Feb 07 |
jari |
231 |
migCritPanel.setBackground(Color.white); |
2 |
26 Feb 07 |
jari |
232 |
|
2 |
26 Feb 07 |
jari |
233 |
jLabel57.setText("Winning Cell Migration Weight"); |
2 |
26 Feb 07 |
jari |
234 |
jLabel57.setToolTipText("Factor to apply to winning cell migration"); |
2 |
26 Feb 07 |
jari |
235 |
migFactor_w.setColumns(5); |
2 |
26 Feb 07 |
jari |
236 |
migFactor_w.setText("0.01"); |
2 |
26 Feb 07 |
jari |
237 |
|
2 |
26 Feb 07 |
jari |
238 |
jLabel58.setText("Parent Cell Migration Weight"); |
2 |
26 Feb 07 |
jari |
239 |
jLabel58.setToolTipText("Factor to apply to parent cell migration"); |
2 |
26 Feb 07 |
jari |
240 |
migFactor_p.setColumns(5); |
2 |
26 Feb 07 |
jari |
241 |
migFactor_p.setText("0.005"); |
2 |
26 Feb 07 |
jari |
242 |
|
2 |
26 Feb 07 |
jari |
243 |
jLabel49.setText("Sister Cell Migration Weight"); |
2 |
26 Feb 07 |
jari |
244 |
jLabel49.setToolTipText("Factor to apply to sister cell migration"); |
2 |
26 Feb 07 |
jari |
245 |
migFactor_s.setColumns(5); |
2 |
26 Feb 07 |
jari |
246 |
migFactor_s.setText("0.001"); |
2 |
26 Feb 07 |
jari |
247 |
|
2 |
26 Feb 07 |
jari |
248 |
JPanel pPanel = new JPanel(); |
2 |
26 Feb 07 |
jari |
249 |
pPanel.setBackground(Color.white); |
2 |
26 Feb 07 |
jari |
250 |
pPanel.setLayout(new GridBagLayout()); |
2 |
26 Feb 07 |
jari |
251 |
pPanel.add(jLabel1, new GridBagConstraints(0,0,1,1,1.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,0,0,0),0,0)); |
2 |
26 Feb 07 |
jari |
252 |
pPanel.add(levelChoice, new GridBagConstraints(1,0,1,1,1.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,15,0,20),0,0)); |
2 |
26 Feb 07 |
jari |
253 |
|
2 |
26 Feb 07 |
jari |
254 |
jLabel1.setText("Neighborhood Level"); |
2 |
26 Feb 07 |
jari |
255 |
jLabel1.setToolTipText("Determines extent of redistribution neighborhood"); |
2 |
26 Feb 07 |
jari |
256 |
|
2 |
26 Feb 07 |
jari |
257 |
levelChoice.setSize(50, 35); |
2 |
26 Feb 07 |
jari |
258 |
|
2 |
26 Feb 07 |
jari |
259 |
migCritPanel.add(jLabel57, new GridBagConstraints(0,0,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(5,0,5,0),0,0) ); |
2 |
26 Feb 07 |
jari |
260 |
migCritPanel.add(jLabel58, new GridBagConstraints(0,1,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,0,5,0),0,0)); |
2 |
26 Feb 07 |
jari |
261 |
migCritPanel.add(jLabel49, new GridBagConstraints(0,2,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,0,5,0),0,0)); |
2 |
26 Feb 07 |
jari |
262 |
migCritPanel.add(migFactor_w, new GridBagConstraints(1,0,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(5,25,5,20),0,0)); |
2 |
26 Feb 07 |
jari |
263 |
migCritPanel.add(migFactor_p, new GridBagConstraints(1,1,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,25,5,20),0,0)); |
2 |
26 Feb 07 |
jari |
264 |
migCritPanel.add(migFactor_s, new GridBagConstraints(1,2,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,25,5,20),0,0)); |
2 |
26 Feb 07 |
jari |
265 |
migCritPanel.add(pPanel, new GridBagConstraints(2,0,1,3,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,0,0,0),0,0)); |
2 |
26 Feb 07 |
jari |
266 |
|
2 |
26 Feb 07 |
jari |
267 |
cellDivPanel.setLayout(new GridBagLayout()); |
2 |
26 Feb 07 |
jari |
268 |
cellDivPanel.setBackground(Color.white); |
2 |
26 Feb 07 |
jari |
269 |
cellDivPanel.setBorder(new javax.swing.border.TitledBorder(new javax.swing.border.EtchedBorder(), "Cell Division Criteria", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 1, 12), Color.black)); |
2 |
26 Feb 07 |
jari |
270 |
|
2 |
26 Feb 07 |
jari |
271 |
useClusterDiversity.setToolTipText("Use cell resource to determin cell to divide"); |
2 |
26 Feb 07 |
jari |
272 |
useClusterDiversity.setSelected(true); |
2 |
26 Feb 07 |
jari |
273 |
useClusterDiversity.setText("Use Cell Diversity ( mean dist(gene,centroid) )"); |
2 |
26 Feb 07 |
jari |
274 |
useClusterDiversity.setAlignmentX(JRadioButton.CENTER_ALIGNMENT); |
2 |
26 Feb 07 |
jari |
275 |
useClusterDiversity.setBackground(Color.white); |
2 |
26 Feb 07 |
jari |
276 |
useClusterDiversity.setFocusPainted(false); |
2 |
26 Feb 07 |
jari |
277 |
useClusterDiversity.setForeground(UIManager.getColor("Label.foreground")); |
2 |
26 Feb 07 |
jari |
278 |
divideCritButtonGroup = new javax.swing.ButtonGroup(); |
2 |
26 Feb 07 |
jari |
279 |
divideCritButtonGroup.add(useClusterDiversity); |
2 |
26 Feb 07 |
jari |
280 |
|
2 |
26 Feb 07 |
jari |
281 |
jPanel1.setLayout(new GridBagLayout()); |
2 |
26 Feb 07 |
jari |
282 |
jPanel1.setBackground(Color.white); |
2 |
26 Feb 07 |
jari |
283 |
|
2 |
26 Feb 07 |
jari |
284 |
useClusterVariance.setToolTipText("Use variance and p Value to stop cell division"); |
2 |
26 Feb 07 |
jari |
285 |
useClusterVariance.setText("Use Cell Variability ( max( dist(g(i), g(j)) ) )"); |
2 |
26 Feb 07 |
jari |
286 |
useClusterVariance.setBackground(Color.white); |
2 |
26 Feb 07 |
jari |
287 |
useClusterVariance.setFocusPainted(false); |
2 |
26 Feb 07 |
jari |
288 |
useClusterVariance.setForeground(UIManager.getColor("Label.foreground")); |
2 |
26 Feb 07 |
jari |
289 |
|
2 |
26 Feb 07 |
jari |
290 |
divideCritButtonGroup.add(useClusterVariance); |
2 |
26 Feb 07 |
jari |
291 |
|
2 |
26 Feb 07 |
jari |
292 |
pValueLabel.setText("p Value"); |
2 |
26 Feb 07 |
jari |
293 |
pValueLabel.setBackground(Color.white); |
2 |
26 Feb 07 |
jari |
294 |
pValue.setText("0.05"); |
2 |
26 Feb 07 |
jari |
295 |
pValue.setEnabled(false); |
2 |
26 Feb 07 |
jari |
296 |
|
2 |
26 Feb 07 |
jari |
297 |
jPanel1.add(useClusterVariance, new GridBagConstraints(0,0,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,0,0,30),0,0)); |
2 |
26 Feb 07 |
jari |
298 |
jPanel1.add(pValueLabel, new GridBagConstraints(1,0,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,20,0,0),0,0)); |
2 |
26 Feb 07 |
jari |
299 |
jPanel1.add(pValue, new GridBagConstraints(2,0,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,10,0,30),0,0)); |
2 |
26 Feb 07 |
jari |
300 |
|
2 |
26 Feb 07 |
jari |
301 |
cellDivPanel.add(useClusterDiversity, new GridBagConstraints(0,0,3,1,1.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,90,0,0),0,0)); |
2 |
26 Feb 07 |
jari |
302 |
cellDivPanel.add(jPanel1, new GridBagConstraints(0,1,3,1,1.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,10,5,10),0,0)); |
2 |
26 Feb 07 |
jari |
303 |
|
2 |
26 Feb 07 |
jari |
//Main Parameter panel |
2 |
26 Feb 07 |
jari |
305 |
parameters = new javax.swing.JPanel(); |
2 |
26 Feb 07 |
jari |
306 |
parameters.setLayout(new GridBagLayout()); |
2 |
26 Feb 07 |
jari |
307 |
parameters.setPreferredSize(new java.awt.Dimension(520, 412)); |
2 |
26 Feb 07 |
jari |
308 |
parameters.setMaximumSize(new java.awt.Dimension(32767, 690)); |
2 |
26 Feb 07 |
jari |
309 |
parameters.add(sampleSelectionPanel, new GridBagConstraints(0,0,1,1,1.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,0,0,0),0,0)); |
2 |
26 Feb 07 |
jari |
310 |
parameters.add(metricPanel, new GridBagConstraints(0,1,1,1,1.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,0,0,0),0,0)); |
2 |
26 Feb 07 |
jari |
311 |
parameters.add(growthCritPanel, new GridBagConstraints(0,2,1,1,1.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,0,0,0),0,0)); |
2 |
26 Feb 07 |
jari |
312 |
parameters.add(migCritPanel, new GridBagConstraints(0,3,1,1,1.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,0,0,0),0,0)); |
2 |
26 Feb 07 |
jari |
313 |
parameters.add(cellDivPanel, new GridBagConstraints(0,4,1,1,1.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,0,0,0),0,0)); |
2 |
26 Feb 07 |
jari |
314 |
parameters.add(hclOpsPanel, new GridBagConstraints(0,5,1,1,1.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,0,0,0),0,0)); |
2 |
26 Feb 07 |
jari |
315 |
|
2 |
26 Feb 07 |
jari |
316 |
addContent(parameters); |
2 |
26 Feb 07 |
jari |
317 |
} |
2 |
26 Feb 07 |
jari |
318 |
|
2 |
26 Feb 07 |
jari |
319 |
|
2 |
26 Feb 07 |
jari |
/** Closes the dialog */ |
2 |
26 Feb 07 |
jari |
321 |
private void closeDialog(java.awt.event.WindowEvent evt) { |
2 |
26 Feb 07 |
jari |
322 |
setVisible(false); |
2 |
26 Feb 07 |
jari |
323 |
dispose(); |
2 |
26 Feb 07 |
jari |
324 |
} |
2 |
26 Feb 07 |
jari |
325 |
|
2 |
26 Feb 07 |
jari |
326 |
/** |
2 |
26 Feb 07 |
jari |
* Shows the dialog. |
2 |
26 Feb 07 |
jari |
328 |
*/ |
2 |
26 Feb 07 |
jari |
329 |
public int showModal() { |
2 |
26 Feb 07 |
jari |
330 |
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); |
2 |
26 Feb 07 |
jari |
331 |
setLocation((screenSize.width - getSize().width)/2, (screenSize.height - getSize().height)/2); |
2 |
26 Feb 07 |
jari |
332 |
show(); |
2 |
26 Feb 07 |
jari |
333 |
return result; |
2 |
26 Feb 07 |
jari |
334 |
} |
2 |
26 Feb 07 |
jari |
335 |
|
2 |
26 Feb 07 |
jari |
336 |
/** |
2 |
26 Feb 07 |
jari |
* Retrieves integer values corresponding to supplied key |
2 |
26 Feb 07 |
jari |
338 |
*/ |
2 |
26 Feb 07 |
jari |
339 |
public int getInt(String key) throws NumberFormatException{ |
2 |
26 Feb 07 |
jari |
340 |
|
2 |
26 Feb 07 |
jari |
341 |
String inputText; |
2 |
26 Feb 07 |
jari |
342 |
int value = 0; |
2 |
26 Feb 07 |
jari |
343 |
|
2 |
26 Feb 07 |
jari |
344 |
if(key.equals("maxCycles")){ |
2 |
26 Feb 07 |
jari |
345 |
inputText = this.maxCyclesText.getText(); |
2 |
26 Feb 07 |
jari |
346 |
value = (Integer.parseInt(inputText)); |
2 |
26 Feb 07 |
jari |
347 |
} |
2 |
26 Feb 07 |
jari |
348 |
else if(key.equals("maxEpochsPerCycle")){ |
2 |
26 Feb 07 |
jari |
349 |
inputText = this.maxEpPerCycleText.getText(); |
2 |
26 Feb 07 |
jari |
350 |
value = (Integer.parseInt(inputText)); |
2 |
26 Feb 07 |
jari |
351 |
} |
2 |
26 Feb 07 |
jari |
352 |
else if(key.equals("neighborhood-level")){ |
2 |
26 Feb 07 |
jari |
353 |
value = Integer.parseInt(levelChoice.getSelectedItem()); |
2 |
26 Feb 07 |
jari |
354 |
} |
2 |
26 Feb 07 |
jari |
355 |
return value; |
2 |
26 Feb 07 |
jari |
356 |
} |
2 |
26 Feb 07 |
jari |
357 |
|
2 |
26 Feb 07 |
jari |
358 |
|
2 |
26 Feb 07 |
jari |
359 |
/** |
2 |
26 Feb 07 |
jari |
* Returns the currently selected metric |
2 |
26 Feb 07 |
jari |
361 |
*/ |
2 |
26 Feb 07 |
jari |
362 |
public int getDistanceMetric() { |
2 |
26 Feb 07 |
jari |
363 |
return metricPanel.getMetricIndex(); |
2 |
26 Feb 07 |
jari |
364 |
} |
2 |
26 Feb 07 |
jari |
365 |
|
2 |
26 Feb 07 |
jari |
366 |
/** |
2 |
26 Feb 07 |
jari |
* Returns true if the absolute checkbox is selected, else false |
2 |
26 Feb 07 |
jari |
368 |
*/ |
2 |
26 Feb 07 |
jari |
369 |
public boolean isAbsoluteDistance() { |
2 |
26 Feb 07 |
jari |
370 |
return metricPanel.getAbsoluteSelection(); |
2 |
26 Feb 07 |
jari |
371 |
} |
2 |
26 Feb 07 |
jari |
372 |
|
2 |
26 Feb 07 |
jari |
373 |
|
2 |
26 Feb 07 |
jari |
374 |
/** |
2 |
26 Feb 07 |
jari |
* Retrieves float values corresponding to supplied key |
2 |
26 Feb 07 |
jari |
376 |
*/ |
2 |
26 Feb 07 |
jari |
377 |
public float getFloat(String key) throws NumberFormatException{ |
2 |
26 Feb 07 |
jari |
378 |
|
2 |
26 Feb 07 |
jari |
379 |
String inputText; |
2 |
26 Feb 07 |
jari |
380 |
float value = 0; |
2 |
26 Feb 07 |
jari |
381 |
|
2 |
26 Feb 07 |
jari |
382 |
if(key.equals("maxTreeDiv")){ |
2 |
26 Feb 07 |
jari |
383 |
inputText = maxTreeDiv.getText(); |
2 |
26 Feb 07 |
jari |
384 |
value = Float.parseFloat(inputText); |
2 |
26 Feb 07 |
jari |
385 |
} |
2 |
26 Feb 07 |
jari |
386 |
else if(key.equals("epochStopCriteria")){ |
2 |
26 Feb 07 |
jari |
387 |
inputText = stopEpochCriteria.getText(); |
2 |
26 Feb 07 |
jari |
388 |
value = Float.parseFloat(inputText); |
2 |
26 Feb 07 |
jari |
389 |
} |
2 |
26 Feb 07 |
jari |
390 |
else if(key.equals("migFactor_w")){ |
2 |
26 Feb 07 |
jari |
391 |
inputText = migFactor_w.getText(); |
2 |
26 Feb 07 |
jari |
392 |
value = Float.parseFloat(inputText); |
2 |
26 Feb 07 |
jari |
393 |
} |
2 |
26 Feb 07 |
jari |
394 |
else if(key.equals("migFactor_p")){ |
2 |
26 Feb 07 |
jari |
395 |
inputText = migFactor_p.getText(); |
2 |
26 Feb 07 |
jari |
396 |
value = Float.parseFloat(inputText); |
2 |
26 Feb 07 |
jari |
397 |
} |
2 |
26 Feb 07 |
jari |
398 |
else if(key.equals("migFactor_s")){ |
2 |
26 Feb 07 |
jari |
399 |
inputText = migFactor_s.getText(); |
2 |
26 Feb 07 |
jari |
400 |
value = Float.parseFloat(inputText); |
2 |
26 Feb 07 |
jari |
401 |
} |
2 |
26 Feb 07 |
jari |
402 |
else if(key.equals("pValue")){ |
2 |
26 Feb 07 |
jari |
403 |
inputText = pValue.getText(); |
2 |
26 Feb 07 |
jari |
404 |
value = Float.parseFloat(inputText); |
2 |
26 Feb 07 |
jari |
405 |
} |
2 |
26 Feb 07 |
jari |
406 |
return value; |
2 |
26 Feb 07 |
jari |
407 |
} |
2 |
26 Feb 07 |
jari |
408 |
|
2 |
26 Feb 07 |
jari |
409 |
/** |
2 |
26 Feb 07 |
jari |
* Retrieves boolean values corresponding to supplied key |
2 |
26 Feb 07 |
jari |
411 |
*/ |
2 |
26 Feb 07 |
jari |
412 |
public boolean getBoolean(String key){ |
2 |
26 Feb 07 |
jari |
413 |
boolean value = false; |
2 |
26 Feb 07 |
jari |
414 |
|
2 |
26 Feb 07 |
jari |
415 |
if(key.equals("runToMaxCycles")){ |
2 |
26 Feb 07 |
jari |
416 |
value = runMaxCycles.isSelected(); |
2 |
26 Feb 07 |
jari |
417 |
} |
2 |
26 Feb 07 |
jari |
418 |
else if(key.equals("useVariance")){ |
2 |
26 Feb 07 |
jari |
419 |
value = useClusterVariance.isSelected(); |
2 |
26 Feb 07 |
jari |
420 |
} |
2 |
26 Feb 07 |
jari |
421 |
else if(key.equals("calcClusterHCL")){ |
2 |
26 Feb 07 |
jari |
422 |
value = this.hclOpsPanel.isHCLSelected(); |
2 |
26 Feb 07 |
jari |
423 |
} |
2 |
26 Feb 07 |
jari |
424 |
else if(key.equals("runIterative")){ |
2 |
26 Feb 07 |
jari |
425 |
value = runIterative.isSelected(); |
2 |
26 Feb 07 |
jari |
426 |
} |
2 |
26 Feb 07 |
jari |
427 |
else if(key.equals("clusterGenes")){ |
2 |
26 Feb 07 |
jari |
428 |
value = this.sampleSelectionPanel.isClusterGenesSelected(); |
2 |
26 Feb 07 |
jari |
429 |
} |
2 |
26 Feb 07 |
jari |
430 |
return value; |
2 |
26 Feb 07 |
jari |
431 |
} |
2 |
26 Feb 07 |
jari |
432 |
|
2 |
26 Feb 07 |
jari |
433 |
private void resetControls(){ |
2 |
26 Feb 07 |
jari |
434 |
this.sampleSelectionPanel.setClusterGenesSelected(true); |
2 |
26 Feb 07 |
jari |
435 |
this.maxCyclesText.setText("10"); |
2 |
26 Feb 07 |
jari |
436 |
this.maxTreeDiv.setText(Float.toString(this.initDiv)); |
2 |
26 Feb 07 |
jari |
437 |
this.maxEpPerCycleText.setText("1000"); |
2 |
26 Feb 07 |
jari |
438 |
this.stopEpochCriteria.setText("0.0001"); |
2 |
26 Feb 07 |
jari |
439 |
this.runMaxCycles.setSelected(false); |
2 |
26 Feb 07 |
jari |
440 |
this.migFactor_w.setText("0.01"); |
2 |
26 Feb 07 |
jari |
441 |
this.migFactor_p.setText("0.005"); |
2 |
26 Feb 07 |
jari |
442 |
this.migFactor_s.setText("0.001"); |
2 |
26 Feb 07 |
jari |
443 |
this.levelChoice.select(0); |
2 |
26 Feb 07 |
jari |
444 |
this.hclOpsPanel.setHCLSelected(false); |
2 |
26 Feb 07 |
jari |
445 |
this.useClusterDiversity.setSelected(true); |
2 |
26 Feb 07 |
jari |
446 |
this.pValue.setText("0.05"); |
2 |
26 Feb 07 |
jari |
447 |
metricPanel.reset(); |
2 |
26 Feb 07 |
jari |
448 |
updateMaxTreeDiversity(); |
2 |
26 Feb 07 |
jari |
449 |
} |
2 |
26 Feb 07 |
jari |
450 |
|
2 |
26 Feb 07 |
jari |
451 |
private boolean validateValues(){ |
2 |
26 Feb 07 |
jari |
452 |
boolean result = true; |
2 |
26 Feb 07 |
jari |
453 |
int i; |
2 |
26 Feb 07 |
jari |
454 |
float f; |
2 |
26 Feb 07 |
jari |
455 |
try{ |
2 |
26 Feb 07 |
jari |
456 |
i = Integer.parseInt(this.maxCyclesText.getText()); |
2 |
26 Feb 07 |
jari |
457 |
if(i <= 0){ |
2 |
26 Feb 07 |
jari |
458 |
JOptionPane.showMessageDialog(this, "Input Value Error. Max cycles must be > 0. Please try again.", "Input error", JOptionPane.WARNING_MESSAGE); |
2 |
26 Feb 07 |
jari |
459 |
this.maxCyclesText.requestFocus(); |
2 |
26 Feb 07 |
jari |
460 |
this.maxCyclesText.selectAll(); |
2 |
26 Feb 07 |
jari |
461 |
return false; |
2 |
26 Feb 07 |
jari |
462 |
} |
2 |
26 Feb 07 |
jari |
463 |
|
2 |
26 Feb 07 |
jari |
464 |
} catch (NumberFormatException nfe) { |
2 |
26 Feb 07 |
jari |
465 |
JOptionPane.showMessageDialog(this, "Input Format Error. "+nfe.getMessage()+" is not valid. Please try again.", "Input error", JOptionPane.WARNING_MESSAGE); |
2 |
26 Feb 07 |
jari |
466 |
this.maxCyclesText.requestFocus(); |
2 |
26 Feb 07 |
jari |
467 |
this.maxCyclesText.selectAll(); |
2 |
26 Feb 07 |
jari |
468 |
return false; |
2 |
26 Feb 07 |
jari |
469 |
} |
2 |
26 Feb 07 |
jari |
470 |
try{ |
2 |
26 Feb 07 |
jari |
471 |
i = Integer.parseInt(this.maxEpPerCycleText.getText()); |
2 |
26 Feb 07 |
jari |
472 |
if(i <= 0){ |
2 |
26 Feb 07 |
jari |
473 |
JOptionPane.showMessageDialog(this, "Input Value Error. Max epochs/cycle must be > 0. Please try again.", "Input error", JOptionPane.WARNING_MESSAGE); |
2 |
26 Feb 07 |
jari |
474 |
this.maxEpPerCycleText.requestFocus(); |
2 |
26 Feb 07 |
jari |
475 |
this.maxEpPerCycleText.selectAll(); |
2 |
26 Feb 07 |
jari |
476 |
return false; |
2 |
26 Feb 07 |
jari |
477 |
} |
2 |
26 Feb 07 |
jari |
478 |
} catch (NumberFormatException nfe) { |
2 |
26 Feb 07 |
jari |
479 |
JOptionPane.showMessageDialog(this, "Input Format Error. "+nfe.getMessage()+" is not valid. Please try again.", "Input error", JOptionPane.WARNING_MESSAGE); |
2 |
26 Feb 07 |
jari |
480 |
this.maxEpPerCycleText.requestFocus(); |
2 |
26 Feb 07 |
jari |
481 |
this.maxEpPerCycleText.selectAll(); |
2 |
26 Feb 07 |
jari |
482 |
return false; |
2 |
26 Feb 07 |
jari |
483 |
} |
2 |
26 Feb 07 |
jari |
484 |
if(this.useClusterDiversity.isSelected()){ |
2 |
26 Feb 07 |
jari |
485 |
try{ |
2 |
26 Feb 07 |
jari |
486 |
f = Float.parseFloat(this.maxTreeDiv.getText()); |
2 |
26 Feb 07 |
jari |
487 |
if(f <= 0){ |
2 |
26 Feb 07 |
jari |
488 |
JOptionPane.showMessageDialog(this, "Input Value Error. Max Tree Diversity must be > 0. Please try again.", "Input error", JOptionPane.WARNING_MESSAGE); |
2 |
26 Feb 07 |
jari |
489 |
this.maxTreeDiv.requestFocus(); |
2 |
26 Feb 07 |
jari |
490 |
this.maxTreeDiv.selectAll(); |
2 |
26 Feb 07 |
jari |
491 |
return false; |
2 |
26 Feb 07 |
jari |
492 |
} |
2 |
26 Feb 07 |
jari |
493 |
} catch (NumberFormatException nfe) { |
2 |
26 Feb 07 |
jari |
494 |
JOptionPane.showMessageDialog(this, "Input Format Error. "+nfe.getMessage()+" is not valid. Please try again.", "Input error", JOptionPane.WARNING_MESSAGE); |
2 |
26 Feb 07 |
jari |
495 |
this.maxTreeDiv.requestFocus(); |
2 |
26 Feb 07 |
jari |
496 |
this.maxTreeDiv.selectAll(); |
2 |
26 Feb 07 |
jari |
497 |
return false; |
2 |
26 Feb 07 |
jari |
498 |
} |
2 |
26 Feb 07 |
jari |
499 |
} |
2 |
26 Feb 07 |
jari |
500 |
|
2 |
26 Feb 07 |
jari |
501 |
try{ |
2 |
26 Feb 07 |
jari |
502 |
f = Float.parseFloat(this.stopEpochCriteria.getText()); |
2 |
26 Feb 07 |
jari |
503 |
if(f <= 0){ |
2 |
26 Feb 07 |
jari |
504 |
JOptionPane.showMessageDialog(this, "Input Value Error. Epoch Improvment Limit must be > 0. Please try again.", "Input error", JOptionPane.WARNING_MESSAGE); |
2 |
26 Feb 07 |
jari |
505 |
this.stopEpochCriteria.requestFocus(); |
2 |
26 Feb 07 |
jari |
506 |
this.stopEpochCriteria.selectAll(); |
2 |
26 Feb 07 |
jari |
507 |
return false; |
2 |
26 Feb 07 |
jari |
508 |
} |
2 |
26 Feb 07 |
jari |
509 |
} catch (NumberFormatException nfe) { |
2 |
26 Feb 07 |
jari |
510 |
JOptionPane.showMessageDialog(this, "Input Format Error. "+nfe.getMessage()+" is not valid. Please try again.", "Input error", JOptionPane.WARNING_MESSAGE); |
2 |
26 Feb 07 |
jari |
511 |
this.stopEpochCriteria.requestFocus(); |
2 |
26 Feb 07 |
jari |
512 |
this.stopEpochCriteria.selectAll(); |
2 |
26 Feb 07 |
jari |
513 |
return false; |
2 |
26 Feb 07 |
jari |
514 |
} |
2 |
26 Feb 07 |
jari |
515 |
|
2 |
26 Feb 07 |
jari |
516 |
|
2 |
26 Feb 07 |
jari |
517 |
try{ |
2 |
26 Feb 07 |
jari |
518 |
f = Float.parseFloat(this.migFactor_w.getText()); |
2 |
26 Feb 07 |
jari |
519 |
if(f <= 0){ |
2 |
26 Feb 07 |
jari |
520 |
JOptionPane.showMessageDialog(this, "Input Value Error. Winning Cell Migration Weight must be > 0. Please try again.", "Input error", JOptionPane.WARNING_MESSAGE); |
2 |
26 Feb 07 |
jari |
521 |
this.migFactor_w.requestFocus(); |
2 |
26 Feb 07 |
jari |
522 |
this.migFactor_w.selectAll(); |
2 |
26 Feb 07 |
jari |
523 |
return false; |
2 |
26 Feb 07 |
jari |
524 |
} |
2 |
26 Feb 07 |
jari |
525 |
} catch (NumberFormatException nfe) { |
2 |
26 Feb 07 |
jari |
526 |
JOptionPane.showMessageDialog(this, "Input Format Error. "+nfe.getMessage()+" is not valid. Please try again.", "Input error", JOptionPane.WARNING_MESSAGE); |
2 |
26 Feb 07 |
jari |
527 |
this.migFactor_w.requestFocus(); |
2 |
26 Feb 07 |
jari |
528 |
this.migFactor_w.selectAll(); |
2 |
26 Feb 07 |
jari |
529 |
return false; |
2 |
26 Feb 07 |
jari |
530 |
} |
2 |
26 Feb 07 |
jari |
531 |
try{ |
2 |
26 Feb 07 |
jari |
532 |
f = Float.parseFloat(this.migFactor_p.getText()); |
2 |
26 Feb 07 |
jari |
533 |
if(f <= 0){ |
2 |
26 Feb 07 |
jari |
534 |
JOptionPane.showMessageDialog(this, "Input Value Error. Parent Cell Migration Weight must be > 0. Please try again.", "Input error", JOptionPane.WARNING_MESSAGE); |
2 |
26 Feb 07 |
jari |
535 |
this.migFactor_p.requestFocus(); |
2 |
26 Feb 07 |
jari |
536 |
this.migFactor_p.selectAll(); |
2 |
26 Feb 07 |
jari |
537 |
return false; |
2 |
26 Feb 07 |
jari |
538 |
} |
2 |
26 Feb 07 |
jari |
539 |
} catch (NumberFormatException nfe) { |
2 |
26 Feb 07 |
jari |
540 |
JOptionPane.showMessageDialog(this, "Input Format Error. "+nfe.getMessage()+" is not valid. Please try again.", "Input error", JOptionPane.WARNING_MESSAGE); |
2 |
26 Feb 07 |
jari |
541 |
this.migFactor_p.requestFocus(); |
2 |
26 Feb 07 |
jari |
542 |
this.migFactor_p.selectAll(); |
2 |
26 Feb 07 |
jari |
543 |
return false; |
2 |
26 Feb 07 |
jari |
544 |
} |
2 |
26 Feb 07 |
jari |
545 |
try{ |
2 |
26 Feb 07 |
jari |
546 |
f = Float.parseFloat(this.migFactor_s.getText()); |
2 |
26 Feb 07 |
jari |
547 |
if(f <= 0){ |
2 |
26 Feb 07 |
jari |
548 |
JOptionPane.showMessageDialog(this, "Input Value Error. Sister Cell Migration Weight must be > 0. Please try again.", "Input error", JOptionPane.WARNING_MESSAGE); |
2 |
26 Feb 07 |
jari |
549 |
this.migFactor_s.requestFocus(); |
2 |
26 Feb 07 |
jari |
550 |
this.migFactor_s.selectAll(); |
2 |
26 Feb 07 |
jari |
551 |
return false; |
2 |
26 Feb 07 |
jari |
552 |
} |
2 |
26 Feb 07 |
jari |
553 |
} catch (NumberFormatException nfe) { |
2 |
26 Feb 07 |
jari |
554 |
JOptionPane.showMessageDialog(this, "Input Format Error. "+nfe.getMessage()+" is not valid. Please try again.", "Input error", JOptionPane.WARNING_MESSAGE); |
2 |
26 Feb 07 |
jari |
555 |
this.migFactor_s.requestFocus(); |
2 |
26 Feb 07 |
jari |
556 |
this.migFactor_s.selectAll(); |
2 |
26 Feb 07 |
jari |
557 |
return false; |
2 |
26 Feb 07 |
jari |
558 |
} |
2 |
26 Feb 07 |
jari |
559 |
|
2 |
26 Feb 07 |
jari |
560 |
if(this.useClusterVariance.isSelected()){ |
2 |
26 Feb 07 |
jari |
561 |
try{ |
2 |
26 Feb 07 |
jari |
562 |
f = Float.parseFloat(this.pValue.getText()); |
2 |
26 Feb 07 |
jari |
563 |
if(f <= 0 || f >=1.0){ |
2 |
26 Feb 07 |
jari |
564 |
JOptionPane.showMessageDialog(this, "Input Value Error. Alpha Value must be > 0 and < 1.0. Please try again.", "Input error", JOptionPane.WARNING_MESSAGE); |
2 |
26 Feb 07 |
jari |
565 |
pValue.requestFocus(); |
2 |
26 Feb 07 |
jari |
566 |
pValue.selectAll(); |
2 |
26 Feb 07 |
jari |
567 |
return false; |
2 |
26 Feb 07 |
jari |
568 |
} |
2 |
26 Feb 07 |
jari |
569 |
} catch (NumberFormatException nfe) { |
2 |
26 Feb 07 |
jari |
570 |
JOptionPane.showMessageDialog(this, "Input Format Error. "+nfe.getMessage()+" is not valid. Please try again.", "Input error", JOptionPane.WARNING_MESSAGE); |
2 |
26 Feb 07 |
jari |
571 |
pValue.requestFocus(); |
2 |
26 Feb 07 |
jari |
572 |
pValue.selectAll(); |
2 |
26 Feb 07 |
jari |
573 |
return false; |
2 |
26 Feb 07 |
jari |
574 |
} |
2 |
26 Feb 07 |
jari |
575 |
} |
2 |
26 Feb 07 |
jari |
576 |
|
2 |
26 Feb 07 |
jari |
577 |
|
2 |
26 Feb 07 |
jari |
578 |
|
2 |
26 Feb 07 |
jari |
579 |
|
2 |
26 Feb 07 |
jari |
580 |
|
2 |
26 Feb 07 |
jari |
581 |
return result; |
2 |
26 Feb 07 |
jari |
582 |
} |
2 |
26 Feb 07 |
jari |
583 |
|
2 |
26 Feb 07 |
jari |
584 |
/** |
2 |
26 Feb 07 |
jari |
* @param args the command line arguments |
2 |
26 Feb 07 |
jari |
586 |
*/ |
2 |
26 Feb 07 |
jari |
587 |
public static void main(String args[]) { |
2 |
26 Feb 07 |
jari |
588 |
new SOTAInitDialog(new java.awt.Frame(), 1, "Euclidean Distance", false).show(); |
2 |
26 Feb 07 |
jari |
589 |
System.exit(0); |
2 |
26 Feb 07 |
jari |
590 |
} |
2 |
26 Feb 07 |
jari |
591 |
|
2 |
26 Feb 07 |
jari |
592 |
protected void disposeDialog() { |
2 |
26 Feb 07 |
jari |
593 |
} |
2 |
26 Feb 07 |
jari |
594 |
|
2 |
26 Feb 07 |
jari |
595 |
/** |
2 |
26 Feb 07 |
jari |
* The class to listen to the dialog and check boxes items events. |
2 |
26 Feb 07 |
jari |
597 |
*/ |
2 |
26 Feb 07 |
jari |
598 |
private class Listener extends DialogListener implements ItemListener, ActionListener { |
2 |
26 Feb 07 |
jari |
599 |
|
2 |
26 Feb 07 |
jari |
600 |
public void actionPerformed(ActionEvent e) { |
2 |
26 Feb 07 |
jari |
601 |
String command = e.getActionCommand(); |
2 |
26 Feb 07 |
jari |
602 |
if (command.equals("ok-command")) { |
2 |
26 Feb 07 |
jari |
603 |
if(validateValues()) |
2 |
26 Feb 07 |
jari |
604 |
result = JOptionPane.OK_OPTION; |
2 |
26 Feb 07 |
jari |
605 |
else |
2 |
26 Feb 07 |
jari |
606 |
return; |
2 |
26 Feb 07 |
jari |
607 |
} else if (command.equals("cancel-command")) { |
2 |
26 Feb 07 |
jari |
608 |
result = JOptionPane.CANCEL_OPTION; |
2 |
26 Feb 07 |
jari |
609 |
} else if (command.equals("reset-command")){ |
2 |
26 Feb 07 |
jari |
610 |
result = JOptionPane.CANCEL_OPTION; |
2 |
26 Feb 07 |
jari |
611 |
resetControls(); |
2 |
26 Feb 07 |
jari |
612 |
return; |
2 |
26 Feb 07 |
jari |
613 |
} else if (command.equals("info-command")){ |
2 |
26 Feb 07 |
jari |
614 |
result = JOptionPane.CANCEL_OPTION; |
2 |
26 Feb 07 |
jari |
615 |
HelpWindow help = new HelpWindow(SOTAInitDialog.this, "SOTA Initialization Dialog"); |
2 |
26 Feb 07 |
jari |
616 |
if(help.getWindowContent()){ |
2 |
26 Feb 07 |
jari |
617 |
help.setSize(500,650); |
2 |
26 Feb 07 |
jari |
618 |
help.setLocation(); |
2 |
26 Feb 07 |
jari |
619 |
help.show(); |
2 |
26 Feb 07 |
jari |
620 |
return; |
2 |
26 Feb 07 |
jari |
621 |
} |
2 |
26 Feb 07 |
jari |
622 |
else{ |
2 |
26 Feb 07 |
jari |
623 |
help.dispose(); |
2 |
26 Feb 07 |
jari |
624 |
return; |
2 |
26 Feb 07 |
jari |
625 |
} |
2 |
26 Feb 07 |
jari |
626 |
} else if (e.getSource() == metricPanel) { |
2 |
26 Feb 07 |
jari |
627 |
updateMaxTreeDiversity(); |
2 |
26 Feb 07 |
jari |
628 |
return; |
2 |
26 Feb 07 |
jari |
629 |
} |
2 |
26 Feb 07 |
jari |
630 |
dispose(); |
2 |
26 Feb 07 |
jari |
631 |
} |
2 |
26 Feb 07 |
jari |
632 |
|
2 |
26 Feb 07 |
jari |
633 |
public void itemStateChanged(ItemEvent e) { |
2 |
26 Feb 07 |
jari |
634 |
|
2 |
26 Feb 07 |
jari |
635 |
if(useClusterVariance.isSelected()){ |
2 |
26 Feb 07 |
jari |
636 |
pValue.setEnabled(true); |
2 |
26 Feb 07 |
jari |
637 |
maxTreeDiv.setEnabled(false); |
2 |
26 Feb 07 |
jari |
638 |
repaint(); |
2 |
26 Feb 07 |
jari |
639 |
} |
2 |
26 Feb 07 |
jari |
640 |
else{ |
2 |
26 Feb 07 |
jari |
641 |
pValue.setEnabled(false); |
2 |
26 Feb 07 |
jari |
642 |
maxTreeDiv.setEnabled(true); |
2 |
26 Feb 07 |
jari |
643 |
repaint(); |
2 |
26 Feb 07 |
jari |
644 |
} |
2 |
26 Feb 07 |
jari |
645 |
} |
2 |
26 Feb 07 |
jari |
646 |
|
2 |
26 Feb 07 |
jari |
647 |
public void windowClosing(WindowEvent e) { |
2 |
26 Feb 07 |
jari |
648 |
result = JOptionPane.CLOSED_OPTION; |
2 |
26 Feb 07 |
jari |
649 |
dispose(); |
2 |
26 Feb 07 |
jari |
650 |
} |
2 |
26 Feb 07 |
jari |
651 |
} |
2 |
26 Feb 07 |
jari |
652 |
|
2 |
26 Feb 07 |
jari |
653 |
|
2 |
26 Feb 07 |
jari |
654 |
|
2 |
26 Feb 07 |
jari |
655 |
|
2 |
26 Feb 07 |
jari |
656 |
|
2 |
26 Feb 07 |
jari |
657 |
|
2 |
26 Feb 07 |
jari |
658 |
} |