One class for edit name/description
authoramwaterhouse <Andrew Waterhouse>
Thu, 1 Feb 2007 12:36:22 +0000 (12:36 +0000)
committeramwaterhouse <Andrew Waterhouse>
Thu, 1 Feb 2007 12:36:22 +0000 (12:36 +0000)
src/jalview/appletgui/APopupMenu.java
src/jalview/appletgui/AnnotationLabels.java
src/jalview/appletgui/EditNameDialog.java [new file with mode: 0644]
src/jalview/gui/AnnotationLabels.java
src/jalview/gui/EditNameDialog.java [new file with mode: 0644]
src/jalview/gui/PopupMenu.java

index 5e48190..0d4e3e1 100755 (executable)
@@ -32,6 +32,7 @@ public class APopupMenu
     extends java.awt.PopupMenu implements ActionListener, ItemListener\r
 {\r
   Menu groupMenu = new Menu();\r
+  MenuItem editGroupName = new MenuItem();\r
   protected MenuItem clustalColour = new MenuItem();\r
   protected MenuItem zappoColour = new MenuItem();\r
   protected MenuItem taylorColour = new MenuItem();\r
@@ -71,10 +72,6 @@ public class APopupMenu
   MenuItem revealAll = new MenuItem();\r
   Menu menu1 = new Menu();\r
 \r
-  Dialog editNameDialog;\r
-  Button okDialog = new Button("Accept");\r
-  Button cancelDialog = new Button("Cancel");\r
-\r
   public APopupMenu(AlignmentPanel apanel, final Sequence seq, Vector links)\r
   {\r
     ///////////////////////////////////////////////////////////\r
@@ -108,6 +105,7 @@ public class APopupMenu
 \r
     if (sg != null && sg.getSize()>0)\r
     {\r
+      editGroupName.setLabel(sg.getName());\r
       showText.setState(sg.getDisplayText());\r
       showColourText.setState(sg.getColourText());\r
       showBoxes.setState(sg.getDisplayBoxes());\r
@@ -225,12 +223,6 @@ public class APopupMenu
 \r
     else if(source == sequenceName)\r
       editName();\r
-    else if (source==okDialog || source==cancelDialog)\r
-    {\r
-      editNameDialog.setVisible(false);\r
-      if(source==cancelDialog)\r
-        editNameDialog = null;\r
-    }\r
     else if(source == pdb)\r
       addPDB();\r
     else if(source == hideSeqs)\r
@@ -242,6 +234,24 @@ public class APopupMenu
         ap.av.showAllHiddenSeqs();\r
     }\r
 \r
+    else if(source==editGroupName)\r
+    {\r
+      EditNameDialog dialog = new EditNameDialog(\r
+          getGroup().getName(),\r
+          getGroup().getDescription(),\r
+          "       Group Name",\r
+          "Group Description",\r
+          ap,\r
+          "Edit Group Name / Description");\r
+\r
+      if (dialog.accept)\r
+      {\r
+\r
+        getGroup().setName(dialog.getName().replace(' ', '_'));\r
+        getGroup().setDescription(dialog.getDescription());\r
+      }\r
+\r
+    }\r
     else if(source==copy)\r
       ap.alignFrame.copy_actionPerformed();\r
     else if(source==cut)\r
@@ -342,43 +352,18 @@ public class APopupMenu
 \r
   void editName()\r
   {\r
-    TextField id = new TextField(seq.getName(), 40);\r
-    TextField description = new TextField(seq.getDescription(), 40);\r
-    Panel panel = new Panel(new BorderLayout());\r
-    Panel panel2 = new Panel(new BorderLayout());\r
-    panel2.add(new Label("       Sequence Name "), BorderLayout.WEST);\r
-    panel2.add(id, BorderLayout.CENTER);\r
-    panel.add(panel2, BorderLayout.NORTH);\r
-    panel2 = new Panel(new BorderLayout());\r
-    panel2.add(new Label("Sequence Description "), BorderLayout.WEST);\r
-    panel2.add(description, BorderLayout.CENTER);\r
-    panel.add(panel2, BorderLayout.CENTER);\r
-\r
-    panel2 = new Panel(new FlowLayout());\r
-\r
-    panel2.add(okDialog);\r
-    panel2.add(cancelDialog);\r
-\r
-    panel.add(panel2, BorderLayout.SOUTH);\r
-\r
-    editNameDialog = new Dialog(ap.alignFrame,\r
-      "Edit Sequence Name / Description",\r
-      true);\r
-\r
-    editNameDialog.add(panel, BorderLayout.NORTH);\r
-\r
-    editNameDialog.setBounds(ap.alignFrame.getBounds().x\r
-                             +(ap.alignFrame.getSize().width-500)/2 ,\r
-                             ap.alignFrame.getBounds().y\r
-                             +(ap.alignFrame.getSize().height-120)/2,\r
-                             500, 130);\r
-\r
-    editNameDialog.show();\r
-\r
-    if (editNameDialog != null)\r
+    EditNameDialog dialog = new EditNameDialog(\r
+        seq.getName(),\r
+        seq.getDescription(),\r
+        "       Sequence Name ",\r
+        "Sequence Description ",\r
+        ap,\r
+        "Edit Sequence Name / Description");\r
+\r
+    if (dialog.accept)\r
     {\r
-      seq.setName(id.getText());\r
-      seq.setDescription(description.getText());\r
+      seq.setName(dialog.getName());\r
+      seq.setDescription(dialog.getDescription());\r
       ap.repaint();\r
     }\r
   }\r
@@ -399,6 +384,7 @@ public class APopupMenu
     groupMenu.setLabel("Group");\r
     groupMenu.setLabel("Selection");\r
 \r
+    editGroupName.addActionListener(this);\r
     unGroupMenuItem.setLabel("Remove Group");\r
     unGroupMenuItem.addActionListener(this);\r
 \r
@@ -427,6 +413,7 @@ public class APopupMenu
     this.add(seqMenu);\r
     this.add(hideSeqs);\r
     this.add(revealAll);\r
+    groupMenu.add(editGroupName);\r
     groupMenu.add(editMenu);\r
     groupMenu.add(outputmenu);\r
     groupMenu.add(menu1);\r
@@ -498,9 +485,6 @@ public class APopupMenu
     hideSeqs.addActionListener(this);\r
     repGroup.addActionListener(this);\r
     revealAll.addActionListener(this);\r
-    okDialog.addActionListener(this);\r
-    cancelDialog.addActionListener(this);\r
-\r
   }\r
 \r
   void refresh()\r
index 0935500..7bf438f 100755 (executable)
@@ -46,11 +46,6 @@ public class AnnotationLabels
 \r
   Tooltip tooltip;\r
 \r
-  Dialog editNameDialog;\r
-  Button okDialog = new Button("Accept");\r
-  Button cancelDialog = new Button("Cancel");\r
-\r
-\r
   public AnnotationLabels(AlignmentPanel ap)\r
   {\r
     this.ap = ap;\r
@@ -58,8 +53,6 @@ public class AnnotationLabels
     setLayout(null);\r
     addMouseListener(this);\r
     addMouseMotionListener(this);\r
-    okDialog.addActionListener(this);\r
-    cancelDialog.addActionListener(this);\r
   }\r
 \r
   public AnnotationLabels(AlignViewport av)\r
@@ -105,57 +98,25 @@ public class AnnotationLabels
 \r
     if(evt.getActionCommand().equals(EDITNAME))\r
     {\r
-      TextField id = new TextField(aa[selectedRow].label, 40);\r
-      TextField description = new TextField(aa[selectedRow].description, 40);\r
-      Panel panel = new Panel(new BorderLayout());\r
-      Panel panel2 = new Panel(new BorderLayout());\r
-      panel2.add(new Label("       Annotation Label "), BorderLayout.WEST);\r
-      panel2.add(id, BorderLayout.CENTER);\r
-      panel.add(panel2, BorderLayout.NORTH);\r
-      panel2 = new Panel(new BorderLayout());\r
-      panel2.add(new Label("Annotation Description "), BorderLayout.WEST);\r
-      panel2.add(description, BorderLayout.CENTER);\r
-      panel.add(panel2, BorderLayout.CENTER);\r
-\r
-      panel2 = new Panel(new FlowLayout());\r
-\r
-      panel2.add(okDialog);\r
-      panel2.add(cancelDialog);\r
-\r
-      panel.add(panel2, BorderLayout.SOUTH);\r
-\r
-      editNameDialog = new Dialog(ap.alignFrame,\r
-        "Edit Annotation Name / Description",\r
-        true);\r
-\r
-      editNameDialog.add(panel, BorderLayout.NORTH);\r
-\r
-      editNameDialog.setBounds(ap.alignFrame.getBounds().x\r
-                               +(ap.alignFrame.getSize().width-500)/2 ,\r
-                               ap.alignFrame.getBounds().y\r
-                               +(ap.alignFrame.getSize().height-120)/2,\r
-                               500, 130);\r
-\r
-      editNameDialog.show();\r
-\r
-      if (editNameDialog != null)\r
+      EditNameDialog dialog = new EditNameDialog(\r
+          aa[selectedRow].label,\r
+          aa[selectedRow].description,\r
+          "       Annotation Label",\r
+          "Annotation Description",\r
+          ap,\r
+          "Edit Annotation Name / Description");\r
+\r
+      if (dialog.accept)\r
       {\r
-        aa[selectedRow].label=id.getText();\r
-        aa[selectedRow].description=description.getText();\r
+        aa[selectedRow].label = dialog.getName();\r
+        aa[selectedRow].description = dialog.getDescription();\r
         repaint();\r
       }\r
-\r
     }\r
     if (evt.getActionCommand().equals(HIDE))\r
     {\r
       aa[selectedRow].visible = false;\r
     }\r
-    else if (evt.getSource() == okDialog || evt.getSource() == cancelDialog)\r
-    {\r
-      editNameDialog.setVisible(false);\r
-      if (evt.getSource() == cancelDialog)\r
-        editNameDialog = null;\r
-    }\r
     else if (evt.getActionCommand().equals(SHOWALL))\r
     {\r
       for (int i = 0; i < aa.length; i++)\r
@@ -200,9 +161,6 @@ public class AnnotationLabels
       else\r
         tooltip.setTip(ap.av.alignment.\r
                      getAlignmentAnnotation()[selectedRow].description);\r
-\r
-      tooltip.repaint();\r
-\r
     }\r
     else if (tooltip != null)\r
     {\r
diff --git a/src/jalview/appletgui/EditNameDialog.java b/src/jalview/appletgui/EditNameDialog.java
new file mode 100644 (file)
index 0000000..b80aca7
--- /dev/null
@@ -0,0 +1,93 @@
+/*\r
+ * Jalview - A Sequence Alignment Editor and Viewer\r
+ * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+ *\r
+ * This program is free software; you can redistribute it and/or\r
+ * modify it under the terms of the GNU General Public License\r
+ * as published by the Free Software Foundation; either version 2\r
+ * of the License, or (at your option) any later version.\r
+ *\r
+ * This program is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program; if not, write to the Free Software\r
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
+ */\r
+\r
+package jalview.appletgui;\r
+\r
+import java.awt.*;\r
+import java.awt.event.*;\r
+\r
+public class EditNameDialog extends Dialog implements ActionListener\r
+{\r
+  TextField id, description;\r
+  Button ok = new Button("Accept");\r
+  Button cancel = new Button("Cancel");\r
+  boolean accept = false;\r
+\r
+  public String getName()\r
+  {\r
+    return id.getText();\r
+  }\r
+\r
+  public String getDescription()\r
+  {\r
+    if (description.getText().length() < 1)\r
+      return null;\r
+    else\r
+      return description.getText();\r
+  }\r
+\r
+  public EditNameDialog(String name,\r
+                        String desc,\r
+                        String label1,\r
+                        String label2,\r
+                        AlignmentPanel ap,\r
+                        String title)\r
+  {\r
+    super(ap.alignFrame, title, true);\r
+\r
+    id = new TextField(name, 40);\r
+    description = new TextField(desc, 40);\r
+    Panel panel = new Panel(new BorderLayout());\r
+    Panel panel2 = new Panel(new BorderLayout());\r
+    panel2.add(new Label(label1), BorderLayout.WEST);\r
+    panel2.add(id, BorderLayout.CENTER);\r
+    panel.add(panel2, BorderLayout.NORTH);\r
+    panel2 = new Panel(new BorderLayout());\r
+    panel2.add(new Label(label2), BorderLayout.WEST);\r
+    panel2.add(description, BorderLayout.CENTER);\r
+    panel.add(panel2, BorderLayout.CENTER);\r
+\r
+    panel2 = new Panel(new FlowLayout());\r
+\r
+    panel2.add(ok);\r
+    panel2.add(cancel);\r
+    ok.addActionListener(this);\r
+    cancel.addActionListener(this);\r
+\r
+    panel.add(panel2, BorderLayout.SOUTH);\r
+\r
+    add(panel, BorderLayout.NORTH);\r
+\r
+    setBounds(ap.alignFrame.getBounds().x\r
+              + (ap.alignFrame.getSize().width - 500) / 2,\r
+              ap.alignFrame.getBounds().y\r
+              + (ap.alignFrame.getSize().height - 120) / 2,\r
+              500, 130);\r
+\r
+    show();\r
+  }\r
+\r
+  public void actionPerformed(ActionEvent evt)\r
+  {\r
+    if(evt.getSource()==ok)\r
+      accept = true;\r
+\r
+    setVisible(false);\r
+  }\r
+}\r
index a454cf9..e4c074b 100755 (executable)
@@ -226,37 +226,20 @@ public class AnnotationLabels extends JPanel implements MouseListener,
      */
     boolean editLabelDescription(AlignmentAnnotation annotation)
     {
-      JLabel idlabel = new JLabel(  "      Annotation Label ");
-      JLabel desclabel = new JLabel("Annotation Description ");
-      idlabel.setFont(new Font("Courier", Font.PLAIN, 12));
-      desclabel.setFont(new Font("Courier", Font.PLAIN, 12));
-      JTextField id = new JTextField(annotation.label, 40);
-      JTextField description = new JTextField(annotation.description, 40);
-      JPanel panel = new JPanel(new BorderLayout());
-      JPanel panel2 = new JPanel(new BorderLayout());
-      panel2.add(idlabel, BorderLayout.WEST);
-      panel2.add(id, BorderLayout.CENTER);
-      panel.add(panel2, BorderLayout.NORTH);
-      panel2 = new JPanel(new BorderLayout());
-      panel2.add(desclabel, BorderLayout.WEST);
-      panel2.add(description, BorderLayout.CENTER);
-      panel.add(panel2, BorderLayout.SOUTH);
-
-
-       int reply = JOptionPane.showInternalConfirmDialog(Desktop.desktop,
-          panel, "Edit Annotation Name/Description",
-          JOptionPane.OK_CANCEL_OPTION );
-
-
-        if (reply != JOptionPane.OK_OPTION )
-        {
-            return false;
-        }
+      EditNameDialog dialog = new EditNameDialog(annotation.label,
+                                                 annotation.description,
+                                                 "       Annotation Name ",
+                                                 "Annotation Description ",
+                                                 "Edit Annotation Name/Description");
 
+      if (!dialog.accept)
+      {
+        return false;
+      }
 
-        annotation.label = id.getText().trim();
+        annotation.label = dialog.getName();
 
-        String text = description.getText().trim();
+        String text = dialog.getDescription();
         if(text.length()==0)
           text = null;
         annotation.description = text;
diff --git a/src/jalview/gui/EditNameDialog.java b/src/jalview/gui/EditNameDialog.java
new file mode 100644 (file)
index 0000000..2b1ee72
--- /dev/null
@@ -0,0 +1,78 @@
+/*\r
+ * Jalview - A Sequence Alignment Editor and Viewer\r
+ * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+ *\r
+ * This program is free software; you can redistribute it and/or\r
+ * modify it under the terms of the GNU General Public License\r
+ * as published by the Free Software Foundation; either version 2\r
+ * of the License, or (at your option) any later version.\r
+ *\r
+ * This program is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program; if not, write to the Free Software\r
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
+ */\r
+\r
+package jalview.gui;\r
+\r
+import java.awt.*;\r
+import javax.swing.*;\r
+\r
+public class EditNameDialog\r
+{\r
+  JTextField id, description;\r
+  JButton ok = new JButton("Accept");\r
+  JButton cancel = new JButton("Cancel");\r
+  boolean accept = false;\r
+\r
+\r
+  public String getName()\r
+  {\r
+    return id.getText();\r
+  }\r
+\r
+  public String getDescription()\r
+  {\r
+    if (description.getText().length() < 1)\r
+      return null;\r
+    else\r
+      return description.getText();\r
+  }\r
+\r
+  public EditNameDialog(String name,\r
+                        String desc,\r
+                        String label1,\r
+                        String label2,\r
+                        String title)\r
+  {\r
+    JLabel idlabel = new JLabel( label1);\r
+    JLabel desclabel = new JLabel(label2);\r
+    idlabel.setFont(new Font("Courier", Font.PLAIN, 12));\r
+    desclabel.setFont(new Font("Courier", Font.PLAIN, 12));\r
+    id = new JTextField(name, 40);\r
+    description = new JTextField(desc, 40);\r
+    JPanel panel = new JPanel(new BorderLayout());\r
+    JPanel panel2 = new JPanel(new BorderLayout());\r
+    panel2.add(idlabel, BorderLayout.WEST);\r
+    panel2.add(id, BorderLayout.CENTER);\r
+    panel.add(panel2, BorderLayout.NORTH);\r
+    panel2 = new JPanel(new BorderLayout());\r
+    panel2.add(desclabel, BorderLayout.WEST);\r
+    panel2.add(description, BorderLayout.CENTER);\r
+    panel.add(panel2, BorderLayout.SOUTH);\r
+\r
+\r
+     int reply = JOptionPane.showInternalConfirmDialog(Desktop.desktop,\r
+        panel, title,\r
+        JOptionPane.OK_CANCEL_OPTION );\r
+\r
+     if (reply == JOptionPane.OK_OPTION)\r
+     {\r
+       accept = true;\r
+     }\r
+  }\r
+}\r
index 9ed81ab..9ee8e2b 100755 (executable)
@@ -372,7 +372,7 @@ public class PopupMenu extends JPopupMenu
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    groupName_actionPerformed(e);\r
+                    groupName_actionPerformed();\r
                 }\r
             });\r
         sequenceMenu.setText("Sequence");\r
@@ -381,7 +381,7 @@ public class PopupMenu extends JPopupMenu
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    sequenceName_actionPerformed(e);\r
+                    sequenceName_actionPerformed();\r
                 }\r
             });\r
         PIDColour.setFocusPainted(false);\r
@@ -390,7 +390,7 @@ public class PopupMenu extends JPopupMenu
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    unGroupMenuItem_actionPerformed(e);\r
+                    unGroupMenuItem_actionPerformed();\r
                 }\r
             });\r
 \r
@@ -399,7 +399,7 @@ public class PopupMenu extends JPopupMenu
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    outline_actionPerformed(e);\r
+                    outline_actionPerformed();\r
                 }\r
             });\r
         nucleotideMenuItem.setText("Nucleotide");\r
@@ -407,7 +407,7 @@ public class PopupMenu extends JPopupMenu
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    nucleotideMenuItem_actionPerformed(e);\r
+                    nucleotideMenuItem_actionPerformed();\r
                 }\r
             });\r
         colourMenu.setText("Group Colour");\r
@@ -417,7 +417,7 @@ public class PopupMenu extends JPopupMenu
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    showBoxes_actionPerformed(e);\r
+                    showBoxes_actionPerformed();\r
                 }\r
             });\r
         showText.setText("Text");\r
@@ -426,7 +426,7 @@ public class PopupMenu extends JPopupMenu
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    showText_actionPerformed(e);\r
+                    showText_actionPerformed();\r
                 }\r
             });\r
         showColourText.setText("Colour Text");\r
@@ -434,7 +434,7 @@ public class PopupMenu extends JPopupMenu
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    showColourText_actionPerformed(e);\r
+                    showColourText_actionPerformed();\r
                 }\r
             });\r
     editMenu.setText("Edit");\r
@@ -443,7 +443,7 @@ public class PopupMenu extends JPopupMenu
     {\r
       public void actionPerformed(ActionEvent e)\r
       {\r
-        cut_actionPerformed(e);\r
+        cut_actionPerformed();\r
       }\r
     });\r
     upperCase.setText("To Upper Case");\r
@@ -459,7 +459,7 @@ public class PopupMenu extends JPopupMenu
     {\r
       public void actionPerformed(ActionEvent e)\r
       {\r
-        copy_actionPerformed(e);\r
+        copy_actionPerformed();\r
       }\r
     });\r
     lowerCase.setText("To Lower Case");\r
@@ -484,7 +484,7 @@ public class PopupMenu extends JPopupMenu
     {\r
       public void actionPerformed(ActionEvent e)\r
       {\r
-        pdbFromFile_actionPerformed(e);\r
+        pdbFromFile_actionPerformed();\r
       }\r
     });\r
     enterPDB.setText("Enter PDB Id");\r
@@ -492,7 +492,7 @@ public class PopupMenu extends JPopupMenu
     {\r
       public void actionPerformed(ActionEvent e)\r
       {\r
-        enterPDB_actionPerformed(e);\r
+        enterPDB_actionPerformed();\r
       }\r
     });\r
     discoverPDB.setText("Discover PDB ids");\r
@@ -500,7 +500,7 @@ public class PopupMenu extends JPopupMenu
     {\r
       public void actionPerformed(ActionEvent e)\r
       {\r
-        discoverPDB_actionPerformed(e);\r
+        discoverPDB_actionPerformed();\r
       }\r
     });\r
     outputMenu.setText("Output to Textbox...");\r
@@ -509,7 +509,7 @@ public class PopupMenu extends JPopupMenu
     {\r
       public void actionPerformed(ActionEvent e)\r
       {\r
-        sequenceFeature_actionPerformed(e);\r
+        sequenceFeature_actionPerformed();\r
       }\r
     });\r
     textColour.setText("Text Colour");\r
@@ -517,7 +517,7 @@ public class PopupMenu extends JPopupMenu
     {\r
       public void actionPerformed(ActionEvent e)\r
       {\r
-        textColour_actionPerformed(e);\r
+        textColour_actionPerformed();\r
       }\r
     });\r
     jMenu1.setText("Group");\r
@@ -589,7 +589,7 @@ public class PopupMenu extends JPopupMenu
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    noColourmenuItem_actionPerformed(e);\r
+                    noColourmenuItem_actionPerformed();\r
                 }\r
             });\r
 \r
@@ -598,7 +598,7 @@ public class PopupMenu extends JPopupMenu
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    clustalColour_actionPerformed(e);\r
+                    clustalColour_actionPerformed();\r
                 }\r
             });\r
         zappoColour.setText("Zappo");\r
@@ -606,7 +606,7 @@ public class PopupMenu extends JPopupMenu
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    zappoColour_actionPerformed(e);\r
+                    zappoColour_actionPerformed();\r
                 }\r
             });\r
         taylorColour.setText("Taylor");\r
@@ -614,7 +614,7 @@ public class PopupMenu extends JPopupMenu
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    taylorColour_actionPerformed(e);\r
+                    taylorColour_actionPerformed();\r
                 }\r
             });\r
         hydrophobicityColour.setText("Hydrophobicity");\r
@@ -622,7 +622,7 @@ public class PopupMenu extends JPopupMenu
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    hydrophobicityColour_actionPerformed(e);\r
+                    hydrophobicityColour_actionPerformed();\r
                 }\r
             });\r
         helixColour.setText("Helix propensity");\r
@@ -630,7 +630,7 @@ public class PopupMenu extends JPopupMenu
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    helixColour_actionPerformed(e);\r
+                    helixColour_actionPerformed();\r
                 }\r
             });\r
         strandColour.setText("Strand propensity");\r
@@ -638,7 +638,7 @@ public class PopupMenu extends JPopupMenu
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    strandColour_actionPerformed(e);\r
+                    strandColour_actionPerformed();\r
                 }\r
             });\r
         turnColour.setText("Turn propensity");\r
@@ -646,7 +646,7 @@ public class PopupMenu extends JPopupMenu
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    turnColour_actionPerformed(e);\r
+                    turnColour_actionPerformed();\r
                 }\r
             });\r
         buriedColour.setText("Buried Index");\r
@@ -654,7 +654,7 @@ public class PopupMenu extends JPopupMenu
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    buriedColour_actionPerformed(e);\r
+                    buriedColour_actionPerformed();\r
                 }\r
             });\r
         abovePIDColour.setText("Above % Identity");\r
@@ -662,7 +662,7 @@ public class PopupMenu extends JPopupMenu
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    abovePIDColour_actionPerformed(e);\r
+                    abovePIDColour_actionPerformed();\r
                 }\r
             });\r
         userDefinedColour.setText("User Defined...");\r
@@ -678,7 +678,7 @@ public class PopupMenu extends JPopupMenu
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    PIDColour_actionPerformed(e);\r
+                    PIDColour_actionPerformed();\r
                 }\r
             });\r
         BLOSUM62Colour.setText("BLOSUM62");\r
@@ -686,7 +686,7 @@ public class PopupMenu extends JPopupMenu
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    BLOSUM62Colour_actionPerformed(e);\r
+                    BLOSUM62Colour_actionPerformed();\r
                 }\r
             });\r
         conservationMenuItem.setText("Conservation");\r
@@ -694,7 +694,7 @@ public class PopupMenu extends JPopupMenu
             {\r
                 public void actionPerformed(ActionEvent e)\r
                 {\r
-                    conservationMenuItem_actionPerformed(e);\r
+                    conservationMenuItem_actionPerformed();\r
                 }\r
             });\r
     }\r
@@ -715,7 +715,7 @@ public class PopupMenu extends JPopupMenu
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    protected void clustalColour_actionPerformed(ActionEvent e)\r
+    protected void clustalColour_actionPerformed()\r
     {\r
         SequenceGroup sg = getGroup();\r
         sg.cs = new ClustalxColourScheme(sg.getSequences(ap.av.hiddenRepSequences),\r
@@ -728,7 +728,7 @@ public class PopupMenu extends JPopupMenu
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    protected void zappoColour_actionPerformed(ActionEvent e)\r
+    protected void zappoColour_actionPerformed()\r
     {\r
         getGroup().cs = new ZappoColourScheme();\r
         refresh();\r
@@ -739,7 +739,7 @@ public class PopupMenu extends JPopupMenu
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    protected void taylorColour_actionPerformed(ActionEvent e)\r
+    protected void taylorColour_actionPerformed()\r
     {\r
         getGroup().cs = new TaylorColourScheme();\r
         refresh();\r
@@ -750,7 +750,7 @@ public class PopupMenu extends JPopupMenu
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    protected void hydrophobicityColour_actionPerformed(ActionEvent e)\r
+    protected void hydrophobicityColour_actionPerformed()\r
     {\r
         getGroup().cs = new HydrophobicColourScheme();\r
         refresh();\r
@@ -761,7 +761,7 @@ public class PopupMenu extends JPopupMenu
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    protected void helixColour_actionPerformed(ActionEvent e)\r
+    protected void helixColour_actionPerformed()\r
     {\r
         getGroup().cs = new HelixColourScheme();\r
         refresh();\r
@@ -772,7 +772,7 @@ public class PopupMenu extends JPopupMenu
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    protected void strandColour_actionPerformed(ActionEvent e)\r
+    protected void strandColour_actionPerformed()\r
     {\r
         getGroup().cs = new StrandColourScheme();\r
         refresh();\r
@@ -783,7 +783,7 @@ public class PopupMenu extends JPopupMenu
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    protected void turnColour_actionPerformed(ActionEvent e)\r
+    protected void turnColour_actionPerformed()\r
     {\r
         getGroup().cs = new TurnColourScheme();\r
         refresh();\r
@@ -794,7 +794,7 @@ public class PopupMenu extends JPopupMenu
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    protected void buriedColour_actionPerformed(ActionEvent e)\r
+    protected void buriedColour_actionPerformed()\r
     {\r
         getGroup().cs = new BuriedColourScheme();\r
         refresh();\r
@@ -805,7 +805,7 @@ public class PopupMenu extends JPopupMenu
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    public void nucleotideMenuItem_actionPerformed(ActionEvent e)\r
+    public void nucleotideMenuItem_actionPerformed()\r
     {\r
         getGroup().cs = new NucleotideColourScheme();\r
         refresh();\r
@@ -816,7 +816,7 @@ public class PopupMenu extends JPopupMenu
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    protected void abovePIDColour_actionPerformed(ActionEvent e)\r
+    protected void abovePIDColour_actionPerformed()\r
     {\r
         SequenceGroup sg = getGroup();\r
         if(sg.cs==null)\r
@@ -868,7 +868,7 @@ public class PopupMenu extends JPopupMenu
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    protected void PIDColour_actionPerformed(ActionEvent e)\r
+    protected void PIDColour_actionPerformed()\r
     {\r
         SequenceGroup sg = getGroup();\r
         sg.cs = new PIDColourScheme();\r
@@ -883,7 +883,7 @@ public class PopupMenu extends JPopupMenu
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    protected void BLOSUM62Colour_actionPerformed(ActionEvent e)\r
+    protected void BLOSUM62Colour_actionPerformed()\r
     {\r
         SequenceGroup sg = getGroup();\r
 \r
@@ -901,7 +901,7 @@ public class PopupMenu extends JPopupMenu
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    protected void noColourmenuItem_actionPerformed(ActionEvent e)\r
+    protected void noColourmenuItem_actionPerformed()\r
     {\r
         getGroup().cs = null;\r
         refresh();\r
@@ -912,7 +912,7 @@ public class PopupMenu extends JPopupMenu
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    protected void conservationMenuItem_actionPerformed(ActionEvent e)\r
+    protected void conservationMenuItem_actionPerformed()\r
     {\r
         SequenceGroup sg = getGroup();\r
         if(sg.cs==null)\r
@@ -947,20 +947,23 @@ public class PopupMenu extends JPopupMenu
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    protected void groupName_actionPerformed(ActionEvent e)\r
+    protected void groupName_actionPerformed()\r
     {\r
-        SequenceGroup sg = getGroup();\r
-        String reply = JOptionPane.showInternalInputDialog(Desktop.desktop,\r
-                "Enter new group name", "Edit group name",\r
-                JOptionPane.QUESTION_MESSAGE);\r
 \r
-        if (reply == null)\r
-        {\r
-            return;\r
-        }\r
+      SequenceGroup sg = getGroup();\r
+      EditNameDialog dialog = new EditNameDialog(sg.getName(),\r
+                                                 sg.getDescription(),\r
+                                                 "       Group Name ",\r
+                                                 "Group Description ",\r
+                                                 "Edit Group Name/Description");\r
+\r
+      if (!dialog.accept)\r
+      {\r
+        return;\r
+      }\r
 \r
-        sg.setName(reply);\r
-        groupName.setText(reply);\r
+      sg.setName(dialog.getName());\r
+      groupName.setText(dialog.getDescription());\r
     }\r
 \r
 \r
@@ -984,40 +987,22 @@ public class PopupMenu extends JPopupMenu
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    void sequenceName_actionPerformed(ActionEvent e)\r
+    void sequenceName_actionPerformed()\r
     {\r
-      JLabel idlabel = new JLabel(  "       Sequence Name ");\r
-      JLabel desclabel = new JLabel("Sequence Description ");\r
-      idlabel.setFont(new Font("Courier", Font.PLAIN, 12));\r
-      desclabel.setFont(new Font("Courier", Font.PLAIN, 12));\r
-      JTextField id = new JTextField(sequence.getName(), 40);\r
-      JTextField description = new JTextField(sequence.getDescription(), 40);\r
-      JPanel panel = new JPanel(new BorderLayout());\r
-      JPanel panel2 = new JPanel(new BorderLayout());\r
-      panel2.add(idlabel, BorderLayout.WEST);\r
-      panel2.add(id, BorderLayout.CENTER);\r
-      panel.add(panel2, BorderLayout.NORTH);\r
-      panel2 = new JPanel(new BorderLayout());\r
-      panel2.add(desclabel, BorderLayout.WEST);\r
-      panel2.add(description, BorderLayout.CENTER);\r
-      panel.add(panel2, BorderLayout.SOUTH);\r
-\r
-\r
-       int reply = JOptionPane.showInternalConfirmDialog(Desktop.desktop,\r
-          panel, "Edit Sequence Name/Description",\r
-          JOptionPane.OK_CANCEL_OPTION );\r
-\r
-\r
-        if (reply != JOptionPane.OK_OPTION )\r
+      EditNameDialog dialog = new EditNameDialog(sequence.getName(),\r
+                                                 sequence.getDescription(),\r
+                                                 "       Sequence Name ",\r
+                                                 "Sequence Description ",\r
+                                                 "Edit Sequence Name/Description");\r
+\r
+        if (!dialog.accept)\r
         {\r
             return;\r
         }\r
 \r
-        String s = id.getText();\r
-\r
-        if (s != null)\r
+        if (dialog.getName() != null)\r
         {\r
-            if (s.indexOf(" ") > -1)\r
+            if (dialog.getName().indexOf(" ") > -1)\r
             {\r
                 JOptionPane.showMessageDialog(ap,\r
                     "Spaces have been converted to \"_\"",\r
@@ -1025,12 +1010,11 @@ public class PopupMenu extends JPopupMenu
                     JOptionPane.WARNING_MESSAGE);\r
             }\r
 \r
-            s = s.replace(' ', '_');\r
-            sequence.setName(s);\r
+            sequence.setName(dialog.getName().replace(' ', '_'));\r
             ap.repaint();\r
         }\r
 \r
-        sequence.setDescription(description.getText());\r
+        sequence.setDescription(dialog.getDescription());\r
 \r
         ap.av.firePropertyChange("alignment", null,\r
                                   ap.av.getAlignment().getSequences());\r
@@ -1042,7 +1026,7 @@ public class PopupMenu extends JPopupMenu
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    void unGroupMenuItem_actionPerformed(ActionEvent e)\r
+    void unGroupMenuItem_actionPerformed()\r
     {\r
         SequenceGroup sg = ap.av.getSelectionGroup();\r
         ap.av.alignment.deleteGroup(sg);\r
@@ -1056,7 +1040,7 @@ public class PopupMenu extends JPopupMenu
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    protected void outline_actionPerformed(ActionEvent e)\r
+    protected void outline_actionPerformed()\r
     {\r
         SequenceGroup sg = getGroup();\r
         Color col = JColorChooser.showDialog(this, "Select Outline Colour",\r
@@ -1075,7 +1059,7 @@ public class PopupMenu extends JPopupMenu
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    public void showBoxes_actionPerformed(ActionEvent e)\r
+    public void showBoxes_actionPerformed()\r
     {\r
         getGroup().setDisplayBoxes(showBoxes.isSelected());\r
         refresh();\r
@@ -1086,7 +1070,7 @@ public class PopupMenu extends JPopupMenu
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    public void showText_actionPerformed(ActionEvent e)\r
+    public void showText_actionPerformed()\r
     {\r
         getGroup().setDisplayText(showText.isSelected());\r
         refresh();\r
@@ -1097,7 +1081,7 @@ public class PopupMenu extends JPopupMenu
      *\r
      * @param e DOCUMENT ME!\r
      */\r
-    public void showColourText_actionPerformed(ActionEvent e)\r
+    public void showColourText_actionPerformed()\r
     {\r
         getGroup().setColourText(showColourText.isSelected());\r
         refresh();\r
@@ -1153,12 +1137,12 @@ public class PopupMenu extends JPopupMenu
       ap.av.hideSequence(hseqs);\r
     }\r
 \r
-  public void copy_actionPerformed(ActionEvent e)\r
+  public void copy_actionPerformed()\r
   {\r
     ap.alignFrame.copy_actionPerformed(null);\r
   }\r
 \r
-  public void cut_actionPerformed(ActionEvent e)\r
+  public void cut_actionPerformed()\r
   {\r
     ap.alignFrame.cut_actionPerformed(null);\r
   }\r
@@ -1261,7 +1245,7 @@ public class PopupMenu extends JPopupMenu
   }\r
 \r
 \r
-  public void pdbFromFile_actionPerformed(ActionEvent e)\r
+  public void pdbFromFile_actionPerformed()\r
   {\r
      jalview.io.JalviewFileChooser chooser\r
          = new jalview.io.JalviewFileChooser(jalview.bin.Cache.\r
@@ -1309,7 +1293,7 @@ public class PopupMenu extends JPopupMenu
 \r
   }\r
 \r
-  public void enterPDB_actionPerformed(ActionEvent e)\r
+  public void enterPDB_actionPerformed()\r
   {\r
     String id = JOptionPane.showInternalInputDialog(Desktop.desktop,\r
         "Enter PDB Id", "Enter PDB Id", JOptionPane.QUESTION_MESSAGE);\r
@@ -1323,13 +1307,13 @@ public class PopupMenu extends JPopupMenu
     }\r
   }\r
 \r
-  public void discoverPDB_actionPerformed(ActionEvent e)\r
+  public void discoverPDB_actionPerformed()\r
   {\r
     new jalview.io.DBRefFetcher(\r
              ap.av.getAlignment(), ap.alignFrame).fetchDBRefs(false);\r
   }\r
 \r
-  public void sequenceFeature_actionPerformed(ActionEvent e)\r
+  public void sequenceFeature_actionPerformed()\r
   {\r
     SequenceGroup sg = ap.av.getSelectionGroup();\r
     if(sg==null)\r
@@ -1356,7 +1340,7 @@ public class PopupMenu extends JPopupMenu
     }\r
   }\r
 \r
-  public void textColour_actionPerformed(ActionEvent e)\r
+  public void textColour_actionPerformed()\r
   {\r
     SequenceGroup sg = getGroup();\r
     if (sg != null)\r