package org.ensembl.mart.explorer; import java.util.Iterator; import java.util.List; import java.util.logging.Logger; import org.ensembl.mart.lib.Query; import org.ensembl.mart.lib.config.FilterGroup; import org.ensembl.mart.lib.config.FilterPage; /** * This is a GUI representation of a * the FilterPage it is created from. * It contains a FilterGroupWidget corresponding * to each of the elements filterPage.getFilterGroups(). */ public class FilterPageWidget extends PageWidget { private final static Logger logger = Logger.getLogger(FilterPageWidget.class.getName()); /** * @param query model * @param name name of this page * @param filterPage source object this instance represents */ public FilterPageWidget(Query query, String name, FilterPage filterPage, QueryTreeView tree) { super(query, name, tree); List filterGroups = filterPage.getFilterGroups(); for (Iterator iter = filterGroups.iterator(); iter.hasNext();) { Object element = iter.next(); if (element instanceof FilterGroup) { FilterGroup group = (FilterGroup) element; if (tree.skipConfigurationObject(group)) continue; if (group.containsOnlyPointerFilters()) continue; String groupName = group.getDisplayName(); FilterGroupWidget w = new FilterGroupWidget(query, groupName, group, tree); if (w.getLeafWidgets().size() > 0) { tabbedPane.add(groupName, w); leafWidgets.addAll(w.getLeafWidgets()); } } //else if ( element instanceof DSFilterGroup ) { // TODO handle DSAttributeGroup //logger.warning( "TODO: handle DSAttributeGroup: " + element.getClass().getName() ); // create filterPage // add pag as tab //} else { throw new RuntimeException("Unrecognised type in filter group list: " + element); } } } }