package org.seqcode.projects.seqview.components;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import org.seqcode.data.seqdata.*;
import org.seqcode.genome.Genome;
import org.seqcode.gseutils.Args;
import java.sql.*;
/**
* This is a GUI app for managing ChipSeqAnalysis objects that lets you set their
* active/inactive flag
*/
public class ChipSeqAnalysisFrame extends JFrame implements ActionListener {
private ChipSeqAnalysisSelectPanel panel;
private JPanel buttonPanel;
private JButton activeButton, inactiveButton;
private JMenuBar menuBar;
private JMenu fileMenu;
private JMenuItem exitItem;
public ChipSeqAnalysisFrame(Genome g) {
super();
panel = new ChipSeqAnalysisSelectPanel(g);
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new GridBagLayout());
Dimension buttonSize = new Dimension(30,20);
activeButton = new JButton("Set as Active");
inactiveButton = new JButton("Set as Inactive");
activeButton.setMaximumSize(buttonSize);
inactiveButton.setMaximumSize(buttonSize);
buttonPanel.add(activeButton);
buttonPanel.add(inactiveButton);
activeButton.addActionListener(this);
inactiveButton.addActionListener(this);
Container content = getContentPane();
content.setLayout(new BorderLayout());
content.add(buttonPanel,BorderLayout.SOUTH);
content.add(panel,BorderLayout.CENTER);
menuBar = new JMenuBar();
fileMenu = new JMenu("File");
fileMenu.setMnemonic(KeyEvent.VK_F);
menuBar.add(fileMenu);
exitItem = new JMenuItem("Exit", KeyEvent.VK_X);
exitItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
exit_actionPerformed(e);
}
});
fileMenu.add(exitItem);
this.setJMenuBar(menuBar);
setSize(600,500);
setVisible(true);
}
public void actionPerformed (ActionEvent e) {
if (e.getSource() == activeButton) {
for (SeqAnalysis a : panel.getSelected()) {
a.setActive(true);
try {
a.storeActiveDB();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
} else if (e.getSource() == inactiveButton) {
for (SeqAnalysis a : panel.getSelected()) {
a.setActive(false);
try {
a.storeActiveDB();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
}
void exit_actionPerformed(ActionEvent e) {
panel.close();
try {
Thread.sleep(400);
} catch (Exception ex) {
}
System.exit(0);
}
public static void main(String args[]) throws Exception {
ChipSeqAnalysisFrame f = new ChipSeqAnalysisFrame(Args.parseGenome(args).cdr());
}
}