All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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();

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy