Object source = ae.getSource();
    public void actionPerformed(ActionEvent ae) {        String command = ae.getActionCommand().intern();        Debug.message("drawingtool", "DrawingToolLauncher.actionPerformed(): "                + command);        Object source = ae.getSource();        //  This is important. We need to set the current projection        //  before setting the projection in the MapBean. That way,        //  the projectionChanged method actions won't get fired        if (command == CreateCmd) {            // Get the active EditToolLoader            DrawingTool dt = getDrawingTool();            if (dt instanceof OMDrawingTool) {                OMDrawingTool omdt = (OMDrawingTool) dt;                if (omdt.isActivated()) {                    omdt.deactivate();                }            }            if (dt != null && currentCreation != null                    && currentRequestor != null) {                // Copy the default GraphicAttributes into another                // copy...                GraphicAttributes ga = (GraphicAttributes) defaultGraphicAttributes.clone();                // fire it up!                dt.setBehaviorMask(OMDrawingTool.DEFAULT_BEHAVIOR_MASK);                dt.create(currentCreation, ga, currentRequestor);            } else {                StringBuffer sb = new StringBuffer();                StringBuffer em = new StringBuffer();                if (dt == null) {                    sb.append("   No drawing tool is available!\n");                    em.append(i18n.get(OMDrawingToolLauncher.class,                            "noDrowingTool",                            "   No drawing tool is available!\n"));                } else {                    sb.append("   Drawing tool OK.\n");                }                if (currentCreation == null) {                    sb.append("   No valid choice of graphic to create.\n");                    em.append(i18n.get(OMDrawingToolLauncher.class,                            "noValidChoice",                            "   No valid choice of graphic to create.\n"));                } else {                    sb.append("   Graphic choice OK.\n");                }                if (currentRequestor == null) {                    sb.append("   No valid receiver for the created graphic.\n");                    em.append(i18n.get(OMDrawingToolLauncher.class,                            "noValidReceiver",                            "   No valid receiver for the created graphic.\n"));                } else {                    sb.append("   Graphic receiver OK.\n");                }                Debug.output("OMDrawingToolLauncher: Something is not set:\n"                        + sb.toString());                MapHandler mapHandler = (MapHandler) getBeanContext();                if (mapHandler != null) {                    InformationDelegator id = (InformationDelegator) mapHandler.get("com.bbn.openmap.InformationDelegator");                    if (id != null) {                        id.displayMessage(i18n.get(OMDrawingToolLauncher.class,                                "problem",                                "Problem"),                                i18n.get(OMDrawingToolLauncher.class,                                        "problemCreatingGraphic",                                        "Problem creating new graphic:\n")                                        + em.toString());                    }                }            }        }    }