/* * 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.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 Perforce 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); } }); } }