JAL-4034 Fix #2 show an icon and a button to press to initiate search
[jalview.git] / src / jalview / jbgui / FilterOption.java
index d52dbbf..872fac6 100644 (file)
@@ -1,3 +1,23 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview 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 3
+ * of the License, or (at your option) any later version.
+ *  
+ * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
 package jalview.jbgui;
 
 import jalview.gui.structurechooser.StructureChooserQuerySource;
@@ -18,7 +38,7 @@ public class FilterOption
   private String view;
 
   private boolean addSeparatorAfter;
-  
+
   private StructureChooserQuerySource querySource;
 
   /**
@@ -33,15 +53,17 @@ public class FilterOption
    * @param addSeparatorAfter
    *          - if true, a horizontal separator is rendered immediately after
    *          this filter option, otherwise
-   * @param structureChooserQuerySource - the query source that actions this filter
+   * @param structureChooserQuerySource
+   *          - the query source that actions this filter
    */
   public FilterOption(String name, String value, String view,
-          boolean addSeparatorAfter, StructureChooserQuerySource structureChooserQuerySource)
+          boolean addSeparatorAfter,
+          StructureChooserQuerySource structureChooserQuerySource)
   {
     this.name = name;
     this.value = value;
     this.view = view;
-    this.querySource=structureChooserQuerySource;
+    this.querySource = structureChooserQuerySource;
     this.addSeparatorAfter = addSeparatorAfter;
   }
 
@@ -95,4 +117,27 @@ public class FilterOption
   {
     return querySource;
   }
+
+  @Override
+  public boolean equals(Object obj)
+  {
+    if (obj instanceof FilterOption)
+    {
+      FilterOption o = (FilterOption) obj;
+      return o.name.equals(name) && o.querySource == querySource
+              && o.value.equals(value) && o.view == view;
+    }
+    else
+    {
+      return super.equals(obj);
+    }
+  }
+
+  @Override
+  public int hashCode()
+  {
+    return ("" + name + ":" + value).hashCode()
+            + (view != null ? view.hashCode() : 0)
+            + (querySource != null ? querySource.hashCode() : 0);
+  }
 }
\ No newline at end of file