blob: cd13732d516954c92218a88338e4e7bbcd421291 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 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.internal;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.IFolderLayout;
import org.eclipse.ui.IPageLayout;
import org.eclipse.ui.IPartListener2;
import org.eclipse.ui.IPerspectiveFactory;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchPartReference;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.part.ViewPart;
import org.eclipse.ui.tests.harness.util.UITestCase;
public class Bug78470Test extends UITestCase {
public static class MyPerspective implements IPerspectiveFactory {
public static String ID = "org.eclipse.ui.tests.internal.Bug78470Test.MyPerspective";
public void createInitialLayout(IPageLayout layout) {
String editorArea = layout.getEditorArea();
IFolderLayout folder1 = layout.createFolder("folder1",
IPageLayout.LEFT, .75f, editorArea);
// the order is important
folder1.addPlaceholder(MyViewPart.ID2);
folder1.addView(MyViewPart.ID);
folder1.addPlaceholder(MyViewPart.ID3);
}
}
public static class MyViewPart extends ViewPart {
public static String ID = "org.eclipse.ui.tests.internal.Bug78470Test.MyViewPart";
public static String ID2 = ID + "2";
public static String ID3 = ID + "3";
public void createPartControl(Composite parent) {
Label label = new Label(parent, SWT.NONE);
label.setText(getSite().getId());
}
public void setFocus() {
// nothing to do
}
}
public Bug78470Test(String testName) {
super(testName);
}
boolean partVisibleExecuted = false;
public void test78470() throws Exception {
IWorkbench workbench = getWorkbench();
final IWorkbenchWindow activeWorkbenchWindow = workbench
.getActiveWorkbenchWindow();
final IWorkbenchPage activePage = activeWorkbenchWindow.getActivePage();
activeWorkbenchWindow.getPartService().addPartListener(
new IPartListener2() {
public void partActivated(IWorkbenchPartReference partRef) {
}
public void partBroughtToTop(IWorkbenchPartReference partRef) {
}
public void partClosed(IWorkbenchPartReference partRef) {
}
public void partDeactivated(IWorkbenchPartReference partRef) {
}
public void partOpened(IWorkbenchPartReference partRef) {
}
public void partHidden(IWorkbenchPartReference partRef) {
}
public void partVisible(IWorkbenchPartReference partRef) {
if (partRef.getId().equals(MyViewPart.ID)) {
partVisibleExecuted = true;
try {
activePage.showView(MyViewPart.ID2);
activePage.showView(MyViewPart.ID3);
} catch(Exception ex) {
ex.printStackTrace();
}
}
}
public void partInputChanged(IWorkbenchPartReference partRef) {
}
});
workbench.showPerspective(MyPerspective.ID, activeWorkbenchWindow);
processEvents();
Thread.sleep(2000);
assertTrue("view was not made visible", partVisibleExecuted);
assertNotNull(activePage.findView(MyViewPart.ID2));
assertNotNull(activePage.findView(MyViewPart.ID3));
}
}