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

📄 omdrawingtool.java

📁 openmap java写的开源数字地图程序. 用applet实现,可以像google map 那样放大缩小地图.
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
     *      * @param classname the classname of the graphic to create.     * @param requestor the Component that is requesting the     *        OMGraphic. The requestor gets notified when the user is     *        finished with the DrawingTool and the graphic is ready.     * @return OMGraphic of the classname given, null if the     *         DrawingTool can't create it.     */    public OMGraphic create(String classname, DrawingToolRequestor requestor) {        return create(classname, null, requestor);    }    /**     * Create a new OMGraphic, encased in a new EditableOMGraphic that     * can modify it. If a loader cannot be found that can handle a     * graphic with the given classname, this method will return a     * null object. If you aren't sure of the behavior mask set in the     * tool, and you want a particular behavior, set it before calling     * this method.     *      * @param classname the classname of the graphic to create.     * @param ga GraphicAttributes object that contains more     *        information about the type of line to be created.     * @param requestor the Component that is requesting the     *        OMGraphic. The requestor gets notified when the user is     *        finished with the DrawingTool and the graphic is ready.     * @return OMGraphic of the classname given, null if the     *         DrawingTool can't create it.     */    public OMGraphic create(String classname, GraphicAttributes ga,                            DrawingToolRequestor requestor) {        return create(classname, ga, requestor, isMask(SHOW_GUI_BEHAVIOR_MASK));    }    /**     * Create a new OMGraphic, encased in a new EditableOMGraphic that     * can modify it. If a loader cannot be found that can handle a     * graphic with the given classname, this method will return a     * null object. This method gives you the option of supressing the     * GUI for the EditableOMGraphic. If you aren't sure of the     * behavior mask set in the tool, and you want a particular     * behavior, set it before calling this method.     *      * @param classname the classname of the graphic to create.     * @param ga GraphicAttributes object that contains more     *        information about the type of line to be created.     * @param requestor the Component that is requesting the     *        OMGraphic. The requestor gets notified when the user is     *        finished with the DrawingTool and the graphic is ready.     * @param showGUI set to true (default) if a GUI showing attribute     *        controls should be displayed. The behaviorMask will be     *        adjusted accordingly.     * @return OMGraphic of the classname given, null if the     *         DrawingTool can't create it.     */    public OMGraphic create(String classname, GraphicAttributes ga,                            DrawingToolRequestor requestor, boolean showGUI) {        if (getCurrentEditable() != null) {            if (DEBUG) {                Debug.output("OMDrawingTool.edit(): can't create " + classname                        + ", drawing tool busy with another graphic.");            }            return null;        }        if (DEBUG) {            Debug.output("OMDrawingTool.create(" + classname + ")");        }        if (showGUI) {            if (DEBUG)                Debug.output("OMDrawingTool.create(): showing GUI per request");            setMask(SHOW_GUI_BEHAVIOR_MASK);        } else {            if (DEBUG)                Debug.output("OMDrawingTool.create(): NOT showing GUI per request");            unsetMask(SHOW_GUI_BEHAVIOR_MASK);        }        EditableOMGraphic eomg = getEditableGraphic(classname, ga);        if (eomg == null || eomg.getGraphic() == null) {            return null;        }        setAttributes(ga);        eomg.setShowGUI(isMask(SHOW_GUI_BEHAVIOR_MASK));        eomg.setActionMask(OMGraphic.ADD_GRAPHIC_MASK);        return edit(eomg, requestor);    }    /**     * Given an OMGraphic, wrap it in the applicable     * EditableOMGraphic, allow the user to make modifications, and     * then call requestor.drawingComplete(). If you aren't sure of     * the behavior mask set in the tool, and you want a particular     * behavior, set it before calling this method.     *      * @param g OMGraphic to modify     * @param requestor the Component that is requesting the     *        OMGraphic. The requestor gets notified when the user is     *        finished with the DrawingTool and the graphic is ready.     * @return OMGraphic being modified, null if the OMDrawingTool     *         can't figure out what to use for the modifications.     */    public OMGraphic edit(OMGraphic g, DrawingToolRequestor requestor) {        return edit(g, requestor, g.getShowEditablePalette());    }    /**     * Given an OMGraphic, wrap it in the applicable     * EditableOMGraphic, allow the user to make modifications, and     * then call requestor.drawingComplete(). This methods gives you     * the option to supress the GUI from the EditableOMGraphic. If     * you aren't sure of the behavior mask set in the tool, and you     * want a particular behavior, set it before calling this method.     *      * @param g OMGraphic to modify     * @param requestor the Component that is requesting the     *        OMGraphic. The requestor gets notified when the user is     *        finished with the DrawingTool and the graphic is ready.     * @param showGUI set to true (default) if a GUI showing attribute     *        controls should be displayed. The behaviorMask will be     *        adjusted accordingly.     * @return OMGraphic being modified, null if the OMDrawingTool     *         can't figure out what to use for the modifications.     */    public OMGraphic edit(OMGraphic g, DrawingToolRequestor requestor,                          boolean showGUI) {        if (g == null) {            if (DEBUG) {                Debug.output("OMDrawingTool.edit(): can't edit null OMGraphic.");            }            return null;        }        if (getCurrentEditable() != null) {            if (DEBUG) {                Debug.output("OMDrawingTool.edit(): can't edit "                        + g.getClass().getName()                        + ", drawing tool busy with another graphic.");            }            return null;        }        this.requestor = requestor;        if (showGUI) {            if (DEBUG)                Debug.output("OMDrawingTool.edit(): showing GUI per request");            setMask(SHOW_GUI_BEHAVIOR_MASK);        } else {            if (DEBUG)                Debug.output("OMDrawingTool.edit(): NOT showing GUI per request");            unsetMask(SHOW_GUI_BEHAVIOR_MASK);        }        EditableOMGraphic eomg = getEditableGraphic(g);        if (eomg != null) {            eomg.setShowGUI(isMask(SHOW_GUI_BEHAVIOR_MASK));            eomg.setActionMask(OMGraphic.UPDATE_GRAPHIC_MASK);            return edit(eomg, requestor);        }        return null;    }    /**     * Given an EditableOMGraphic, use it to make modifications, and     * then call requestor.drawingComplete(). The requestor is     * responsible for setting up the correct initial state of the     * EditableOMGraphic. The requestor will be given the action mask     * that is set in the EditableOMGraphic at this point, if no other     * external modifications to it are made. If you aren't sure of     * the behavior mask set in the tool, and you want a particular     * behavior, set it before calling this method.     *      * This method is called by other edit methods.     *      * @param eomg OMGraphic to modify     * @param requestor the Component that is requesting the     *        OMGraphic. The requestor gets notified when the user is     *        finished with the DrawingTool and the graphic is ready.     * @return OMGraphic being modified contained within the     *         EditableOMGraphic.     */    public OMGraphic edit(EditableOMGraphic eomg, DrawingToolRequestor requestor) {        if (setCurrentEditable(eomg)) {            // resetGUI() for current EOMG doesn't need to be called            // here, it's called later from activate            if (DEBUG) {                Debug.output("OMDrawingTool.edit success");            }            this.requestor = requestor;            if (currentEditable != null) {                graphicAttributes.setFrom(currentEditable.getGraphic());                activate();                // Check currentEditable in case activating caused                // something strange to happen, most likely with                // activating the MouseModes.                if (currentEditable != null) {                    return currentEditable.getGraphic();                }            }        }        if (DEBUG) {            Debug.output("OMDrawingTool.edit(): can't edit "                    + eomg.getClass().getName()                    + ", drawing tool busy with another graphic.");        }        return null;    }    /**     * A slightly different edit method, where the EditableOMGraphic     * is put directly into edit mode, and the mouse events     * immediately start making modifications to the OMGraphic. The     * palette is not shown, but if you set the     * GUI_VIA_POPUP_BEHAVIOR_MASK on the OMDrawingTool, the option to     * bring up the drawing tool palette will be presented to the     * user. If you aren't sure of the behavior mask set in the tool,     * and you want a particular behavior, set it before calling this     * method.     *      * @param g OMGraphic to modify     * @param requestor the Component that is requesting the     *        OMGraphic. The requestor gets notified when the user is     *        finished with the DrawingTool and the graphic is ready.     * @param e MouseEvent to use to start editing with.     * @return OMGraphic being modified.     */    public OMGraphic edit(OMGraphic g, DrawingToolRequestor requestor,                          MouseEvent e) {        OMGraphic ret = null;        if (getCurrentEditable() == null) {            EditableOMGraphic eomg = getEditableGraphic(g);            if (eomg != null) {                ret = edit(eomg, requestor, e);            }        }        return ret;    }    /**     * A slightly different edit method, where the EditableOMGraphic     * is put directly into edit mode, and the mouse events     * immediately start making modifications to the OMGraphic. If you     * aren't sure of the behavior mask set in the tool, and you want     * a particular behavior, set it before calling this method.     *      * @param eomg EditableOMGraphic to modify     * @param requestor the Component that is requesting the     *        OMGraphic. The requestor gets notified when the user is     *        finished with the DrawingTool and the graphic is ready.     * @param e MouseEvent to use to start editing with.     * @return OMGraphic being modified contained within the     *         EditableOMGraphic.     */    public OMGraphic edit(EditableOMGraphic eomg,                          DrawingToolRequestor requestor, MouseEvent e) {        OMGraphic ret = null;        if (eomg != null) {            eomg.setActionMask(OMGraphic.UPDATE_GRAPHIC_MASK);            ret = edit(eomg, requestor);            if (ret != null) {                currentEditable.handleInitialMouseEvent(e);            }        }        return ret;    }    /**     * Returns true of the OMGraphic is being edited, or is on an     * EditableOMGraphicList being manipulated.     */    public boolean isEditing(OMGraphic omg) {        boolean ret = false;        EditableOMGraphic eomg = getCurrentEditable();        if (eomg != null                && eomg.getGraphic() == omg                || (eomg instanceof EditableOMGraphicList && ((OMGraphicList) ((EditableOMGraphicList) eomg).getGraphic()).contains(omg))) {            ret = true;        }        return ret;    }    public void deselect(OMGraphic omg) {        if (DEBUG) {            Debug.output("OMDrawingTool.deselect()");        }        if (getCurrentEditable() != null) {            if (currentEditable.getGraphic() == omg) {                deactivate();            } else {                if (currentEditable instanceof EditableOMGraphicList) {                    ((EditableOMGraphicList) currentEditable).remove(omg);                    canvas.repaint();                }            }        }    }    /**     * @return true if the OMDrawingTool is editing where it wasn't     *         before.     */    public boolean select(OMGraphic omg, DrawingToolRequestor req, MouseEvent e) {        if (DEBUG) {            Debug.output("OMDrawingTool.select()");        }        OMGraphic ret = null;        boolean currentlyEditing = (getCurrentEditable() != null);        if (currentlyEditing) {            boolean repaintCanvas = true;            if (!(currentEditable instanceof EditableOMGraphicList)) {                if (DEBUG) {                    Debug.output("OMDrawingTool.select:  already working on OMGraphic, creating an EditableOMGraphicList for selection mode");                }                EditableOMGraphicList eomgl = new EditableOMGraphicList(new OMGraphicList());                eomgl.setProjection(getProjection());                DrawingToolRequestorList rl = new DrawingToolRequestorList();                // Add what's current to the requestor list                rl.add(currentEditable.getGraphic(), requestor);                // then add the current editable to the eomgl                eomgl.add(currentEditable);                currentEditable.removeEOMGListener(this);                // tell selectionlisteners to disregard the current                // thing.                setCurrentEditable(null);                // reset the requestor to the requestor list                requestor = rl;                // now reactivate with the eomgl                setCurrentEditable(eomgl);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -