Edit name/description added to applet
authoramwaterhouse <Andrew Waterhouse>
Wed, 17 Jan 2007 17:01:57 +0000 (17:01 +0000)
committeramwaterhouse <Andrew Waterhouse>
Wed, 17 Jan 2007 17:01:57 +0000 (17:01 +0000)
src/jalview/appletgui/APopupMenu.java

index f786bde..a1e99ff 100755 (executable)
@@ -65,11 +65,16 @@ public class APopupMenu
   MenuItem pdb = new MenuItem();\r
   MenuItem hideSeqs = new MenuItem();\r
   MenuItem repGroup = new MenuItem();\r
+  MenuItem sequenceName = new MenuItem("Edit Name/Description");\r
 \r
   Sequence seq;\r
   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
@@ -218,6 +223,14 @@ public class APopupMenu
     else if (source == unGroupMenuItem)\r
       unGroupMenuItem_actionPerformed();\r
 \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
@@ -343,6 +356,49 @@ public class APopupMenu
 \r
   }\r
 \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, 120);\r
+\r
+    editNameDialog.show();\r
+\r
+    if (editNameDialog != null)\r
+    {\r
+      seq.setName(id.getText());\r
+      seq.setDescription(description.getText());\r
+      ap.repaint();\r
+    }\r
+  }\r
+\r
   void addPDB()\r
   {\r
     CutAndPasteTransfer cap = new CutAndPasteTransfer(true, ap.alignFrame);\r
@@ -370,6 +426,7 @@ public class APopupMenu
     showBoxes.setLabel("Boxes");\r
     showBoxes.setState(true);\r
     showBoxes.addItemListener(this);\r
+    sequenceName.addActionListener(this);\r
 \r
     showText.setLabel("Text");\r
     showText.addItemListener(this);\r
@@ -444,6 +501,7 @@ public class APopupMenu
     editMenu.add(toLower);\r
     toLower.addActionListener(this);\r
     editMenu.add(toggleCase);\r
+    seqMenu.add(sequenceName);\r
     seqMenu.add(pdb);\r
     seqMenu.add(repGroup);\r
     menu1.add(unGroupMenuItem);\r
@@ -456,6 +514,8 @@ 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