JAL-3829 allow multiple URL mocks and include P01308 in 3d-beacons mocks
[jalview.git] / src / jalview / jbgui / FilterOption.java
index 042df23..57a1a42 100644 (file)
@@ -1,5 +1,8 @@
 package jalview.jbgui;
 
+import jalview.gui.structurechooser.StructureChooserQuerySource;
+import jalview.gui.structurechooser.ThreeDBStructureChooserQuerySource;
+
 /**
  * This inner class provides the data model for the structure filter combo-box
  * 
@@ -16,6 +19,8 @@ public class FilterOption
 
   private boolean addSeparatorAfter;
 
+  private StructureChooserQuerySource querySource;
+
   /**
    * Model for structure filter option
    * 
@@ -28,13 +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
    */
   public FilterOption(String name, String value, String view,
-          boolean addSeparatorAfter)
+          boolean addSeparatorAfter,
+          StructureChooserQuerySource structureChooserQuerySource)
   {
     this.name = name;
     this.value = value;
     this.view = view;
+    this.querySource = structureChooserQuerySource;
     this.addSeparatorAfter = addSeparatorAfter;
   }
 
@@ -83,4 +92,28 @@ public class FilterOption
   {
     this.addSeparatorAfter = addSeparatorAfter;
   }
+
+  public StructureChooserQuerySource getQuerySource()
+  {
+    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