mev-4.0.01/source/org/tigr/microarray/mev/cluster/gui/helpers/AnnotationURLLinkDialog.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2  * AnnotationURLLinkDialog.java
2 26 Feb 07 jari 3  *
2 26 Feb 07 jari 4  * 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 37  * @author  nbhagaba
2 26 Feb 07 jari 38  */
2 26 Feb 07 jari 39 public class AnnotationURLLinkDialog extends AlgorithmDialog {
2 26 Feb 07 jari 40         //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 51     /** 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 53         //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 61         //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 118         //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 129         //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 140         //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 179         //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 190         //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 201         //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 230             //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 293         //int fieldIndex = annotationFieldsBox.getSelectedIndex(); 
2 26 Feb 07 jari 294         //int urlTemplateIndex = urlTypesBox.getSelectedIndex();
2 26 Feb 07 jari 295         try {
2 26 Feb 07 jari 296              //String currentURLTemplate = urlTemplates[urlTemplateIndex];
2 26 Feb 07 jari 297             //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 298             //String currentAnnotationString = data.getElementAttribute(row, fieldIndex);
2 26 Feb 07 jari 299             //String urlToUse = currentURLTemplate.replaceAll("FIELD1", currentAnnotationString);
2 26 Feb 07 jari 300             String urlToUse = getCurrentURL();
2 26 Feb 07 jari 301             //System.out.println("url To use = " + urlToUse);
2 26 Feb 07 jari 302             //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 317         //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 319         //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 324             for (int i = 0; i < splitAnnotation.length; i++) {
2 26 Feb 07 jari 325                 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 333         //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 342         //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 345         //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 356                 //int index = urlTypesBox.getSelectedIndex();
2 26 Feb 07 jari 357                 launchBrowser();
2 26 Feb 07 jari 358                 //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 }