at.spardat.xma.boot.component.IXMAControl Maven / Gradle / Ivy
/*******************************************************************************
* Copyright (c) 2003, 2007 s IT Solutions AT Spardat GmbH .
* 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:
* s IT Solutions AT Spardat GmbH - initial API and implementation
*******************************************************************************/
package at.spardat.xma.boot.component;
import org.eclipse.swt.widgets.*;
/**
* Interface of all Pages or other Objects (like Notebook) which may be embedded
* in other Pages.
*
* @author s2877
*/
public interface IXMAControl {
/**
* Creates the SWT-Composite of the PageClient. All SWT-Widgets of this PageClient
* will be children of this Composite (directly or indirectly).
*
* @param parent the SWT-Composite to use as parent of the created SWT-Composite.
* @return the newly created SWT-Composite corresponding to this PageClient
*/
Composite createComposite(Composite parent);
/**
* Gets the SWT-Composite of the PageClient. All SWT-Widgets of this PageClient
* will be children of this Composite (directly or indirectly).
*
* @return the SWT-Composite corresponding to this PageClient
*/
Composite getComposite();
/**
* Creates and initializes all SWT-Widgets of this PageClient and its visible subpages.
* It must call {@link at.spardat.xma.page.PageClient#createWidgets()} on all visible subpages.
* It must garantie, that the Composite of the XMAControl is created befor
* {@link at.spardat.xma.page.PageClient#createWidgets()} is called on any subpage.
*/
void initGUI();
/**
* Notify the PageClient and all visible subpages, that the PageClient is becoming visible.
* It must call {@link at.spardat.xma.page.PageClient#enter()} on the PageClient and all visible subpages.
*/
void enterBase();
/**
* Notify the PageClient and all visible subpages, of a possible Change in the PageModels.
* It must call {@link at.spardat.xma.page.PageClient#stateChanged()} on the PageClient and all visible subpages.
*/
void stateChangedBase();
/**
* Notify the PageClient and all visible subpages, that the PageClient no longer is visible.
* It must call {@link at.spardat.xma.page.PageClient#leave()} on the PageClient and all visible subpages.
*/
void leaveBase();
/**
* Notify the PageClient and all Subpages, that the Widgets are disposed
* by calling {@link at.spardat.xma.page.PageClient#removeWidgets()} on all Subpages and the PageClient.
*/
void removeWidgetsBase();
/**
* Remove the PageModel and all submodels from the Component. This causes the
* corresponding server side models to be freed when the next serverEvent occurs.
* It must call {@link at.spardat.xma.page.PageClient#removeWidgetModels()} on the Page and all subpages.
* The WidgetModels on the PageModel an all submodels will be set to null.
*/
void removeModel();
}