/*
* Licensed Materials - Property of Rogue Wave Software, Inc.
* © Copyright Rogue Wave Software, Inc. 2014, 2017
* © Copyright IBM Corp. 2009, 2014
* © Copyright ILOG 1996, 2009
* All Rights Reserved.
*
* Note to U.S. Government Users Restricted Rights:
* The Software and Documentation were developed at private expense and
* are "Commercial Items" as that term is defined at 48 CFR 2.101,
* consisting of "Commercial Computer Software" and
* "Commercial Computer Software Documentation", as such terms are
* used in 48 CFR 12.212 or 48 CFR 227.7202-1 through 227.7202-4,
* as applicable.
*/
import java.awt.Container;
import java.util.ResourceBundle;
import ilog.views.IlvDirection;
import ilog.views.diagrammer.IlvDiagrammer;
import ilog.views.diagrammer.application.IlvDiagrammerAction;
import ilog.views.diagrammer.application.IlvDiagrammerApplication;
import ilog.views.diagrammer.application.IlvDiagrammerToolBar;
import ilog.views.graphlayout.hierarchical.IlvHierarchicalLayout;
import ilog.views.util.IlvProductUtil;
public class GraphLayoutDiagrammerDemo2 extends IlvDiagrammerApplication {
private ResourceBundle bundle;
private static final String graphLayoutProject = "data/graphlayout.idpr";
public static void main(final String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
Override
public void run() {
new GraphLayoutDiagrammerDemo2().init(args);
}
});
}
public GraphLayoutDiagrammerDemo2() {
super(new String[] { "-title", "Graph Layout Diagrammer Demo - Changing Parameters", "-data", graphLayoutProject });
// This sample uses JViews Diagrammer features. When deploying an
// application that includes this code, you need to be in possession
// of a Rogue Wave JViews Diagrammer Deployment license.
IlvProductUtil.DeploymentLicenseRequired(IlvProductUtil.JViews_Diagrammer_Deployment);
bundle = ResourceBundle.getBundle("graphlayout");
}
Override
public void init(Container contentPane) {
super.init(contentPane);
getMenuBar().remove(getMenuBar().getFileMenu());
getMenuBar().remove(getMenuBar().getEditMenu());
getMenuBar().remove(getMenuBar().getOptionsMenu());
IlvDiagrammerToolBar toolbar = getEditToolBar();
toolbar.setActions(null);
toolbar.addAction(new LayoutDirectionAction("Right", IlvDirection.Right));
toolbar.addAction(new LayoutDirectionAction("Left", IlvDirection.Left));
toolbar.addAction(new LayoutDirectionAction("Bottom", IlvDirection.Bottom));
toolbar.addAction(new LayoutDirectionAction("Top", IlvDirection.Top));
}
public void setLayoutDirection(IlvDiagrammer diagrammer, int direction) {
IlvHierarchicalLayout layout = (IlvHierarchicalLayout) diagrammer.getEngine().getNodeLayoutRenderer()
.getGraphLayout();
layout.setFlowDirection(direction);
diagrammer.layoutAllNodes();
}
public int getLayoutDirection(IlvDiagrammer diagrammer) {
IlvHierarchicalLayout layout = (IlvHierarchicalLayout) diagrammer.getEngine().getNodeLayoutRenderer()
.getGraphLayout();
return layout.getFlowDirection();
}
private class LayoutDirectionAction extends IlvDiagrammerAction.ToggleAction {
private int direction;
public LayoutDirectionAction(String prefix, int direction) {
super("Action." + prefix, GraphLayoutDiagrammerDemo2.this.bundle);
this.direction = direction;
}
Override
protected boolean isSelected(IlvDiagrammer diagrammer) throws Exception {
return diagrammer != null && getLayoutDirection(diagrammer) == direction;
}
Override
protected void setSelected(IlvDiagrammer diagrammer, boolean selected) throws Exception {
if (diagrammer != null && selected) {
setLayoutDirection(diagrammer, direction);
}
}
Override
protected boolean isEnabled(IlvDiagrammer diagrammer) throws Exception {
return diagrammer != null;
}
}
}