3 import java.awt.BorderLayout;
4 import java.awt.event.ActionEvent;
5 import java.awt.event.ActionListener;
6 import java.awt.event.ItemEvent;
7 import java.awt.event.ItemListener;
9 import javax.swing.JButton;
10 import javax.swing.JCheckBox;
11 import javax.swing.JPanel;
13 @SuppressWarnings("serial")
14 public abstract class GAlignExportSettings extends JPanel
16 protected JPanel hiddenRegionConfPanel = new JPanel();
18 protected JPanel complexExportPanel = new JPanel();
20 protected JPanel optionsPanel = new JPanel();
22 protected JPanel actionPanel = new JPanel();
24 protected BorderLayout hiddenRegionLayout = new BorderLayout();
26 protected BorderLayout complexExportLayout = new BorderLayout();
28 protected BorderLayout mainLayout = new BorderLayout();
30 protected JCheckBox chkAll = new JCheckBox("Check All");
32 protected JCheckBox chkHiddenSeqs = new JCheckBox(
33 "Export Hidden Sequences");
35 protected JCheckBox chkHiddenCols = new JCheckBox("Export Hidden Columns");
37 protected JCheckBox chkExportAnnots = new JCheckBox("Export Annotations");
39 protected JCheckBox chkExportFeats = new JCheckBox("Export Features");
41 protected JCheckBox chkExportGrps = new JCheckBox("Export Groups");
43 JButton btnOk = new JButton("Ok");
45 JButton btnCancel = new JButton("Cancel");
47 private boolean hasHiddenSeq, hasHiddenCols, isComplexAlignFile,
50 public GAlignExportSettings(boolean hasHiddenSeq, boolean hasHiddenCols,
51 String alignFileFormat)
53 this.hasHiddenSeq = hasHiddenSeq;
54 this.hasHiddenCols = hasHiddenCols;
55 String[] complexFormats =
58 for (String format : complexFormats)
60 if (format.equalsIgnoreCase(alignFileFormat))
62 this.isComplexAlignFile = true;
66 if (this.hasHiddenCols || this.hasHiddenSeq || this.isComplexAlignFile)
68 this.showDialog = true;
75 hiddenRegionConfPanel.setLayout(hiddenRegionLayout);
76 complexExportPanel.setLayout(complexExportLayout);
77 setLayout(mainLayout);
79 chkAll.addItemListener(new ItemListener()
81 public void itemStateChanged(ItemEvent e)
87 btnOk.addActionListener(new ActionListener()
89 public void actionPerformed(ActionEvent e)
91 ok_actionPerformed(e);
95 btnCancel.addActionListener(new ActionListener()
97 public void actionPerformed(ActionEvent e)
99 cancel_actionPerformed(e);
103 hiddenRegionConfPanel.add(chkAll, BorderLayout.NORTH);
104 hiddenRegionConfPanel.add(chkHiddenSeqs, BorderLayout.CENTER);
105 hiddenRegionConfPanel.add(chkHiddenCols, BorderLayout.SOUTH);
106 chkHiddenSeqs.setEnabled(hasHiddenSeq);
107 chkHiddenCols.setEnabled(hasHiddenCols);
109 complexExportPanel.add(chkExportAnnots, BorderLayout.NORTH);
110 complexExportPanel.add(chkExportFeats, BorderLayout.CENTER);
111 complexExportPanel.add(chkExportGrps, BorderLayout.SOUTH);
113 if (hasHiddenSeq || hasHiddenCols)
115 optionsPanel.add(hiddenRegionConfPanel);
118 if (this.isComplexAlignFile)
120 optionsPanel.add(complexExportPanel);
122 actionPanel.add(btnCancel);
123 actionPanel.add(btnOk);
125 add(optionsPanel, BorderLayout.NORTH);
126 add(actionPanel, BorderLayout.SOUTH);
130 private void checkAllAction()
132 boolean isSelected = chkAll.isSelected();
133 chkHiddenSeqs.setSelected(chkHiddenSeqs.isEnabled() && isSelected);
134 chkHiddenCols.setSelected(chkHiddenCols.isEnabled() && isSelected);
135 chkExportAnnots.setSelected(isComplexAlignFile
136 && chkExportAnnots.isEnabled() && isSelected);
137 chkExportFeats.setSelected(isComplexAlignFile
138 && chkExportFeats.isEnabled() && isSelected);
139 chkExportGrps.setSelected(isComplexAlignFile
140 && chkExportGrps.isEnabled() && isSelected);
143 public boolean isShowDialog()
148 public void setShowDialog(boolean showDialog)
150 this.showDialog = showDialog;
153 public abstract void ok_actionPerformed(ActionEvent e);
155 public abstract void cancel_actionPerformed(ActionEvent e);