📄 layer.java
字号:
* Browser. */ public void fireRequestURL(InfoDisplayEvent evt) { if (IDListeners != null) { for (Iterator it = IDListeners.iterator(); it.hasNext();) { ((InfoDisplayListener) it.next()).requestURL(evt); } } else if (Debug.debugging("layer")) { Debug.output(getName() + "|Layer.fireRequestURL(): no info request listener!"); } } /** * Sends a request to the InfoDisplayListener to display a URL in a browser. * The InfoDisplayEvent is created here, and the URL location is put inside * it. * * @param url the url location to give to the Browser. */ public void fireRequestURL(String url) { fireRequestURL(new InfoDisplayEvent(this, url)); } /** * Sends a request to the InfoDisplayListener to show a specific cursor over * its component area. * * @param cursor the cursor to use. */ public void fireRequestCursor(java.awt.Cursor cursor) { if (IDListeners != null) { for (Iterator it = IDListeners.iterator(); it.hasNext();) { ((InfoDisplayListener) it.next()).requestCursor(cursor); } } else if (Debug.debugging("layer")) { Debug.output(getName() + "|Layer.fireRequestCursor(): no info request listener!"); } } /** * Sends a request to the InfoDisplayListener to put the information in the * InfoDisplay event in a dialog window. * * @param evt the InfoDisplayEvent holding the message to put into the * dialog window. */ public void fireRequestMessage(InfoDisplayEvent evt) { if (IDListeners != null) { for (Iterator it = IDListeners.iterator(); it.hasNext();) { ((InfoDisplayListener) it.next()).requestMessage(evt); } } else if (Debug.debugging("layer")) { Debug.output(getName() + "|Layer.fireRequestMessage(): no info request listener!"); } } /** * Sends a request to the InfoDisplayListener to display the information in * a dialog window. The InfoDisplayEvent is created here, and the URL * location is put inside it. * * @param message the message to put in the dialog window. */ public void fireRequestMessage(String message) { fireRequestMessage(new InfoDisplayEvent(this, message)); } /** * Request to show the tool tips on the map. * * @param tip string to display. */ public void fireRequestToolTip(String tip) { fireRequestToolTip(new InfoDisplayEvent(this, tip)); } /** * Request to hide the tool tips on the map. */ public void fireHideToolTip() { fireRequestToolTip((InfoDisplayEvent) null); } /** * Fire off a Tool Tip request to the InfoDisplayListeners. If the * InfoDisplayEvent is null, then a requestHideToolTip will be fired. */ public void fireRequestToolTip(InfoDisplayEvent event) { if (IDListeners != null) { for (Iterator it = IDListeners.iterator(); it.hasNext();) { if (event != null) { ((InfoDisplayListener) it.next()).requestShowToolTip(event); } else { ((InfoDisplayListener) it.next()).requestHideToolTip(); } } } else if (Debug.debugging("layer")) { Debug.output(getName() + "|Layer.fireRequestShowToolTip(): no info request listener!"); } } // ///////////////////////////////////////////////// // LayerStatus Handling Setup and Firing /** * Adds a listener for <code>LayerStatusEvent</code>s. * * @param aLayerStatusListener LayerStatusListener */ public synchronized void addLayerStatusListener( LayerStatusListener aLayerStatusListener) { if (lsListeners == null) { lsListeners = new ListenerSupport(this); } lsListeners.addListener(aLayerStatusListener); } /** * Removes a LayerStatusListene from this Layer. * * @param aLayerStatusListener the listener to remove */ public synchronized void removeLayerStatusListener( LayerStatusListener aLayerStatusListener) { if (lsListeners != null) { lsListeners.removeListener(aLayerStatusListener); } } /** * Sends a status update to the LayerStatusListener. * * @param evt LayerStatusEvent */ public void fireStatusUpdate(LayerStatusEvent evt) { // AWTAvailable conditional removed, not used, not useful. if (lsListeners != null) { for (Iterator it = lsListeners.iterator(); it.hasNext();) { ((LayerStatusListener) it.next()).updateLayerStatus(evt); } } else if (Debug.debugging("layer")) { Debug.output(getName() + "|Layer.fireStatusUpdate(): no LayerStatusListeners!"); } } /** * Sends a status update to the LayerStatusListener. * * @param status the new status */ public void fireStatusUpdate(int status) { fireStatusUpdate(new LayerStatusEvent(this, status)); } /** * Repaint the layer. If you are using BufferedMapBean for your application, * WE STRONGLY RECOMMEND THAT YOU DO NOT OVERRIDE THIS METHOD. This method * marks the layer buffer so that it will be refreshed. If you override this * method, and don't call super.repaint(), the layers will not be repainted. */ public void repaint(long tm, int x, int y, int width, int height) { Component p = getParent(); if (p instanceof MapBean) { ((MapBean) p).setBufferDirty(true); if (Debug.debugging("basic")) { Debug.output(getName() + "|Layer: repaint(tm=" + tm + ", x=" + x + ", y=" + y + ", width=" + width + ", height=" + height + ")"); } // How dangerous is this? Let the MapBean manage the // repaint call? Seems to work OK, and lets the buffered // MapBeans work better when they are embedded in other // components. It's this call here that makes the // BufferedLayer work right. // This repaint request has been changed to call a // specific // method on the MapBean, which includes the layer making // the request. This is a hook for a policy object in the // MapBean to make a decision on whether to honor the // request, or to handle it in a different way if the // environment dictates that should happen. // ((MapBean)p).repaint(); to -> ((MapBean) p).repaint(this); } else if (p != null) { p.repaint(tm, x, y, width, height); } else { super.repaint(tm, x, y, width, height); } } /** * This method is here to provide a default action for Layers as they act as * a ProjectionPainter. Normally, ProjectionPainters are expected to receive * the projection, gather/create OMGraphics that apply to the projection, * and render them into the Graphics provided. This is supposed to be done * in the same thread that calls this function, so the caller knows that * when this method returns, everything that the ProjectionPainter needed to * do is complete. * <P> * If the layer doesn't override this method, then the paint(Graphics) * method will be called. * * @param proj Projection of the map. * @param g java.awt.Graphics to draw into. */ public void renderDataForProjection(Projection proj, Graphics g) { if (!isProjectionOK(proj)) { return; } paint(g); } /** * Method that responds whether the Layer should render on the map, given a * particular projection. The method currently just tests the projection's * scale against the min and max values set on the layer. * * @param proj The projection to test against. * @return true if OK. */ public boolean isProjectionOK(Projection proj) { return !(proj == null || proj.getScale() < minScale || proj.getScale() > maxScale); } /** * This method is called when the layer is added to the MapBean * * @param cont Container */ public void added(Container cont) {} /** * This method is called after the layer is removed from the MapBean and * when the projection changes. We recommend that Layers override this * method and nullify memory-intensive variables. * * @param cont Container */ public void removed(Container cont) {} /** * Part of a layer hack to notify the component listener when the component * is hidden. These components don't receive the ComponentHidden * notification. Remove when it works. */ protected ListenerSupport localHackList; /** * Part of a layer hack to notify the component listener when the component * is hidden. These components don't receive the ComponentHidden * notification. Remove when it works. Set to false to test. */ protected boolean doHack = true; /** * Part of a layer hack to notify the component listener when the component * is hidden. These components don't receive the ComponentHidden * notification. Remove when it works. */ public void setVisible(boolean show) { super.setVisible(show); if (doHack && !show) { notifyHideHack(); } } /** * Part of a layer hack to notify the component listener when the component * is hidden. These components don't receive the ComponentHidden * notification. Remove when it works. */ public void addComponentListener(ComponentListener cl) { super.addComponentListener(cl); if (localHackList == null) { localHackList = new ListenerSupport(this); } localHackList.addListener(cl); } /** * Part of a layer hack to notify the component listener when the component * is hidden. These components don't receive the ComponentHidden * notification. Remove when it works. */ public void removeComponentListener(ComponentListener cl) { super.removeComponentListener(cl); if (localHackList != null) { localHackList.removeListener(cl); } } /** * Part of a layer hack to notify the component listener when the component * is hidden. These components don't receive the ComponentHidden * notification. Remove when it works. */ public void notifyHideHack() { if (localHackList == null) { return; } ComponentEvent ce = new ComponentEvent(this, ComponentEvent.COMPONENT_HIDDEN); for (Iterator it = localHackList.iterator(); it.hasNext();) { ((ComponentListener) it.next()).componentHidden(ce); } } /** * Set whether the Layer should be added to the BeanContext. */ public void setAddToBeanContext(boolean set) { addToBeanContext = set; } /** * Set whether the Layer should be added to the BeanContext. */ public boolean getAddToBeanContext() { return addToBeanContext; } /** * Mark the layer as one that should be considered a background layer. What * that means is up to the MapBean or application. */ public void setAddAsBackground(boolean set) { addAsBackground = set; } /** * Check to see if the layer is marked as one that should be considered a * background layer. What that means is up to the MapBean or application. * * @return true if layer is a background layer. */ public boolean getAddAsBackground() { return addAsBackground; } /** * Mark the layer as removable, or one that can be deleted from the * application. What that means is up to the LayerHandler or other * application components. */ public void setRemovable(boolean set) { removable = set; } /** * Check to see if the layer is marked as one that can be removed from an * application. * * @return true if layer should be allowed to be deleted. */ public boolean isRemovable() { return removable; } /** * Check to see if the removable layer can be removed now. * * @return true if layer should be allowed to be deleted. */ public boolean removeConfirmed() { return true; } /** * This is the method that your layer can use to find other objects within * the MapHandler (BeanContext). This method gets called when the Layer gets * added to the MapHandler, or when another object gets added to the * MapHandler after the Layer is a member. If the LayerHandler creates the * Layer from properties, the LayerHandler will add the Layer to the * BeanContext if Layer.addToBeanContext is true. It is false by default. * * For Layers, this method doesn't do anything by default. If you need your * layer to get ahold of another object, then you can use the Iterator to go * through the objects to look for the one you need.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -