JAL-3829 select single best TDB structure and select structures from particular provi...
[jalview.git] / src / jalview / jbgui / FilterOption.java
index d52dbbf..57a1a42 100644 (file)
@@ -18,7 +18,7 @@ public class FilterOption
   private String view;
 
   private boolean addSeparatorAfter;
-  
+
   private StructureChooserQuerySource querySource;
 
   /**
@@ -33,15 +33,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 +97,23 @@ 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