JAL-1793 spike branch updated to latest
[jalview.git] / src / jalview / gui / PopupMenu.java
index b574ddd..6da7d4f 100644 (file)
@@ -49,6 +49,7 @@ import jalview.schemes.PIDColourScheme;
 import jalview.util.GroupUrlLink;
 import jalview.util.GroupUrlLink.UrlStringTooLongException;
 import jalview.util.MessageManager;
+import jalview.util.StringUtils;
 import jalview.util.UrlLink;
 
 import java.awt.Color;
@@ -528,7 +529,7 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
    */
   protected void addFeatureDetails(List<SequenceFeature> features)
   {
-    if (features.isEmpty())
+    if (features == null || features.isEmpty())
     {
       return;
     }
@@ -549,6 +550,19 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
       {
         desc = String.format("%s %d-%d", sf.getType(), start, end);
       }
+      String description = sf.getDescription();
+      if (description != null)
+      {
+        description = StringUtils.stripHtmlTags(description);
+        if (description.length() <= 6)
+        {
+          desc = desc + " " + description;
+        }
+        else
+        {
+          desc = desc + " " + description.substring(0, 6) + "..";
+        }
+      }
       if (sf.getFeatureGroup() != null)
       {
         desc = desc + " (" + sf.getFeatureGroup() + ")";
@@ -573,8 +587,12 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
    */
   protected void showFeatureDetails(SequenceFeature sf)
   {
-    CutAndPasteTransfer cap = new CutAndPasteTransfer();
+    CutAndPasteHtmlTransfer cap = new CutAndPasteHtmlTransfer();
+    // it appears Java's CSS does not support border-collaps :-(
+    cap.addStylesheetRule("table { border-collapse: collapse;}");
+    cap.addStylesheetRule("table, td, th {border: 1px solid black;}");
     cap.setText(sf.getDetailsReport());
+
     Desktop.addInternalFrame(cap,
             MessageManager.getString("label.feature_details"), 500, 500);
   }
@@ -1830,7 +1848,7 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
       }
 
       sequence.setName(dialog.getName().replace(' ', '_'));
-      ap.paintAlignment(false);
+      ap.paintAlignment(false, false);
     }
 
     sequence.setDescription(dialog.getDescription());