// GraphTea Project: http://github.com/graphtheorysoftware/GraphTea
// Copyright (C) 2012 Graph Theory Software Foundation: http://GraphTheorySoftware.com
// Copyright (C) 2008 Mathematical Science Department of Sharif University of Technology
// Distributed under the terms of the GNU General Public License (GPL): http://www.gnu.org/licenses/
package graphtea.plugins.main.core.actions;
import graphtea.graph.graph.GraphModel;
import graphtea.graph.ui.GTabbedGraphPane;
import graphtea.platform.core.AbstractAction;
import graphtea.platform.core.BlackBoard;
import graphtea.ui.UIUtils;
import javax.swing.*;
/**
* @author azin azadi
*/
public class AddTab extends AbstractAction {
/**
* constructor
*
* @param bb the blackboard of the action
*/
public AddTab(BlackBoard bb) {
super(bb);
listen4Event(UIUtils.getUIEventKey("add tab"));
}
public void performAction(String eventName, Object value) {
addTab(blackboard);
}
/**
* creates a graph ans add it as a tab to the current editing graph window
*/
public static void addTab(BlackBoard blackboard) {
GTabbedGraphPane gtgp = blackboard.getData(GTabbedGraphPane.NAME);
int a = JOptionPane.showOptionDialog(null, "Graph Direction :", "New Graph", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[]{"Directed", "Undirected","Cancel"}, "Undirected");
if(a!=-1 && a!=JOptionPane.CANCEL_OPTION){
GraphModel g = new GraphModel(a == 0);
gtgp.addGraph(g);
}
}
/**
* creates a graph and add it as a tab to the current editing graph window
*/
public static void addTabNoGUI(boolean isdirected , BlackBoard blackboard) {
GTabbedGraphPane gtgp = blackboard.getData(GTabbedGraphPane.NAME);
GraphModel g = new GraphModel(isdirected);
gtgp.addGraph(g);
}
/**
* displays the givven graph in GraphTea
*/
public static void displayGraph(GraphModel g, BlackBoard blackBoard) {
GTabbedGraphPane gtgp = blackBoard.getData(GTabbedGraphPane.NAME);
gtgp.addGraph(g);
}
}