001: /*******************************************************************************
002: * Copyright (c) 2007 IBM Corporation and others.
003: * All rights reserved. This program and the accompanying materials
004: * are made available under the terms of the Eclipse Public License v1.0
005: * which accompanies this distribution, and is available at
006: * http://www.eclipse.org/legal/epl-v10.html
007: *
008: * Contributors:
009: * IBM Corporation - initial API and implementation
010: ******************************************************************************/package org.eclipse.ui.internal.provisional.views.markers;
011:
012: import org.eclipse.swt.SWT;
013: import org.eclipse.swt.events.SelectionAdapter;
014: import org.eclipse.swt.events.SelectionEvent;
015: import org.eclipse.swt.widgets.Button;
016: import org.eclipse.swt.widgets.Composite;
017: import org.eclipse.ui.internal.provisional.views.markers.api.MarkerFieldFilter;
018: import org.eclipse.ui.views.markers.internal.MarkerMessages;
019:
020: /**
021: * ScopeArea is the filter configuration area that handles the scope of the
022: * filter.
023: * @since 3.4
024: *
025: */
026: class ScopeArea extends GroupFilterConfigurationArea {
027:
028: private Button[] buttons;
029: int scope;
030:
031: /**
032: * Create a new instance of the receiver.
033: */
034: public ScopeArea() {
035: super ();
036: }
037:
038: /*
039: * (non-Javadoc)
040: *
041: * @see org.eclipse.ui.internal.provisional.views.markers.FilterConfigurationArea#applyToGroup(org.eclipse.ui.internal.provisional.views.markers.MarkerFieldFilterGroup)
042: */
043: public void applyToGroup(MarkerFieldFilterGroup group) {
044: group.setScope(scope);
045:
046: }
047:
048: /*
049: * (non-Javadoc)
050: *
051: * @see org.eclipse.ui.internal.provisional.views.markers.FilterConfigurationArea#createContents(org.eclipse.swt.widgets.Composite)
052: */
053: public void createContents(Composite parent) {
054:
055: buttons = new Button[5];
056:
057: buttons[MarkerFieldFilterGroup.ON_ANY] = createRadioButton(
058: parent, MarkerMessages.filtersDialog_anyResource,
059: MarkerFieldFilterGroup.ON_ANY);
060: buttons[MarkerFieldFilterGroup.ON_ANY_IN_SAME_CONTAINER] = createRadioButton(
061: parent,
062: MarkerMessages.filtersDialog_anyResourceInSameProject,
063: MarkerFieldFilterGroup.ON_ANY_IN_SAME_CONTAINER);
064: buttons[MarkerFieldFilterGroup.ON_SELECTED_ONLY] = createRadioButton(
065: parent, MarkerMessages.filtersDialog_selectedResource,
066: MarkerFieldFilterGroup.ON_SELECTED_ONLY);
067: buttons[MarkerFieldFilterGroup.ON_SELECTED_AND_CHILDREN] = createRadioButton(
068: parent,
069: MarkerMessages.filtersDialog_selectedAndChildren,
070: MarkerFieldFilterGroup.ON_SELECTED_AND_CHILDREN);
071: buttons[MarkerFieldFilterGroup.ON_WORKING_SET] = createRadioButton(
072: parent, MarkerMessages.filtersDialog_currentWorkingSet,
073: MarkerFieldFilterGroup.ON_WORKING_SET);
074: }
075:
076: /**
077: * Creates a radio button with the given parent and text.
078: *
079: * @param parent
080: * the parent composite
081: * @param text
082: * the text for the check box
083: * @return the radio box button
084: */
085: protected Button createRadioButton(Composite parent, String text,
086: final int value) {
087: Button button = new Button(parent, SWT.RADIO);
088: button.setText(text);
089: button.setSelection(value == scope);
090: button.addSelectionListener(new SelectionAdapter() {
091:
092: /*
093: * (non-Javadoc)
094: *
095: * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
096: */
097: public void widgetSelected(SelectionEvent e) {
098: scope = value;
099: }
100: });
101: return button;
102: }
103:
104: /*
105: * (non-Javadoc)
106: *
107: * @see org.eclipse.ui.internal.provisional.views.markers.FilterConfigurationArea#getTitle()
108: */
109: public String getTitle() {
110: return MarkerMessages.filtersDialog_scopeLabel;
111: }
112:
113: /*
114: * (non-Javadoc)
115: *
116: * @see org.eclipse.ui.internal.provisional.views.markers.FilterConfigurationArea#initializeFromGroup(org.eclipse.ui.internal.provisional.views.markers.MarkerFieldFilterGroup)
117: */
118: public void initializeFromGroup(MarkerFieldFilterGroup group) {
119: buttons[scope].setSelection(false);
120: scope = group.getScope();
121: buttons[scope].setSelection(true);
122: }
123:
124: /* (non-Javadoc)
125: * @see org.eclipse.ui.internal.provisional.views.markers.api.FilterConfigurationArea#apply(org.eclipse.ui.internal.provisional.views.markers.api.MarkerFieldFilter)
126: */
127: public void apply(MarkerFieldFilter filter) {
128: // Do nothing as this is a group level setting
129:
130: }
131:
132: /* (non-Javadoc)
133: * @see org.eclipse.ui.internal.provisional.views.markers.api.FilterConfigurationArea#initialize(org.eclipse.ui.internal.provisional.views.markers.api.MarkerFieldFilter)
134: */
135: public void initialize(MarkerFieldFilter filter) {
136: // Do nothing as this is a group level setting
137:
138: }
139:
140: }
|