X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjbgui%2FFilterOption.java;h=872fac6f0ce7ae5fea87461a2c88164131631e4b;hb=d654b1f014790b7ae25e6eec631847170a930987;hp=042df239ca73d0250a08973cf6e52d4850bf5315;hpb=bf5bc203579d7a291844f3b34d5e8431984ee8e2;p=jalview.git diff --git a/src/jalview/jbgui/FilterOption.java b/src/jalview/jbgui/FilterOption.java index 042df23..872fac6 100644 --- a/src/jalview/jbgui/FilterOption.java +++ b/src/jalview/jbgui/FilterOption.java @@ -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 . + * 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