JAL-3746 apply copyright to source
[jalview.git] / src / jalview / jbgui / FilterOption.java
index 042df23..872fac6 100644 (file)
@@ -1,5 +1,28 @@
+/*
+ * 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;
+import jalview.gui.structurechooser.ThreeDBStructureChooserQuerySource;
+
 /**
  * This inner class provides the data model for the structure filter combo-box
  * 
@@ -16,6 +39,8 @@ public class FilterOption
 
   private boolean addSeparatorAfter;
 
+  private StructureChooserQuerySource querySource;
+
   /**
    * Model for structure filter option
    * 
@@ -28,13 +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
    */
   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 +112,32 @@ 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