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

org.jacpfx.api.component.RootComponent Maven / Gradle / Ivy

There is a newer version: 2.1
Show newest version
/************************************************************************
 *
 * Copyright (C) 2010 - 2014
 *
 * [RootComponent.java]
 * JACPFX Project (https://github.com/JacpFX/JacpFX/)
 * All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at 
 *
 *     http://www.apache.org/licenses/LICENSE-2.0 
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an "AS IS"
 * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
 * express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 *
 *
 ************************************************************************/
package org.jacpfx.api.component;

import org.jacpfx.api.handler.ComponentHandler;

/**
 * All root component have containing sub component (workspace -
 * perspective; perspective - editors) and listeners; all sub component have
 * to be initialized, registered and handled
 *
 * @param  component type to register
 * @param  message type to use in registration process
 * @author Andy Moncsek
 */
public interface RootComponent {

    /**
     * Register the component at the listener.
     *
     * @param component, the component to register.
     */
    void registerComponent(final T component);

    /**
     * Add a component, this does not fully register the component.
     * If you want to add a newly created component use registerComponent instead.
     *
     * @param component, the component to add.
     */
    void addComponent(final T component);

    /**
     * Unregister component from current perspective.
     *
     * @param component, the component to unregister.
     */
    void unregisterComponent(final T component);


    /**
     * Remove all component when perspective is shut down.
     */
    void removeAllCompnents();

    /**
     * Handles initialization of subcomponents.
     *
     * @param message, the initial message
     */
    void initComponents(final A message);

    /**
     * Returns component handler to handle initialization and reassignment of
     * subcomponents.
     *
     * @return the component handler
     */
    ComponentHandler getComponentHandler();

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy