/* * @(#)GraphModelEvent.java 1.0 03-JUL-04 * * Copyright (c) 2001-2005 Gaudenz Alder * * See LICENSE file in distribution for licensing details of this source file */ package org.jgraph.event; import java.util.EventObject; import org.jgraph.graph.CellView; import org.jgraph.graph.ConnectionSet; import org.jgraph.graph.GraphLayoutCache; import org.jgraph.graph.ParentMap; /** * Encapsulates information describing changes to a graph model, and is used to * notify graph model listeners of the change. * * @author Gaudenz Alder * @version 1.0 1/1/2 * */ @SuppressWarnings ( "all" ) public class GraphModelEvent extends EventObject { /** * The object that constitutes the change. */ protected GraphModelChange change; /** * Used to create an event when cells have been changed, inserted, or * removed, identifying the change as a ModelChange object. * * @param source * the Object responsible for generating the event (typically the * creator of the event object passes <code>this</code> for its * value) * @param change * the object that describes the change * @see org.jgraph.graph.GraphCell * */ public GraphModelEvent(Object source, GraphModelChange change) { super(source); this.change = change; } /** * Returns the object that constitutes the change. * * @return the object that constitutes the change. */ public GraphModelChange getChange() { return change; } /** * Defines the interface for objects that may be included into a * GraphModelEvent to describe a model change. */ public static interface GraphModelChange extends GraphLayoutCacheEvent.GraphLayoutCacheChange { /** * Returns a connection set representing the graph structure after the * change was applied * * @return the connection set of the graph after the change */ public ConnectionSet getConnectionSet(); /** * Returns a connection set representing the graph structure before the * change was applied ( an "undo" of the change). * * @return the connection set of the graph before the change */ public ConnectionSet getPreviousConnectionSet(); /** * Returns a parent map representing the group structure after the * change was applied * * @return the changed parent map */ public ParentMap getParentMap(); /** * Returns a parent map representing the group structure before the * change was applied ( an "undo" of the change ) * * @return the previous parent map */ public ParentMap getPreviousParentMap(); /** * Allows a <code>GraphLayoutCache</code> to store cell views for * cells that have been removed. Such cell views are used for * re-insertion and restoring the visual attributes. * * @param view * the <code>GraphLayoutCache</code> to store the removed * cells * @param cellViews * the cell views to be stored */ public void putViews(GraphLayoutCache view, CellView[] cellViews); /** * Allows a <code>GraphLayoutCache</code> to retrieve an array of * <code>CellViews</code> that was previously stored with * <code>putViews(GraphLayoutCache, CellView[])</code>. * * @param view * the <code>GraphLayoutCache</code> whose stored cells are * to be retrieved */ public CellView[] getViews(GraphLayoutCache view); } }