?? crew.java
字號:
// **********************************************************************// // <copyright>// // BBN Technologies// 10 Moulton Street// Cambridge, MA 02138// (617) 873-8000// // Copyright (C) BBNT Solutions LLC. All rights reserved.// // </copyright>// **********************************************************************// // $Source: /cvs/distapps/openmap/src/openmap/com/bbn/openmap/examples/crew/Crew.java,v $// $RCSfile: Crew.java,v $// $Revision: 1.3.2.2 $// $Date: 2005/05/24 18:38:25 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap.examples.crew;import java.awt.BorderLayout;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.InputStream;import java.util.Properties;import javax.swing.JFrame;import com.bbn.openmap.LatLonPoint;import com.bbn.openmap.Layer;import com.bbn.openmap.LayerHandler;import com.bbn.openmap.MapBean;import com.bbn.openmap.MapHandler;import com.bbn.openmap.MouseDelegator;import com.bbn.openmap.MultipleSoloMapComponentException;import com.bbn.openmap.event.SelectMouseMode;import com.bbn.openmap.gui.LayersPanel;import com.bbn.openmap.gui.OMToolSet;import com.bbn.openmap.gui.ToolPanel;import com.bbn.openmap.layer.shape.ShapeLayer;/** * A sample application incorporating the <code>MapBean</code>. * This program adds a MouseMode that passes events to the RouteLayer. * Move the mouse over the three lines, and click on them. */public class Crew extends JFrame { /** The name of the resource file. */ public static String crewResources = "Crew.properties"; /** * The properties acquired from the resource file. * * @see #crewResources */ private Properties properties; /** * Create a default Crew instance. The instance will use the * default properties. */ public Crew() throws MultipleSoloMapComponentException { this(new Properties()); } /** * Create a Crew instance with the given properties. The * properties override the defaults. * * @param props The override properties */ public Crew(Properties props) throws MultipleSoloMapComponentException { // Initialize the parent class (JFrame) super("Crew Example"); // Use a Border layout manager getContentPane().setLayout(new BorderLayout()); // Call quit when the window's close box is clicked. addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { quit(); } }); // Store the given properties for later use. properties = props; // Create the MapHandler, which allows all the components to // find each other if they are added to it. MapHandler mapHandler = new MapHandler(); // Create the MapBean. MapBean map = new MapBean(); // Set the map's center property map.setCenter(new LatLonPoint(43.0f, -95.0f)); // Add the MapBean to the MapHandler. mapHandler.add(map); // Add the map to the JFrame getContentPane().add(map, BorderLayout.CENTER); // Create a mouse delegator to handle mouse events on the map mapHandler.add(new MouseDelegator()); // Create and add the MouseMode that the RouteLayer wants // events from. The MouseDelegator asks all layers which // MouseMode they listen to, and hooks them up. When that // MouseMode is active, events flow to the top layer, then // down to lower layers if the event is not consumed along the // way. mapHandler.add(new SelectMouseMode()); // Add a LayerHandler, which manages all layers, on or off. mapHandler.add(new LayerHandler()); // Create and add a Political Background Layer layer = createPoliticalLayer(); if (layer != null) mapHandler.add(layer); // Create and add a Route Layer. The LayerHandler will find // it via the LayerHandler, and then the LayerHandler will add // it to the map because layer.isVisible() == true; layer = createRouteLayer(); if (layer != null) { layer.setName("Routes"); mapHandler.add(layer); } // Add some navigation tools. The ToolPanel will find the // OMToolSet (a Tool) in the MapHandler. ToolPanel toolPanel = new ToolPanel(); mapHandler.add(toolPanel); mapHandler.add(new OMToolSet()); // Add the ToolPanel to the JFrame. getContentPane().add(toolPanel, BorderLayout.NORTH); // Oh, for fun, lets add a GUI to control the layers. A // button to launch it will get added to the ToolPanel. mapHandler.add(new LayersPanel()); // You can add other components from the com.bbn.openmap.gui // package... } /** * Creates a political boundary map layer. Actually, this method * instantiates a DCW Layer (Digital Chart of the World), and sets * the layer's parameters so that it will render a political map. * <p> * Creation of the political layer is controlled by the * <code><bold> * showPolitical</bold></code> property. See the * resource file crew.properties for more information. * * @return the political layer, or null if an error occurred */ protected Layer createPoliticalLayer() { Boolean showPolitical; // You can add a showPolitical=false property to the // Crew.properties file to make this layer not be added to the // application. showPolitical = new Boolean(properties.getProperty("showPolitical", "true")); if (!showPolitical.booleanValue()) { return null; } ShapeLayer politicalLayer = new ShapeLayer(); politicalLayer.setProperties("political", properties); return politicalLayer; } /** * Creates a route layer to display great circle lines on the map. * * @return the route layer * @see RouteLayer */ protected Layer createRouteLayer() { return new RouteLayer(); } /** * Exits the application. */ protected void quit() { System.exit(0); } /** * Launches the application. Reads the resource file, instantiates * a application, sizes it and displays it. * * @param args command line arguments -- ignored */ public static void main(String[] args) { Crew crew; Properties crewProps = new Properties(); InputStream propsIn = Crew.class.getResourceAsStream(crewResources); if (propsIn == null) { System.err.println("Unable to locate resources: " + crewResources); System.err.println("Using default resources."); } else { try { crewProps.load(propsIn); } catch (java.io.IOException e) { System.err.println("Caught IOException loading resources: " + crewResources); System.err.println("Using default resources."); } } try { crew = new Crew(crewProps); crew.setSize(700, 500); crew.pack(); crew.setVisible(true); } catch (MultipleSoloMapComponentException msmce) { // The MapHandler is only allowed to have one of certain // items. These items implement the SoloMapComponent // interface. The MapHandler can have a policy that // determines what to do when duplicate instances of the // same type of object are added - replace or ignore. // In this example, this will never happen, since we are // controlling that one MapBean, LayerHandler, // MouseDelegator, etc is being added to the MapHandler. } }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -