From aac412a5236f14e8f5158ee8c3d514e94c66e693 Mon Sep 17 00:00:00 2001
From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04>
Date: Fri, 20 Nov 2009 12:56:09 +0000
Subject: [PATCH] seperate classes for add and remove buttons

git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@12394 ee4ac58c-ac51-4696-9907-e4b3aa274f04
---
 .../components/genebuilder/gff/AddButton.java | 57 +++++++++++++
 .../genebuilder/gff/PropertiesPanel.java      | 81 ++++---------------
 .../genebuilder/gff/RemoveButton.java         | 55 +++++++++++++
 3 files changed, 129 insertions(+), 64 deletions(-)
 create mode 100644 uk/ac/sanger/artemis/components/genebuilder/gff/AddButton.java
 create mode 100644 uk/ac/sanger/artemis/components/genebuilder/gff/RemoveButton.java

diff --git a/uk/ac/sanger/artemis/components/genebuilder/gff/AddButton.java b/uk/ac/sanger/artemis/components/genebuilder/gff/AddButton.java
new file mode 100644
index 000000000..9b6d8bad4
--- /dev/null
+++ b/uk/ac/sanger/artemis/components/genebuilder/gff/AddButton.java
@@ -0,0 +1,57 @@
+/* AddButton
+ * This file is part of Artemis
+ *
+ * Copyright (C) 2009  Genome Research Limited
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ */
+package uk.ac.sanger.artemis.components.genebuilder.gff;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.event.ActionListener;
+
+import javax.swing.JButton;
+import javax.swing.SwingConstants;
+import javax.swing.border.BevelBorder;
+import javax.swing.border.SoftBevelBorder;
+
+class AddButton extends JButton
+{
+  private static final long serialVersionUID = 1L;
+
+  public AddButton(ActionListener addAction, String tt)
+  {
+    super("+");
+
+    setToolTipText(tt);
+    setVerticalTextPosition(SwingConstants.TOP);
+    setHorizontalTextPosition(SwingConstants.LEFT);
+
+    setForeground(new Color(0, 100, 0));
+    setFont(getFont().deriveFont(Font.BOLD, 16.f));
+
+    setBorder(new SoftBevelBorder(BevelBorder.RAISED));
+    setOpaque(false);
+
+    Dimension size = new Dimension(16, 20);
+    setPreferredSize(size);
+    setMaximumSize(size);
+
+    addActionListener(addAction);
+  }
+}
diff --git a/uk/ac/sanger/artemis/components/genebuilder/gff/PropertiesPanel.java b/uk/ac/sanger/artemis/components/genebuilder/gff/PropertiesPanel.java
index 0efaafecb..da00b61a3 100644
--- a/uk/ac/sanger/artemis/components/genebuilder/gff/PropertiesPanel.java
+++ b/uk/ac/sanger/artemis/components/genebuilder/gff/PropertiesPanel.java
@@ -235,7 +235,15 @@ public class PropertiesPanel extends JPanel
       gridPanel.add(primaryNameTextField, c);
     }
     
-    AddSynonymButton addSynonymButton = new AddSynonymButton("Add Synonym");
+    ActionListener addAction = new ActionListener()
+    {
+      public void actionPerformed(ActionEvent e)
+      {
+        addSynonym();
+      }  
+    };
+    
+    AddButton addSynonymButton = new AddButton(addAction, "Add Synonym");
     c.gridx = 4;
     gridPanel.add(addSynonymButton, c);
   }
@@ -885,7 +893,14 @@ public class PropertiesPanel extends JPanel
         syn.setEnabled(false);
       synBox.add(syn);
       
-      RemoveSynonymButton remove = new RemoveSynonymButton(qualifier.getName(), val);
+      ActionListener removeAction = new ActionListener()
+      {
+        public void actionPerformed(ActionEvent e)
+        {
+          removeSynonym(qualifier.getName(), val);
+        }  
+      };
+      RemoveButton remove = new RemoveButton(removeAction);
       synBox.add(remove);
     }
     c.gridwidth = GridBagConstraints.REMAINDER;
@@ -943,66 +958,4 @@ public class PropertiesPanel extends JPanel
         feature.getKey().getKeyString()));
   }
 
-  protected class RemoveSynonymButton extends JButton 
-  {
-    private static final long serialVersionUID = 1L;
-    
-    public RemoveSynonymButton(final String name, final String val)
-    {
-      super("X");
-
-      setVerticalTextPosition(SwingConstants.TOP);
-      setHorizontalTextPosition(SwingConstants.LEFT);
-
-      setForeground(Color.red);
-      setFont(getFont().deriveFont(Font.BOLD, 9.f));
-      setBorder(BorderFactory.createEmptyBorder());
-      setOpaque(false);
-      
-      Dimension size = new Dimension(9,20);
-      setPreferredSize(size);
-      setMaximumSize(size);
-
-      addActionListener(new ActionListener()
-      {
-        public void actionPerformed(ActionEvent e)
-        {
-          removeSynonym(name, val);
-        }  
-      });
-    }
-  }
-  
-  protected class AddSynonymButton extends JButton 
-  {
-    private static final long serialVersionUID = 1L;
-    
-    public AddSynonymButton(String tt)
-    {
-      super("+");
-
-      setToolTipText(tt);
-      setVerticalTextPosition(SwingConstants.TOP);
-      setHorizontalTextPosition(SwingConstants.LEFT);
-
-      setForeground(new Color(0,100,0));
-      setFont(getFont().deriveFont(Font.BOLD, 16.f));
-      
-      setBorder(new SoftBevelBorder ( BevelBorder.RAISED ));
-      setOpaque(false);
-      
-      Dimension size = new Dimension(16,20);
-      setPreferredSize(size);
-      setMaximumSize(size);
-
-      addActionListener(new ActionListener()
-      {
-        public void actionPerformed(ActionEvent e)
-        {
-          addSynonym();
-        }  
-      });
-    }
-  }
-
 }
\ No newline at end of file
diff --git a/uk/ac/sanger/artemis/components/genebuilder/gff/RemoveButton.java b/uk/ac/sanger/artemis/components/genebuilder/gff/RemoveButton.java
new file mode 100644
index 000000000..180adab01
--- /dev/null
+++ b/uk/ac/sanger/artemis/components/genebuilder/gff/RemoveButton.java
@@ -0,0 +1,55 @@
+/* RemoveButton
+ * This file is part of Artemis
+ *
+ * Copyright (C) 2009  Genome Research Limited
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ */
+
+package uk.ac.sanger.artemis.components.genebuilder.gff;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.event.ActionListener;
+
+import javax.swing.BorderFactory;
+import javax.swing.JButton;
+import javax.swing.SwingConstants;
+
+class RemoveButton extends JButton
+{
+  private static final long serialVersionUID = 1L;
+
+  public RemoveButton(ActionListener removeAction)
+  {
+    super("X");
+
+    setVerticalTextPosition(SwingConstants.TOP);
+    setHorizontalTextPosition(SwingConstants.LEFT);
+
+    setForeground(Color.red);
+    setFont(getFont().deriveFont(Font.BOLD, 9.f));
+    setBorder(BorderFactory.createEmptyBorder());
+    setOpaque(false);
+
+    Dimension size = new Dimension(9, 20);
+    setPreferredSize(size);
+    setMaximumSize(size);
+
+    addActionListener(removeAction);
+  }
+}
\ No newline at end of file
-- 
GitLab