package aliview.old;
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.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.CmdItemPanel;
import aliview.externalcommands.CommandItem;
import aliview.settings.Settings;
public class ExternalCmdFrame extends JFrame {
private static final Logger logger = Logger.getLogger(ExternalCmdFrame.class);
JPanel mainPanel;
public ExternalCmdFrame(final AliViewWindow aliViewWin){
final ExternalCmdFrame commandFrame = this;
mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
// get saved commands (or default will be served by settings if none)
final ArrayList<CommandItem> cmdItems = Settings.getExternalCommands();
//final CommandItem cmdItems[] = Settings.COMMAND_ITEM_DEFAULTS;
//mainPanel.add(new AlignerItem("AliVi", "command", true, false));
//mainPanel.add(new AlignerItem("AliVjklkjhi", "commahkjh k jhhkjhk klhkj hkjh kjh nd", true, false));
for(CommandItem cmdItem: cmdItems){
mainPanel.add(new CmdItemPanel(cmdItem));
}
mainPanel.add(Box.createVerticalGlue());
getContentPane().add(mainPanel, BorderLayout.CENTER);
// 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) {
commandFrame.dispose();
}
});
bottomButtonPanel.add(cancelButton);
JButton okButton = new JButton("OK");
okButton.setPreferredSize(new Dimension(100,25));
okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Settings.putExternalCommands(cmdItems);
commandFrame.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
Settings.putExternalCommands(cmdItems);
commandFrame.dispose();
}
});
this.setTitle("External commands");
this.setPreferredSize(new Dimension(650,550));
this.pack();
this.centerLocationToThisComponent(aliViewWin);
this.setVisible(true);
okButton.requestFocus();
}
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;
this.setLocation(newX, newY);
}
}
}