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;
49 boolean isComplexFormat = false;
51 public GAlignExportSettings(boolean hasHiddenSeq, boolean hasHiddenCols,
52 String alignFileFormat)
54 this.hasHiddenSeq = hasHiddenSeq;
55 this.hasHiddenCols = hasHiddenCols;
56 String[] complexFormats =
59 for (String format : complexFormats)
61 if (format.equalsIgnoreCase(alignFileFormat))
63 this.isComplexAlignFile = true;
73 hiddenRegionConfPanel.setLayout(hiddenRegionLayout);
74 complexExportPanel.setLayout(complexExportLayout);
75 setLayout(mainLayout);
77 chkAll.addItemListener(new ItemListener()
79 public void itemStateChanged(ItemEvent e)
85 btnOk.addActionListener(new ActionListener()
87 public void actionPerformed(ActionEvent e)
89 ok_actionPerformed(e);
93 btnCancel.addActionListener(new ActionListener()
95 public void actionPerformed(ActionEvent e)
97 cancel_actionPerformed(e);
101 hiddenRegionConfPanel.add(chkAll, BorderLayout.NORTH);
102 hiddenRegionConfPanel.add(chkHiddenSeqs, BorderLayout.CENTER);
103 hiddenRegionConfPanel.add(chkHiddenCols, BorderLayout.SOUTH);
104 chkHiddenSeqs.setEnabled(hasHiddenSeq);
105 chkHiddenCols.setEnabled(hasHiddenCols);
107 complexExportPanel.add(chkExportAnnots, BorderLayout.NORTH);
108 complexExportPanel.add(chkExportFeats, BorderLayout.CENTER);
109 complexExportPanel.add(chkExportGrps, BorderLayout.SOUTH);
111 if (hasHiddenSeq || hasHiddenCols)
113 optionsPanel.add(hiddenRegionConfPanel);
116 if (isComplexAlignFile)
118 optionsPanel.add(complexExportPanel);
120 actionPanel.add(btnCancel);
121 actionPanel.add(btnOk);
123 add(optionsPanel, BorderLayout.NORTH);
124 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 abstract void ok_actionPerformed(ActionEvent e);
145 public abstract void cancel_actionPerformed(ActionEvent e);