X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjbgui%2FFilterOption.java;fp=src%2Fjalview%2Fjbgui%2FFilterOption.java;h=57a1a42de75627a43859b57cd3d834310ddb1b45;hb=18344fcaeb3ee1c80b1c1de907ebe24f1ead18e4;hp=0000000000000000000000000000000000000000;hpb=bc7283e7d80b1f7f5fb7d95c51b96bb3af31593d;p=jalview.git diff --git a/src/jalview/jbgui/FilterOption.java b/src/jalview/jbgui/FilterOption.java new file mode 100644 index 0000000..57a1a42 --- /dev/null +++ b/src/jalview/jbgui/FilterOption.java @@ -0,0 +1,119 @@ +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 + * + * @author tcnofoegbu + * + */ +public class FilterOption +{ + private String name; + + private String value; + + private String view; + + private boolean addSeparatorAfter; + + private StructureChooserQuerySource querySource; + + /** + * Model for structure filter option + * + * @param name + * - the name of the Option + * @param value + * - the value of the option + * @param view + * - the category of the filter option + * @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, + StructureChooserQuerySource structureChooserQuerySource) + { + this.name = name; + this.value = value; + this.view = view; + this.querySource = structureChooserQuerySource; + this.addSeparatorAfter = addSeparatorAfter; + } + + public String getName() + { + return name; + } + + public void setName(String name) + { + this.name = name; + } + + public String getValue() + { + return value; + } + + public void setValue(String value) + { + this.value = value; + } + + public String getView() + { + return view; + } + + public void setView(String view) + { + this.view = view; + } + + @Override + public String toString() + { + return this.name; + } + + public boolean isAddSeparatorAfter() + { + return addSeparatorAfter; + } + + public void setAddSeparatorAfter(boolean addSeparatorAfter) + { + 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