/*******************************************************************************
* Copyright 2005-2007, CHISEL Group, University of Victoria, Victoria, BC, Canada.
* 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:
* The Chisel Group, University of Victoria
*******************************************************************************/
package org.eclipse.zest.core.widgets;
import java.util.List;
import org.eclipse.zest.layouts.LayoutAlgorithm;
/**
* This interface describes all Zest components that are Containers. This is an internal interface
* and thus should not be used outside of Zest. Implementors of this interface must include the
* following two methods
* o addNode(GraphNode)
* o addNode(GraphContainer)
*
* These are not actually listed here because Java does not allow protected methods in
* interfaces.
*
* @author Ian Bull
*/
public interface IContainer {
public Graph getGraph();
// All implementers must include this method
/* protected void addNode(GraphNode node); */
// All implementers must include this method
/* protected void addNode(GraphContainer container); */
public int getItemType();
/**
* Re-applies the current layout algorithm
*/
public void applyLayout();
/**
* Sets the LayoutAlgorithm for this container and optionally applies it.
*
* @param algorithm The layout algorithm to set
* @param applyLayout
*/
public void setLayoutAlgorithm(LayoutAlgorithm algorithm, boolean applyLayout);
public List getNodes();
/* protected void highlightNode(GraphNode node); */
/* protected void highlightNode(GraphContainer container);*/
/* protected void unhighlightNode(GraphNode node); */
/* protected void unhighlightNode(GraphContainer container);*/
} // end of IContainer