/*
* Copyright (c) 2007-2012 The Broad Institute, Inc.
* SOFTWARE COPYRIGHT NOTICE
* This software and its documentation are the copyright of the Broad Institute, Inc. All rights are reserved.
*
* This software is supplied without any warranty or guaranteed support whatsoever. The Broad Institute is not responsible for its use, misuse, or functionality.
*
* This software is licensed under the terms of the GNU Lesser General Public License (LGPL),
* Version 2.1 which is available at http://www.opensource.org/licenses/lgpl-2.1.php.
*/
/*
* Created by JFormDesigner on Tue Nov 09 10:32:35 EST 2010
*/
package org.broad.igv.tools.ui;
import org.broad.igv.tools.IgvTools;
import javax.swing.*;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
/**
* @author Stan Diamond
*/
public class IndexGui extends JDialog {
IgvTools igvTools;
public IndexGui() {
this.igvTools = new IgvTools();
initComponents();
setTitle("Create Index");
// Hide output file field for now
this.outputLabel.setVisible(true);
this.outputField.setVisible(true);
this.outputButton.setVisible(true);
}
private void inputFieldFocusLost(FocusEvent e) {
// TODO add your code here
}
private void inputFieldActionPerformed(ActionEvent e) {
// TODO add your code here
}
private void inputButtonActionPerformed(ActionEvent e) {
// TODO add your code here
}
// public static void doIndex(String ifile, int indexType, int binSize) throws IOException {
private void doIndex() {
SwingWorker swingWorker = new SwingWorker() {
@Override
protected Object doInBackground() {
try {
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
String ifile = inputField.getText();
int indexType = IgvTools.LINEAR_INDEX;
int binSize = IgvTools.LINEAR_BIN_SIZE;
runButton.setEnabled(false);
igvTools.doIndex(ifile, null, indexType, binSize);
} catch (Exception e) {
showMessage("Error: " + e.getMessage());
}
return null;
}
@Override
protected void done() {
runButton.setEnabled(true);
setCursor(Cursor.getDefaultCursor());
}
};
swingWorker.execute();
}
private void showMessage(String tool) {
JOptionPane.showMessageDialog(this, tool);
}
private void initComponents() {
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents
// Generated using JFormDesigner non-commercial license
mainPanel = new JPanel();
requiredPanel = new JPanel();
JLabel label2 = new JLabel();
outputLabel = new JLabel();
outputButton = new JButton();
inputField = new JTextField();
inputButton = new JButton();
outputField = new JTextField();
genomeButton = new JButton();
buttonPanel = new JPanel();
runButton = new JButton();
closeButton = new JButton();
OutputPanel = new JPanel();
outputScroll = new JScrollPane();
outputText = new JTextArea();
JSeparator separator1 = new JSeparator();
progressBar = new JProgressBar();
//======== mainPanel ========
{
mainPanel.setBorder(new TitledBorder(new EtchedBorder(), ""));
mainPanel.setLayout(new GridBagLayout());
//======== requiredPanel ========
{
requiredPanel.setLayout(new GridBagLayout());
//---- label2 ----
label2.setText("Input File");
requiredPanel.add(label2, new GridBagConstraints(1, 2, 1, 1, 0.0, 1.0,
GridBagConstraints.WEST, GridBagConstraints.NONE,
new Insets(0, 0, 0, 0), 0, 0));
//---- outputLabel ----
outputLabel.setText("Output File");
requiredPanel.add(outputLabel, new GridBagConstraints(1, 3, 1, 1, 0.0, 1.0,
GridBagConstraints.WEST, GridBagConstraints.NONE,
new Insets(0, 0, 0, 0), 0, 0));
//---- outputButton ----
outputButton.setText("Browse");
requiredPanel.add(outputButton, new GridBagConstraints(3, 3, 1, 1, 0.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(0, 0, 0, 0), 0, 0));
//---- inputField ----
inputField.addFocusListener(new FocusAdapter() {
@Override
public void focusLost(FocusEvent e) {
inputFieldFocusLost(e);
}
});
inputField.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
inputFieldActionPerformed(e);
}
});
requiredPanel.add(inputField, new GridBagConstraints(2, 2, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(0, 0, 0, 0), 0, 0));
//---- inputButton ----
inputButton.setText("Browse");
inputButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
inputButtonActionPerformed(e);
}
});
requiredPanel.add(inputButton, new GridBagConstraints(3, 2, 1, 1, 0.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(0, 0, 0, 0), 0, 0));
requiredPanel.add(outputField, new GridBagConstraints(2, 3, 1, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(0, 0, 0, 0), 0, 0));
//---- genomeButton ----
genomeButton.setText("Browse");
requiredPanel.add(genomeButton, new GridBagConstraints(3, 4, 1, 1, 0.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(0, 0, 0, 0), 0, 0));
}
mainPanel.add(requiredPanel, new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0,
GridBagConstraints.CENTER, GridBagConstraints.BOTH,
new Insets(0, 0, 10, 0), 0, 0));
//======== buttonPanel ========
{
buttonPanel.setLayout(new GridBagLayout());
//---- runButton ----
runButton.setText("Run");
buttonPanel.add(runButton, new GridBagConstraints(2, 0, 1, 1, 0.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(0, 0, 0, 0), 0, 0));
//---- closeButton ----
closeButton.setText("Close");
buttonPanel.add(closeButton, new GridBagConstraints(1, 0, 1, 1, 0.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(0, 0, 0, 0), 0, 0));
}
mainPanel.add(buttonPanel, new GridBagConstraints(1, 4, 1, 1, 1.0, 0.0,
GridBagConstraints.CENTER, GridBagConstraints.BOTH,
new Insets(0, 0, 10, 0), 0, 0));
//======== OutputPanel ========
{
OutputPanel.setBorder(new TitledBorder(BorderFactory.createEmptyBorder(), "Messages", TitledBorder.LEADING, TitledBorder.TOP));
OutputPanel.setLayout(null);
//======== outputScroll ========
{
//---- outputText ----
outputText.setEditable(false);
outputText.setText("");
outputText.setRows(10);
outputScroll.setViewportView(outputText);
}
OutputPanel.add(outputScroll);
outputScroll.setBounds(4, 20, 881, outputScroll.getPreferredSize().height);
{ // compute preferred size
Dimension preferredSize = new Dimension();
for (int i = 0; i < OutputPanel.getComponentCount(); i++) {
Rectangle bounds = OutputPanel.getComponent(i).getBounds();
preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width);
preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height);
}
Insets insets = OutputPanel.getInsets();
preferredSize.width += insets.right;
preferredSize.height += insets.bottom;
OutputPanel.setMinimumSize(preferredSize);
OutputPanel.setPreferredSize(preferredSize);
}
}
mainPanel.add(OutputPanel, new GridBagConstraints(1, 6, 1, 1, 1.0, 0.0,
GridBagConstraints.CENTER, GridBagConstraints.BOTH,
new Insets(0, 0, 10, 0), 0, 0));
mainPanel.add(separator1, new GridBagConstraints(1, 5, 1, 1, 1.0, 0.0,
GridBagConstraints.CENTER, GridBagConstraints.BOTH,
new Insets(0, 0, 10, 0), 0, 0));
mainPanel.add(progressBar, new GridBagConstraints(1, 7, 1, 1, 1.0, 0.0,
GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
new Insets(0, 0, 0, 0), 0, 0));
}
// JFormDesigner - End of component initialization //GEN-END:initComponents
}
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
// Generated using JFormDesigner non-commercial license
private JPanel mainPanel;
private JPanel requiredPanel;
private JLabel outputLabel;
private JButton outputButton;
private JTextField inputField;
private JButton inputButton;
private JTextField outputField;
private JButton genomeButton;
private JPanel buttonPanel;
private JButton runButton;
private JButton closeButton;
private JPanel OutputPanel;
private JScrollPane outputScroll;
private JTextArea outputText;
private JProgressBar progressBar;
// JFormDesigner - End of variables declaration //GEN-END:variables
public static void launch(boolean modal) {
IndexGui mainWindow = new IndexGui();
mainWindow.pack();
mainWindow.setModal(modal);
mainWindow.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
mainWindow.setResizable(false);
mainWindow.setVisible(true);
}
}