View | Details | Raw Unified | Return to bug 60039 | Differences between
and this patch

Collapse All | Expand All

(-)Eclipse UI/org/eclipse/ui/internal/PerspectiveListenerListOld.java (+17 lines)
Lines 61-66 Link Here
61
	}
61
	}
62
}
62
}
63
/**
63
/**
64
 * Notifies the listener that a part has been affected
65
 * in the given perspective.
66
 */
67
public void firePerspectiveChanged(final IWorkbenchPage page, final IPerspectiveDescriptor perspective, final IWorkbenchPartReference partRef, final String changeId) {
68
	Object [] array = listeners.getListeners();
69
	for (int nX = 0; nX < array.length; nX ++) {
70
		if (array[nX] instanceof IPerspectiveListener2) {
71
			final IPerspectiveListener2 l2 = (IPerspectiveListener2) array[nX];
72
			Platform.run(new SafeRunnable() {
73
				public void run() {
74
					l2.perspectiveChanged(page, perspective, partRef, changeId);
75
				}
76
			});
77
		}
78
	}
79
}
80
/**
64
 * Removes an IPerspectiveListener from the perspective service.
81
 * Removes an IPerspectiveListener from the perspective service.
65
 */
82
 */
66
public void removePerspectiveListener(IPerspectiveListener l) {
83
public void removePerspectiveListener(IPerspectiveListener l) {
(-)Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java (+12 lines)
Lines 764-769 Link Here
764
				this,
764
				this,
765
				getPerspective(),
765
				getPerspective(),
766
				CHANGE_VIEW_SHOW);
766
				CHANGE_VIEW_SHOW);
767
			window.firePerspectiveChanged(
768
					this,
769
					getPerspective(),
770
					getReference(view),
771
					CHANGE_VIEW_SHOW);
767
			// Just in case view was fast.
772
			// Just in case view was fast.
768
			window.updateFastViewBar();
773
			window.updateFastViewBar();
769
		}
774
		}
Lines 1809-1814 Link Here
1809
		// Hide the part.
1814
		// Hide the part.
1810
		persp.hideView(ref);
1815
		persp.hideView(ref);
1811
1816
1817
		// Notify interested listeners
1818
		window.firePerspectiveChanged(this, getPerspective(), ref, CHANGE_VIEW_HIDE);
1819
1812
		// If the part is no longer reference then dispose it.
1820
		// If the part is no longer reference then dispose it.
1813
		boolean exists = viewFactory.hasView(ref);
1821
		boolean exists = viewFactory.hasView(ref);
1814
		if (!exists) {
1822
		if (!exists) {
Lines 2240-2245 Link Here
2240
		if (persp == null)
2248
		if (persp == null)
2241
			return;
2249
			return;
2242
2250
2251
		if (!isFastView(ref)) {
2252
		    return;
2253
		}
2254
		
2243
		// If parts change always update zoom.
2255
		// If parts change always update zoom.
2244
		if (isZoomed())
2256
		if (isZoomed())
2245
			zoomOut();
2257
			zoomOut();
(-)Eclipse UI/org/eclipse/ui/internal/WorkbenchWindow.java (+11 lines)
Lines 67-72 Link Here
67
import org.eclipse.ui.IWorkbenchActionConstants;
67
import org.eclipse.ui.IWorkbenchActionConstants;
68
import org.eclipse.ui.IWorkbenchPage;
68
import org.eclipse.ui.IWorkbenchPage;
69
import org.eclipse.ui.IWorkbenchPart;
69
import org.eclipse.ui.IWorkbenchPart;
70
import org.eclipse.ui.IWorkbenchPartReference;
70
import org.eclipse.ui.IWorkbenchWindow;
71
import org.eclipse.ui.IWorkbenchWindow;
71
import org.eclipse.ui.PlatformUI;
72
import org.eclipse.ui.PlatformUI;
72
import org.eclipse.ui.WorkbenchException;
73
import org.eclipse.ui.WorkbenchException;
Lines 800-805 Link Here
800
		String changeId) {
801
		String changeId) {
801
		perspectiveListeners.firePerspectiveChanged(page, perspective, changeId);
802
		perspectiveListeners.firePerspectiveChanged(page, perspective, changeId);
802
		perspectiveService.firePerspectiveChanged(page, perspective, changeId);
803
		perspectiveService.firePerspectiveChanged(page, perspective, changeId);
804
	}
805
	/**
806
	 * Fires perspective changed for an affected part
807
	 */
808
	void firePerspectiveChanged(
809
		IWorkbenchPage page,
810
		IPerspectiveDescriptor perspective,
811
		IWorkbenchPartReference partRef,
812
		String changeId) {
813
		perspectiveListeners.firePerspectiveChanged(page, perspective, partRef, changeId);
803
	}
814
	}
804
	/**
815
	/**
805
	 * Fires perspective closed
816
	 * Fires perspective closed
(-)Eclipse (+38 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2000, 2003 IBM Corporation and others.
3
 * All rights reserved. This program and the accompanying materials 
4
 * are made available under the terms of the Common Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/cpl-v10.html
7
 * 
8
 * Contributors:
9
 *     IBM Corporation - initial API and implementation
10
 *******************************************************************************/
11
package org.eclipse.ui.internal;
12
13
import org.eclipse.ui.IPerspectiveDescriptor;
14
import org.eclipse.ui.IPerspectiveListener;
15
import org.eclipse.ui.IWorkbenchPage;
16
import org.eclipse.ui.IWorkbenchPartReference;
17
18
19
/**
20
 * Interface for listening to a perspective lifecycle events.
21
 * <p>
22
 * This interface may be implemented by clients.
23
 * </p>
24
 *
25
 * @see IPageService#addPerspectiveListener
26
 */
27
public interface IPerspectiveListener2 extends IPerspectiveListener {
28
/**
29
 * Notifies this listener that a part in the given page's perspective
30
 * has changed in some way (for example, view show/hide, editor open/close, etc).
31
 *
32
 * @param page the page whose perspective was reset
33
 * @param perspective the perspective descriptor
34
 * @param partRef the affected part
35
 * @param changeId one of the <code>CHANGE_*</code> constants on IWorkbenchPage
36
 */
37
public void perspectiveChanged(IWorkbenchPage page, IPerspectiveDescriptor perspective, IWorkbenchPartReference partRef, String changeId);
38
}

Return to bug 60039