/*
* 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.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import ilog.views.IlvManager;
import ilog.views.IlvManagerView;
import ilog.views.IlvManagerViewInteractor;
//import ilog.views.util.IlvProductUtil;
import ilog.views.event.InteractorChangedEvent;
import ilog.views.event.InteractorListener;
import ilog.views.interactor.IlvSelectInteractor;
import ilog.views.interactor.IlvUnZoomViewInteractor;
import ilog.views.interactor.IlvZoomViewInteractor;
import ilog.views.swing.IlvJScrollManagerView;
/**
* A small JViews example.
*/
public class Sample3 extends JFrame
implements InteractorListener
{
IlvManager manager;
IlvManagerView mgrview;
IlvSelectInteractor selectInteractor;
IlvManagerViewInteractor zoomInteractor, unZoomInteractor;
JButton selectButton, zoomButton, unZoomButton;
public Sample3()
{
// Creates the manager object and reads an IVL file.
manager = new IlvManager();
try {
manager.read("data/lou.ivl");
} catch (Exception e) {}
// Creates a view associated to the manager
mgrview = new IlvManagerView(manager);
mgrview.setAntialiasing(true);
mgrview.setBackground(Color.white);
// Creates the necessary swing components
getContentPane().setLayout(new BorderLayout(0,0));
getContentPane().add(new IlvJScrollManagerView(mgrview),
BorderLayout.CENTER);
// Creates additional buttons
createButtons();
// Listens to modification of interactors
mgrview.addInteractorListener(this);
}
/**
* Creates some swing buttons.
*/
void createButtons()
{
JPanel buttons = new JPanel();
// A button to install a select interactor
selectButton = new JButton("Select");
selectButton.setBackground(Color.gray);
selectButton.addActionListener(new ActionListener() {
Override
public void actionPerformed(ActionEvent evt) {
if (selectInteractor == null)
selectInteractor = new IlvSelectInteractor();
if (mgrview.getInteractor() != selectInteractor)
mgrview.setInteractor(selectInteractor);
}
});
buttons.add(selectButton);
// A button to install the unzoom interactor
unZoomButton = new JButton("-");
unZoomButton.setBackground(Color.gray);
unZoomButton.addActionListener(new ActionListener() {
Override
public void actionPerformed(ActionEvent evt) {
if (unZoomInteractor == null)
unZoomInteractor = new IlvUnZoomViewInteractor();
if (mgrview.getInteractor() != unZoomInteractor)
mgrview.setInteractor(unZoomInteractor);
}
});
// a button to install the zoom interactor
buttons.add(unZoomButton);
zoomButton = new JButton("+");
zoomButton.setBackground(Color.gray);
zoomButton.addActionListener(new ActionListener() {
Override
public void actionPerformed(ActionEvent evt) {
if (zoomInteractor == null)
zoomInteractor = new IlvZoomViewInteractor();
if (mgrview.getInteractor() != zoomInteractor)
mgrview.setInteractor(zoomInteractor);
}
});
buttons.add(zoomButton);
getContentPane().add(buttons, BorderLayout.SOUTH);
}
/**
* A method that gets called when the interactor of the
* view (IlvManagerView) changes.
* The method changes the color of the corresponding
* interactor to red.
*/
Override
public void interactorChanged(InteractorChangedEvent event)
{
IlvManagerViewInteractor oldI = event.getOldValue();
IlvManagerViewInteractor newI = event.getNewValue();
if (oldI == selectInteractor)
selectButton.setBackground(Color.gray);
else if (oldI == zoomInteractor)
zoomButton.setBackground(Color.gray);
else if (oldI == unZoomInteractor)
unZoomButton.setBackground(Color.gray);
// there is no new interactor
if (newI == null)
return;
if (newI == selectInteractor)
selectButton.setBackground(Color.red);
else if (newI == zoomInteractor)
zoomButton.setBackground(Color.red);
else if (newI == unZoomInteractor)
unZoomButton.setBackground(Color.red);
}
public static void main(String[] args)
{
// 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);
// Sun recommends that to put the entire GUI initialization into the
// AWT thread
SwingUtilities.invokeLater(
new Runnable() {
Override
public void run() {
JFrame frame = new Sample3();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(450,350);
frame.setVisible(true);
}
});
}
}