diff options
Diffstat (limited to 'org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/InRelationFilter.java')
-rw-r--r-- | org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/InRelationFilter.java | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/InRelationFilter.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/InRelationFilter.java new file mode 100644 index 00000000000..0642b5100a1 --- /dev/null +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/search/InRelationFilter.java @@ -0,0 +1,78 @@ +/******************************************************************************* + * Copyright (c) 2004, 2007 Boeing. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Boeing - initial API and implementation + *******************************************************************************/ +package org.eclipse.osee.framework.ui.skynet.search; + +import java.util.logging.Level; +import org.eclipse.jface.viewers.ComboViewer; +import org.eclipse.osee.framework.db.connection.exception.OseeArgumentException; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.skynet.core.artifact.search.ISearchPrimitive; +import org.eclipse.osee.framework.skynet.core.artifact.search.InRelationSearch; +import org.eclipse.osee.framework.skynet.core.artifact.search.NotSearch; +import org.eclipse.osee.framework.skynet.core.relation.RelationType; +import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin; +import org.eclipse.osee.framework.ui.skynet.search.filter.FilterTableViewer; +import org.eclipse.swt.widgets.Control; + +/** + * @author Ryan D. Brooks + */ +public class InRelationFilter extends SearchFilter { + private ComboViewer relationTypeList; + private ComboViewer relationSideList; + + public InRelationFilter(Control optionsControl, ComboViewer relationTypeList, ComboViewer relationSideList) { + super("Artifact in Relation", optionsControl); + this.relationTypeList = relationTypeList; + this.relationSideList = relationSideList; + } + + /* + * (non-Javadoc) + * + * @see osee.define.artifact.search.SearchFilter#addFilterTo(osee.define.artifact.search.filter.FilterTableViewer) + */ + @Override + public void addFilterTo(FilterTableViewer filterViewer) { + String type = relationTypeList.getCombo().getText(); + String sideName = relationSideList.getCombo().getText(); + + RelationType linkDescriptor = (RelationType) relationTypeList.getData(relationTypeList.getCombo().getText()); + try { + ISearchPrimitive primitive = new InRelationSearch(type, linkDescriptor.isSideAName(sideName)); + if (not) primitive = new NotSearch(primitive); + + filterViewer.addItem(primitive, getFilterName(), type, sideName); + } catch (OseeArgumentException ex) { + OseeLog.log(SkynetGuiPlugin.class, Level.SEVERE, ex); + } + } + + /* + * (non-Javadoc) + * + * @see osee.define.artifact.search.SearchFilter#isValid() + */ + @Override + public boolean isValid() { + return true; + } + + /* (non-Javadoc) + * @see org.eclipse.osee.framework.ui.skynet.search.SearchFilter#loadFromStorageString(org.eclipse.osee.framework.ui.skynet.search.filter.FilterTableViewer, java.lang.String, java.lang.String, java.lang.String, boolean) + */ + @Override + public void loadFromStorageString(FilterTableViewer filterViewer, String type, String value, String storageString, boolean isNotEnabled) { + ISearchPrimitive primitive = InRelationSearch.getPrimitive(storageString); + if (isNotEnabled) primitive = new NotSearch(primitive); + filterViewer.addItem(primitive, getFilterName(), type, value); + } +} |