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.tests.views.properties.tabbed.override;
011:
012: import java.util.ArrayList;
013:
014: import org.eclipse.jface.viewers.ISelection;
015: import org.eclipse.jface.viewers.ISelectionChangedListener;
016: import org.eclipse.jface.viewers.SelectionChangedEvent;
017: import org.eclipse.jface.viewers.StructuredSelection;
018: import org.eclipse.jface.viewers.TableViewer;
019: import org.eclipse.swt.SWT;
020: import org.eclipse.swt.widgets.Composite;
021: import org.eclipse.ui.part.ViewPart;
022: import org.eclipse.ui.tests.views.properties.tabbed.model.Element;
023: import org.eclipse.ui.tests.views.properties.tabbed.override.folders.OverrideTestsTabFolderPropertySheetPage;
024: import org.eclipse.ui.tests.views.properties.tabbed.views.TestsPerspective;
025: import org.eclipse.ui.views.properties.IPropertySheetPage;
026: import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
027: import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
028:
029: /**
030: * The override tests view.
031: *
032: * @author Anthony Hunter
033: * @since 3.4
034: */
035: public class OverrideTestsView extends ViewPart implements
036: ITabbedPropertySheetPageContributor, ISelectionChangedListener {
037:
038: public static final String OVERRIDE_TESTS_VIEW_ID = "org.eclipse.ui.tests.views.properties.tabbed.override.OverrideTestsView"; //$NON-NLS-1$
039:
040: private OverrideTestsContentProvider overrideTestsContentProvider;
041:
042: private ArrayList selection = new ArrayList();
043:
044: private OverrideTestsSelectionProvider selectionProvider;
045:
046: private TabbedPropertySheetPage tabbedPropertySheetPage;
047:
048: private TableViewer viewer;
049:
050: /*
051: * (non-Javadoc)
052: *
053: * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
054: */
055: public void createPartControl(Composite parent) {
056: viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL
057: | SWT.V_SCROLL);
058: overrideTestsContentProvider = new OverrideTestsContentProvider();
059: viewer.setContentProvider(overrideTestsContentProvider);
060: viewer.setLabelProvider(new OverrideTestsLabelProvider());
061: viewer.setInput(getViewSite());
062: selectionProvider = new OverrideTestsSelectionProvider(viewer);
063: getSite().setSelectionProvider(selectionProvider);
064: selection.add(viewer);
065: viewer.addSelectionChangedListener(this );
066: }
067:
068: /*
069: * (non-Javadoc)
070: *
071: * @see org.eclipse.ui.part.WorkbenchPart#getAdapter(java.lang.Class)
072: */
073: public Object getAdapter(Class adapter) {
074: if (IPropertySheetPage.class.equals(adapter)) {
075: if (TestsPerspective.TESTS_PERSPECTIVE_ID.equals(getSite()
076: .getWorkbenchWindow().getActivePage()
077: .getPerspective().getId())) {
078: if (tabbedPropertySheetPage == null) {
079: tabbedPropertySheetPage = new TabbedPropertySheetPage(
080: this );
081: }
082: return tabbedPropertySheetPage;
083: }
084: return new OverrideTestsTabFolderPropertySheetPage();
085: }
086: return super .getAdapter(adapter);
087: }
088:
089: /*
090: * (non-Javadoc)
091: *
092: * @see org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor#getContributorId()
093: */
094: public String getContributorId() {
095: return "org.eclipse.ui.tests.views.properties.tabbed.override"; //$NON-NLS-1$
096: }
097:
098: /**
099: * Get the currently selected element in the view.
100: *
101: * @return the currently selected element in the view.
102: */
103: public ISelection getSelection() {
104: return selectionProvider.getSelection();
105: }
106:
107: /**
108: * Get the tabbed property sheet page for the view.
109: *
110: * @return the tabbed property sheet page for the view.
111: */
112: public TabbedPropertySheetPage getTabbedPropertySheetPage() {
113: return tabbedPropertySheetPage;
114: }
115:
116: /*
117: * (non-Javadoc)
118: *
119: * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
120: */
121: public void selectionChanged(SelectionChangedEvent event) {
122: SelectionChangedEvent newEvent = new SelectionChangedEvent(
123: selectionProvider, selectionProvider.getSelection());
124: selectionProvider.selectionChanged(newEvent);
125: }
126:
127: /*
128: * (non-Javadoc)
129: *
130: * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
131: */
132: public void setFocus() {
133: viewer.getControl().setFocus();
134: }
135:
136: /**
137: * Set the selected element to be the same type as the provided class.
138: *
139: * @param elementClass
140: * the provided class.
141: */
142: public void setSelection(Class elementClass) {
143: if (elementClass == null) {
144: viewer.setSelection(StructuredSelection.EMPTY);
145: }
146: Object[] elements = overrideTestsContentProvider
147: .getElements(null);
148: for (int i = 0; i < elements.length; i++) {
149: Element element = (Element) elements[i];
150: Class clazz = element.getClass();
151: if (elementClass == clazz) {
152: StructuredSelection newSelection = new StructuredSelection(
153: element);
154: viewer.setSelection(newSelection);
155: break;
156: }
157: }
158: }
159: }
|