blob: 49c06bf78bf4e8cef67062d5694ca72f0c3a7c86 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2008 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.intro;
import org.eclipse.ui.IWorkbenchWindow;
/**
* Manages the intro part that introduces the product to new users.
* The intro part is typically shown the first time a product is started up.
* <p>
* The initial behavior of the intro part is controlled by the application
* from via the {@link org.eclipse.ui.application.WorkbenchWindowAdvisor#openIntro()}
* method.
* </p>
* <p>
* See {@link org.eclipse.ui.intro.IIntroPart} for details on where intro parts
* come from.
* </p>
* <p>
* This interface is not intended to be extended or implemented by clients.
* </p>
*
* @see org.eclipse.ui.IWorkbench#getIntroManager()
* @since 3.0
* @noimplement This interface is not intended to be implemented by clients.
*/
public interface IIntroManager {
/**
* Closes the given intro part.
*
* @param part the intro part
* @return <code>true</code> if the intro part was closed, and
* <code>false</code> otherwise. <code>false</code> is returned
* if part is <code>null</code> or it is not the intro part returned
* by {@link #getIntro()}.
*/
public boolean closeIntro(IIntroPart part);
/**
* Returns the intro part. Returns <code>null</code> if there is no intro
* part, if it has been previously closed via {@link #closeIntro(IIntroPart)}
* or if there is an intro part but {@link #showIntro(IWorkbenchWindow, boolean)}
* has not yet been called to create it.
*
* @return the intro part, or <code>null</code> if none is available
*/
public IIntroPart getIntro();
/**
* Return whether an intro is available. Note that this checks whether
* there is an applicable intro part that could be instantiated and shown
* to the user.
* Use {@link #getIntro()} to discover whether an intro part has already
* been created.
*
* @return <code>true</code> if there is an intro that could be shown, and
* <code>false</code> if there is no intro
*/
public boolean hasIntro();
/**
* Return the standby state of the given intro part.
*
* @param part the intro part
* @return <code>true</code> if the part in its partially
* visible standy mode, and <code>false</code> if in its fully visible state.
* <code>false</code> is returned if part is <code>null</code> or it is not
* the intro part returned by {@link #getIntro()}.
*/
boolean isIntroStandby(IIntroPart part);
/**
* Sets the standby state of the given intro part. Intro part usually should
* render themselves differently in the full and standby modes. In standby
* mode, the part should be partially visible to the user but otherwise
* allow them to work. In full mode, the part should be fully visible and
* be the center of the user's attention.
* <p>
* This method does nothing if the part is <code>null</code> or is not
* the intro part returned by {@link #getIntro()}.
* </p>
*
* @param part the intro part, or <code>null</code>
* @param standby <code>true</code> to put the part in its partially
* visible standy mode, and <code>false</code> to make it fully visible.
*/
public void setIntroStandby(IIntroPart part, boolean standby);
/**
* Shows the intro part in the given workbench window. If the intro part has
* not been created yet, one will be created. If the intro part is currently
* being shown in some workbench window, that other window is made active.
*
* @param preferredWindow the preferred workbench window, or
* <code>null</code> to indicate the currently active workbench window
* @param standby <code>true</code> to put the intro part in its partially
* visible standy mode, and <code>false</code> to make it fully visible
* @return the newly-created or existing intro part, or <code>null</code>
* if no intro part is available or if <code>preferredWindow</code> is
* <code>null</code> and there is no currently active workbench window
*/
public IIntroPart showIntro(IWorkbenchWindow preferredWindow,
boolean standby);
/**
* Returns <code>true</code> if there is an intro content detector and it
* reports that new intro content is available.
*
* @return <code>true</code> if new intro content is available
*
* @since 3.3
*/
public boolean isNewContentAvailable();
}