package org.eclipse.papyrus.infra.core.sasheditor.editor;
import java.util.List;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.ISashWindowsContentProvider;
import org.eclipse.ui.IEditorPart;
public interface ISashWindowsContainer {
/**
* Get the currently active editor, or null if none is active.
*
* @return
*/
public abstract IEditorPart getActiveEditor();
/**
* Get the currently active SashWindows Page.
* This is s
*
* @return An {@link IPage} allowing to access current page data.
*/
public abstract IPage getActiveSashWindowsPage();
/**
* Get the list of visible IPages. The visible IPages are the one that have there diagram area
* visible.
*
* @return
*/
public List<IPage> getVisiblePages();
/**
* Get the list of visible IEditorPart obtain from the pages of type IEditorPage.
* The visible IPages are the one that have there diagram area
* visible.
*
* @return
*/
public List<IEditorPart> getVisibleIEditorParts();
/**
* The <code>AbstractMultiPageSashEditor</code> implementation of this <code>IWorkbenchPart</code> method sets focus on the active nested
* editor, if there is one.
* <p>
* Subclasses may extend or reimplement.
* </p>
*/
public abstract void setFocus();
/**
* Refresh the SashWindows.
* Synchronize the internal structure with the {@link ISashWindowsContentProvider}.
*/
public abstract void refreshTabs();
/**
* Add a PageChangedListener to the list of listeners.
*
* @param pageEventsManager
*/
public abstract void addPageChangedListener(IPageChangedListener pageChangedListener);
/**
* Remove the PageChangedListener from the list of listeners.
*
* @param pageEventsManager
*/
public abstract void removePageChangedListener(IPageChangedListener pageChangedListener);
/**
* Add a listener on Page LifeCycle events.
* This implementation delegates to the internal PageTracker.
*
* @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#addPageChangedListener(org.eclipse.papyrus.infra.core.sasheditor.editor.IPageChangedListener)
* @param listener
*
*/
public void addPageLifeCycleListener(IPageLifeCycleEventsListener listener);
/**
* Remove a listener on Page LifeCycle events.
*
* @see org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer#removePageChangedListener(org.eclipse.papyrus.infra.core.sasheditor.editor.IPageChangedListener)
* @param listener
*
*/
public void removePageLifeCycleListener(IPageLifeCycleEventsListener listener);
/**
* Set a {@link MenuManager} used to manage a contextual menu that is shown on the tabs area of the folders.
* @param menuManager The {@link MenuManager} used to create the menu on the tab area.
*/
public abstract void setFolderTabMenuManager( MenuManager menuManager );
}