in progress
[jalview.git] / forester / java / src / org / forester / archaeopteryx / TreePanelUtil.java
index 5d7d2fa..ac47498 100644 (file)
@@ -6,6 +6,7 @@ import java.awt.Component;
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -25,7 +26,7 @@ import org.forester.phylogeny.PhylogenyNode;
 import org.forester.phylogeny.data.Accession;
 import org.forester.phylogeny.data.Annotation;
 import org.forester.phylogeny.data.BranchColor;
-import org.forester.phylogeny.data.NodeData.NODE_DATA;
+import org.forester.phylogeny.data.NodeDataField;
 import org.forester.phylogeny.data.Sequence;
 import org.forester.phylogeny.data.Taxonomy;
 import org.forester.phylogeny.iterators.PhylogenyNodeIterator;
@@ -33,6 +34,7 @@ import org.forester.phylogeny.iterators.PreorderTreeIterator;
 import org.forester.util.ForesterConstants;
 import org.forester.util.ForesterUtil;
 import org.forester.util.SequenceAccessionTools;
+import org.forester.util.StringInt;
 import org.forester.ws.seqdb.UniProtTaxonomy;
 
 public class TreePanelUtil {
@@ -44,7 +46,7 @@ public class TreePanelUtil {
         final String upkb = SequenceAccessionTools.obtainUniProtAccessorFromDataFields( node );
         if ( !ForesterUtil.isEmpty( upkb ) ) {
             try {
-                uri_str = ForesterUtil.UNIPROT_KB + URLEncoder.encode( upkb, ForesterConstants.UTF8 );
+                uri_str = ForesterUtil.UNIPROT_KB + URLEncoder.encode( upkb, ForesterConstants.UTF_8 );
             }
             catch ( final UnsupportedEncodingException e ) {
                 AptxUtil.showErrorMessage( tp, e.toString() );
@@ -56,10 +58,10 @@ public class TreePanelUtil {
             if ( !ForesterUtil.isEmpty( v ) ) {
                 try {
                     if ( SequenceAccessionTools.isProteinDbQuery( v ) ) {
-                        uri_str = ForesterUtil.NCBI_PROTEIN + URLEncoder.encode( v, ForesterConstants.UTF8 );
+                        uri_str = ForesterUtil.NCBI_PROTEIN + URLEncoder.encode( v, ForesterConstants.UTF_8 );
                     }
                     else {
-                        uri_str = ForesterUtil.NCBI_NUCCORE + URLEncoder.encode( v, ForesterConstants.UTF8 );
+                        uri_str = ForesterUtil.NCBI_NUCCORE + URLEncoder.encode( v, ForesterConstants.UTF_8 );
                     }
                 }
                 catch ( final UnsupportedEncodingException e ) {
@@ -73,10 +75,10 @@ public class TreePanelUtil {
             if ( !ForesterUtil.isEmpty( v ) ) {
                 try {
                     if ( SequenceAccessionTools.isProteinDbQuery( v ) ) {
-                        uri_str = ForesterUtil.NCBI_PROTEIN + URLEncoder.encode( v, ForesterConstants.UTF8 );
+                        uri_str = ForesterUtil.NCBI_PROTEIN + URLEncoder.encode( v, ForesterConstants.UTF_8 );
                     }
                     else {
-                        uri_str = ForesterUtil.NCBI_NUCCORE + URLEncoder.encode( v, ForesterConstants.UTF8 );
+                        uri_str = ForesterUtil.NCBI_NUCCORE + URLEncoder.encode( v, ForesterConstants.UTF_8 );
                     }
                 }
                 catch ( final UnsupportedEncodingException e ) {
@@ -89,7 +91,7 @@ public class TreePanelUtil {
             final String v = SequenceAccessionTools.obtainGiNumberFromDataFields( node );
             if ( !ForesterUtil.isEmpty( v ) ) {
                 try {
-                    uri_str = ForesterUtil.NCBI_GI + URLEncoder.encode( v, ForesterConstants.UTF8 );
+                    uri_str = ForesterUtil.NCBI_GI + URLEncoder.encode( v, ForesterConstants.UTF_8 );
                 }
                 catch ( final UnsupportedEncodingException e ) {
                     AptxUtil.showErrorMessage( tp, e.toString() );
@@ -176,12 +178,12 @@ public class TreePanelUtil {
             TreePanelUtil
                     .showExtDescNodeDataUserSelectedHelperHelper( node.getNodeData().getTaxonomy().getCommonName(), sb );
         }
-        if ( ( cp.isShowSeqNames() || cp.isShowSeqSymbols() || cp.isShowSequenceAcc() )
-                && node.getNodeData().isHasSequence()
-                && !ForesterUtil.isEmpty( node.getNodeData().getSequence().getMolecularSequence() ) ) {
-            TreePanelUtil.showExtDescNodeDataUserSelectedHelperHelper( node.getNodeData().getSequence()
-                    .getMolecularSequence(), sb );
-        }
+        //        if ( ( cp.isShowSeqNames() || cp.isShowSeqSymbols() || cp.isShowSequenceAcc() )
+        //                && node.getNodeData().isHasSequence()
+        //                && !ForesterUtil.isEmpty( node.getNodeData().getSequence().getMolecularSequence() ) ) {
+        //            TreePanelUtil.showExtDescNodeDataUserSelectedHelperHelper( node.getNodeData().getSequence()
+        //                    .getMolecularSequence(), sb );
+        //        }
         final String s = sb.toString().trim();
         if ( !ForesterUtil.isEmpty( s ) ) {
             data.add( s );
@@ -437,10 +439,11 @@ public class TreePanelUtil {
                 .getSynonyms().isEmpty() );
     }
 
-    static int makeSB( final List<String> data, final Options optz, final StringBuilder sb ) {
+    static final int nodeDataIntoStringBuffer( final List<String> data, final Options optz, final StringBuilder sb ) {
         final SortedMap<String, Integer> map = new TreeMap<String, Integer>();
-        if ( ( optz.getExtDescNodeDataToReturn() != NODE_DATA.SEQUENCE_MOL_SEQ )
-                && ( optz.getExtDescNodeDataToReturn() != NODE_DATA.SEQUENCE_MOL_SEQ_FASTA ) ) {
+        int size = 0;
+        if ( ( optz.getExtDescNodeDataToReturn() != NodeDataField.SEQUENCE_MOL_SEQ_FASTA )
+                && ( optz.getExtDescNodeDataToReturn() != NodeDataField.GO_TERM_IDS ) ) {
             for( final String d : data ) {
                 if ( !ForesterUtil.isEmpty( d ) ) {
                     if ( map.containsKey( d ) ) {
@@ -451,17 +454,30 @@ public class TreePanelUtil {
                     }
                 }
             }
-        }
-        int size = 0;
-        if ( ( optz.getExtDescNodeDataToReturn() != NODE_DATA.SEQUENCE_MOL_SEQ )
-                && ( optz.getExtDescNodeDataToReturn() != NODE_DATA.SEQUENCE_MOL_SEQ_FASTA ) ) {
-            for( final Entry<String, Integer> e : map.entrySet() ) {
-                final String v = e.getKey();
-                final Object c = e.getValue();
-                sb.append( v );
-                sb.append( "\t" );
-                sb.append( c );
-                sb.append( ForesterUtil.LINE_SEPARATOR );
+            if ( ( optz.getExtDescNodeDataToReturn() == NodeDataField.DOMAINS_ALL )
+                    || ( optz.getExtDescNodeDataToReturn() == NodeDataField.DOMAINS_COLLAPSED_PER_PROTEIN )
+                    || ( optz.getExtDescNodeDataToReturn() == NodeDataField.SEQ_ANNOTATIONS ) ) {
+                final ArrayList<StringInt> sis = new ArrayList<StringInt>();
+                for( final Entry<String, Integer> e : map.entrySet() ) {
+                    sis.add( new StringInt( e.getKey(), e.getValue() ) );
+                }
+                Collections.sort( sis, new StringInt.DescendingIntComparator() );
+                for( final StringInt si : sis ) {
+                    sb.append( si.getString() );
+                    sb.append( "\t" );
+                    sb.append( si.getInt() );
+                    sb.append( ForesterUtil.LINE_SEPARATOR );
+                }
+            }
+            else {
+                for( final Entry<String, Integer> e : map.entrySet() ) {
+                    final String v = e.getKey();
+                    final Object c = e.getValue();
+                    sb.append( v );
+                    sb.append( "\t" );
+                    sb.append( c );
+                    sb.append( ForesterUtil.LINE_SEPARATOR );
+                }
             }
             size = map.size();
         }