01: /*******************************************************************************
02: * Copyright (c) 2007 IBM Corporation and others.
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * IBM Corporation - initial API and implementation
10: ******************************************************************************/package org.eclipse.ui.internal.provisional.views.markers.api;
11:
12: import java.util.Map;
13:
14: import org.eclipse.core.resources.IMarker;
15: import org.eclipse.ui.IMemento;
16:
17: /**
18: * A MarkerFieldFilter is a filter on a particular marker field.
19: * @since 3.4
20: *
21: */
22: public abstract class MarkerFieldFilter {
23:
24: private MarkerField field;
25:
26: /**
27: * Return whether or not marker should be filtered by the receiver.
28: * @param marker
29: * @return boolean <code>true</code> if the marker should be shown.
30: */
31: public abstract boolean select(IMarker marker);
32:
33: /**
34: * Initialise the receiver with the values in the values Map.
35: * @param values
36: * @see FiltersContributionParameters
37: */
38: public void initialize(Map values) {
39: //Do nothing by default
40: }
41:
42: /**
43: * Populate the working copy with the copy of whatever fields are required.
44: * @param copy
45: */
46: public void populateWorkingCopy(MarkerFieldFilter copy) {
47: copy.field = this .field;
48: }
49:
50: /**
51: * Set the field for the receiver.
52: * @param markerField
53: */
54: public final void setField(MarkerField markerField) {
55: field = markerField;
56:
57: }
58:
59: /**
60: * Get the field for the receiver.
61: * @return MarkerField
62: */
63: public final MarkerField getField() {
64: return field;
65: }
66:
67: /**
68: * Get the id this was registered against.
69: * @return String
70: */
71: public String getID() {
72: return getField().getID();
73: }
74:
75: /**
76: * Save any of the relevant state for the receiver in the memento
77: * so that it can be used to restore the user settings.
78: * @param memento
79: * @see #loadSettings(IMemento)
80: */
81: public abstract void saveSettings(IMemento memento);
82:
83: /**
84: * Load any settings for the receiver from the memento.
85: * @param memento
86: * @see #saveSettings(IMemento)
87: */
88: public abstract void loadSettings(IMemento memento);
89: }
|