/* Copyright @ 2001-2002, The Institute for Genomic Research (TIGR). All rights reserved. */ /* * $RCSfile: MultiInoutOutputs.java,v $ * $Revision: 1.3 $ * $Date: 2003/02/06 21:35:38 $ * $Author: jli $ * $State: Exp $ */ /****************************************************************************** * Author: Jerry Li. * Name: MultiInputOutputs * Date: Created on 06/21/01; modified on 06/221/01 * Descpt: A class that represents a set of paried input and output file names *****************************************************************************/ package org.tigr.util.swing; import java.util.Vector; import java.awt.GridBagLayout; import javax.swing.border.BevelBorder; import javax.swing.event.ListSelectionListener; import javax.swing.event.ListSelectionEvent; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSplitPane; import javax.swing.ListSelectionModel; import org.tigr.util.awt.GBA; public class MultiInputOutputs extends JSplitPane { private JLabel inputLB, outputLB, fileNumLB; private JList inputList, outputList; private JPanel inputPL, outputPL; private JScrollPane inputSP, outputSP; private GBA gba; private final String NUM_FILE = " Number of Files: "; public final String OUT_READY = "outready"; private int sizeX, sizeY; private boolean outputReady; public MultiInputOutputs() { super(JSplitPane.VERTICAL_SPLIT, true); } public MultiInputOutputs(int x, int y){ super(JSplitPane.VERTICAL_SPLIT, true); sizeX = x; sizeY = y; outputReady = false; initil(); } public void addDataToLists(Vector in, Vector out){ inputList.setListData(in); outputList.setListData(out); } public int[] getSelectedInputIndices(){ return inputList.getSelectedIndices(); } public int getSelectedOutputIndex(){ return outputList.getSelectedIndex(); } public String getSelectedOutputName(int offset){ return (String)outputList.getModel().getElementAt(offset); } public boolean isOutputReady() { return outputReady; } public void setInputLabel(String str){ inputLB.setText(str); } public void setInputListData(Vector v){ inputList.setListData(v); } public void setOutputLabel(String str){ outputLB.setText(str); } public void setOutputListData(Vector v){ outputList.setListData(v); } public void setOutputSelectedIndex(int indx){ outputList.setSelectedIndex(indx); } public void setLabelTexts(String input, String output){ inputLB.setText(input); outputLB.setText(output); } public void setSize(int x, int y){ sizeX = x; sizeY = y; super.setSize(sizeX, sizeY); } public void showNumberOfFiles(int num){ if(num > 0){ fileNumLB.setText(NUM_FILE + num); } else { fileNumLB.setText(NUM_FILE); } } private void fireChanges(){ this.firePropertyChange(OUT_READY, false, outputReady); } private void initil(){ BevelBorder low = new BevelBorder(1); gba = new GBA(); setSize(sizeX, sizeY); setDividerSize(4); setDividerLocation(0.5); inputLB = new JLabel(""); outputLB = new JLabel(""); inputPL = new JPanel(new GridBagLayout()); outputPL = new JPanel(new GridBagLayout()); super.setTopComponent(inputPL); super.setBottomComponent(outputPL); inputList = new JList(); inputList.setBorder(low); actionHandler(inputList); inputSP = new JScrollPane(inputList); outputList = new JList(); outputList.setBorder(low); outputList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); actionHandler(outputList); outputSP = new JScrollPane(outputList); fileNumLB = new JLabel(NUM_FILE); fileNumLB.setBorder(low); gba.add(inputPL, inputLB, 0, 0, 1, 1, 1, 0, GBA.H, GBA.C, 5, 10, 5, 2); gba.add(inputPL, inputSP, 0, 1, 1, 1, 1, 1, GBA.B, GBA.C, 1, 2, 5, 2); gba.add(outputPL, outputLB, 0, 0, 1, 1, 1, 0, GBA.H, GBA.W, 5, 10, 2, 2); gba.add(outputPL, outputSP, 0, 1, 1, 1, 1, 1, GBA.B, GBA.C, 1, 2, 5, 2); gba.add(outputPL, fileNumLB, 0, 2, 1, 1, 1, 0, GBA.H, GBA.C, 1, 2, 5, 2); } /*************************************************************************** * Description: * activate the buttons based on the contents of a JList object. *

Parameter: *
l -- the Jlist object that emit the action event. **************************************************************************/ private void actionHandler(JList l){ final JList list = l; list.addListSelectionListener(new ListSelectionListener(){ public void valueChanged(ListSelectionEvent lse){ if(outputList.getModel().getSize() > 0){ outputReady = true; } else { outputReady = false; } fireChanges(); } }); } }