1 /**********************************************************************
2 * Copyright (c) 2005, 2014 IBM Corporation, Ericsson
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
9 * IBM - Initial API and implementation
10 * Bernd Hufmann - Updated for TMF
11 **********************************************************************/
13 package org
.eclipse
.tracecompass
.tmf
.ui
.views
.uml2sd
.dialogs
;
15 import java
.util
.Iterator
;
16 import java
.util
.List
;
18 import org
.eclipse
.jface
.dialogs
.DialogSettings
;
21 * A filter criteria is a criteria that can be activated or not, positive or not.
27 public class FilterCriteria
{
29 // ------------------------------------------------------------------------
31 // ------------------------------------------------------------------------
33 * The filter state value for 'active'.
35 protected static final String ACTIVE
= "active"; //$NON-NLS-1$
37 * The property value for positive filter.
39 protected static final String POSITIVE
= "positive"; //$NON-NLS-1$
41 * The filter loader class name property.
43 protected static final String LOADERCLASSNAME
= "loaderClassName"; //$NON-NLS-1$
45 // ------------------------------------------------------------------------
47 // ------------------------------------------------------------------------
49 * The criteria reference.
51 private Criteria fCriteria
;
53 * Flag whether this criteria is active or not
55 private boolean fIsActive
;
57 * Flag whether this criteria is for positive filter or not
59 private boolean fIsPositive
;
61 * The loader class name.
63 private String fLoaderClassName
;
65 // ------------------------------------------------------------------------
67 // ------------------------------------------------------------------------
69 * Standard constructor
71 * @param criteria A criteria reference
72 * @param isActive <code>true</code> if filter criteria is active else <code>false</code>
73 * @param isPositive <code>true</code> for positive filter else <code>false</code>
75 public FilterCriteria(Criteria criteria
, boolean isActive
, boolean isPositive
) {
76 this(criteria
, isActive
, isPositive
, null);
82 * @param criteria A criteria reference
83 * @param isActive <code>true</code> if filter criteria is active else <code>false</code>
84 * @param isPositive <code>true</code> for positive filter else <code>false</code>
85 * @param loaderClassName A loader class name
87 public FilterCriteria(Criteria criteria
, boolean isActive
, boolean isPositive
, String loaderClassName
) {
90 fIsPositive
= isPositive
;
91 fLoaderClassName
= loaderClassName
;
96 * @param other FilterCriteria
98 public FilterCriteria (FilterCriteria other
) {
99 fCriteria
= new Criteria(other
.fCriteria
);
100 fIsActive
= other
.fIsActive
;
101 fIsPositive
= other
.fIsPositive
;
102 fLoaderClassName
= other
.fLoaderClassName
;
106 * Default constructor
108 protected FilterCriteria() {
111 // ------------------------------------------------------------------------
113 // ------------------------------------------------------------------------
116 public String
toString() {
117 StringBuffer sb
= new StringBuffer(super.toString());
119 if (fCriteria
!= null) {
120 sb
.append(" expression=");sb
.append(fCriteria
.getExpression()); //$NON-NLS-1$
121 sb
.append(" active=");sb
.append(fIsActive
); //$NON-NLS-1$
122 sb
.append(" positive=");sb
.append(fIsPositive
); //$NON-NLS-1$
124 sb
.append("empty criteria"); //$NON-NLS-1$
126 return sb
.toString();
130 * Sets a criteria reference.
131 * @param criteria A criteria reference
133 public void setCriteria(Criteria criteria
) {
134 fCriteria
= criteria
;
138 * Returns the criteria reference.
140 * @return the criteria reference
142 public Criteria
getCriteria() {
147 * Sets the active flag.
149 * @param isActive A active value.
151 public void setActive(boolean isActive
) {
152 fIsActive
= isActive
;
156 * Returns whether filter criteria is active or not.
158 * @return whether filter criteria is active or not.
160 public boolean isActive() {
165 * Sets filter is for positive filtering or not.
167 * @param isPositive The value to set.
169 public void setPositive(boolean isPositive
) {
170 fIsPositive
= isPositive
;
174 * Returns whether the filter si for positive filtering or not.
176 * @return Returns the positive.
178 public boolean isPositive() {
183 * Sets the loader class name for this filter.
185 * @param loaderClassName The loader class name to set
187 public void setLoaderClassName(String loaderClassName
) {
188 fLoaderClassName
= loaderClassName
;
192 * Returns the class loader name.
194 * @return the class loader name.
196 public String
getLoaderClassName() {
197 return fLoaderClassName
;
201 * Finds a filter criteria within a list of criteria.
203 * @param what The filter to find
204 * @param list A list of filter criteria
205 * @return The found filter criteria or null
207 public static FilterCriteria
find(FilterCriteria what
, List
<FilterCriteria
> list
) {
208 if (what
!= null && list
!= null) {
210 for (Iterator
<FilterCriteria
> i
= list
.iterator(); i
.hasNext();) {
211 FilterCriteria fc
= i
.next();
212 if (what
.compareTo(fc
)) {
216 } catch (Exception e
) {
224 * Compares this filter criteria with a given criteria.
226 * @param to The filter criteria to compare.
227 * @return usual comparison result (< 0, 0, > 0)
229 public boolean compareTo(FilterCriteria to
) {
230 if (isPositive() == to
.isPositive() && getCriteria().compareTo(to
.getCriteria())) {
231 if (getLoaderClassName() == null && to
.getLoaderClassName() == null) {
234 if ((getLoaderClassName() != null && to
.getLoaderClassName() != null) && getLoaderClassName().equals(to
.getLoaderClassName())) {
242 * Saves current criteria attributes in the dialog settings.
244 * @param settings The dialog settings
246 public void save(DialogSettings settings
) {
247 settings
.put(ACTIVE
, isActive());
248 settings
.put(POSITIVE
, isPositive());
249 if (getLoaderClassName() != null) {
250 settings
.put(LOADERCLASSNAME
, getLoaderClassName());
252 settings
.put(LOADERCLASSNAME
, ""); //$NON-NLS-1$
254 if (fCriteria
!= null) {
255 fCriteria
.save(settings
);
260 * Loads the criteria with values of the dialog settings.
262 * @param settings The dialog settings
264 public void load(DialogSettings settings
) {
265 setActive(settings
.getBoolean(ACTIVE
));
266 setPositive(settings
.getBoolean(POSITIVE
));
267 String loaderClassName
= settings
.get(LOADERCLASSNAME
);
268 setLoaderClassName(loaderClassName
!= null && loaderClassName
.length() > 0 ? loaderClassName
: null);
269 if (fCriteria
!= null) {
270 fCriteria
.load(settings
);
This page took 0.039868 seconds and 6 git commands to generate.