001: /*******************************************************************************
002: * Copyright (c) 2000, 2006 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;
011:
012: /**
013: * Interface for listening to part lifecycle events.
014: * <p>
015: * This is a replacement for <code>IPartListener</code>.
016: * <p>
017: * This interface may be implemented by clients.
018: * </p>
019: *
020: * @see IPartService#addPartListener(IPartListener2)
021: */
022: public interface IPartListener2 {
023:
024: /**
025: * Notifies this listener that the given part has been activated.
026: *
027: * @param partRef the part that was activated
028: * @see IWorkbenchPage#activate
029: */
030: public void partActivated(IWorkbenchPartReference partRef);
031:
032: /**
033: * Notifies this listener that the given part has been brought to the top.
034: * <p>
035: * These events occur when an editor is brought to the top in the editor area,
036: * or when a view is brought to the top in a page book with multiple views.
037: * They are normally only sent when a part is brought to the top
038: * programmatically (via <code>IPerspective.bringToTop</code>). When a part is
039: * activated by the user clicking on it, only <code>partActivated</code> is sent.
040: * </p>
041: *
042: * @param partRef the part that was surfaced
043: * @see IWorkbenchPage#bringToTop
044: */
045: public void partBroughtToTop(IWorkbenchPartReference partRef);
046:
047: /**
048: * Notifies this listener that the given part has been closed.
049: * <p>
050: * Note that if other perspectives in the same page share the view,
051: * this notification is not sent. It is only sent when the view
052: * is being removed from the page entirely (it is being disposed).
053: * </p>
054: *
055: * @param partRef the part that was closed
056: * @see IWorkbenchPage#hideView
057: */
058: public void partClosed(IWorkbenchPartReference partRef);
059:
060: /**
061: * Notifies this listener that the given part has been deactivated.
062: *
063: * @param partRef the part that was deactivated
064: * @see IWorkbenchPage#activate
065: */
066: public void partDeactivated(IWorkbenchPartReference partRef);
067:
068: /**
069: * Notifies this listener that the given part has been opened.
070: * <p>
071: * Note that if other perspectives in the same page share the view,
072: * this notification is not sent. It is only sent when the view
073: * is being newly opened in the page (it is being created).
074: * </p>
075: *
076: * @param partRef the part that was opened
077: * @see IWorkbenchPage#showView
078: */
079: public void partOpened(IWorkbenchPartReference partRef);
080:
081: /**
082: * Notifies this listener that the given part is hidden or obscured by another part.
083: *
084: * @param partRef the part that is hidden or obscured by another part
085: */
086: public void partHidden(IWorkbenchPartReference partRef);
087:
088: /**
089: * Notifies this listener that the given part is visible.
090: *
091: * @param partRef the part that is visible
092: */
093: public void partVisible(IWorkbenchPartReference partRef);
094:
095: /**
096: * Notifies this listener that the given part's input was changed.
097: *
098: * @param partRef the part whose input was changed
099: */
100: public void partInputChanged(IWorkbenchPartReference partRef);
101: }
|