JAL-3048 refactored export settings to bean+dialog with callbacks - basically works...
[jalview.git] / src / jalview / jbgui / GAlignExportSettings.java
index 2583b6b..cfa57c8 100644 (file)
@@ -1,5 +1,28 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
 package jalview.jbgui;
 
+import jalview.io.FileFormatI;
+import jalview.util.MessageManager;
+
 import java.awt.BorderLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
@@ -27,78 +50,61 @@ public abstract class GAlignExportSettings extends JPanel
 
   protected BorderLayout mainLayout = new BorderLayout();
 
-  protected JCheckBox chkAll = new JCheckBox("Check All");
-
-  protected JCheckBox chkHiddenSeqs = new JCheckBox(
-          "Export Hidden Sequences");
-
-  protected JCheckBox chkHiddenCols = new JCheckBox("Export Hidden Columns");
+  protected JCheckBox chkAll = new JCheckBox();
 
-  protected JCheckBox chkExportAnnots = new JCheckBox("Export Annotations");
+  protected JCheckBox chkHiddenSeqs = new JCheckBox();
 
-  protected JCheckBox chkExportFeats = new JCheckBox("Export Features");
+  protected JCheckBox chkHiddenCols = new JCheckBox();
 
-  protected JCheckBox chkExportGrps = new JCheckBox("Export Groups");
+  protected JCheckBox chkExportAnnots = new JCheckBox();
 
-  JButton btnOk = new JButton("Ok");
+  protected JCheckBox chkExportFeats = new JCheckBox();
 
-  JButton btnCancel = new JButton("Cancel");
+  protected JCheckBox chkExportGrps = new JCheckBox();
 
-  private boolean hasHiddenSeq, hasHiddenCols, isComplexAlignFile;
-
-  boolean isComplexFormat = false;
+  private boolean hasHiddenSeq, hasHiddenCols, isComplexAlignFile,
+          showDialog;
 
   public GAlignExportSettings(boolean hasHiddenSeq, boolean hasHiddenCols,
-          String alignFileFormat)
+          FileFormatI format)
   {
     this.hasHiddenSeq = hasHiddenSeq;
     this.hasHiddenCols = hasHiddenCols;
-    String[] complexFormats =
-    { "JSON", "HTML" };
-
-    for (String format : complexFormats)
+    this.isComplexAlignFile = format.isComplexAlignFile();
+    if (this.hasHiddenCols || this.hasHiddenSeq || this.isComplexAlignFile)
     {
-      if (format.equalsIgnoreCase(alignFileFormat))
-      {
-        this.isComplexAlignFile = true;
-        break;
-      }
+      this.showDialog = true;
     }
-
     init();
   }
 
   public void init()
   {
+    chkHiddenSeqs.setText(
+            MessageManager.getString("action.export_hidden_sequences"));
+    chkHiddenCols.setText(
+            MessageManager.getString("action.export_hidden_columns"));
+    chkExportAnnots
+            .setText(MessageManager.getString("action.export_annotations"));
+    chkExportFeats
+            .setText(MessageManager.getString("action.export_features"));
+    chkExportGrps.setText(MessageManager.getString("action.export_groups"));
+    chkAll.setText(MessageManager.getString("action.select_all"));
+
     hiddenRegionConfPanel.setLayout(hiddenRegionLayout);
     complexExportPanel.setLayout(complexExportLayout);
     setLayout(mainLayout);
 
     chkAll.addItemListener(new ItemListener()
     {
+      @Override
       public void itemStateChanged(ItemEvent e)
       {
         checkAllAction();
       }
     });
 
-    btnOk.addActionListener(new ActionListener()
-    {
-      public void actionPerformed(ActionEvent e)
-      {
-        ok_actionPerformed(e);
-      }
-    });
-
-    btnCancel.addActionListener(new ActionListener()
-    {
-      public void actionPerformed(ActionEvent e)
-      {
-        cancel_actionPerformed(e);
-      }
-    });
-
-    hiddenRegionConfPanel.add(chkAll, BorderLayout.NORTH);
+    // hiddenRegionConfPanel.add(chkAll, BorderLayout.NORTH);
     hiddenRegionConfPanel.add(chkHiddenSeqs, BorderLayout.CENTER);
     hiddenRegionConfPanel.add(chkHiddenCols, BorderLayout.SOUTH);
     chkHiddenSeqs.setEnabled(hasHiddenSeq);
@@ -108,25 +114,23 @@ public abstract class GAlignExportSettings extends JPanel
     complexExportPanel.add(chkExportFeats, BorderLayout.CENTER);
     complexExportPanel.add(chkExportGrps, BorderLayout.SOUTH);
 
-    if (hasHiddenSeq || hasHiddenCols)
+    actionPanel.add(chkAll);
+
+    if (this.isComplexAlignFile)
     {
-      optionsPanel.add(hiddenRegionConfPanel);
+      optionsPanel.add(complexExportPanel);
     }
 
-    if (isComplexAlignFile)
+    if (hasHiddenSeq || hasHiddenCols)
     {
-      optionsPanel.add(complexExportPanel);
+      optionsPanel.add(hiddenRegionConfPanel);
     }
-    actionPanel.add(btnCancel);
-    actionPanel.add(btnOk);
 
     add(optionsPanel, BorderLayout.NORTH);
     add(actionPanel, BorderLayout.SOUTH);
 
   }
 
-
-  
   private void checkAllAction()
   {
     boolean isSelected = chkAll.isSelected();
@@ -134,10 +138,20 @@ public abstract class GAlignExportSettings extends JPanel
     chkHiddenCols.setSelected(chkHiddenCols.isEnabled() && isSelected);
     chkExportAnnots.setSelected(isComplexAlignFile
             && chkExportAnnots.isEnabled() && isSelected);
-    chkExportFeats.setSelected(isComplexAlignFile
-            && chkExportFeats.isEnabled() && isSelected);
-    chkExportGrps.setSelected(isComplexAlignFile
-            && chkExportGrps.isEnabled() && isSelected);
+    chkExportFeats.setSelected(
+            isComplexAlignFile && chkExportFeats.isEnabled() && isSelected);
+    chkExportGrps.setSelected(
+            isComplexAlignFile && chkExportGrps.isEnabled() && isSelected);
+  }
+
+  public boolean isShowDialog()
+  {
+    return showDialog;
+  }
+
+  public void setShowDialog(boolean showDialog)
+  {
+    this.showDialog = showDialog;
   }
 
   public abstract void ok_actionPerformed(ActionEvent e);