blob: ad3ca054696aef222c9999e3ee9bfb85c639869b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2005 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.ui.tests.dialogs;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.wizard.IWizard;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.swt.widgets.Widget;
import org.eclipse.ui.IWorkingSet;
import org.eclipse.ui.IWorkingSetManager;
import org.eclipse.ui.help.WorkbenchHelp;
import org.eclipse.ui.internal.IWorkbenchHelpContextIds;
import org.eclipse.ui.internal.WorkbenchPlugin;
import org.eclipse.ui.internal.registry.WorkingSetDescriptor;
import org.eclipse.ui.internal.registry.WorkingSetRegistry;
import org.eclipse.ui.tests.TestPlugin;
import org.eclipse.ui.tests.harness.util.DialogCheck;
import org.eclipse.ui.tests.harness.util.FileUtil;
import org.eclipse.ui.tests.harness.util.UITestCase;
/**
* Abstract test class for the working set wizard tests.
*/
public abstract class UIWorkingSetWizardsAuto extends UITestCase {
protected static final int SIZING_WIZARD_WIDTH = 470;
protected static final int SIZING_WIZARD_HEIGHT = 550;
protected static final int SIZING_WIZARD_WIDTH_2 = 500;
protected static final int SIZING_WIZARD_HEIGHT_2 = 500;
protected static final String WORKING_SET_NAME_1 = "ws1";
protected static final String WORKING_SET_NAME_2 = "ws2";
protected WizardDialog fWizardDialog;
protected IWizard fWizard;
protected IProject p1;
protected IProject p2;
protected IFile f1;
protected IFile f2;
public UIWorkingSetWizardsAuto(String name) {
super(name);
}
protected void checkTreeItems() {
List widgets = getWidgets((Composite) fWizardDialog.getCurrentPage()
.getControl(), Tree.class);
Tree tree = (Tree) widgets.get(0);
TreeItem[] treeItems = tree.getItems();
for (int i = 0; i < treeItems.length; i++) {
treeItems[i].setChecked(true);
Event event = new Event();
event.detail = SWT.CHECK;
event.item = treeItems[i];
tree.notifyListeners(SWT.Selection, event);
}
}
private void deleteResources() throws CoreException {
try {
if (p1 != null) {
FileUtil.deleteProject(p1);
}
if (p2 != null) {
FileUtil.deleteProject(p2);
}
} catch (CoreException e) {
TestPlugin.getDefault().getLog().log(e.getStatus());
fail();
throw (e);
}
}
private Shell getShell() {
return DialogCheck.getShell();
}
protected List getWidgets(Composite composite, Class clazz) {
Widget[] children = composite.getChildren();
List selectedChildren = new ArrayList();
for (int i = 0; i < children.length; i++) {
Widget child = children[i];
if (child.getClass() == clazz) {
selectedChildren.add(child);
}
if (child instanceof Composite) {
selectedChildren.addAll(getWidgets((Composite) child, clazz));
}
}
return selectedChildren;
}
/**
* <code>fWizard</code> must be initialized by subclasses prior to
* calling this.
*/
protected void doSetUp() throws Exception {
super.doSetUp();
fWizardDialog = new WizardDialog(getShell(), fWizard);
fWizardDialog.create();
Shell dialogShell = fWizardDialog.getShell();
dialogShell.setSize(Math.max(SIZING_WIZARD_WIDTH_2, dialogShell
.getSize().x), SIZING_WIZARD_HEIGHT_2);
WorkbenchHelp.setHelp(fWizardDialog.getShell(),
IWorkbenchHelpContextIds.WORKING_SET_NEW_WIZARD);
IWorkingSetManager workingSetManager = fWorkbench
.getWorkingSetManager();
IWorkingSet[] workingSets = workingSetManager.getWorkingSets();
for (int i = 0; i < workingSets.length; i++) {
workingSetManager.removeWorkingSet(workingSets[i]);
}
setupResources();
}
private void setupResources() throws CoreException {
p1 = FileUtil.createProject("TP1");
p2 = FileUtil.createProject("TP2");
f1 = FileUtil.createFile("f1.txt", p1);
f2 = FileUtil.createFile("f2.txt", p2);
}
protected void setTextWidgetText(String text, IWizardPage page) {
List widgets = getWidgets((Composite) page.getControl(), Text.class);
Text textWidget = (Text) widgets.get(0);
textWidget.setText(text);
textWidget.notifyListeners(SWT.Modify, new Event());
}
protected void doTearDown() throws Exception {
deleteResources();
super.doTearDown();
}
protected WorkingSetDescriptor[] getEditableWorkingSetDescriptors() {
WorkingSetRegistry registry = WorkbenchPlugin.getDefault().getWorkingSetRegistry();
WorkingSetDescriptor[] all = registry.getWorkingSetDescriptors();
ArrayList editable = new ArrayList(all.length);
for (int i = 0; i < all.length; i++) {
WorkingSetDescriptor descriptor = all[i];
if (descriptor.isEditable()) {
editable.add(descriptor);
}
}
return (WorkingSetDescriptor[]) editable.toArray(new WorkingSetDescriptor[editable.size()]);
}
}