protected void addPoint(
          SplineCADToolContext context, double pointX, double pointY, InputEvent event) {
        SplineCADTool ctxt = context.getOwner();

        SplineCADToolState endState = context.getState();

        context.clearState();
        try {
          ctxt.setQuestion(
              PluginServices.getText(this, "insert_next_point")
                  + ", "
                  + PluginServices.getText(this, "close")
                  + " "
                  + "["
                  + PluginServices.getText(this, "SplineCADTool.close")
                  + "] "
                  + PluginServices.getText(this, "cad.or")
                  + " "
                  + PluginServices.getText(this, "end")
                  + " "
                  + "["
                  + PluginServices.getText(this, "SplineCADTool.end")
                  + "]");
          ctxt.setDescription(new String[] {"close", "terminate", "cancel"});
          ctxt.addPoint(pointX, pointY, event);
        } finally {
          context.setState(endState);
        }
        return;
      }
      protected void Entry(SplineCADToolContext context) {
        SplineCADTool ctxt = context.getOwner();

        ctxt.setQuestion(PluginServices.getText(this, "insert_first_point"));
        ctxt.setDescription(new String[] {"cancel"});
        return;
      }