2 |
26 Feb 07 |
jari |
1 |
/* |
2 |
26 Feb 07 |
jari |
* AnnotationURLLinkDialog.java |
2 |
26 Feb 07 |
jari |
3 |
* |
2 |
26 Feb 07 |
jari |
* Created on June 30, 2004, 1:33 PM |
2 |
26 Feb 07 |
jari |
5 |
*/ |
2 |
26 Feb 07 |
jari |
6 |
|
2 |
26 Feb 07 |
jari |
7 |
package org.tigr.microarray.mev.cluster.gui.helpers; |
2 |
26 Feb 07 |
jari |
8 |
|
2 |
26 Feb 07 |
jari |
9 |
import java.awt.Color; |
2 |
26 Feb 07 |
jari |
10 |
import java.awt.Dimension; |
2 |
26 Feb 07 |
jari |
11 |
import java.awt.GridBagConstraints; |
2 |
26 Feb 07 |
jari |
12 |
import java.awt.GridBagLayout; |
2 |
26 Feb 07 |
jari |
13 |
import java.awt.Toolkit; |
2 |
26 Feb 07 |
jari |
14 |
import java.awt.event.ActionEvent; |
2 |
26 Feb 07 |
jari |
15 |
import java.awt.event.ActionListener; |
2 |
26 Feb 07 |
jari |
16 |
import java.awt.event.WindowAdapter; |
2 |
26 Feb 07 |
jari |
17 |
import java.io.BufferedReader; |
2 |
26 Feb 07 |
jari |
18 |
import java.io.File; |
2 |
26 Feb 07 |
jari |
19 |
import java.io.FileReader; |
2 |
26 Feb 07 |
jari |
20 |
import java.io.IOException; |
2 |
26 Feb 07 |
jari |
21 |
import java.util.Vector; |
2 |
26 Feb 07 |
jari |
22 |
|
2 |
26 Feb 07 |
jari |
23 |
import javax.swing.JComboBox; |
2 |
26 Feb 07 |
jari |
24 |
import javax.swing.JFrame; |
2 |
26 Feb 07 |
jari |
25 |
import javax.swing.JOptionPane; |
2 |
26 Feb 07 |
jari |
26 |
import javax.swing.JPanel; |
2 |
26 Feb 07 |
jari |
27 |
import javax.swing.border.TitledBorder; |
2 |
26 Feb 07 |
jari |
28 |
|
2 |
26 Feb 07 |
jari |
29 |
import org.tigr.microarray.mev.cluster.gui.Experiment; |
2 |
26 Feb 07 |
jari |
30 |
import org.tigr.microarray.mev.cluster.gui.IData; |
2 |
26 Feb 07 |
jari |
31 |
import org.tigr.microarray.mev.cluster.gui.impl.dialogs.AlgorithmDialog; |
2 |
26 Feb 07 |
jari |
32 |
import org.tigr.util.BrowserLauncher; |
2 |
26 Feb 07 |
jari |
33 |
import org.tigr.util.StringSplitter; |
2 |
26 Feb 07 |
jari |
34 |
|
2 |
26 Feb 07 |
jari |
35 |
/** |
2 |
26 Feb 07 |
jari |
36 |
* |
2 |
26 Feb 07 |
jari |
* @author nbhagaba |
2 |
26 Feb 07 |
jari |
38 |
*/ |
2 |
26 Feb 07 |
jari |
39 |
public class AnnotationURLLinkDialog extends AlgorithmDialog { |
2 |
26 Feb 07 |
jari |
//NOTE: In the main constructor for this class, the argument "row" is what's obtained AFTER applying getGeneIndexMappedToSelectedRows(); i.e., use as is; no need to re-map for cutoffs |
2 |
26 Feb 07 |
jari |
41 |
File file; |
2 |
26 Feb 07 |
jari |
42 |
JComboBox annotationFieldsBox, urlTypesBox; |
2 |
26 Feb 07 |
jari |
43 |
String[] urlTemplates, urlKeys; |
2 |
26 Feb 07 |
jari |
44 |
IData data; |
2 |
26 Feb 07 |
jari |
45 |
Experiment experiment; |
2 |
26 Feb 07 |
jari |
46 |
int row; |
2 |
26 Feb 07 |
jari |
47 |
private int[] lastSelectedIndices; |
2 |
26 Feb 07 |
jari |
48 |
boolean okPressed = false; |
2 |
26 Feb 07 |
jari |
49 |
String annotationKey; |
2 |
26 Feb 07 |
jari |
50 |
|
2 |
26 Feb 07 |
jari |
/** Creates a new instance of AnnotationURLLinkDialog */ |
2 |
26 Feb 07 |
jari |
52 |
public AnnotationURLLinkDialog(JFrame parent, boolean modal, String[] annotationFields, String[] urlTypes) { |
2 |
26 Feb 07 |
jari |
//this constructor just used for testing, see real constructor below |
2 |
26 Feb 07 |
jari |
54 |
super(parent, "Link annotation to URL", modal); |
2 |
26 Feb 07 |
jari |
55 |
|
2 |
26 Feb 07 |
jari |
56 |
setBounds(0, 0, 500, 300); |
2 |
26 Feb 07 |
jari |
57 |
setBackground(Color.white); |
2 |
26 Feb 07 |
jari |
58 |
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); |
2 |
26 Feb 07 |
jari |
59 |
GridBagLayout gridbag = new GridBagLayout(); |
2 |
26 Feb 07 |
jari |
60 |
GridBagConstraints constraints = new GridBagConstraints(); |
2 |
26 Feb 07 |
jari |
//constraints.fill = GridBagConstraints.BOTH; |
2 |
26 Feb 07 |
jari |
62 |
|
2 |
26 Feb 07 |
jari |
63 |
JPanel pane = new JPanel(); |
2 |
26 Feb 07 |
jari |
64 |
pane.setLayout(gridbag); |
2 |
26 Feb 07 |
jari |
65 |
|
2 |
26 Feb 07 |
jari |
66 |
JPanel topPanel = new JPanel(); |
2 |
26 Feb 07 |
jari |
67 |
topPanel.setBackground(Color.white); |
2 |
26 Feb 07 |
jari |
68 |
topPanel.setBorder(new TitledBorder("Select annotation to link out from")); |
2 |
26 Feb 07 |
jari |
69 |
GridBagLayout grid1 = new GridBagLayout(); |
2 |
26 Feb 07 |
jari |
70 |
topPanel.setLayout(grid1); |
2 |
26 Feb 07 |
jari |
71 |
|
2 |
26 Feb 07 |
jari |
72 |
annotationFieldsBox = new JComboBox(annotationFields); |
2 |
26 Feb 07 |
jari |
73 |
buildConstraints(constraints, 0, 0, 1, 1, 100, 100); |
2 |
26 Feb 07 |
jari |
74 |
grid1.setConstraints(annotationFieldsBox, constraints); |
2 |
26 Feb 07 |
jari |
75 |
topPanel.add(annotationFieldsBox); |
2 |
26 Feb 07 |
jari |
76 |
|
2 |
26 Feb 07 |
jari |
77 |
JPanel bottomPanel = new JPanel(); |
2 |
26 Feb 07 |
jari |
78 |
bottomPanel.setBackground(Color.white); |
2 |
26 Feb 07 |
jari |
79 |
bottomPanel.setBorder(new TitledBorder("Select internet resource to link to")); |
2 |
26 Feb 07 |
jari |
80 |
GridBagLayout grid2 = new GridBagLayout(); |
2 |
26 Feb 07 |
jari |
81 |
bottomPanel.setLayout(grid2); |
2 |
26 Feb 07 |
jari |
82 |
|
2 |
26 Feb 07 |
jari |
83 |
urlTypesBox = new JComboBox(urlTypes); |
2 |
26 Feb 07 |
jari |
84 |
buildConstraints(constraints, 0, 0, 1, 1, 100, 100); |
2 |
26 Feb 07 |
jari |
85 |
grid2.setConstraints(urlTypesBox, constraints); |
2 |
26 Feb 07 |
jari |
86 |
bottomPanel.add(urlTypesBox); |
2 |
26 Feb 07 |
jari |
87 |
|
2 |
26 Feb 07 |
jari |
88 |
constraints.fill = GridBagConstraints.BOTH; |
2 |
26 Feb 07 |
jari |
89 |
|
2 |
26 Feb 07 |
jari |
90 |
buildConstraints(constraints, 0, 0, 1, 1, 100, 50); |
2 |
26 Feb 07 |
jari |
91 |
gridbag.setConstraints(topPanel, constraints); |
2 |
26 Feb 07 |
jari |
92 |
pane.add(topPanel); |
2 |
26 Feb 07 |
jari |
93 |
|
2 |
26 Feb 07 |
jari |
94 |
buildConstraints(constraints, 0, 1, 1, 1, 0, 50); |
2 |
26 Feb 07 |
jari |
95 |
gridbag.setConstraints(bottomPanel, constraints); |
2 |
26 Feb 07 |
jari |
96 |
pane.add(bottomPanel); |
2 |
26 Feb 07 |
jari |
97 |
|
2 |
26 Feb 07 |
jari |
98 |
addContent(pane); |
2 |
26 Feb 07 |
jari |
99 |
EventListener listener = new EventListener(); |
2 |
26 Feb 07 |
jari |
100 |
setActionListeners(listener); |
2 |
26 Feb 07 |
jari |
101 |
this.addWindowListener(listener); |
2 |
26 Feb 07 |
jari |
102 |
} |
2 |
26 Feb 07 |
jari |
103 |
|
2 |
26 Feb 07 |
jari |
104 |
public AnnotationURLLinkDialog(JFrame parent, boolean modal, Experiment experiment, IData data, int row, File file) { |
2 |
26 Feb 07 |
jari |
105 |
super(parent, "Link annotation to URL", modal); |
2 |
26 Feb 07 |
jari |
106 |
this.data = data; |
2 |
26 Feb 07 |
jari |
107 |
this.experiment = experiment; |
2 |
26 Feb 07 |
jari |
108 |
this.file = file; |
2 |
26 Feb 07 |
jari |
109 |
this.row = row; |
2 |
26 Feb 07 |
jari |
110 |
setBounds(0, 0, 500, 300); |
2 |
26 Feb 07 |
jari |
111 |
setBackground(Color.white); |
2 |
26 Feb 07 |
jari |
112 |
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); |
2 |
26 Feb 07 |
jari |
113 |
|
2 |
26 Feb 07 |
jari |
114 |
populateFields(); |
2 |
26 Feb 07 |
jari |
115 |
|
2 |
26 Feb 07 |
jari |
116 |
GridBagLayout gridbag = new GridBagLayout(); |
2 |
26 Feb 07 |
jari |
117 |
GridBagConstraints constraints = new GridBagConstraints(); |
2 |
26 Feb 07 |
jari |
//constraints.fill = GridBagConstraints.BOTH; |
2 |
26 Feb 07 |
jari |
119 |
|
2 |
26 Feb 07 |
jari |
120 |
JPanel pane = new JPanel(); |
2 |
26 Feb 07 |
jari |
121 |
pane.setLayout(gridbag); |
2 |
26 Feb 07 |
jari |
122 |
|
2 |
26 Feb 07 |
jari |
123 |
JPanel topPanel = new JPanel(); |
2 |
26 Feb 07 |
jari |
124 |
topPanel.setBackground(Color.white); |
2 |
26 Feb 07 |
jari |
125 |
topPanel.setBorder(new TitledBorder("Select annotation to link out from")); |
2 |
26 Feb 07 |
jari |
126 |
GridBagLayout grid1 = new GridBagLayout(); |
2 |
26 Feb 07 |
jari |
127 |
topPanel.setLayout(grid1); |
2 |
26 Feb 07 |
jari |
128 |
|
2 |
26 Feb 07 |
jari |
//annotationFieldsBox = new JComboBox(annotationFields); |
2 |
26 Feb 07 |
jari |
130 |
buildConstraints(constraints, 0, 0, 1, 1, 100, 100); |
2 |
26 Feb 07 |
jari |
131 |
grid1.setConstraints(annotationFieldsBox, constraints); |
2 |
26 Feb 07 |
jari |
132 |
topPanel.add(annotationFieldsBox); |
2 |
26 Feb 07 |
jari |
133 |
|
2 |
26 Feb 07 |
jari |
134 |
JPanel bottomPanel = new JPanel(); |
2 |
26 Feb 07 |
jari |
135 |
bottomPanel.setBackground(Color.white); |
2 |
26 Feb 07 |
jari |
136 |
bottomPanel.setBorder(new TitledBorder("Select internet resource to link to")); |
2 |
26 Feb 07 |
jari |
137 |
GridBagLayout grid2 = new GridBagLayout(); |
2 |
26 Feb 07 |
jari |
138 |
bottomPanel.setLayout(grid2); |
2 |
26 Feb 07 |
jari |
139 |
|
2 |
26 Feb 07 |
jari |
//urlTypesBox = new JComboBox(urlTypes); |
2 |
26 Feb 07 |
jari |
141 |
buildConstraints(constraints, 0, 0, 1, 1, 100, 100); |
2 |
26 Feb 07 |
jari |
142 |
grid2.setConstraints(urlTypesBox, constraints); |
2 |
26 Feb 07 |
jari |
143 |
bottomPanel.add(urlTypesBox); |
2 |
26 Feb 07 |
jari |
144 |
|
2 |
26 Feb 07 |
jari |
145 |
constraints.fill = GridBagConstraints.BOTH; |
2 |
26 Feb 07 |
jari |
146 |
|
2 |
26 Feb 07 |
jari |
147 |
buildConstraints(constraints, 0, 0, 1, 1, 100, 50); |
2 |
26 Feb 07 |
jari |
148 |
gridbag.setConstraints(topPanel, constraints); |
2 |
26 Feb 07 |
jari |
149 |
pane.add(topPanel); |
2 |
26 Feb 07 |
jari |
150 |
|
2 |
26 Feb 07 |
jari |
151 |
buildConstraints(constraints, 0, 1, 1, 1, 0, 50); |
2 |
26 Feb 07 |
jari |
152 |
gridbag.setConstraints(bottomPanel, constraints); |
2 |
26 Feb 07 |
jari |
153 |
pane.add(bottomPanel); |
2 |
26 Feb 07 |
jari |
154 |
|
2 |
26 Feb 07 |
jari |
155 |
addContent(pane); |
2 |
26 Feb 07 |
jari |
156 |
EventListener listener = new EventListener(); |
2 |
26 Feb 07 |
jari |
157 |
setActionListeners(listener); |
2 |
26 Feb 07 |
jari |
158 |
this.addWindowListener(listener); |
2 |
26 Feb 07 |
jari |
159 |
} |
2 |
26 Feb 07 |
jari |
160 |
|
2 |
26 Feb 07 |
jari |
161 |
public AnnotationURLLinkDialog(JFrame parent, boolean modal, Experiment experiment, IData data, int row, File file, int[] lastSelectedIndices) { |
2 |
26 Feb 07 |
jari |
162 |
super(parent, "Link annotation to URL", modal); |
2 |
26 Feb 07 |
jari |
163 |
this.data = data; |
2 |
26 Feb 07 |
jari |
164 |
this.experiment = experiment; |
2 |
26 Feb 07 |
jari |
165 |
this.file = file; |
2 |
26 Feb 07 |
jari |
166 |
this.row = row; |
2 |
26 Feb 07 |
jari |
167 |
this.lastSelectedIndices = lastSelectedIndices; |
2 |
26 Feb 07 |
jari |
168 |
setBounds(0, 0, 500, 300); |
2 |
26 Feb 07 |
jari |
169 |
setBackground(Color.white); |
2 |
26 Feb 07 |
jari |
170 |
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); |
2 |
26 Feb 07 |
jari |
171 |
|
2 |
26 Feb 07 |
jari |
172 |
populateFields(); |
2 |
26 Feb 07 |
jari |
173 |
|
2 |
26 Feb 07 |
jari |
174 |
annotationFieldsBox.setSelectedIndex(lastSelectedIndices[0]); |
2 |
26 Feb 07 |
jari |
175 |
urlTypesBox.setSelectedIndex(lastSelectedIndices[1]); |
2 |
26 Feb 07 |
jari |
176 |
|
2 |
26 Feb 07 |
jari |
177 |
GridBagLayout gridbag = new GridBagLayout(); |
2 |
26 Feb 07 |
jari |
178 |
GridBagConstraints constraints = new GridBagConstraints(); |
2 |
26 Feb 07 |
jari |
//constraints.fill = GridBagConstraints.BOTH; |
2 |
26 Feb 07 |
jari |
180 |
|
2 |
26 Feb 07 |
jari |
181 |
JPanel pane = new JPanel(); |
2 |
26 Feb 07 |
jari |
182 |
pane.setLayout(gridbag); |
2 |
26 Feb 07 |
jari |
183 |
|
2 |
26 Feb 07 |
jari |
184 |
JPanel topPanel = new JPanel(); |
2 |
26 Feb 07 |
jari |
185 |
topPanel.setBackground(Color.white); |
2 |
26 Feb 07 |
jari |
186 |
topPanel.setBorder(new TitledBorder("Select annotation to link out from")); |
2 |
26 Feb 07 |
jari |
187 |
GridBagLayout grid1 = new GridBagLayout(); |
2 |
26 Feb 07 |
jari |
188 |
topPanel.setLayout(grid1); |
2 |
26 Feb 07 |
jari |
189 |
|
2 |
26 Feb 07 |
jari |
//annotationFieldsBox = new JComboBox(annotationFields); |
2 |
26 Feb 07 |
jari |
191 |
buildConstraints(constraints, 0, 0, 1, 1, 100, 100); |
2 |
26 Feb 07 |
jari |
192 |
grid1.setConstraints(annotationFieldsBox, constraints); |
2 |
26 Feb 07 |
jari |
193 |
topPanel.add(annotationFieldsBox); |
2 |
26 Feb 07 |
jari |
194 |
|
2 |
26 Feb 07 |
jari |
195 |
JPanel bottomPanel = new JPanel(); |
2 |
26 Feb 07 |
jari |
196 |
bottomPanel.setBackground(Color.white); |
2 |
26 Feb 07 |
jari |
197 |
bottomPanel.setBorder(new TitledBorder("Select internet resource to link to")); |
2 |
26 Feb 07 |
jari |
198 |
GridBagLayout grid2 = new GridBagLayout(); |
2 |
26 Feb 07 |
jari |
199 |
bottomPanel.setLayout(grid2); |
2 |
26 Feb 07 |
jari |
200 |
|
2 |
26 Feb 07 |
jari |
//urlTypesBox = new JComboBox(urlTypes); |
2 |
26 Feb 07 |
jari |
202 |
buildConstraints(constraints, 0, 0, 1, 1, 100, 100); |
2 |
26 Feb 07 |
jari |
203 |
grid2.setConstraints(urlTypesBox, constraints); |
2 |
26 Feb 07 |
jari |
204 |
bottomPanel.add(urlTypesBox); |
2 |
26 Feb 07 |
jari |
205 |
|
2 |
26 Feb 07 |
jari |
206 |
constraints.fill = GridBagConstraints.BOTH; |
2 |
26 Feb 07 |
jari |
207 |
|
2 |
26 Feb 07 |
jari |
208 |
buildConstraints(constraints, 0, 0, 1, 1, 100, 50); |
2 |
26 Feb 07 |
jari |
209 |
gridbag.setConstraints(topPanel, constraints); |
2 |
26 Feb 07 |
jari |
210 |
pane.add(topPanel); |
2 |
26 Feb 07 |
jari |
211 |
|
2 |
26 Feb 07 |
jari |
212 |
buildConstraints(constraints, 0, 1, 1, 1, 0, 50); |
2 |
26 Feb 07 |
jari |
213 |
gridbag.setConstraints(bottomPanel, constraints); |
2 |
26 Feb 07 |
jari |
214 |
pane.add(bottomPanel); |
2 |
26 Feb 07 |
jari |
215 |
|
2 |
26 Feb 07 |
jari |
216 |
addContent(pane); |
2 |
26 Feb 07 |
jari |
217 |
EventListener listener = new EventListener(); |
2 |
26 Feb 07 |
jari |
218 |
setActionListeners(listener); |
2 |
26 Feb 07 |
jari |
219 |
this.addWindowListener(listener); |
2 |
26 Feb 07 |
jari |
220 |
} |
2 |
26 Feb 07 |
jari |
221 |
|
2 |
26 Feb 07 |
jari |
222 |
|
2 |
26 Feb 07 |
jari |
223 |
public void setVisible(boolean visible) { |
2 |
26 Feb 07 |
jari |
224 |
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); |
2 |
26 Feb 07 |
jari |
225 |
setLocation((screenSize.width - getSize().width)/2, (screenSize.height - getSize().height)/2); |
2 |
26 Feb 07 |
jari |
226 |
|
2 |
26 Feb 07 |
jari |
227 |
super.setVisible(visible); |
2 |
26 Feb 07 |
jari |
228 |
|
2 |
26 Feb 07 |
jari |
229 |
if (visible) { |
2 |
26 Feb 07 |
jari |
//bPanel.okButton.requestFocus(); //UNCOMMMENT THIS LATER |
2 |
26 Feb 07 |
jari |
231 |
} |
2 |
26 Feb 07 |
jari |
232 |
} |
2 |
26 Feb 07 |
jari |
233 |
|
2 |
26 Feb 07 |
jari |
234 |
public boolean isOkPressed() { |
2 |
26 Feb 07 |
jari |
235 |
return okPressed; |
2 |
26 Feb 07 |
jari |
236 |
} |
2 |
26 Feb 07 |
jari |
237 |
|
2 |
26 Feb 07 |
jari |
238 |
void buildConstraints(GridBagConstraints gbc, int gx, int gy, |
2 |
26 Feb 07 |
jari |
239 |
int gw, int gh, int wx, int wy) { |
2 |
26 Feb 07 |
jari |
240 |
|
2 |
26 Feb 07 |
jari |
241 |
gbc.gridx = gx; |
2 |
26 Feb 07 |
jari |
242 |
gbc.gridy = gy; |
2 |
26 Feb 07 |
jari |
243 |
gbc.gridwidth = gw; |
2 |
26 Feb 07 |
jari |
244 |
gbc.gridheight = gh; |
2 |
26 Feb 07 |
jari |
245 |
gbc.weightx = wx; |
2 |
26 Feb 07 |
jari |
246 |
gbc.weighty = wy; |
2 |
26 Feb 07 |
jari |
247 |
} |
2 |
26 Feb 07 |
jari |
248 |
|
2 |
26 Feb 07 |
jari |
249 |
private void populateFields() { |
2 |
26 Feb 07 |
jari |
250 |
Vector annotFieldsVector = new Vector(); |
2 |
26 Feb 07 |
jari |
251 |
Vector urlKeysVector = new Vector(); |
2 |
26 Feb 07 |
jari |
252 |
Vector urlTemplateVector = new Vector(); |
2 |
26 Feb 07 |
jari |
253 |
Vector urlDescriptionVector = new Vector(); |
2 |
26 Feb 07 |
jari |
254 |
try { |
2 |
26 Feb 07 |
jari |
255 |
FileReader fr = new FileReader(file); |
2 |
26 Feb 07 |
jari |
256 |
BufferedReader buff = new BufferedReader(fr); |
2 |
26 Feb 07 |
jari |
257 |
StringSplitter st = new StringSplitter('\t'); |
2 |
26 Feb 07 |
jari |
258 |
boolean eof = false; |
2 |
26 Feb 07 |
jari |
259 |
while (!eof) { |
2 |
26 Feb 07 |
jari |
260 |
String line = buff.readLine(); |
2 |
26 Feb 07 |
jari |
261 |
if (line == null) eof = true; |
2 |
26 Feb 07 |
jari |
262 |
else { |
2 |
26 Feb 07 |
jari |
263 |
st.init(line); |
2 |
26 Feb 07 |
jari |
264 |
urlKeysVector.add(st.nextToken()); |
2 |
26 Feb 07 |
jari |
265 |
urlTemplateVector.add(st.nextToken()); |
2 |
26 Feb 07 |
jari |
266 |
urlDescriptionVector.add(st.nextToken()); |
2 |
26 Feb 07 |
jari |
267 |
} |
2 |
26 Feb 07 |
jari |
268 |
} |
2 |
26 Feb 07 |
jari |
269 |
buff.close(); |
2 |
26 Feb 07 |
jari |
270 |
String[] urlDescriptions = new String[urlDescriptionVector.size()]; |
2 |
26 Feb 07 |
jari |
271 |
for (int i = 0; i < urlDescriptions.length; i++) { |
2 |
26 Feb 07 |
jari |
272 |
urlDescriptions[i] = (String)(urlDescriptionVector.get(i)); |
2 |
26 Feb 07 |
jari |
273 |
} |
2 |
26 Feb 07 |
jari |
274 |
urlTypesBox = new JComboBox(urlDescriptions); |
2 |
26 Feb 07 |
jari |
275 |
annotationFieldsBox = new JComboBox(data.getFieldNames()); |
2 |
26 Feb 07 |
jari |
276 |
urlTemplates = new String[urlTemplateVector.size()]; |
2 |
26 Feb 07 |
jari |
277 |
urlKeys = new String[urlKeysVector.size()]; |
2 |
26 Feb 07 |
jari |
278 |
|
2 |
26 Feb 07 |
jari |
279 |
for (int i = 0; i < urlTemplates.length; i++) { |
2 |
26 Feb 07 |
jari |
280 |
urlTemplates[i] = (String)(urlTemplateVector.get(i)); |
2 |
26 Feb 07 |
jari |
281 |
} |
2 |
26 Feb 07 |
jari |
282 |
for (int i = 0; i < urlKeys.length; i++) { |
2 |
26 Feb 07 |
jari |
283 |
urlKeys[i] = (String)(urlKeysVector.get(i)); |
2 |
26 Feb 07 |
jari |
284 |
} |
2 |
26 Feb 07 |
jari |
285 |
} catch (java.io.FileNotFoundException fne) { |
2 |
26 Feb 07 |
jari |
286 |
JOptionPane.showMessageDialog(new JFrame(), "Could not find \"annotation_URLs.txt\" file in \"config\" directory", "Error", JOptionPane.ERROR_MESSAGE); |
2 |
26 Feb 07 |
jari |
287 |
} catch (Exception e) { |
2 |
26 Feb 07 |
jari |
288 |
JOptionPane.showMessageDialog(new JFrame(), "Incompatible \"annotation_URLs.txt\" file in \"config\" directory! Possible issues: extra newline characters, too many or too few tabs per line", "Error", JOptionPane.ERROR_MESSAGE); |
2 |
26 Feb 07 |
jari |
289 |
} |
2 |
26 Feb 07 |
jari |
290 |
} |
2 |
26 Feb 07 |
jari |
291 |
|
2 |
26 Feb 07 |
jari |
292 |
private void launchBrowser() { |
2 |
26 Feb 07 |
jari |
//int fieldIndex = annotationFieldsBox.getSelectedIndex(); |
2 |
26 Feb 07 |
jari |
//int urlTemplateIndex = urlTypesBox.getSelectedIndex(); |
2 |
26 Feb 07 |
jari |
295 |
try { |
2 |
26 Feb 07 |
jari |
//String currentURLTemplate = urlTemplates[urlTemplateIndex]; |
2 |
26 Feb 07 |
jari |
//NOTE: In the following statement, the argument "row" is what's obtained AFTER applying getGeneIndexMappedToSelectedRows(); i.e., use as is; no need to re-map for cutoffs |
2 |
26 Feb 07 |
jari |
//String currentAnnotationString = data.getElementAttribute(row, fieldIndex); |
2 |
26 Feb 07 |
jari |
//String urlToUse = currentURLTemplate.replaceAll("FIELD1", currentAnnotationString); |
2 |
26 Feb 07 |
jari |
300 |
String urlToUse = getCurrentURL(); |
2 |
26 Feb 07 |
jari |
//System.out.println("url To use = " + urlToUse); |
2 |
26 Feb 07 |
jari |
//BrowserLauncher.openURL(urlTemplates[fieldIndex]); |
2 |
26 Feb 07 |
jari |
303 |
BrowserLauncher.openURL(urlToUse); |
2 |
26 Feb 07 |
jari |
304 |
} catch (IOException ie) { |
2 |
26 Feb 07 |
jari |
305 |
JOptionPane.showMessageDialog(new JFrame(), ie.toString(),"Error", JOptionPane.ERROR_MESSAGE); |
2 |
26 Feb 07 |
jari |
306 |
} catch (Exception e) { |
2 |
26 Feb 07 |
jari |
307 |
JOptionPane.showMessageDialog(new JFrame(), "Browser could not be launched! Possible problem: the annotation format may not be appropriate for this URL type!","Error", JOptionPane.ERROR_MESSAGE); |
2 |
26 Feb 07 |
jari |
308 |
} |
2 |
26 Feb 07 |
jari |
309 |
} |
2 |
26 Feb 07 |
jari |
310 |
|
2 |
26 Feb 07 |
jari |
311 |
private String getCurrentURL() { |
2 |
26 Feb 07 |
jari |
312 |
int fieldIndex = annotationFieldsBox.getSelectedIndex(); |
2 |
26 Feb 07 |
jari |
313 |
int urlTemplateIndex = urlTypesBox.getSelectedIndex(); |
2 |
26 Feb 07 |
jari |
314 |
String currentURLTemplate = urlTemplates[urlTemplateIndex]; |
2 |
26 Feb 07 |
jari |
315 |
String currentURLKey = urlKeys[urlTemplateIndex]; |
2 |
26 Feb 07 |
jari |
316 |
String urlToUse = ""; |
2 |
26 Feb 07 |
jari |
//NOTE: In the following statement, the argument "row" is what's obtained AFTER applying getGeneIndexMappedToSelectedRows(); i.e., use as is; no need to re-map for cutoffs |
2 |
26 Feb 07 |
jari |
318 |
String currentAnnotationString = data.getElementAttribute(row, fieldIndex); |
2 |
26 Feb 07 |
jari |
//System.out.println("currentAnnotationString = " + currentAnnotationString); |
2 |
26 Feb 07 |
jari |
320 |
|
2 |
26 Feb 07 |
jari |
321 |
if (currentURLKey.equals("UniGene")) { |
2 |
26 Feb 07 |
jari |
322 |
String[] splitAnnotation = currentAnnotationString.split("\\."); |
2 |
26 Feb 07 |
jari |
323 |
/* |
2 |
26 Feb 07 |
jari |
for (int i = 0; i < splitAnnotation.length; i++) { |
2 |
26 Feb 07 |
jari |
System.out.print("splitAnnotation[" + i + "] = " + splitAnnotation[i]); |
2 |
26 Feb 07 |
jari |
326 |
} |
2 |
26 Feb 07 |
jari |
327 |
*/ |
2 |
26 Feb 07 |
jari |
328 |
String s1 = currentURLTemplate.replaceAll("FIELD1", splitAnnotation[1]); |
2 |
26 Feb 07 |
jari |
329 |
urlToUse = s1.replaceAll("FIELD2", splitAnnotation[0]); |
2 |
26 Feb 07 |
jari |
330 |
} else { |
2 |
26 Feb 07 |
jari |
331 |
urlToUse = currentURLTemplate.replaceAll("FIELD1", currentAnnotationString); |
2 |
26 Feb 07 |
jari |
332 |
} |
2 |
26 Feb 07 |
jari |
//System.out.println("url To use = " + urlToUse); |
2 |
26 Feb 07 |
jari |
334 |
return urlToUse; |
2 |
26 Feb 07 |
jari |
335 |
} |
2 |
26 Feb 07 |
jari |
336 |
|
2 |
26 Feb 07 |
jari |
337 |
public int[] getLastSelectedIndices() { |
2 |
26 Feb 07 |
jari |
338 |
return lastSelectedIndices; |
2 |
26 Feb 07 |
jari |
339 |
} |
2 |
26 Feb 07 |
jari |
340 |
|
2 |
26 Feb 07 |
jari |
341 |
public void setLastSelectedIndices() { |
2 |
26 Feb 07 |
jari |
//int[] lastSelectedIndices = new int[2]; |
2 |
26 Feb 07 |
jari |
343 |
lastSelectedIndices[0] = annotationFieldsBox.getSelectedIndex(); |
2 |
26 Feb 07 |
jari |
344 |
lastSelectedIndices[1] = urlTypesBox.getSelectedIndex(); |
2 |
26 Feb 07 |
jari |
//return lastSelectedIndices; |
2 |
26 Feb 07 |
jari |
346 |
} |
2 |
26 Feb 07 |
jari |
347 |
|
2 |
26 Feb 07 |
jari |
348 |
public class EventListener extends WindowAdapter implements ActionListener { |
2 |
26 Feb 07 |
jari |
349 |
|
2 |
26 Feb 07 |
jari |
350 |
public void actionPerformed(ActionEvent ae) { |
2 |
26 Feb 07 |
jari |
351 |
String command = ae.getActionCommand(); |
2 |
26 Feb 07 |
jari |
352 |
if(command.equals("ok-command")){ |
2 |
26 Feb 07 |
jari |
353 |
okPressed = true; |
2 |
26 Feb 07 |
jari |
354 |
setLastSelectedIndices(); |
2 |
26 Feb 07 |
jari |
355 |
ExperimentUtil.lastSelectedAnnotationIndices = getLastSelectedIndices(); |
2 |
26 Feb 07 |
jari |
//int index = urlTypesBox.getSelectedIndex(); |
2 |
26 Feb 07 |
jari |
357 |
launchBrowser(); |
2 |
26 Feb 07 |
jari |
//BrowserLauncher.openURL(urlTemplates[index]); |
2 |
26 Feb 07 |
jari |
359 |
dispose(); |
2 |
26 Feb 07 |
jari |
360 |
} else if (command.equals("reset-command")) { |
2 |
26 Feb 07 |
jari |
361 |
annotationFieldsBox.setSelectedIndex(0); |
2 |
26 Feb 07 |
jari |
362 |
urlTypesBox.setSelectedIndex(0); |
2 |
26 Feb 07 |
jari |
363 |
setLastSelectedIndices(); |
2 |
26 Feb 07 |
jari |
364 |
ExperimentUtil.lastSelectedAnnotationIndices = getLastSelectedIndices(); |
2 |
26 Feb 07 |
jari |
365 |
} else if (command.equals("cancel-command")) { |
2 |
26 Feb 07 |
jari |
366 |
okPressed = false; |
2 |
26 Feb 07 |
jari |
367 |
dispose(); |
2 |
26 Feb 07 |
jari |
368 |
} else if (command.equals("info-command")){ |
2 |
26 Feb 07 |
jari |
369 |
|
2 |
26 Feb 07 |
jari |
370 |
} |
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 |
375 |
public static void main (String[] args) { |
2 |
26 Feb 07 |
jari |
376 |
String[] arg1 = {"User-defined field 1", "User-defined field 2", "User-defined field 3", "User-defined field 4"}; |
2 |
26 Feb 07 |
jari |
377 |
String[] arg2 = {"GenBank", "TC#", "LocusLink", "Unigene"}; |
2 |
26 Feb 07 |
jari |
378 |
|
2 |
26 Feb 07 |
jari |
379 |
AnnotationURLLinkDialog aDialog = new AnnotationURLLinkDialog(new JFrame(), false, arg1, arg2); |
2 |
26 Feb 07 |
jari |
380 |
aDialog.setVisible(true); |
2 |
26 Feb 07 |
jari |
381 |
} |
2 |
26 Feb 07 |
jari |
382 |
|
2 |
26 Feb 07 |
jari |
383 |
} |