⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 layer.java

📁 OpenMap是一个基于JavaBeansTM的开发工具包。利用OpenMap你就能够快速构建用于访问legacy数据库的应用程序与applets。OpenMap提供了允许用户查看和操作地理空间信息的
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
     *        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 + -