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

org.jgraph.graph.GraphSelectionModel Maven / Gradle / Ivy

The newest version!
/*
 * @(#)GraphSelectionModel.java	0.1 03-JUL-04
 * 
 * Copyright (c) 2001-2004 Gaudenz Alder
 *  
 */
package org.jgraph.graph;

import java.beans.PropertyChangeListener;

import org.jgraph.event.GraphSelectionListener;

/**
  * This interface represents the current state of the selection for
  * the graph component.
  * 

* * A GraphSelectionModel can be configured to allow only one * cell (SINGLE_GRAPH_SELECTION) or a number of * cells (MULTIPLE_GRAPH_SELECTION). * * @version 0.1 1/1/02 * @author Gaudenz Alder */ public interface GraphSelectionModel { /** Selection can only contain one cell at a time. */ public static final int SINGLE_GRAPH_SELECTION = 1; /** Selection can contain any number of items. */ public static final int MULTIPLE_GRAPH_SELECTION = 4; /** * Sets the selection model, which must be either * SINGLE_GRAPH_SELECTION or MULTIPLE_GRAPH_SELECTION. *

* This may change the selection if the current selection is not valid * for the new mode. */ void setSelectionMode(int mode); /** * Sets if the selection model allows the selection * of children. */ void setChildrenSelectable(boolean flag); /** * Returns true if the selection model allows the selection * of children. */ boolean isChildrenSelectable(); /** * Returns the current selection mode, either * SINGLE_GRAPH_SELECTION or * MULTIPLE_GRAPH_SELECTION. */ int getSelectionMode(); /** * Sets the selection to cell. If this represents a change, then * the GraphSelectionListeners are notified. If cell is * null, this has the same effect as invoking clearSelection. * * @param cell new cell to select */ void setSelectionCell(Object cell); /** * Sets the selection to cells. If this represents a change, then * the GraphSelectionListeners are notified. If cells is * null, this has the same effect as invoking clearSelection. * * @param cells new selection */ void setSelectionCells(Object[] cells); /** * Adds cell to the current selection. If cell is not currently * in the selection the GraphSelectionListeners are notified. This has * no effect if cell is null. * * @param cell the new cell to add to the current selection */ void addSelectionCell(Object cell); /** * Adds cells to the current selection. If any of the cells are * not currently in the selection the GraphSelectionListeners * are notified. This has no effect if cells is null. * * @param cells the new cells to add to the current selection */ void addSelectionCells(Object[] cells); /** * Removes cell from the selection. If cell is in the selection * the GraphSelectionListeners are notified. This has no effect if * cell is null. * * @param cell the cell to remove from the selection */ void removeSelectionCell(Object cell); /** * Removes cells from the selection. If any of the cells in * cells are in the selection, the * GraphSelectionListeners are notified. This method has no * effect if cells is null. * * @param cells the cells to remove from the selection */ void removeSelectionCells(Object[] cells); /** * Returns the cells that are currently selectable. */ Object[] getSelectables(); /** * Returns the first cell in the selection. How first is defined is * up to implementors. */ Object getSelectionCell(); /** * Returns the cells in the selection. This will return null (or an * empty array) if nothing is currently selected. */ Object[] getSelectionCells(); /** * Returns the number of cells that are selected. */ int getSelectionCount(); /** * Returns true if the cell, cell, is in the current * selection. */ boolean isCellSelected(Object cell); /** * Returns true if the cell, cell, * has selected children. */ boolean isChildrenSelected(Object cell); /** * Returns true if the selection is currently empty. */ boolean isSelectionEmpty(); /** * Empties the current selection. If this represents a change in the * current selection, the selection listeners are notified. */ void clearSelection(); /** * Adds a PropertyChangeListener to the listener list. * The listener is registered for all properties. *

* A PropertyChangeEvent will get fired when the selection mode * changes. * * @param listener the PropertyChangeListener to be added */ void addPropertyChangeListener(PropertyChangeListener listener); /** * Removes a PropertyChangeListener from the listener list. * This removes a PropertyChangeListener that was registered * for all properties. * * @param listener the PropertyChangeListener to be removed */ void removePropertyChangeListener(PropertyChangeListener listener); /** * Adds x to the list of listeners that are notified each time the * set of selected Objects changes. * * @param x the new listener to be added */ void addGraphSelectionListener(GraphSelectionListener x); /** * Removes x from the list of listeners that are notified each time * the set of selected Objects changes. * * @param x the listener to remove */ void removeGraphSelectionListener(GraphSelectionListener x); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy