2 |
26 Feb 07 |
jari |
1 |
/* |
2 |
26 Feb 07 |
jari |
* Created on Jan 14, 2005 |
2 |
26 Feb 07 |
jari |
3 |
*/ |
2 |
26 Feb 07 |
jari |
4 |
package org.tigr.microarray.mev.cluster.gui.impl.usc; |
2 |
26 Feb 07 |
jari |
5 |
|
2 |
26 Feb 07 |
jari |
6 |
import java.awt.Color; |
2 |
26 Feb 07 |
jari |
7 |
import java.awt.Dimension; |
2 |
26 Feb 07 |
jari |
8 |
import java.awt.Font; |
2 |
26 Feb 07 |
jari |
9 |
import java.awt.GridBagConstraints; |
2 |
26 Feb 07 |
jari |
10 |
import java.awt.GridBagLayout; |
2 |
26 Feb 07 |
jari |
11 |
import java.awt.event.ActionEvent; |
2 |
26 Feb 07 |
jari |
12 |
import java.awt.event.ActionListener; |
2 |
26 Feb 07 |
jari |
13 |
import java.awt.image.BufferedImage; |
2 |
26 Feb 07 |
jari |
14 |
import java.beans.Expression; |
2 |
26 Feb 07 |
jari |
15 |
import java.io.File; |
2 |
26 Feb 07 |
jari |
16 |
import java.io.FileWriter; |
2 |
26 Feb 07 |
jari |
17 |
import java.io.IOException; |
2 |
26 Feb 07 |
jari |
18 |
|
2 |
26 Feb 07 |
jari |
19 |
import javax.swing.BorderFactory; |
2 |
26 Feb 07 |
jari |
20 |
import javax.swing.BoxLayout; |
2 |
26 Feb 07 |
jari |
21 |
import javax.swing.JButton; |
2 |
26 Feb 07 |
jari |
22 |
import javax.swing.JComponent; |
2 |
26 Feb 07 |
jari |
23 |
import javax.swing.JFileChooser; |
2 |
26 Feb 07 |
jari |
24 |
import javax.swing.JLabel; |
2 |
26 Feb 07 |
jari |
25 |
import javax.swing.JPanel; |
2 |
26 Feb 07 |
jari |
26 |
import javax.swing.JScrollPane; |
2 |
26 Feb 07 |
jari |
27 |
import javax.swing.JTextArea; |
2 |
26 Feb 07 |
jari |
28 |
import javax.swing.border.Border; |
2 |
26 Feb 07 |
jari |
29 |
import javax.swing.border.TitledBorder; |
2 |
26 Feb 07 |
jari |
30 |
|
2 |
26 Feb 07 |
jari |
31 |
import org.tigr.microarray.mev.TMEV; |
2 |
26 Feb 07 |
jari |
32 |
import org.tigr.microarray.mev.cluster.gui.Experiment; |
2 |
26 Feb 07 |
jari |
33 |
import org.tigr.microarray.mev.cluster.gui.IData; |
2 |
26 Feb 07 |
jari |
34 |
import org.tigr.microarray.mev.cluster.gui.IDisplayMenu; |
2 |
26 Feb 07 |
jari |
35 |
import org.tigr.microarray.mev.cluster.gui.IFramework; |
2 |
26 Feb 07 |
jari |
36 |
import org.tigr.microarray.mev.cluster.gui.IViewer; |
2 |
26 Feb 07 |
jari |
37 |
|
2 |
26 Feb 07 |
jari |
38 |
/** |
2 |
26 Feb 07 |
jari |
* Should display delta, rho, class assignment, discriminant score, genelist |
2 |
26 Feb 07 |
jari |
40 |
* |
2 |
26 Feb 07 |
jari |
* @author vu |
2 |
26 Feb 07 |
jari |
42 |
*/ |
2 |
26 Feb 07 |
jari |
43 |
public class USCSummaryViewer extends JPanel implements IViewer, ActionListener { |
2 |
26 Feb 07 |
jari |
44 |
private JButton saveGeneList; |
2 |
26 Feb 07 |
jari |
45 |
private JButton anotherDeltaRho; |
2 |
26 Feb 07 |
jari |
46 |
private USCGene[] genes; |
2 |
26 Feb 07 |
jari |
47 |
private USCResult result; |
2 |
26 Feb 07 |
jari |
48 |
transient IFramework framework; |
2 |
26 Feb 07 |
jari |
49 |
|
2 |
26 Feb 07 |
jari |
//EH added for state-saving |
2 |
26 Feb 07 |
jari |
51 |
private String[] hybNames; |
2 |
26 Feb 07 |
jari |
52 |
private String[] uniqueClasses; |
2 |
26 Feb 07 |
jari |
53 |
private String[] params; |
2 |
26 Feb 07 |
jari |
54 |
|
2 |
26 Feb 07 |
jari |
55 |
/** |
2 |
26 Feb 07 |
jari |
* Constructor |
2 |
26 Feb 07 |
jari |
57 |
* |
2 |
26 Feb 07 |
jari |
* @param hybNames |
2 |
26 Feb 07 |
jari |
* @param resultP |
2 |
26 Feb 07 |
jari |
* @param uniqueClasses |
2 |
26 Feb 07 |
jari |
* @param params |
2 |
26 Feb 07 |
jari |
* @param genesP |
2 |
26 Feb 07 |
jari |
* @param frameworkP |
2 |
26 Feb 07 |
jari |
64 |
*/ |
2 |
26 Feb 07 |
jari |
65 |
public USCSummaryViewer(String[] hybNames, USCResult resultP, |
2 |
26 Feb 07 |
jari |
66 |
String[] uniqueClasses, String[] params, USCGene[] genesP, |
2 |
26 Feb 07 |
jari |
67 |
IFramework frameworkP) { |
2 |
26 Feb 07 |
jari |
68 |
this(hybNames, resultP, uniqueClasses, params, genesP); |
2 |
26 Feb 07 |
jari |
69 |
this.framework = frameworkP; |
2 |
26 Feb 07 |
jari |
70 |
} |
2 |
26 Feb 07 |
jari |
71 |
|
2 |
26 Feb 07 |
jari |
72 |
public USCSummaryViewer(String[] hybNames, USCResult resultP, |
2 |
26 Feb 07 |
jari |
73 |
String[] uniqueClasses, String[] params, USCGene[] genesP) { |
2 |
26 Feb 07 |
jari |
74 |
|
2 |
26 Feb 07 |
jari |
//EH - added for state-saving |
2 |
26 Feb 07 |
jari |
//this.framework = frameworkP; |
2 |
26 Feb 07 |
jari |
77 |
this.hybNames = hybNames; |
2 |
26 Feb 07 |
jari |
78 |
this.uniqueClasses = uniqueClasses; |
2 |
26 Feb 07 |
jari |
79 |
this.params = params; |
2 |
26 Feb 07 |
jari |
//EH end state-saving |
2 |
26 Feb 07 |
jari |
81 |
|
2 |
26 Feb 07 |
jari |
82 |
this.result = resultP; |
2 |
26 Feb 07 |
jari |
83 |
this.genes = genesP; |
2 |
26 Feb 07 |
jari |
84 |
|
2 |
26 Feb 07 |
jari |
//this.setLayout( new SpringLayout() ); |
2 |
26 Feb 07 |
jari |
86 |
this.setLayout(new GridBagLayout()); |
2 |
26 Feb 07 |
jari |
87 |
GridBagConstraints c1 = new GridBagConstraints(); |
2 |
26 Feb 07 |
jari |
88 |
c1.fill = GridBagConstraints.HORIZONTAL; |
2 |
26 Feb 07 |
jari |
89 |
|
2 |
26 Feb 07 |
jari |
90 |
JPanel leftPanel = new JPanel(); |
2 |
26 Feb 07 |
jari |
91 |
leftPanel.setLayout(new GridBagLayout()); |
2 |
26 Feb 07 |
jari |
92 |
GridBagConstraints c2 = new GridBagConstraints(); |
2 |
26 Feb 07 |
jari |
93 |
c2.fill = GridBagConstraints.HORIZONTAL; |
2 |
26 Feb 07 |
jari |
94 |
c2.gridx = 0; |
2 |
26 Feb 07 |
jari |
95 |
c2.gridy = 0; |
2 |
26 Feb 07 |
jari |
96 |
leftPanel.add(this.createParamPanel(this.result.getDelta(), this.result |
2 |
26 Feb 07 |
jari |
97 |
.getRho(), params, this.result.getNumGenesUsed()), c2); |
2 |
26 Feb 07 |
jari |
98 |
c2.gridx = 0; |
2 |
26 Feb 07 |
jari |
99 |
c2.gridy = 1; |
2 |
26 Feb 07 |
jari |
100 |
leftPanel.add( |
2 |
26 Feb 07 |
jari |
101 |
this.createAssPanel(hybNames, this.result, uniqueClasses), c2); |
2 |
26 Feb 07 |
jari |
102 |
c1.gridx = 0; |
2 |
26 Feb 07 |
jari |
103 |
c1.gridy = 0; |
2 |
26 Feb 07 |
jari |
104 |
|
2 |
26 Feb 07 |
jari |
105 |
this.add(leftPanel, c1); |
2 |
26 Feb 07 |
jari |
106 |
|
2 |
26 Feb 07 |
jari |
107 |
JPanel rightPanel = new JPanel(); |
2 |
26 Feb 07 |
jari |
108 |
rightPanel.add(this.createGenePanel(this.genes)); |
2 |
26 Feb 07 |
jari |
109 |
c1.gridx = 1; |
2 |
26 Feb 07 |
jari |
110 |
c1.gridy = 0; |
2 |
26 Feb 07 |
jari |
111 |
|
2 |
26 Feb 07 |
jari |
112 |
this.add(rightPanel, c1); |
2 |
26 Feb 07 |
jari |
113 |
}//end constructor |
2 |
26 Feb 07 |
jari |
114 |
|
2 |
26 Feb 07 |
jari |
115 |
|
2 |
26 Feb 07 |
jari |
116 |
/** |
2 |
26 Feb 07 |
jari |
* Displays the parameters used for classification |
2 |
26 Feb 07 |
jari |
118 |
* |
2 |
26 Feb 07 |
jari |
* @param delta |
2 |
26 Feb 07 |
jari |
* @param rho |
2 |
26 Feb 07 |
jari |
* @return |
2 |
26 Feb 07 |
jari |
122 |
*/ |
2 |
26 Feb 07 |
jari |
123 |
private JPanel createParamPanel(double delta, double rho, String[] params, |
2 |
26 Feb 07 |
jari |
124 |
int numGenesUsed) { |
2 |
26 Feb 07 |
jari |
125 |
Border loweredBorder = BorderFactory.createLoweredBevelBorder(); |
2 |
26 Feb 07 |
jari |
126 |
|
2 |
26 Feb 07 |
jari |
//create a JPanel |
2 |
26 Feb 07 |
jari |
128 |
JPanel toReturn = new JPanel(); |
2 |
26 Feb 07 |
jari |
129 |
Dimension d = new Dimension(410, 130); |
2 |
26 Feb 07 |
jari |
130 |
toReturn.setPreferredSize(d); |
2 |
26 Feb 07 |
jari |
131 |
toReturn.setMaximumSize(d); |
2 |
26 Feb 07 |
jari |
132 |
toReturn.setMinimumSize(d); |
2 |
26 Feb 07 |
jari |
133 |
Font font = new Font("Arial", Font.PLAIN, 12); |
2 |
26 Feb 07 |
jari |
134 |
toReturn.setBorder(BorderFactory.createTitledBorder(loweredBorder, |
2 |
26 Feb 07 |
jari |
135 |
"Parameters Used", TitledBorder.LEFT, |
2 |
26 Feb 07 |
jari |
136 |
TitledBorder.DEFAULT_POSITION, font, Color.GRAY)); |
2 |
26 Feb 07 |
jari |
137 |
|
2 |
26 Feb 07 |
jari |
//list the params vertically |
2 |
26 Feb 07 |
jari |
139 |
BoxLayout bl = new BoxLayout(toReturn, BoxLayout.Y_AXIS); |
2 |
26 Feb 07 |
jari |
140 |
toReturn.setLayout(bl); |
2 |
26 Feb 07 |
jari |
141 |
|
2 |
26 Feb 07 |
jari |
//create the JLabels and add them to the JPanel |
2 |
26 Feb 07 |
jari |
143 |
String sDelta = new Float(delta).toString(); |
2 |
26 Feb 07 |
jari |
144 |
String sRho = new Float(rho).toString(); |
2 |
26 Feb 07 |
jari |
145 |
JLabel dLabel = new JLabel(new String(" Delta = " + sDelta + " ")); |
2 |
26 Feb 07 |
jari |
146 |
JLabel rLabel = new JLabel(new String(" Rho = " + sRho + " ")); |
2 |
26 Feb 07 |
jari |
147 |
JLabel binLabel = new JLabel(" # of Bins = " + params[0] + " "); |
2 |
26 Feb 07 |
jari |
148 |
JLabel loLabel = new JLabel(" Correlation Low = " + params[1] + " "); |
2 |
26 Feb 07 |
jari |
149 |
JLabel hiLabel = new JLabel(" Correlation High = " + params[2] + " "); |
2 |
26 Feb 07 |
jari |
150 |
JLabel stepLabel = new JLabel(" Correlation Step = " + params[3] |
2 |
26 Feb 07 |
jari |
151 |
+ " "); |
2 |
26 Feb 07 |
jari |
152 |
toReturn.add(dLabel); |
2 |
26 Feb 07 |
jari |
153 |
toReturn.add(rLabel); |
2 |
26 Feb 07 |
jari |
154 |
toReturn.add(binLabel); |
2 |
26 Feb 07 |
jari |
155 |
toReturn.add(loLabel); |
2 |
26 Feb 07 |
jari |
156 |
toReturn.add(hiLabel); |
2 |
26 Feb 07 |
jari |
157 |
toReturn.add(stepLabel); |
2 |
26 Feb 07 |
jari |
158 |
|
2 |
26 Feb 07 |
jari |
159 |
return toReturn; |
2 |
26 Feb 07 |
jari |
160 |
}//createDRPanel() |
2 |
26 Feb 07 |
jari |
161 |
|
2 |
26 Feb 07 |
jari |
162 |
|
2 |
26 Feb 07 |
jari |
163 |
/** |
2 |
26 Feb 07 |
jari |
* Display the assignments and the discriminant scores |
2 |
26 Feb 07 |
jari |
165 |
* |
2 |
26 Feb 07 |
jari |
* @param testHybNames |
2 |
26 Feb 07 |
jari |
* @param result |
2 |
26 Feb 07 |
jari |
* @param uniqueClasses |
2 |
26 Feb 07 |
jari |
* @return |
2 |
26 Feb 07 |
jari |
170 |
*/ |
2 |
26 Feb 07 |
jari |
171 |
private JPanel createAssPanel(String[] testHybNames, USCResult resultP, |
2 |
26 Feb 07 |
jari |
172 |
String[] uniqueClasses) { |
2 |
26 Feb 07 |
jari |
173 |
Border loweredBorder = BorderFactory.createLoweredBevelBorder(); |
2 |
26 Feb 07 |
jari |
174 |
StringBuffer sbAss = new StringBuffer(); |
2 |
26 Feb 07 |
jari |
175 |
StringBuffer sbDScore = new StringBuffer(); |
2 |
26 Feb 07 |
jari |
176 |
|
2 |
26 Feb 07 |
jari |
//should list the test hybs and the class to which they were assigned |
2 |
26 Feb 07 |
jari |
178 |
for( int h = 0; h < testHybNames.length; h++ ) { |
2 |
26 Feb 07 |
jari |
179 |
int iClass = resultP.getAssignedClassIndex(h); |
2 |
26 Feb 07 |
jari |
180 |
|
2 |
26 Feb 07 |
jari |
181 |
String sAss = new String(" " + testHybNames[h] + " >>> " |
2 |
26 Feb 07 |
jari |
182 |
+ uniqueClasses[iClass] + " "); |
2 |
26 Feb 07 |
jari |
183 |
|
2 |
26 Feb 07 |
jari |
184 |
String dScore = Double.toString(resultP.getDiscScores()[h][iClass]); |
2 |
26 Feb 07 |
jari |
185 |
|
2 |
26 Feb 07 |
jari |
186 |
sbAss.append(this.formatLine(sAss, dScore)); |
2 |
26 Feb 07 |
jari |
187 |
sbAss.append(USCGUI.END_LINE); |
2 |
26 Feb 07 |
jari |
188 |
}//end h |
2 |
26 Feb 07 |
jari |
189 |
|
2 |
26 Feb 07 |
jari |
190 |
JPanel toReturn = new JPanel(); |
2 |
26 Feb 07 |
jari |
191 |
|
2 |
26 Feb 07 |
jari |
192 |
JTextArea assArea = new JTextArea(testHybNames.length, 15); |
2 |
26 Feb 07 |
jari |
193 |
assArea.setBackground(toReturn.getBackground()); |
2 |
26 Feb 07 |
jari |
194 |
assArea.setText(sbAss.toString()); |
2 |
26 Feb 07 |
jari |
195 |
JScrollPane jspAss = new JScrollPane(assArea); |
2 |
26 Feb 07 |
jari |
196 |
Dimension d = new Dimension(410, 385); |
2 |
26 Feb 07 |
jari |
197 |
jspAss.setPreferredSize(d); |
2 |
26 Feb 07 |
jari |
198 |
jspAss.setMaximumSize(d); |
2 |
26 Feb 07 |
jari |
199 |
jspAss.setMinimumSize(d); |
2 |
26 Feb 07 |
jari |
200 |
|
2 |
26 Feb 07 |
jari |
201 |
toReturn.setSize(410, 365); |
2 |
26 Feb 07 |
jari |
202 |
toReturn.add(jspAss); |
2 |
26 Feb 07 |
jari |
203 |
return toReturn; |
2 |
26 Feb 07 |
jari |
204 |
}//USCSummaryViewer() |
2 |
26 Feb 07 |
jari |
205 |
|
2 |
26 Feb 07 |
jari |
206 |
|
2 |
26 Feb 07 |
jari |
207 |
/** |
2 |
26 Feb 07 |
jari |
208 |
* |
2 |
26 Feb 07 |
jari |
* @param genes |
2 |
26 Feb 07 |
jari |
* @return |
2 |
26 Feb 07 |
jari |
211 |
*/ |
2 |
26 Feb 07 |
jari |
212 |
private JPanel createGenePanel(USCGene[] genesP) { |
2 |
26 Feb 07 |
jari |
213 |
Border loweredBorder = BorderFactory.createLoweredBevelBorder(); |
2 |
26 Feb 07 |
jari |
214 |
|
2 |
26 Feb 07 |
jari |
215 |
String genesUsed = new String(genesP.length + " Genes Used"); |
2 |
26 Feb 07 |
jari |
216 |
|
2 |
26 Feb 07 |
jari |
217 |
JPanel toReturn = new JPanel(); |
2 |
26 Feb 07 |
jari |
218 |
Font font = new Font("Arial", Font.PLAIN, 12); |
2 |
26 Feb 07 |
jari |
219 |
toReturn.setBorder(BorderFactory.createTitledBorder(loweredBorder, |
2 |
26 Feb 07 |
jari |
220 |
genesUsed, TitledBorder.LEFT, TitledBorder.DEFAULT_POSITION, |
2 |
26 Feb 07 |
jari |
221 |
font, Color.GRAY)); |
2 |
26 Feb 07 |
jari |
222 |
Dimension d = new Dimension(210, 525); |
2 |
26 Feb 07 |
jari |
223 |
toReturn.setPreferredSize(d); |
2 |
26 Feb 07 |
jari |
224 |
toReturn.setMaximumSize(d); |
2 |
26 Feb 07 |
jari |
225 |
toReturn.setMinimumSize(d); |
2 |
26 Feb 07 |
jari |
226 |
|
2 |
26 Feb 07 |
jari |
227 |
StringBuffer sbGenes = new StringBuffer(); |
2 |
26 Feb 07 |
jari |
228 |
for( int i = 0; i < genesP.length; i++ ) { |
2 |
26 Feb 07 |
jari |
229 |
sbGenes.append(genesP[i].getGeneName()); |
2 |
26 Feb 07 |
jari |
230 |
sbGenes.append(USCGUI.END_LINE); |
2 |
26 Feb 07 |
jari |
231 |
} |
2 |
26 Feb 07 |
jari |
232 |
JTextArea geneArea = new JTextArea(genesP.length, 15); |
2 |
26 Feb 07 |
jari |
233 |
geneArea.setBackground(toReturn.getBackground()); |
2 |
26 Feb 07 |
jari |
234 |
geneArea.setText(sbGenes.toString()); |
2 |
26 Feb 07 |
jari |
235 |
JScrollPane jsp = new JScrollPane(geneArea); |
2 |
26 Feb 07 |
jari |
//jsp.setPreferredSize( new Dimension( 190, 460 ) ); |
2 |
26 Feb 07 |
jari |
237 |
jsp.setPreferredSize(new Dimension(190, 430)); |
2 |
26 Feb 07 |
jari |
238 |
jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); |
2 |
26 Feb 07 |
jari |
239 |
jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); |
2 |
26 Feb 07 |
jari |
240 |
toReturn.add(jsp); |
2 |
26 Feb 07 |
jari |
241 |
|
2 |
26 Feb 07 |
jari |
242 |
this.saveGeneList = new JButton("Save GeneList"); |
2 |
26 Feb 07 |
jari |
243 |
Dimension dButton = new Dimension(200, 30); |
2 |
26 Feb 07 |
jari |
244 |
saveGeneList.setPreferredSize(dButton); |
2 |
26 Feb 07 |
jari |
245 |
saveGeneList.setMaximumSize(dButton); |
2 |
26 Feb 07 |
jari |
246 |
saveGeneList.setMinimumSize(dButton); |
2 |
26 Feb 07 |
jari |
247 |
this.saveGeneList.addActionListener(this); |
2 |
26 Feb 07 |
jari |
248 |
toReturn.add(this.saveGeneList); |
2 |
26 Feb 07 |
jari |
249 |
/* |
2 |
26 Feb 07 |
jari |
* this.anotherDeltaRho = new JButton( "Test With Different Params" ); |
2 |
26 Feb 07 |
jari |
* saveGeneList.setPreferredSize( dButton ); |
2 |
26 Feb 07 |
jari |
* saveGeneList.setMaximumSize( dButton ); saveGeneList.setMinimumSize( |
2 |
26 Feb 07 |
jari |
* dButton ); this.anotherDeltaRho.addActionListener( this ); |
2 |
26 Feb 07 |
jari |
* toReturn.add( this.anotherDeltaRho ); |
2 |
26 Feb 07 |
jari |
255 |
*/ |
2 |
26 Feb 07 |
jari |
256 |
return toReturn; |
2 |
26 Feb 07 |
jari |
257 |
}//createGenePanel() |
2 |
26 Feb 07 |
jari |
258 |
|
2 |
26 Feb 07 |
jari |
259 |
|
2 |
26 Feb 07 |
jari |
260 |
private void onAnotherDeltaRho() { |
2 |
26 Feb 07 |
jari |
261 |
System.out.println("onAnotherDeltaRho()"); |
2 |
26 Feb 07 |
jari |
262 |
}//onAnotherDeltaRho() |
2 |
26 Feb 07 |
jari |
263 |
|
2 |
26 Feb 07 |
jari |
264 |
|
2 |
26 Feb 07 |
jari |
265 |
/** |
2 |
26 Feb 07 |
jari |
266 |
* |
2 |
26 Feb 07 |
jari |
267 |
* |
2 |
26 Feb 07 |
jari |
268 |
*/ |
2 |
26 Feb 07 |
jari |
269 |
private void onSaveGeneList() { |
2 |
26 Feb 07 |
jari |
270 |
String currentPath = TMEV.getDataPath(); |
2 |
26 Feb 07 |
jari |
271 |
USCTextFileFilter textFilter = new USCTextFileFilter(); |
2 |
26 Feb 07 |
jari |
272 |
JFileChooser chooser = new JFileChooser(currentPath); |
2 |
26 Feb 07 |
jari |
273 |
chooser.addChoosableFileFilter(textFilter); |
2 |
26 Feb 07 |
jari |
274 |
if( chooser.showSaveDialog(this) == JFileChooser.APPROVE_OPTION ) { |
2 |
26 Feb 07 |
jari |
275 |
File saveFile; |
2 |
26 Feb 07 |
jari |
276 |
|
2 |
26 Feb 07 |
jari |
277 |
if( chooser.getFileFilter() == textFilter ) { |
2 |
26 Feb 07 |
jari |
//make sure to add .txt |
2 |
26 Feb 07 |
jari |
279 |
String path = chooser.getSelectedFile().getPath(); |
2 |
26 Feb 07 |
jari |
280 |
if( path.toLowerCase().endsWith("txt") ) { |
2 |
26 Feb 07 |
jari |
//great, already ok |
2 |
26 Feb 07 |
jari |
282 |
saveFile = new File(path); |
2 |
26 Feb 07 |
jari |
283 |
} else { |
2 |
26 Feb 07 |
jari |
//add it |
2 |
26 Feb 07 |
jari |
285 |
String subPath; |
2 |
26 Feb 07 |
jari |
286 |
int period = path.lastIndexOf("."); |
2 |
26 Feb 07 |
jari |
287 |
if( period != -1 ) { |
2 |
26 Feb 07 |
jari |
288 |
System.out.println("period = -1"); |
2 |
26 Feb 07 |
jari |
289 |
subPath = path.substring(0, period); |
2 |
26 Feb 07 |
jari |
290 |
} else { |
2 |
26 Feb 07 |
jari |
291 |
subPath = path; |
2 |
26 Feb 07 |
jari |
292 |
} |
2 |
26 Feb 07 |
jari |
293 |
String newPath = subPath + ".txt"; |
2 |
26 Feb 07 |
jari |
294 |
saveFile = new File(newPath); |
2 |
26 Feb 07 |
jari |
295 |
} |
2 |
26 Feb 07 |
jari |
296 |
} else { |
2 |
26 Feb 07 |
jari |
297 |
saveFile = chooser.getSelectedFile(); |
2 |
26 Feb 07 |
jari |
298 |
} |
2 |
26 Feb 07 |
jari |
299 |
StringBuffer sb = new StringBuffer(); |
2 |
26 Feb 07 |
jari |
300 |
|
2 |
26 Feb 07 |
jari |
301 |
for( int i = 0; i < this.genes.length; i++ ) { |
2 |
26 Feb 07 |
jari |
302 |
USCGene gene = this.genes[ i ]; |
2 |
26 Feb 07 |
jari |
303 |
|
2 |
26 Feb 07 |
jari |
304 |
sb.append(gene.getGeneName()); |
2 |
26 Feb 07 |
jari |
305 |
|
2 |
26 Feb 07 |
jari |
306 |
for( int e = 0; e < gene.getExtraFieldSize(); e ++ ) { |
2 |
26 Feb 07 |
jari |
307 |
sb.append( USCGUI.TAB ); |
2 |
26 Feb 07 |
jari |
308 |
sb.append( gene.getExtraField( e ) ); |
2 |
26 Feb 07 |
jari |
309 |
} |
2 |
26 Feb 07 |
jari |
310 |
|
2 |
26 Feb 07 |
jari |
311 |
sb.append( USCGUI.END_LINE ); |
2 |
26 Feb 07 |
jari |
312 |
} |
2 |
26 Feb 07 |
jari |
313 |
|
2 |
26 Feb 07 |
jari |
314 |
this.writeFile(saveFile, sb.toString()); |
2 |
26 Feb 07 |
jari |
315 |
} else { |
2 |
26 Feb 07 |
jari |
316 |
System.out.println("User cancelled Gene List Save"); |
2 |
26 Feb 07 |
jari |
317 |
} |
2 |
26 Feb 07 |
jari |
318 |
}//onSaveGeneList() |
2 |
26 Feb 07 |
jari |
319 |
|
2 |
26 Feb 07 |
jari |
320 |
|
2 |
26 Feb 07 |
jari |
321 |
/** |
2 |
26 Feb 07 |
jari |
* Write the String s to File f |
2 |
26 Feb 07 |
jari |
323 |
* |
2 |
26 Feb 07 |
jari |
* @param f |
2 |
26 Feb 07 |
jari |
* @param s |
2 |
26 Feb 07 |
jari |
326 |
*/ |
2 |
26 Feb 07 |
jari |
327 |
private void writeFile(File f, String s) { |
2 |
26 Feb 07 |
jari |
328 |
try { |
2 |
26 Feb 07 |
jari |
329 |
FileWriter fw = new FileWriter(f); |
2 |
26 Feb 07 |
jari |
330 |
fw.write(s); |
2 |
26 Feb 07 |
jari |
331 |
fw.flush(); |
2 |
26 Feb 07 |
jari |
332 |
fw.close(); |
2 |
26 Feb 07 |
jari |
333 |
} catch( IOException e ) { |
2 |
26 Feb 07 |
jari |
334 |
e.printStackTrace(); |
2 |
26 Feb 07 |
jari |
335 |
} |
2 |
26 Feb 07 |
jari |
336 |
}//writeFile() |
2 |
26 Feb 07 |
jari |
337 |
|
2 |
26 Feb 07 |
jari |
338 |
|
2 |
26 Feb 07 |
jari |
339 |
public void actionPerformed(ActionEvent e) { |
2 |
26 Feb 07 |
jari |
340 |
if( e.getSource() == this.saveGeneList ) { |
2 |
26 Feb 07 |
jari |
341 |
this.onSaveGeneList(); |
2 |
26 Feb 07 |
jari |
342 |
} else if( e.getSource() == this.anotherDeltaRho ) { |
2 |
26 Feb 07 |
jari |
343 |
this.onAnotherDeltaRho(); |
2 |
26 Feb 07 |
jari |
344 |
} |
2 |
26 Feb 07 |
jari |
345 |
} |
2 |
26 Feb 07 |
jari |
346 |
|
2 |
26 Feb 07 |
jari |
347 |
|
2 |
26 Feb 07 |
jari |
348 |
/** |
2 |
26 Feb 07 |
jari |
349 |
* |
2 |
26 Feb 07 |
jari |
* @param assLine |
2 |
26 Feb 07 |
jari |
* @param dScore |
2 |
26 Feb 07 |
jari |
* @return |
2 |
26 Feb 07 |
jari |
353 |
*/ |
2 |
26 Feb 07 |
jari |
354 |
private String formatLine(String assLine, String dScore) { |
2 |
26 Feb 07 |
jari |
355 |
int width = 70; |
2 |
26 Feb 07 |
jari |
356 |
|
2 |
26 Feb 07 |
jari |
357 |
int assKount = assLine.length(); |
2 |
26 Feb 07 |
jari |
358 |
int dKount = dScore.length(); |
2 |
26 Feb 07 |
jari |
359 |
|
2 |
26 Feb 07 |
jari |
360 |
int diff = width - assKount - dKount; |
2 |
26 Feb 07 |
jari |
361 |
|
2 |
26 Feb 07 |
jari |
362 |
StringBuffer sb = new StringBuffer(assLine); |
2 |
26 Feb 07 |
jari |
363 |
for( int i = 0; i < diff; i++ ) { |
2 |
26 Feb 07 |
jari |
364 |
sb.append("-"); |
2 |
26 Feb 07 |
jari |
365 |
} |
2 |
26 Feb 07 |
jari |
366 |
sb.append(dScore); |
2 |
26 Feb 07 |
jari |
367 |
|
2 |
26 Feb 07 |
jari |
368 |
return sb.toString(); |
2 |
26 Feb 07 |
jari |
369 |
} |
2 |
26 Feb 07 |
jari |
370 |
|
2 |
26 Feb 07 |
jari |
371 |
|
2 |
26 Feb 07 |
jari |
372 |
public JComponent getContentComponent() { |
2 |
26 Feb 07 |
jari |
373 |
return this; |
2 |
26 Feb 07 |
jari |
374 |
}//getContentComponent() |
2 |
26 Feb 07 |
jari |
375 |
|
2 |
26 Feb 07 |
jari |
376 |
|
2 |
26 Feb 07 |
jari |
377 |
public JComponent getHeaderComponent() { |
2 |
26 Feb 07 |
jari |
378 |
return null; |
2 |
26 Feb 07 |
jari |
379 |
} |
2 |
26 Feb 07 |
jari |
380 |
|
2 |
26 Feb 07 |
jari |
381 |
|
2 |
26 Feb 07 |
jari |
382 |
public JComponent getRowHeaderComponent() { |
2 |
26 Feb 07 |
jari |
383 |
return null; |
2 |
26 Feb 07 |
jari |
384 |
} |
2 |
26 Feb 07 |
jari |
385 |
|
2 |
26 Feb 07 |
jari |
386 |
|
2 |
26 Feb 07 |
jari |
387 |
public JComponent getCornerComponent(int cornerIndex) { |
2 |
26 Feb 07 |
jari |
388 |
return null; |
2 |
26 Feb 07 |
jari |
389 |
} |
2 |
26 Feb 07 |
jari |
390 |
|
2 |
26 Feb 07 |
jari |
391 |
|
2 |
26 Feb 07 |
jari |
392 |
public void onSelected(IFramework framework) { |
2 |
26 Feb 07 |
jari |
//EH |
2 |
26 Feb 07 |
jari |
394 |
this.framework = framework; |
2 |
26 Feb 07 |
jari |
395 |
} |
2 |
26 Feb 07 |
jari |
396 |
|
2 |
26 Feb 07 |
jari |
397 |
|
2 |
26 Feb 07 |
jari |
398 |
public void onDataChanged(IData data) { |
2 |
26 Feb 07 |
jari |
399 |
|
2 |
26 Feb 07 |
jari |
400 |
} |
2 |
26 Feb 07 |
jari |
401 |
|
2 |
26 Feb 07 |
jari |
402 |
|
2 |
26 Feb 07 |
jari |
403 |
public void onMenuChanged(IDisplayMenu menu) { |
2 |
26 Feb 07 |
jari |
404 |
|
2 |
26 Feb 07 |
jari |
405 |
} |
2 |
26 Feb 07 |
jari |
406 |
|
2 |
26 Feb 07 |
jari |
407 |
|
2 |
26 Feb 07 |
jari |
408 |
public void onDeselected() { |
2 |
26 Feb 07 |
jari |
409 |
|
2 |
26 Feb 07 |
jari |
410 |
} |
2 |
26 Feb 07 |
jari |
411 |
|
2 |
26 Feb 07 |
jari |
412 |
|
2 |
26 Feb 07 |
jari |
413 |
public void onClosed() { |
2 |
26 Feb 07 |
jari |
414 |
|
2 |
26 Feb 07 |
jari |
415 |
} |
2 |
26 Feb 07 |
jari |
416 |
|
2 |
26 Feb 07 |
jari |
417 |
|
2 |
26 Feb 07 |
jari |
418 |
public BufferedImage getImage() { |
2 |
26 Feb 07 |
jari |
419 |
return null; |
2 |
26 Feb 07 |
jari |
420 |
} |
2 |
26 Feb 07 |
jari |
421 |
|
2 |
26 Feb 07 |
jari |
422 |
|
2 |
26 Feb 07 |
jari |
423 |
public int[][] getClusters() { |
2 |
26 Feb 07 |
jari |
424 |
return null; |
2 |
26 Feb 07 |
jari |
425 |
} |
2 |
26 Feb 07 |
jari |
426 |
|
2 |
26 Feb 07 |
jari |
427 |
|
2 |
26 Feb 07 |
jari |
428 |
public Experiment getExperiment() { |
2 |
26 Feb 07 |
jari |
429 |
return null; |
2 |
26 Feb 07 |
jari |
430 |
} |
2 |
26 Feb 07 |
jari |
431 |
|
2 |
26 Feb 07 |
jari |
432 |
|
2 |
26 Feb 07 |
jari |
/* (non-Javadoc) |
2 |
26 Feb 07 |
jari |
* @see org.tigr.microarray.mev.cluster.gui.IViewer#getViewerType() |
2 |
26 Feb 07 |
jari |
435 |
*/ |
2 |
26 Feb 07 |
jari |
436 |
public int getViewerType() { |
2 |
26 Feb 07 |
jari |
437 |
return 0; |
2 |
26 Feb 07 |
jari |
438 |
} |
2 |
26 Feb 07 |
jari |
439 |
|
2 |
26 Feb 07 |
jari |
440 |
|
2 |
26 Feb 07 |
jari |
/** implemented only to satisfy the IViewer interface |
2 |
26 Feb 07 |
jari |
* @see org.tigr.microarray.mev.cluster.gui.IViewer#setExperiment(org.tigr.microarray.mev.cluster.gui.Experiment) |
2 |
26 Feb 07 |
jari |
443 |
*/ |
2 |
26 Feb 07 |
jari |
444 |
public void setExperiment(Experiment e) { |
2 |
26 Feb 07 |
jari |
//do nothing |
2 |
26 Feb 07 |
jari |
446 |
} |
2 |
26 Feb 07 |
jari |
447 |
|
2 |
26 Feb 07 |
jari |
448 |
|
2 |
26 Feb 07 |
jari |
449 |
/** |
2 |
26 Feb 07 |
jari |
* @see org.tigr.microarray.mev.cluster.gui.IViewer#getExperimentID() |
2 |
26 Feb 07 |
jari |
451 |
*/ |
2 |
26 Feb 07 |
jari |
452 |
public int getExperimentID() { |
2 |
26 Feb 07 |
jari |
453 |
return 0; |
2 |
26 Feb 07 |
jari |
454 |
} |
2 |
26 Feb 07 |
jari |
455 |
|
2 |
26 Feb 07 |
jari |
456 |
|
2 |
26 Feb 07 |
jari |
457 |
/** |
2 |
26 Feb 07 |
jari |
* This method is implemented only to satisfy the IViewer interface |
2 |
26 Feb 07 |
jari |
* @see org.tigr.microarray.mev.cluster.gui.IViewer#setExperimentID(int) |
2 |
26 Feb 07 |
jari |
460 |
*/ |
2 |
26 Feb 07 |
jari |
461 |
public void setExperimentID(int id) { |
2 |
26 Feb 07 |
jari |
462 |
; |
2 |
26 Feb 07 |
jari |
463 |
} |
2 |
26 Feb 07 |
jari |
464 |
|
2 |
26 Feb 07 |
jari |
465 |
|
2 |
26 Feb 07 |
jari |
466 |
/** |
2 |
26 Feb 07 |
jari |
* @see org.tigr.microarray.mev.cluster.gui.IViewer#getExpression() |
2 |
26 Feb 07 |
jari |
468 |
*/ |
2 |
26 Feb 07 |
jari |
469 |
public Expression getExpression() { |
2 |
26 Feb 07 |
jari |
470 |
return new Expression(this, this.getClass(), "new", |
2 |
26 Feb 07 |
jari |
471 |
new Object[]{this.hybNames, this.result, this.uniqueClasses, this.params, this.genes}); |
2 |
26 Feb 07 |
jari |
472 |
} |
2 |
26 Feb 07 |
jari |
// java.lang.RuntimeException: failed to evaluate: <unbound>=USCSummaryViewer.new( |
2 |
26 Feb 07 |
jari |
// StringArray0, USCResult0, StringArray1, StringArray2, USCGeneArray0); |
2 |
26 Feb 07 |
jari |
475 |
|
2 |
26 Feb 07 |
jari |
476 |
}//end class |
2 |
26 Feb 07 |
jari |
477 |
|
2 |
26 Feb 07 |
jari |
478 |
/* |
2 |
26 Feb 07 |
jari |
* public JPanel createAssPanelTest() { String[] testHybNames = new String[ 20 ]; |
2 |
26 Feb 07 |
jari |
* String[] dScores = new String[ 20 ]; for( int i = 0; i < testHybNames.length; |
2 |
26 Feb 07 |
jari |
* i ++ ) { testHybNames[ i ] = ( i + ".txt" ); dScores[ i ] = ( "0." + i ); } |
2 |
26 Feb 07 |
jari |
482 |
* |
2 |
26 Feb 07 |
jari |
* Border loweredBorder = BorderFactory.createLoweredBevelBorder(); |
2 |
26 Feb 07 |
jari |
484 |
* |
2 |
26 Feb 07 |
jari |
* JPanel assPanel = new JPanel(); Dimension d = new Dimension( 315, 385 ); |
2 |
26 Feb 07 |
jari |
* assPanel.setPreferredSize( d ); assPanel.setMaximumSize( d ); |
2 |
26 Feb 07 |
jari |
* assPanel.setMinimumSize( d ); Font font = new Font( "Arial", Font.PLAIN, 12 ); |
2 |
26 Feb 07 |
jari |
* assPanel.setBorder( BorderFactory.createTitledBorder( loweredBorder, "Class |
2 |
26 Feb 07 |
jari |
* Assignments", TitledBorder.LEFT, TitledBorder.DEFAULT_POSITION, font, |
2 |
26 Feb 07 |
jari |
* Color.GRAY ) ); |
2 |
26 Feb 07 |
jari |
491 |
* |
2 |
26 Feb 07 |
jari |
* BoxLayout bl = new BoxLayout( assPanel, BoxLayout.Y_AXIS ); |
2 |
26 Feb 07 |
jari |
* assPanel.setLayout( bl ); |
2 |
26 Feb 07 |
jari |
494 |
* |
2 |
26 Feb 07 |
jari |
* JPanel dPanel = new JPanel(); Dimension dD = new Dimension( 95, 385 ); |
2 |
26 Feb 07 |
jari |
* dPanel.setPreferredSize( dD ); dPanel.setMaximumSize( dD ); |
2 |
26 Feb 07 |
jari |
* dPanel.setMinimumSize( dD ); dPanel.setBorder( |
2 |
26 Feb 07 |
jari |
* BorderFactory.createTitledBorder( loweredBorder, "D-Score", |
2 |
26 Feb 07 |
jari |
* TitledBorder.CENTER, TitledBorder.DEFAULT_POSITION, font, Color.GRAY ) ); |
2 |
26 Feb 07 |
jari |
500 |
* |
2 |
26 Feb 07 |
jari |
* BoxLayout bl2 = new BoxLayout( dPanel, BoxLayout.Y_AXIS ); dPanel.setLayout( |
2 |
26 Feb 07 |
jari |
* bl2 ); |
2 |
26 Feb 07 |
jari |
503 |
* |
2 |
26 Feb 07 |
jari |
* //should list the test hybs and the class to which they were assigned for( |
2 |
26 Feb 07 |
jari |
* int h = 0; h < testHybNames.length; h ++ ) { String sAss = new String( " " + |
2 |
26 Feb 07 |
jari |
* testHybNames[ h ] + " >> " + h + " " ); |
2 |
26 Feb 07 |
jari |
507 |
* |
2 |
26 Feb 07 |
jari |
* JLabel label = new JLabel( sAss ); assPanel.add( label ); |
2 |
26 Feb 07 |
jari |
509 |
* |
2 |
26 Feb 07 |
jari |
* JLabel dLabel = new JLabel( dScores[ h ] ); dPanel.add( dLabel ); }//end h |
2 |
26 Feb 07 |
jari |
511 |
* |
2 |
26 Feb 07 |
jari |
* JPanel toReturn = new JPanel(); toReturn.setLayout( new SpringLayout() ); |
2 |
26 Feb 07 |
jari |
* toReturn.setSize( 410, 385 ); toReturn.add( assPanel ); toReturn.add( dPanel ); |
2 |
26 Feb 07 |
jari |
* SpringUtilities.makeCompactGrid( toReturn, 1, 2, 0, 0, 0, 0 ); return |
2 |
26 Feb 07 |
jari |
* toReturn; }// |
2 |
26 Feb 07 |
jari |
516 |
*/ |
2 |
26 Feb 07 |
jari |
517 |
|
2 |
26 Feb 07 |
jari |
518 |
/* |
2 |
26 Feb 07 |
jari |
* //for testing purposes public static void main( String[] args ) { |
2 |
26 Feb 07 |
jari |
* System.out.println( "invoked by main" ); USCSummaryViewer usv = new |
2 |
26 Feb 07 |
jari |
* USCSummaryViewer(); JFrame jf = new JFrame(); jf.setSize( 800, 620 ); |
2 |
26 Feb 07 |
jari |
* jf.getContentPane().add( usv ); jf.show(); } public USCSummaryViewer() { |
2 |
26 Feb 07 |
jari |
* this.setLayout( new SpringLayout() ); |
2 |
26 Feb 07 |
jari |
524 |
* |
2 |
26 Feb 07 |
jari |
* String[] params = new String[ 4 ]; params[ 0 ] = "50"; params[ 1 ] = "0.5"; |
2 |
26 Feb 07 |
jari |
* params[ 2 ] = "1.0"; params[ 3 ] = "0.1"; |
2 |
26 Feb 07 |
jari |
527 |
* |
2 |
26 Feb 07 |
jari |
* String[] g = new String[ 600 ]; for( int i = 0; i < g.length; i ++ ) { g[ i ] = |
2 |
26 Feb 07 |
jari |
* new String( i + " 0123456789012345678" ); } |
2 |
26 Feb 07 |
jari |
530 |
* |
2 |
26 Feb 07 |
jari |
* JPanel leftPanel = new JPanel(); leftPanel.setLayout( new SpringLayout() ); |
2 |
26 Feb 07 |
jari |
* leftPanel.add( this.createParamPanel( 0.4f, 0.9f, params ) ); leftPanel.add( |
2 |
26 Feb 07 |
jari |
* this.createAssPanelTest() ); |
2 |
26 Feb 07 |
jari |
534 |
* |
2 |
26 Feb 07 |
jari |
* JPanel rightPanel = new JPanel(); rightPanel.setLayout( new SpringLayout() ); |
2 |
26 Feb 07 |
jari |
* rightPanel.add( this.createGenePanel( g ) ); |
2 |
26 Feb 07 |
jari |
537 |
* |
2 |
26 Feb 07 |
jari |
* this.add( leftPanel ); this.add( rightPanel ); |
2 |
26 Feb 07 |
jari |
539 |
* |
2 |
26 Feb 07 |
jari |
* SpringUtilities.makeCompactGrid( this, 1, 2, 10, 10, 10, 10 ); |
2 |
26 Feb 07 |
jari |
* SpringUtilities.makeCompactGrid( leftPanel, 2, 1, 10, 10, 10, 10 ); |
2 |
26 Feb 07 |
jari |
* SpringUtilities.makeCompactGrid( rightPanel, 1, 1, 10, 10, 10, 10 ); } |
2 |
26 Feb 07 |
jari |
543 |
*/ |