Merge branch 'features/JAL-1605_html-svg-export' into develop
[jalview.git] / src / jalview / gui / AnnotationExporter.java
index 1e87a93..e43c06b 100644 (file)
  */
 package jalview.gui;
 
-import java.util.*;
-import java.util.List;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.SequenceGroup;
+import jalview.io.AnnotationFile;
+import jalview.io.FeaturesFile;
+import jalview.io.JalviewFileChooser;
+import jalview.io.JalviewFileView;
+import jalview.util.MessageManager;
 
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.FlowLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.Hashtable;
+import java.util.List;
 
-import jalview.datamodel.*;
-import jalview.io.*;
-import jalview.util.MessageManager;
+import javax.swing.BorderFactory;
+import javax.swing.ButtonGroup;
+import javax.swing.JButton;
+import javax.swing.JInternalFrame;
+import javax.swing.JLabel;
+import javax.swing.JLayeredPane;
+import javax.swing.JPanel;
+import javax.swing.JRadioButton;
+import javax.swing.SwingConstants;
 
 /**
  * 
@@ -75,7 +90,7 @@ public class AnnotationExporter extends JPanel
     this.ap = ap;
     features = true;
     CSVFormat.setVisible(false);
-    frame.setTitle("Export Features");
+    frame.setTitle(MessageManager.getString("label.export_features"));
   }
 
   public void exportAnnotations(AlignmentPanel ap,
@@ -89,7 +104,7 @@ public class AnnotationExporter extends JPanel
     this.annotations = annotations;
     this.sequenceGroups = list;
     this.alignmentProperties = alProperties;
-    frame.setTitle("Export Annotations");
+    frame.setTitle(MessageManager.getString("label.export_annotations"));
   }
 
   public void toFile_actionPerformed(ActionEvent e)
@@ -98,28 +113,30 @@ public class AnnotationExporter extends JPanel
             jalview.bin.Cache.getProperty("LAST_DIRECTORY"));
 
     chooser.setFileView(new JalviewFileView());
-    chooser.setDialogTitle(features ? "Save Features to File"
-            : "Save Annotation to File");
+    chooser.setDialogTitle(features ? MessageManager.getString("label.save_features_to_file")
+            : MessageManager.getString("label.save_annotation_to_file"));
     chooser.setToolTipText(MessageManager.getString("action.save"));
 
     int value = chooser.showSaveDialog(this);
 
     if (value == JalviewFileChooser.APPROVE_OPTION)
     {
-      String text = "No features found on alignment";
+      String text = MessageManager.getString("label.no_features_on_alignment");
       if (features)
       {
         if (GFFFormat.isSelected())
         {
           text = new FeaturesFile().printGFFFormat(ap.av.getAlignment()
-                  .getDataset().getSequencesArray(),
-                  getDisplayedFeatureCols(), true, ap.av.isShowNpFeats());// ap.av.featuresDisplayed//);
+                  .getDataset().getSequencesArray(), ap
+                  .getFeatureRenderer().getDisplayedFeatureCols(), true,
+                  ap.av.isShowNpFeats());// ap.av.featuresDisplayed//);
         }
         else
         {
           text = new FeaturesFile().printJalviewFormat(ap.av.getAlignment()
-                  .getDataset().getSequencesArray(),
-                  getDisplayedFeatureCols(), true, ap.av.isShowNpFeats()); // ap.av.featuresDisplayed);
+                  .getDataset().getSequencesArray(), ap
+                  .getFeatureRenderer().getDisplayedFeatureCols(), true,
+                  ap.av.isShowNpFeats()); // ap.av.featuresDisplayed);
         }
       }
       else
@@ -153,20 +170,20 @@ public class AnnotationExporter extends JPanel
 
   public void toTextbox_actionPerformed(ActionEvent e)
   {
-    String text = "No features found on alignment";
+    String text = MessageManager.getString("label.no_features_on_alignment");
     if (features)
     {
       if (GFFFormat.isSelected())
       {
         text = new FeaturesFile().printGFFFormat(ap.av.getAlignment()
-                .getDataset().getSequencesArray(),
-                getDisplayedFeatureCols(), true, ap.av.isShowNpFeats());
+                .getDataset().getSequencesArray(), ap.getFeatureRenderer()
+                .getDisplayedFeatureCols(), true, ap.av.isShowNpFeats());
       }
       else
       {
         text = new FeaturesFile().printJalviewFormat(ap.av.getAlignment()
-                .getDataset().getSequencesArray(),
-                getDisplayedFeatureCols(), true, ap.av.isShowNpFeats());
+                .getDataset().getSequencesArray(), ap.getFeatureRenderer()
+                .getDisplayedFeatureCols(), true, ap.av.isShowNpFeats());
       }
     }
     else if (!features)
@@ -186,38 +203,26 @@ public class AnnotationExporter extends JPanel
     try
     {
       cap.setText(text);
-      Desktop.addInternalFrame(cap, (features ? MessageManager.formatMessage("label.features_for_params", new String[]{ap.alignFrame.getTitle()})
-              : MessageManager.formatMessage("label.annotations_for_params", new String[]{ap.alignFrame.getTitle()})), 600, 500);
+      Desktop.addInternalFrame(
+              cap,
+              (features ? MessageManager.formatMessage(
+                      "label.features_for_params", new String[]
+                      { ap.alignFrame.getTitle() }) : MessageManager
+                      .formatMessage("label.annotations_for_params",
+                              new String[]
+                              { ap.alignFrame.getTitle() })), 600, 500);
     } catch (OutOfMemoryError oom)
     {
-      new OOMWarning((features ? MessageManager.formatMessage("label.generating_features_for_params", new String[]{ap.alignFrame.getTitle()}) : MessageManager.formatMessage("label.generating_annotations_for_params", new String[]{ap.alignFrame.getTitle()}))
-              , oom);
+      new OOMWarning((features ? MessageManager.formatMessage(
+              "label.generating_features_for_params", new String[]
+              { ap.alignFrame.getTitle() }) : MessageManager.formatMessage(
+              "label.generating_annotations_for_params", new String[]
+              { ap.alignFrame.getTitle() })), oom);
       cap.dispose();
     }
 
     close_actionPerformed(null);
   }
-
-  private Hashtable getDisplayedFeatureCols()
-  {
-    Hashtable fcols = new Hashtable();
-    if (ap.av.featuresDisplayed == null)
-    {
-      return fcols;
-    }
-    Enumeration en = ap.av.featuresDisplayed.keys();
-    FeatureRenderer fr = ap.seqPanel.seqCanvas.getFeatureRenderer(); // consider
-                                                                     // higher
-                                                                     // level
-                                                                     // method ?
-    while (en.hasMoreElements())
-    {
-      Object col = en.nextElement();
-      fcols.put(col, fr.featureColours.get(col));
-    }
-    return fcols;
-  }
-
   public void close_actionPerformed(ActionEvent e)
   {
     try