/******************************************************************************* * Copyright (c) 2007, 2014 compeople AG 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: * compeople AG - initial API and implementation *******************************************************************************/ package org.eclipse.riena.navigation; import org.eclipse.riena.navigation.common.ITypecastingAdaptable; /** * Describes the controller of a model object. The controller manages the * showing and hiding of views for the model */ public interface INavigationNodeController extends ITypecastingAdaptable { /** * Check if the node can be activated within the navigation context * * @param node * the node to check * @param context * current navigation context * @return true if the node can be disposed */ boolean allowsActivate(INavigationNode<?> node, INavigationContext context); /** * Check if the node can be deactivated within the navigation context * * @param node * the node to check * @param context * current navigation context * @return true if the node can be deactivated */ boolean allowsDeactivate(INavigationNode<?> node, INavigationContext context); /** * Check if the node can be disposed within the navigation context * * @param node * the node to check * @param context * current navigation context * @return true if the node can be disposed */ boolean allowsDispose(INavigationNode<?> node, INavigationContext context); /** * This method is called if the {@link NavigationArgument} of the node * changes while navigating. * * @param argument * The current {@link NavigationArgument} */ void navigationArgumentChanged(NavigationArgument argument); /** * Get the corresponding navigation node. * * @return the navigation node * * @since 3.0 */ INavigationNode<?> getNavigationNode(); }