/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.components.excel.gui.view; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerFilter; import de.rcenvironment.components.excel.common.ChannelValue; /** * Filter for channel type. * * @author Markus Kunde */ public class ChannelFilter extends ViewerFilter { /** * Filter. */ private boolean isInputChannel = true; /** * Set filter to true if only inputchannels should be in result. * * @param isInput true if filtered result shoulkd contain only inputchannels. */ public void setChannelFilter(final boolean isInput) { // Search must be a substring of the existing value this.isInputChannel = isInput; } @Override public boolean select(Viewer viewer, Object parentElement, Object element) { ChannelValue cv = (ChannelValue) element; return !logicalXOR(cv.isInputValue(), isInputChannel); } /** * Logical XOR. * * @param x first parameter * @param y second parameter * @return true if XOR is true */ public static boolean logicalXOR(final boolean x, final boolean y) { return ((x || y) && !(x && y)); } }