package aliview.externalcommands; import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.io.File; import java.io.IOException; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.SwingConstants; import javax.swing.UIManager; import javax.swing.border.BevelBorder; import javax.swing.border.EmptyBorder; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import utils.FileUtilities; import aliview.AliViewWindow; import aliview.externalcommands.CommandItem; import aliview.settings.Settings; import javax.swing.JCheckBox; public class CmdItemPanel extends JPanel{ JCheckBox cbxIsActivated; public CmdItemPanel(final CommandItem cmdItem){ final JPanel aliItemPanel = this; // this.setPreferredSize(new Dimension(650, 100)); aliItemPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); GridBagLayout gbl_aliItemPanel = new GridBagLayout(); gbl_aliItemPanel.columnWidths = new int[] {0, 140, 100, 100}; gbl_aliItemPanel.rowHeights = new int[] {30, 25, 30}; gbl_aliItemPanel.columnWeights = new double[]{0.0, 0.0, 1.0, 1.0}; gbl_aliItemPanel.rowWeights = new double[]{0.0, 1.0, 1.0}; aliItemPanel.setLayout(gbl_aliItemPanel); JLabel lblItemName = new JLabel("Display name:"); lblItemName.setHorizontalAlignment(SwingConstants.LEFT); GridBagConstraints gbc_lblItemName = new GridBagConstraints(); gbc_lblItemName.anchor = GridBagConstraints.WEST; gbc_lblItemName.insets = new Insets(0, 0, 5, 5); gbc_lblItemName.gridx = 1; gbc_lblItemName.gridy = 0; add(lblItemName, gbc_lblItemName); JTextField txtCommandName = new JTextField(); txtCommandName.setText("mafft"); GridBagConstraints gbc_txtCommandName = new GridBagConstraints(); gbc_txtCommandName.anchor = GridBagConstraints.NORTH; gbc_txtCommandName.insets = new Insets(0, 0, 5, 5); gbc_txtCommandName.fill = GridBagConstraints.HORIZONTAL; gbc_txtCommandName.gridx = 1; gbc_txtCommandName.gridy = 1; aliItemPanel.add(txtCommandName, gbc_txtCommandName); txtCommandName.setColumns(10); txtCommandName.addFocusListener(new FocusListener() { public void focusLost(FocusEvent e) { JTextField txt = (JTextField) e.getSource(); cmdItem.setName(txt.getText()); //alignItem.getAddAlignCmd().setName(txt.getText()); } public void focusGained(FocusEvent e) { } }); txtCommandName.setText(cmdItem.getName()); JLabel lblCommand = new JLabel("Command:"); GridBagConstraints gbc_lblCommand = new GridBagConstraints(); gbc_lblCommand.anchor = GridBagConstraints.WEST; gbc_lblCommand.insets = new Insets(0, 0, 5, 5); gbc_lblCommand.gridx = 2; gbc_lblCommand.gridy = 0; add(lblCommand, gbc_lblCommand); JTextArea txtCommand = new JTextArea(); txtCommand.setLineWrap(true); txtCommand.setBorder(new BevelBorder(BevelBorder.LOWERED, null, null, null, null)); txtCommand.setRows(2); GridBagConstraints gbc_txtCommand = new GridBagConstraints(); gbc_txtCommand.gridwidth = 2; gbc_txtCommand.gridheight = 2; gbc_txtCommand.fill = GridBagConstraints.BOTH; gbc_txtCommand.gridx = 2; gbc_txtCommand.gridy = 1; aliItemPanel.add(txtCommand, gbc_txtCommand); txtCommand.setColumns(10); txtCommand.addFocusListener(new FocusListener() { public void focusLost(FocusEvent e){ JTextArea txt = (JTextArea) e.getSource(); cmdItem.setCommand(txt.getText()); } public void focusGained(FocusEvent e) { } }); txtCommand.setText(cmdItem.getCommand()); JCheckBox chckbxShowCmdOutput = new JCheckBox("Show command window output"); GridBagConstraints gbc_chckbxShowCmdOutput = new GridBagConstraints(); gbc_chckbxShowCmdOutput.anchor = GridBagConstraints.EAST; gbc_chckbxShowCmdOutput.insets = new Insets(0, 0, 5, 0); gbc_chckbxShowCmdOutput.gridx = 3; gbc_chckbxShowCmdOutput.gridy = 0; add(chckbxShowCmdOutput, gbc_chckbxShowCmdOutput); chckbxShowCmdOutput.setSelected(cmdItem.isShowCommandWindow()); chckbxShowCmdOutput.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JCheckBox cbx = (JCheckBox) e.getSource(); cmdItem.setShowCommandWindow(cbx.isSelected()); } }); cbxIsActivated = new JCheckBox(""); GridBagConstraints gbc_cbxIsActivated = new GridBagConstraints(); gbc_cbxIsActivated.fill = GridBagConstraints.VERTICAL; gbc_cbxIsActivated.insets = new Insets(0, 0, 5, 5); gbc_cbxIsActivated.gridx = 0; gbc_cbxIsActivated.gridy = 1; aliItemPanel.add(cbxIsActivated, gbc_cbxIsActivated); cbxIsActivated.setSelected(cmdItem.isActivated()); cbxIsActivated.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JCheckBox cbx = (JCheckBox) e.getSource(); cmdItem.setActivated(cbx.isSelected()); } }); /* JButton btnTest = new JButton("Test"); GridBagConstraints gbc_btnTest = new GridBagConstraints(); gbc_btnTest.insets = new Insets(0, 0, 0, 5); gbc_btnTest.gridx = 1; gbc_btnTest.gridy = 2; add(btnTest, gbc_btnTest); */ /* JButton btnBrowseProgram = new JButton("Browse"); btnBrowseProgram.setPreferredSize(new Dimension(100,25)); GridBagConstraints gbc_btnBrowseProgram = new GridBagConstraints(); gbc_btnBrowseProgram.anchor = GridBagConstraints.SOUTHEAST; gbc_btnBrowseProgram.gridheight = 3; gbc_btnBrowseProgram.insets = new Insets(0, 0, 0, 5); gbc_btnBrowseProgram.gridx = 1; gbc_btnBrowseProgram.gridy = 2; add(btnBrowseProgram, gbc_btnBrowseProgram); btnBrowseProgram.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){ String suggestedDir = Settings.getExternalCommandFileDirectory(); File suggestedFile = new File(suggestedDir); File selectedFile = FileUtilities.selectOpenFileViaChooser(suggestedFile,aliItemPanel); if(selectedFile != null){ // txtProgramFile.setText(selectedFile.getAbsolutePath()); // alignItem.setProgramPath(selectedFile.getAbsolutePath()); // Settings.putExternalCommandFileDirectory(selectedFile.getAbsolutePath()); } } }); */ } public JCheckBox getCbxIsActivated() { return cbxIsActivated; } }