in progress
[jalview.git] / forester / java / src / org / forester / archaeopteryx / ControlPanel.java
index 1e32723..3bd8738 100644 (file)
@@ -44,6 +44,7 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import javax.swing.BorderFactory;
 import javax.swing.DefaultListCellRenderer;
@@ -291,10 +292,14 @@ final class ControlPanel extends JPanel implements ActionListener {
                 }
                 else if ( e.getSource() == _decr_domain_structure_evalue_thr ) {
                     _mainpanel.getCurrentTreePanel().decreaseDomainStructureEvalueThresholdExp();
+                    search0();
+                    search1();
                     displayedPhylogenyMightHaveChanged( true );
                 }
                 else if ( e.getSource() == _incr_domain_structure_evalue_thr ) {
                     _mainpanel.getCurrentTreePanel().increaseDomainStructureEvalueThresholdExp();
+                    search0();
+                    search1();
                     displayedPhylogenyMightHaveChanged( true );
                 }
                 else if ( e.getSource() == _search_tf_0 ) {
@@ -1799,7 +1804,7 @@ final class ControlPanel extends JPanel implements ActionListener {
         getSearchResetButton0().setEnabled( true );
         getSearchResetButton0().setVisible( true );
         String[] queries = null;
-        List<PhylogenyNode> nodes = null;
+        Set<PhylogenyNode> nodes = null;
         if ( ( query_str.indexOf( ',' ) >= 0 ) && !getOptions().isSearchWithRegex() ) {
             queries = query_str.split( ",+" );
         }
@@ -1808,18 +1813,22 @@ final class ControlPanel extends JPanel implements ActionListener {
             queries[ 0 ] = query_str.trim();
         }
         if ( ( queries != null ) && ( queries.length > 0 ) ) {
-            nodes = new ArrayList<PhylogenyNode>();
+            nodes = new HashSet<PhylogenyNode>();
             for( String query : queries ) {
                 if ( ForesterUtil.isEmpty( query ) ) {
                     continue;
                 }
                 query = query.trim();
-                if ( ( query.indexOf( '+' ) >= 0 ) && !getOptions().isSearchWithRegex() ) {
+                final TreePanel tp = getMainPanel().getCurrentTreePanel();
+                if ( ( query.indexOf( '+' ) > 0 ) && !getOptions().isSearchWithRegex() ) {
                     nodes.addAll( PhylogenyMethods.searchDataLogicalAnd( query.split( "\\++" ),
                                                                          tree,
                                                                          getOptions().isSearchCaseSensitive(),
                                                                          !getOptions().isMatchWholeTermsOnly(),
-                                                                         isShowDomainArchitectures() ) );
+                                                                         isShowDomainArchitectures(),
+                                                                         tp != null ? Math.pow( 10,
+                                                                                                tp.getDomainStructureEvalueThresholdExp() )
+                                                                                                : 0 ) );
                 }
                 else {
                     nodes.addAll( PhylogenyMethods.searchData( query,
@@ -1827,13 +1836,16 @@ final class ControlPanel extends JPanel implements ActionListener {
                                                                getOptions().isSearchCaseSensitive(),
                                                                !getOptions().isMatchWholeTermsOnly(),
                                                                getOptions().isSearchWithRegex(),
-                                                               isShowDomainArchitectures() ) );
+                                                               isShowDomainArchitectures(),
+                                                               tp != null ? Math.pow( 10, tp
+                                                                                      .getDomainStructureEvalueThresholdExp() ) : 0 ) );
                 }
             }
             if ( getOptions().isInverseSearchResult() ) {
                 final List<PhylogenyNode> all = PhylogenyMethods.obtainAllNodesAsList( tree );
                 all.removeAll( nodes );
-                nodes = all;
+                nodes = new HashSet<PhylogenyNode>();
+                nodes.addAll( all );
             }
         }
         if ( ( nodes != null ) && ( nodes.size() > 0 ) ) {
@@ -1854,7 +1866,7 @@ final class ControlPanel extends JPanel implements ActionListener {
         getSearchResetButton1().setEnabled( true );
         getSearchResetButton1().setVisible( true );
         String[] queries = null;
-        List<PhylogenyNode> nodes = null;
+        Set<PhylogenyNode> nodes = null;
         if ( ( query_str.indexOf( ',' ) >= 0 ) && !getOptions().isSearchWithRegex() ) {
             queries = query_str.split( ",+" );
         }
@@ -1863,18 +1875,22 @@ final class ControlPanel extends JPanel implements ActionListener {
             queries[ 0 ] = query_str.trim();
         }
         if ( ( queries != null ) && ( queries.length > 0 ) ) {
-            nodes = new ArrayList<PhylogenyNode>();
+            nodes = new HashSet<PhylogenyNode>();
             for( String query : queries ) {
                 if ( ForesterUtil.isEmpty( query ) ) {
                     continue;
                 }
                 query = query.trim();
-                if ( ( query.indexOf( '+' ) >= 0 ) && !getOptions().isSearchWithRegex() ) {
+                final TreePanel tp = getMainPanel().getCurrentTreePanel();
+                if ( ( query.indexOf( '+' ) > 0 ) && !getOptions().isSearchWithRegex() ) {
                     nodes.addAll( PhylogenyMethods.searchDataLogicalAnd( query.split( "\\++" ),
                                                                          tree,
                                                                          getOptions().isSearchCaseSensitive(),
                                                                          !getOptions().isMatchWholeTermsOnly(),
-                                                                         isShowDomainArchitectures() ) );
+                                                                         isShowDomainArchitectures(),
+                                                                         tp != null ? Math.pow( 10,
+                                                                                                tp.getDomainStructureEvalueThresholdExp() )
+                                                                                                : 0 ) );
                 }
                 else {
                     nodes.addAll( PhylogenyMethods.searchData( query,
@@ -1882,13 +1898,16 @@ final class ControlPanel extends JPanel implements ActionListener {
                                                                getOptions().isSearchCaseSensitive(),
                                                                !getOptions().isMatchWholeTermsOnly(),
                                                                getOptions().isSearchWithRegex(),
-                                                               isShowDomainArchitectures() ) );
+                                                               isShowDomainArchitectures(),
+                                                               tp != null ? Math.pow( 10, tp
+                                                                                      .getDomainStructureEvalueThresholdExp() ) : 0 ) );
                 }
             }
             if ( getOptions().isInverseSearchResult() ) {
                 final List<PhylogenyNode> all = PhylogenyMethods.obtainAllNodesAsList( tree );
                 all.removeAll( nodes );
-                nodes = all;
+                nodes = new HashSet<PhylogenyNode>();
+                nodes.addAll( all );
             }
         }
         if ( ( nodes != null ) && ( nodes.size() > 0 ) ) {
@@ -2036,11 +2055,9 @@ final class ControlPanel extends JPanel implements ActionListener {
                                   .getLabelForGetExtDescendentsData() );
             }
             else {
-               
                 addClickToOption( Configuration.get_ext_desc_data,
                                   getConfiguration().getClickToTitle( Configuration.get_ext_desc_data ) );
             }
-           
             if ( default_option == Configuration.get_ext_desc_data ) {
                 selected_index = cb_index;
             }