Merge branch 'releases/Release_2_11_3_Branch'
[jalview.git] / src / jalview / jbgui / GCutAndPasteHtmlTransfer.java
index abc0b3d..ef09b6a 100644 (file)
  */
 package jalview.jbgui;
 
-import jalview.gui.JvSwingUtils;
-import jalview.util.MessageManager;
-
 import java.awt.BorderLayout;
 import java.awt.Font;
-import java.awt.Toolkit;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.MouseEvent;
@@ -39,6 +35,11 @@ import javax.swing.JMenuBar;
 import javax.swing.JMenuItem;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
+import javax.swing.text.EditorKit;
+import javax.swing.text.html.HTMLEditorKit;
+
+import jalview.gui.JvSwingUtils;
+import jalview.util.MessageManager;
 
 /**
  * DOCUMENT ME!
@@ -85,6 +86,7 @@ public class GCutAndPasteHtmlTransfer extends JInternalFrame
   {
     try
     {
+      textarea.setEditorKit(new HTMLEditorKit());
       setJMenuBar(editMenubar);
       jbInit();
     } catch (Exception e)
@@ -101,6 +103,7 @@ public class GCutAndPasteHtmlTransfer extends JInternalFrame
    */
   private void jbInit() throws Exception
   {
+    setFrameIcon(null);
     scrollPane.setBorder(null);
     ok.setFont(JvSwingUtils.getLabelFont());
     ok.setText(MessageManager.getString("label.new_window"));
@@ -131,13 +134,19 @@ public class GCutAndPasteHtmlTransfer extends JInternalFrame
         cancel_actionPerformed(e);
       }
     });
-    close.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
-            java.awt.event.KeyEvent.VK_W,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false));
+    close.setAccelerator(
+            javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_W,
+                    jalview.util.ShortcutKeyMaskExWrapper
+                            .getMenuShortcutKeyMaskEx(),
+                    false));
     selectAll.setText(MessageManager.getString("action.select_all"));
-    selectAll.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
-            java.awt.event.KeyEvent.VK_A,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false));
+    selectAll
+            .setAccelerator(
+                    javax.swing.KeyStroke
+                            .getKeyStroke(java.awt.event.KeyEvent.VK_A,
+                                    jalview.util.ShortcutKeyMaskExWrapper
+                                            .getMenuShortcutKeyMaskEx(),
+                                    false));
     selectAll.addActionListener(new ActionListener()
     {
       @Override
@@ -148,9 +157,11 @@ public class GCutAndPasteHtmlTransfer extends JInternalFrame
     });
     jMenu1.setText(MessageManager.getString("action.file"));
     save.setText(MessageManager.getString("action.save"));
-    save.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
-            java.awt.event.KeyEvent.VK_S,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false));
+    save.setAccelerator(
+            javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S,
+                    jalview.util.ShortcutKeyMaskExWrapper
+                            .getMenuShortcutKeyMaskEx(),
+                    false));
     save.addActionListener(new ActionListener()
     {
       @Override
@@ -159,9 +170,11 @@ public class GCutAndPasteHtmlTransfer extends JInternalFrame
         save_actionPerformed(e);
       }
     });
-    copyItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
-            java.awt.event.KeyEvent.VK_C,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false));
+    copyItem.setAccelerator(
+            javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C,
+                    jalview.util.ShortcutKeyMaskExWrapper
+                            .getMenuShortcutKeyMaskEx(),
+                    false));
 
     editMenubar.add(jMenu1);
     editMenubar.add(editMenu);
@@ -272,4 +285,20 @@ public class GCutAndPasteHtmlTransfer extends JInternalFrame
   {
 
   }
+
+  /**
+   * Adds the given stylesheet rule to the Html editor. However note that CSS
+   * support is limited.
+   * 
+   * @param rule
+   * @see javax.swing.text.html.CSS
+   */
+  public void addStylesheetRule(String rule)
+  {
+    EditorKit editorKit = textarea.getEditorKit();
+    if (editorKit != null)
+    {
+      ((HTMLEditorKit) editorKit).getStyleSheet().addRule(rule);
+    }
+  }
 }