3 import jalview.util.MessageManager;
5 import java.awt.BorderLayout;
6 import java.awt.event.ActionEvent;
7 import java.awt.event.ActionListener;
8 import java.awt.event.ItemEvent;
9 import java.awt.event.ItemListener;
11 import javax.swing.JButton;
12 import javax.swing.JCheckBox;
13 import javax.swing.JPanel;
15 @SuppressWarnings("serial")
16 public abstract class GAlignExportSettings extends JPanel
18 protected JPanel hiddenRegionConfPanel = new JPanel();
20 protected JPanel complexExportPanel = new JPanel();
22 protected JPanel optionsPanel = new JPanel();
24 protected JPanel actionPanel = new JPanel();
26 protected BorderLayout hiddenRegionLayout = new BorderLayout();
28 protected BorderLayout complexExportLayout = new BorderLayout();
30 protected BorderLayout mainLayout = new BorderLayout();
32 protected JCheckBox chkAll = new JCheckBox();
34 protected JCheckBox chkHiddenSeqs = new JCheckBox();
36 protected JCheckBox chkHiddenCols = new JCheckBox();
38 protected JCheckBox chkExportAnnots = new JCheckBox();
40 protected JCheckBox chkExportFeats = new JCheckBox();
42 protected JCheckBox chkExportGrps = new JCheckBox();
44 JButton btnOk = new JButton();
46 JButton btnCancel = new JButton();
48 private boolean hasHiddenSeq, hasHiddenCols, isComplexAlignFile,
51 public GAlignExportSettings(boolean hasHiddenSeq, boolean hasHiddenCols,
52 String alignFileFormat)
54 this.hasHiddenSeq = hasHiddenSeq;
55 this.hasHiddenCols = hasHiddenCols;
56 String[] complexFormats = { "JSON", "HTML" };
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 chkHiddenSeqs.setText(MessageManager
76 .getString("action.export_hidden_sequences"));
77 chkHiddenCols.setText(MessageManager
78 .getString("action.export_hidden_columns"));
79 chkExportAnnots.setText(MessageManager
80 .getString("action.export_annotations"));
81 chkExportFeats.setText(MessageManager
82 .getString("action.export_features"));
83 chkExportGrps.setText(MessageManager.getString("action.export_groups"));
84 btnOk.setText(MessageManager.getString("action.ok"));
85 btnCancel.setText(MessageManager.getString("action.cancel"));
86 chkAll.setText(MessageManager.getString("action.select_all"));
88 hiddenRegionConfPanel.setLayout(hiddenRegionLayout);
89 complexExportPanel.setLayout(complexExportLayout);
90 setLayout(mainLayout);
92 chkAll.addItemListener(new ItemListener()
94 public void itemStateChanged(ItemEvent e)
100 btnOk.addActionListener(new ActionListener()
102 public void actionPerformed(ActionEvent e)
104 ok_actionPerformed(e);
108 btnCancel.addActionListener(new ActionListener()
110 public void actionPerformed(ActionEvent e)
112 cancel_actionPerformed(e);
116 // hiddenRegionConfPanel.add(chkAll, BorderLayout.NORTH);
117 hiddenRegionConfPanel.add(chkHiddenSeqs, BorderLayout.CENTER);
118 hiddenRegionConfPanel.add(chkHiddenCols, BorderLayout.SOUTH);
119 chkHiddenSeqs.setEnabled(hasHiddenSeq);
120 chkHiddenCols.setEnabled(hasHiddenCols);
122 complexExportPanel.add(chkExportAnnots, BorderLayout.NORTH);
123 complexExportPanel.add(chkExportFeats, BorderLayout.CENTER);
124 complexExportPanel.add(chkExportGrps, BorderLayout.SOUTH);
126 actionPanel.add(chkAll);
128 if (this.isComplexAlignFile)
130 optionsPanel.add(complexExportPanel);
133 if (hasHiddenSeq || hasHiddenCols)
135 optionsPanel.add(hiddenRegionConfPanel);
138 actionPanel.add(btnCancel);
139 actionPanel.add(btnOk);
141 add(optionsPanel, BorderLayout.NORTH);
142 add(actionPanel, BorderLayout.SOUTH);
146 private void checkAllAction()
148 boolean isSelected = chkAll.isSelected();
149 chkHiddenSeqs.setSelected(chkHiddenSeqs.isEnabled() && isSelected);
150 chkHiddenCols.setSelected(chkHiddenCols.isEnabled() && isSelected);
151 chkExportAnnots.setSelected(isComplexAlignFile
152 && chkExportAnnots.isEnabled() && isSelected);
153 chkExportFeats.setSelected(isComplexAlignFile
154 && chkExportFeats.isEnabled() && isSelected);
155 chkExportGrps.setSelected(isComplexAlignFile
156 && chkExportGrps.isEnabled() && isSelected);
159 public boolean isShowDialog()
164 public void setShowDialog(boolean showDialog)
166 this.showDialog = showDialog;
169 public abstract void ok_actionPerformed(ActionEvent e);
171 public abstract void cancel_actionPerformed(ActionEvent e);