package aliview.aligner;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.Enumeration;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import org.apache.log4j.Logger;
import aliview.AliViewWindow;
import aliview.externalcommands.CommandItem;
import aliview.old.MyScrollPane;
import aliview.settings.Settings;
public class AlignerADDItemsFrame extends JFrame {
private static final Logger logger = Logger.getLogger(AlignerADDItemsFrame.class);
JPanel mainPanel;
public AlignerADDItemsFrame(final AliViewWindow aliViewWin){
final AlignerADDItemsFrame alignItemsFrame = this;
mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
getContentPane().add(mainPanel, BorderLayout.CENTER);
//JScrollPane scrollPane = new JScrollPane(mainPanel, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
//getContentPane().add(scrollPane, BorderLayout.CENTER);
// get saved commands (or default will be served by settings if none)
final ArrayList<CommandItem> alignItems = Settings.getAlignADDCommands();
ButtonGroup bg = new ButtonGroup();
for(CommandItem alignItem: alignItems){
AliItemPanel itemPanel = new AliItemPanel(alignItem);
//itemsPanel.add(itemPanel);
bg.add(itemPanel.getRadioIsActivated());
}
// OK - Cancel Buttton
JPanel bottomButtonPanel = new JPanel();
bottomButtonPanel.setLayout(new BoxLayout(bottomButtonPanel, BoxLayout.X_AXIS));
bottomButtonPanel.add(Box.createHorizontalGlue());
JButton cancelButton = new JButton("Cancel");
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
alignItemsFrame.dispose();
}
});
bottomButtonPanel.add(cancelButton);
JButton okButton = new JButton("OK");
okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
Settings.putAlignALLCommands(alignItems);
alignItemsFrame.dispose();
}
});
bottomButtonPanel.add(okButton);
mainPanel.add(bottomButtonPanel);
// Arrange Frame
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
// Dont save here - only close
alignItemsFrame.dispose();
}
});
this.setTitle("Alignment program settings");
this.setPreferredSize(new Dimension(650,600));
this.pack();
this.centerLocationToThisComponent(aliViewWin);
this.setVisible(true);
}
public void centerLocationToThisComponent(Component parent){
// align to middle of parent window
if(parent != null){
int newX = parent.getX() + parent.getWidth()/2 - this.getWidth()/2;
int newY = parent.getY() + parent.getHeight()/2 - this.getHeight()/2;
if(newX > parent.getX() && newX > parent.getY()){
this.setLocation(newX, newY);
}
}
}
}