/*
* 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.diagrammer.IlvDiagrammer;
import ilog.views.diagrammer.application.IlvDiagrammerAction;
import ilog.views.diagrammer.application.IlvDiagrammerApplication;
import ilog.views.diagrammer.application.IlvDiagrammerToolBar;
import ilog.views.sdm.renderer.graphlayout.IlvGraphLayoutRenderer;
import ilog.views.util.IlvProductUtil;
public class GraphLayoutDiagrammerDemo4 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 GraphLayoutDiagrammerDemo4().init(args);
}
});
}
public GraphLayoutDiagrammerDemo4() {
super(new String[] { "-title", "Graph Layout Diagrammer Demo - Link Clipping", "-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 LinkClippingAction());
}
public void setLinkClipping(IlvDiagrammer diagrammer, boolean clip) {
IlvGraphLayoutRenderer r = diagrammer.getEngine().getNodeLayoutRenderer();
if (r instanceof LinkClippingRenderer) {
((LinkClippingRenderer) r).setClipping(clip);
diagrammer.getEngine().loadData();
}
}
public boolean isLinkClipping(IlvDiagrammer diagrammer) {
IlvGraphLayoutRenderer r = diagrammer.getEngine().getNodeLayoutRenderer();
if (r instanceof LinkClippingRenderer) {
return ((LinkClippingRenderer) r).isClipping();
} else {
return false;
}
}
private class LinkClippingAction extends IlvDiagrammerAction.ToggleAction {
public LinkClippingAction() {
super("Action.LinkClipping", bundle);
}
Override
protected boolean isSelected(IlvDiagrammer diagrammer) throws Exception {
return diagrammer != null && isLinkClipping(diagrammer);
}
Override
protected void setSelected(IlvDiagrammer diagrammer, boolean selected) throws Exception {
setLinkClipping(diagrammer, selected);
}
Override
protected boolean isEnabled(IlvDiagrammer diagrammer) throws Exception {
return diagrammer != null;
}
}
}