/* * Licensed Materials - Property of Perforce Software, Inc. * © Copyright Perforce Software, Inc. 2014, 2021 * © 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.IlvDiagrammerFrame; import ilog.views.diagrammer.application.IlvDiagrammerMenuBar; import ilog.views.diagrammer.application.IlvDiagrammerToolBar; import ilog.views.graphlayout.hierarchical.IlvHierarchicalLayout; import ilog.views.util.IlvProductUtil; public class GraphLayoutDiagrammerDemo2 extends IlvDiagrammerFrame { 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 Perforce JViews Diagrammer Deployment license. IlvProductUtil.DeploymentLicenseRequired(IlvProductUtil.JViews_Diagrammer_Deployment); bundle = ResourceBundle.getBundle("graphlayout"); } Override public void init(Container contentPane) { super.init(contentPane); getJMenuBar().remove(((IlvDiagrammerMenuBar) getJMenuBar()).getFileMenu()); getJMenuBar().remove(((IlvDiagrammerMenuBar)getJMenuBar()).getEditMenu()); getJMenuBar().remove(((IlvDiagrammerMenuBar)getJMenuBar()).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; } } }