| /******************************************************************************* |
| * Copyright (c) 2000, 2004 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Common Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/cpl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.jface.tests.viewers.interactive; |
| |
| import org.eclipse.jface.action.Action; |
| import org.eclipse.jface.action.MenuManager; |
| import org.eclipse.jface.action.Separator; |
| import org.eclipse.jface.tests.viewers.TestElement; |
| import org.eclipse.jface.tests.viewers.TestModelChange; |
| import org.eclipse.jface.viewers.Viewer; |
| import org.eclipse.jface.window.ApplicationWindow; |
| import org.eclipse.swt.SWT; |
| import org.eclipse.swt.custom.CLabel; |
| import org.eclipse.swt.custom.SashForm; |
| import org.eclipse.swt.custom.ViewForm; |
| import org.eclipse.swt.widgets.Composite; |
| import org.eclipse.swt.widgets.Control; |
| import org.eclipse.swt.widgets.Shell; |
| |
| public abstract class TestBrowser extends ApplicationWindow { |
| TestElement fInput; |
| |
| Viewer fViewer; |
| |
| Action fChangeLabelAction; |
| |
| Action fChangeInputLabelAction; |
| |
| Action fChangeChildLabelAction; |
| |
| Action fReloadAction; |
| |
| Action fReloadActionLarge; |
| |
| Action fReloadActionFlat; |
| |
| Action fDeleteAction; |
| |
| Action fDeleteChildrenAction; |
| |
| Action fDeleteSomeChildrenAction; |
| |
| Action fDeleteSiblingsAction; |
| |
| Action fFlushInputAction; |
| |
| Action fAddElementAction; |
| |
| Action fAddSiblingAction; |
| |
| Action fAddSiblingRevealAction; |
| |
| Action fAddSiblingSelectAction; |
| |
| Action fAddChildAction; |
| |
| Action fAddChildRevealAction; |
| |
| Action fAddChildSelectAction; |
| |
| Action fWorldChangedAction; |
| |
| Action fSetLabelProvider; |
| |
| Action fAddFilterAction; |
| |
| Action fResetFilters; |
| |
| Action fSetSorter; |
| |
| Action fResetSorter; |
| |
| Action fClearSelection; |
| |
| int fPanes = 1; |
| |
| public TestBrowser() { |
| super(null); |
| addMenuBar(); |
| } |
| |
| /* (non-Javadoc) |
| * Method declared on Window. |
| */ |
| protected void configureShell(Shell shell) { |
| super.configureShell(shell); |
| shell.setText("Test Browser"); |
| } |
| |
| protected void createActions() { |
| fChangeLabelAction = new ChangeLabelAction("Change Label", this); |
| fChangeChildLabelAction = new ChangeChildLabelAction( |
| "Change Child Label", this); |
| // fChangeInputLabelAction = |
| // new ChangeInputLabelAction("Change Input Label", this); |
| |
| fReloadAction = new CreateModelAction("Reload Test Data (small)", this, |
| 3, 10); |
| fReloadActionLarge = new CreateModelAction("Reload Test Data (large)", |
| this, 3, 33); |
| fReloadActionFlat = new CreateModelAction("Reload Test Data (flat)", |
| this, 1, 2000); |
| |
| fDeleteAction = new DeleteAction("Delete", this); |
| fDeleteChildrenAction = new DeleteChildrenAction("Delete Children", |
| this, true); |
| fDeleteSomeChildrenAction = new DeleteChildrenAction( |
| "Delete Odd Children", this, false); |
| fDeleteSiblingsAction = new DeleteSiblingsAction("Delete Siblings", |
| this, true); |
| |
| fFlushInputAction = new FlushInputAction("Flush Input", this); |
| |
| fAddElementAction = new AddElementAction("Add Element to Input", this); |
| fAddSiblingAction = new AddSiblingAction("Add Sibling", this); |
| fAddSiblingRevealAction = new AddSiblingAction( |
| "Add Sibling and Reveal", this, TestModelChange.INSERT |
| | TestModelChange.REVEAL); |
| fAddSiblingSelectAction = new AddSiblingAction( |
| "Add Sibling and Select", this, TestModelChange.INSERT |
| | TestModelChange.REVEAL | TestModelChange.SELECT); |
| fAddChildAction = new AddChildAction("Add Child", this); |
| fAddChildRevealAction = new AddChildAction("Add Child and Reveal", |
| this, TestModelChange.INSERT | TestModelChange.REVEAL); |
| fAddChildSelectAction = new AddChildAction("Add Child and Select", |
| this, TestModelChange.INSERT | TestModelChange.REVEAL |
| | TestModelChange.SELECT); |
| |
| fWorldChangedAction = new WorldChangedAction("World Changed", this); |
| |
| fSetLabelProvider = new SetLabelProviderAction( |
| "Set Custom Label Provider", this); |
| |
| fAddFilterAction = new AddFilterAction("Add Filter", this); |
| fResetFilters = new ResetFilterAction("Reset All Filters", this); |
| |
| fSetSorter = new SetSorterAction("Set Sorter", this); |
| fResetSorter = new ResetSorterAction("Reset Sorter", this); |
| |
| fClearSelection = new ClearSelectionAction("Clear Selection", this); |
| } |
| |
| protected Control createContents(Composite parent) { |
| ViewForm form = new ViewForm(parent, SWT.NONE); |
| CLabel label = new CLabel(form, SWT.NONE); |
| form.setTopLeft(label); |
| Object input = getInput(); |
| label.setText(input.toString()); |
| if (fPanes == 1) { |
| Viewer viewer = createViewer(form); |
| form.setContent(viewer.getControl()); |
| fViewer = viewer; |
| viewer.setInput(input); |
| } else if (fPanes == 2) { |
| SashForm sashForm = new SashForm(form, SWT.VERTICAL); |
| form.setContent(sashForm); |
| Viewer viewer = createViewer(sashForm); |
| fViewer = viewer; |
| viewer.setInput(input); |
| viewer = createViewer(sashForm); |
| viewer.setInput(input); |
| } |
| createActions(); |
| fillMenuBar(getMenuBarManager()); |
| viewerFillMenuBar(getMenuBarManager()); |
| getMenuBarManager().updateAll(false); |
| return form; |
| } |
| |
| public abstract Viewer createViewer(Composite parent); |
| |
| protected void fillMenuBar(MenuManager mgr) { |
| |
| MenuManager setupMenu = new MenuManager("Setup", "Setup"); |
| mgr.add(setupMenu); |
| setupMenu.add(fReloadAction); |
| setupMenu.add(fReloadActionLarge); |
| setupMenu.add(fReloadActionFlat); |
| setupMenu.add(new Separator()); |
| setupMenu.add(fFlushInputAction); |
| setupMenu.add(new Separator()); |
| setupMenu.add(fSetLabelProvider); |
| setupMenu.add(new Separator()); |
| setupMenu.add(fAddFilterAction); |
| setupMenu.add(fResetFilters); |
| setupMenu.add(new Separator()); |
| setupMenu.add(fSetSorter); |
| setupMenu.add(fResetSorter); |
| |
| MenuManager testMenu = new MenuManager("Tests", "Tests"); |
| mgr.add(testMenu); |
| testMenu.add(fChangeLabelAction); |
| testMenu.add(fChangeChildLabelAction); |
| // testMenu.add(fChangeInputLabelAction); |
| testMenu.add(new Separator()); |
| |
| testMenu.add(fDeleteAction); |
| testMenu.add(fDeleteChildrenAction); |
| testMenu.add(fDeleteSomeChildrenAction); |
| testMenu.add(fDeleteSiblingsAction); |
| testMenu.add(new Separator()); |
| |
| testMenu.add(fAddElementAction); |
| testMenu.add(new Separator()); |
| |
| testMenu.add(fAddSiblingAction); |
| testMenu.add(fAddSiblingRevealAction); |
| testMenu.add(fAddSiblingSelectAction); |
| testMenu.add(new Separator()); |
| |
| testMenu.add(fAddChildAction); |
| testMenu.add(fAddChildRevealAction); |
| testMenu.add(fAddChildSelectAction); |
| testMenu.add(new Separator()); |
| |
| testMenu.add(fClearSelection); |
| testMenu.add(new Separator()); |
| |
| testMenu.add(fWorldChangedAction); |
| // ((TestTree)this).testTreeFillMenuBar(testMenu); |
| } |
| |
| public TestElement getInput() { |
| return fInput; |
| } |
| |
| public Viewer getViewer() { |
| return fViewer; |
| } |
| |
| public Composite getViewerContainer() { |
| return null; |
| } |
| |
| public void open(TestElement input) { |
| setInput(input); |
| super.open(); |
| } |
| |
| public void setInput(TestElement input) { |
| fInput = input; |
| if (getViewer() != null) |
| getViewer().setInput(input); |
| } |
| |
| public void show2Panes() { |
| fPanes = 2; |
| } |
| |
| protected abstract void viewerFillMenuBar(MenuManager mgr); |
| } |