/* Copyright 2008-2010 Gephi Authors : Eduardo Ramos <eduramiba@gmail.com> Website : http://www.gephi.org This file is part of Gephi. Gephi is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Gephi is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with Gephi. If not, see <http://www.gnu.org/licenses/>. */ package org.gephi.datalab.api; import org.gephi.graph.api.Edge; import org.gephi.graph.api.Node; /** * <p>This is the interface for a listener of <code>DataTablesController</code> requests.</p> * <p><b>Only data table UI should be an implementation of this listener</b></p> * @see DataTablesController * @author Eduardo Ramos <eduramiba@gmail.com> */ public interface DataTablesEventListener { /** * Requests the tables implementation to show nodes table. */ void selectNodesTable(); /** * Requests the tables implementation to show edges table. */ void selectEdgesTable(); /** * Requests the tables implementation to refresh the data of the table being shown. */ void refreshCurrentTable(); /** * Requests the tables implementation to adapt the nodes table row selection to the specified nodes. * @param nodes Nodes to select */ void setNodeTableSelection(Node[] nodes); /** * Requests the tables implementation to adapt the edges table row selection to the specified edges. * @param edges Edges to select */ void setEdgeTableSelection(Edge[] edges); /** * Request the tables implementation to provide the selected nodes in nodes table. * @return Array of selected nodes */ Node[] getNodeTableSelection(); /** * Request the tables implementation to provide the selected edges in edges table. * @return Array of selected edges */ Edge[] getEdgeTableSelection(); /** * Checks if the data tables implementation is showing nodes table * @return True if nodes table is being shown, false otherwise */ boolean isNodeTableMode(); /** * Checks if the data tables implementation is showing edges table * @return True if edges table is being shown, false otherwise */ boolean isEdgeTableMode(); /** * Checks if the data tables implementation is showing only visible elements (nodes or edges) * in the graph at the moment. * @return True if only visible elements are being shown, false otherwise */ boolean isShowOnlyVisible(); /** * Requests the tables implementation to show only visible elements or not. * @param showOnlyVisible Indicates if only visible elements have to be shown in table */ void setShowOnlyVisible(boolean showOnlyVisible); /** * Checks if the data tables implementation is showing number lists and dynamic numbers as sparklines at the moment. * @return True if sparklines are on, false otherwise */ boolean isUseSparklines(); /** * Requests the tables implementation to show number lists and dynamic numbers as sparklines. * @param useSparklines Indicates if sparklines should be used */ void setUseSparklines(boolean useSparklines); /** * Checks if the data tables implementation is showing time intervals as graphics at the moment. * @return True if sparklines are on, false otherwise */ boolean isTimeIntervalGraphics(); /** * Requests the tables implementation to show time intervals as graphics. * @param timeIntervalGraphics Indicates if time interval graphics should be used */ void setTimeIntervalGraphics(boolean timeIntervalGraphics); /** * Checks if the data tables implementation is showing edges nodes (source and target) labels at the moment. * @return True if edges nodes lables are shown, false otherwise */ boolean isShowEdgesNodesLabels(); /** * Requests the tables implementation to show edges nodes (source and target). * @param showEdgesNodesLabels Indicates if edges nodes labels should be shown */ void setShowEdgesNodesLabels(boolean showEdgesNodesLabels); public enum ExportMode{ CSV } /** * Requests to exports current table being shown as a file. * @param exportMode <code>ExportMode</code> - CSV only for now */ void exportCurrentTable(ExportMode exportMode); }