/* * Licensed Materials - Property of Rogue Wave Software, Inc. * © Copyright Rogue Wave Software, Inc. 2014, 2015 * © 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 ilog.views.IlvManager; import ilog.views.IlvManagerView; import ilog.views.maps.IlvCoordinateSystemProperty; import ilog.views.maps.IlvMapLayerTreeProperty; import ilog.views.maps.IlvMapScaleLimiter; import ilog.views.maps.beans.IlvExceptionMessage; import ilog.views.maps.beans.IlvJMapsManagerViewControlBar; import ilog.views.maps.beans.IlvLayerTreePanel; import ilog.views.maps.beans.IlvMapLayer; import ilog.views.maps.beans.IlvMapLayerTreeModel; import ilog.views.maps.datasource.IlvMIDMIFDataSource; import ilog.views.maps.graphic.IlvMapSelectionFactory; import ilog.views.maps.graphic.style.IlvMapStyle; import ilog.views.maps.graphic.style.IlvPointStyle; import ilog.views.maps.graphic.style.IlvPolylineStyle; import ilog.views.maps.srs.coordsys.IlvGeographicCoordinateSystem; import ilog.views.util.IlvProductUtil; import ilog.views.util.IlvResourceUtil; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.net.URL; import javax.swing.JApplet; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JSplitPane; /** * The MID/MIF demo. This demo show how to load a MD/MIF file * using the API. The API to load MID/MIF files mailnly consist on * simply instanciating a IlvMIDMIFDataSource class. */ public class MidMifDemo extends JApplet { static { // This applet is designed to run only with default resource bundle // and various selected other resource bundles. // Setting the available resource suffixes avoids that the applet // tries to load resource bundles for other locales over the net, // even if the current locale of the browser is different. if (IlvResourceUtil.isInApplet()) IlvResourceUtil.setAvailableResourceSuffixes("", "_ja"); //$NON-NLS-1$//$NON-NLS-2$ } { // This sample uses JViews Maps features. When deploying an // application that includes this code, you need to be in possession // of a Rogue Wave JViews Maps Deployment license. IlvProductUtil.DeploymentLicenseRequired( IlvProductUtil.JViews_Maps_Deployment); } IlvManagerView view; IlvManager manager; /** * Construct a new MidMifDemo. * @throws Exception */ public MidMifDemo() throws Exception { // Make sure the swing construction is called in Swing event thread. ilog.views.util.swing.IlvSwingUtil.invokeAndWait(new Runnable() { public void run() { setupUI(); try { loadData(); } catch (Exception e) { new IlvExceptionMessage(e,null); } }}); } /** * Load data using an <code>IlvMIDMIFDataSource</code>. * @throws Exception */ void loadData() throws Exception { // find the URL of the data in the jar. URL url = getClass().getResource("EgeanSea.mif"); //$NON-NLS-1$ // instanciate a IlvMIDMIFDataSource. IlvMIDMIFDataSource source = new IlvMIDMIFDataSource(url); source.setManager(manager); // rename top layer. IlvMapLayer layer = source.getInsertionLayer(); layer.setName("Egean Sea");//$NON-NLS-1$ // add it in the map layer tree IlvMapLayerTreeModel ltm = IlvMapLayerTreeProperty.GetMapLayerTreeModel(manager); ltm.addChild(null, layer); // start the data source: file is read and layers are created. source.start(); // configure resulting layers (example). IlvMapLayer[] layers = ltm.getChildren(layer); for(int i = 0; i < layers.length; i++) { IlvMapLayer l = layers[i]; IlvMapStyle s = l.getStyle(); if(s instanceof IlvPointStyle) { IlvPointStyle ps = (IlvPointStyle)s; ps.setSize(2); ps.setForeground(Color.red); } else if(s instanceof IlvPolylineStyle) { ((IlvPolylineStyle)s).setDecoration(null); } } // fit the map. view.fitTransformerToContent(); } /** * Construct the user interface. */ void setupUI() { view = new IlvManagerView(); view.setKeepingAspectRatio(true); view.setSize(600, 300); manager = view.getManager(); manager.setSelectionFactory(new IlvMapSelectionFactory()); // JV-2819: geo reference the view view.getManager().setNamedProperty(new IlvCoordinateSystemProperty(IlvGeographicCoordinateSystem.WGS84)); // limit the zoom to correct scales. IlvMapScaleLimiter limiter = new IlvMapScaleLimiter((float) (1 / 1E4), (float) (1 / 1E9)); limiter.setView(view); IlvLayerTreePanel layerPanel = new IlvLayerTreePanel(); layerPanel.setView(view); Component left = layerPanel; Component right = new JScrollPane(view); JSplitPane pane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, left, right); pane.setDividerLocation(200); getContentPane().add(pane, BorderLayout.CENTER); IlvJMapsManagerViewControlBar bar = new IlvJMapsManagerViewControlBar(); bar.setView(view); getContentPane().add(bar, BorderLayout.NORTH); } /** * @param args : not used */ public static void main(String[] args) { // Sun recommends that to put the entire GUI initialization into the // AWT thread javax.swing.SwingUtilities.invokeLater( new Runnable() { public void run() { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); MidMifDemo demo; try { demo = new MidMifDemo(); } catch (Exception e) { e.printStackTrace(); return; } frame.getContentPane().add(demo); frame.pack(); frame.setVisible(true); } } ); } //JV-3814 Override public void destroy() { super.destroy(); // This method is intended to workaround memory management issues // in the Sun JRE. Please refer to the method documentation for more // details and a description of the known issues. ilog.views.util.swing.IlvSwingUtil.cleanupApplet(); } }