From d18d71f7fd61e73eb89fc10b9a4c2b8d83f6c59c Mon Sep 17 00:00:00 2001
From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04>
Date: Mon, 30 Jul 2007 08:54:01 +0000
Subject: [PATCH] updates

git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@6259 ee4ac58c-ac51-4696-9907-e4b3aa274f04
---
 .../genebuilder/ortholog/MatchPanel.java      | 39 +++++++++++--------
 .../genebuilder/ortholog/OrthologTable.java   | 29 ++++++++++++--
 2 files changed, 47 insertions(+), 21 deletions(-)

diff --git a/uk/ac/sanger/artemis/components/genebuilder/ortholog/MatchPanel.java b/uk/ac/sanger/artemis/components/genebuilder/ortholog/MatchPanel.java
index 148916aec..54cb2e54e 100644
--- a/uk/ac/sanger/artemis/components/genebuilder/ortholog/MatchPanel.java
+++ b/uk/ac/sanger/artemis/components/genebuilder/ortholog/MatchPanel.java
@@ -17,7 +17,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  *
- * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/genebuilder/ortholog/MatchPanel.java,v 1.10 2007-07-24 08:41:12 tjc Exp $
+ * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/genebuilder/ortholog/MatchPanel.java,v 1.11 2007-07-30 08:54:01 tjc Exp $
  */
 
 package uk.ac.sanger.artemis.components.genebuilder.ortholog;
@@ -61,7 +61,11 @@ public class MatchPanel extends JPanel
   private Vector editableComponents;
   private JButton hide_show_ortho;
   private JButton hide_show_sim;
-
+  private static String ORTHOLOG = "orthologous_to";
+  private static String PARALOG  = "paralogous_to";
+  private static String SIMILARITY = "similarity";
+  private static String[] SO_CLUSTER_NAMES =  
+            { ORTHOLOG, PARALOG, SIMILARITY };
   
   public MatchPanel(final Feature feature)
   {
@@ -85,23 +89,21 @@ public class MatchPanel extends JPanel
    * @param qualifierName
    * @return
    */
-  public boolean isMatchTag(String qualifierName)
+  public static boolean isMatchTag(final String qualifierName)
   {
-    if(qualifierName.startsWith("/"))
-      qualifierName = qualifierName.substring(1);
-    
-    if(qualifierName.startsWith("ortholog") ||
-       qualifierName.startsWith("similarity"))
-      return true;
+    for(int i=0; i<SO_CLUSTER_NAMES.length;i++)
+      if(qualifierName.equals(SO_CLUSTER_NAMES[i]) || 
+         qualifierName.equals(SO_CLUSTER_NAMES[i]+"="))
+        return true;
     return false;
   }
   
   private Component createMatchQualifiersComponent(final Feature feature)
   {
     editableComponents = new Vector();
-    final Qualifier orthoQualifier = matchQualifiers.getQualifierByName("ortholog");
-    final Qualifier paraQualifier  = matchQualifiers.getQualifierByName("paralog");
-    final Qualifier simQualifier   = matchQualifiers.getQualifierByName("similarity");
+    final Qualifier orthoQualifier = matchQualifiers.getQualifierByName(ORTHOLOG);
+    final Qualifier paraQualifier  = matchQualifiers.getQualifierByName(PARALOG);
+    final Qualifier simQualifier   = matchQualifiers.getQualifierByName(SIMILARITY);
     
     if(databases == null)
     {
@@ -133,7 +135,7 @@ public class MatchPanel extends JPanel
         if(select == JOptionPane.CANCEL_OPTION)
           return;
         
-        add("ortholog", ((String)dbs.getSelectedItem())+":"+
+        add(ORTHOLOG, ((String)dbs.getSelectedItem())+":"+
                         accession.getText().trim(), feature);
       }
     });
@@ -146,8 +148,11 @@ public class MatchPanel extends JPanel
     ///
     /// temp
     ///
-    //if(orthoQualifier != null)
-    //{
+    if(orthoQualifier != null)
+    {
+      if(orthoQualifier instanceof QualifierLazyLoading)
+        ((QualifierLazyLoading)orthoQualifier).setForceLoad(true);
+    }
       if(hide_show_ortho == null)
         hide_show_ortho = new JButton("-");
       
@@ -185,7 +190,7 @@ public class MatchPanel extends JPanel
         if(select == JOptionPane.CANCEL_OPTION)
           return;
         
-        add("paralog", ((String)dbs.getSelectedItem())+":"+
+        add(PARALOG, ((String)dbs.getSelectedItem())+":"+
                         accession.getText().trim(), feature);
       }
     });
@@ -225,7 +230,7 @@ public class MatchPanel extends JPanel
         if(select == JOptionPane.CANCEL_OPTION)
           return;
         
-        add("similarity", accession.getText().trim(), feature);
+        add(SIMILARITY, accession.getText().trim(), feature);
       }
     });
     xBox = Box.createHorizontalBox();
diff --git a/uk/ac/sanger/artemis/components/genebuilder/ortholog/OrthologTable.java b/uk/ac/sanger/artemis/components/genebuilder/ortholog/OrthologTable.java
index 8f2ca093a..99c9b71a3 100644
--- a/uk/ac/sanger/artemis/components/genebuilder/ortholog/OrthologTable.java
+++ b/uk/ac/sanger/artemis/components/genebuilder/ortholog/OrthologTable.java
@@ -54,10 +54,11 @@ import uk.ac.sanger.artemis.Feature;
 import uk.ac.sanger.artemis.io.PartialSequence;
 import uk.ac.sanger.artemis.io.Qualifier;
 import uk.ac.sanger.artemis.util.DatabaseDocument;
+import uk.ac.sanger.artemis.util.StringVector;
 
 public class OrthologTable extends AbstractMatchTable
 {
-  private int NUMBER_COLUMNS = 3;
+  private static int NUMBER_COLUMNS = 3;
   private Vector rowData   = new Vector();
   private Vector tableData = new Vector(NUMBER_COLUMNS);
   private JTable orthologTable;
@@ -66,7 +67,6 @@ public class OrthologTable extends AbstractMatchTable
 
   //
   // column headings
-  final static String ORGANISM_COL = "Organism";
   final static String ORTHO_COL = "Ortholog";
   final static String DESCRIPTION_COL = "Description";
   final static String REMOVE_BUTTON_COL = "";
@@ -92,6 +92,23 @@ public class OrthologTable extends AbstractMatchTable
     tableData.setElementAt(REMOVE_BUTTON_COL,2);
     
     // add row data
+    if(origQualifier != null)
+    {
+      int columnIndex;
+      StringVector values = origQualifier.getValues();
+      for(int i=0; i<values.size(); i++)
+      {
+        StringVector rowStr = StringVector.getStrings((String)values.get(i), ";");
+        Vector thisRowData = new Vector(NUMBER_COLUMNS);
+        thisRowData.setSize(NUMBER_COLUMNS);
+        
+        columnIndex = tableData.indexOf(ORTHO_COL);
+        thisRowData.setElementAt((String)rowStr.get(0), columnIndex);
+        columnIndex = tableData.indexOf(DESCRIPTION_COL);
+        thisRowData.setElementAt("blah", columnIndex);
+        rowData.add(thisRowData);
+      }
+    }
     Vector thisRowData = new Vector();
     thisRowData.add("Bpseudomallei:BPSL0003");
     thisRowData.add("blah blah");
@@ -236,8 +253,12 @@ public class OrthologTable extends AbstractMatchTable
    */
   protected String updateQualifierString(int row)
   {
-    // TODO Auto-generated method stub
-    return null;
+    StringBuffer orthologStr = new StringBuffer(
+        (String)getTable().getValueAt(row, getColumnIndex(ORTHO_COL)) );            // ortholog link
+    orthologStr.append(";");
+    orthologStr.append(
+             (String)getTable().getValueAt(row, getColumnIndex(DESCRIPTION_COL)) ); // description
+    return orthologStr.toString();
   }
   
 
-- 
GitLab