    public void performAction() {
	FLyrVect lyr = null;
	MapControl mapCtrl = view.getMapControl();
	try {
	    mapCtrl.getMapContext().beginAtomicEvent();
	    lyr = wizard.createLayer(mapCtrl.getProjection());
	} catch (Exception e) {
	    NotificationManager.showMessageError(e.getLocalizedMessage(), e);
	    return;
	}
	if (lyr == null) {
	    return;
	}
	lyr.setVisible(true);
	mapCtrl.getMapContext().getLayers().addLayer(lyr);
	mapCtrl.getMapContext().endAtomicEvent();
	lyr.addLayerListener(CADExtension.getEditionManager());
	lyr.setActive(true);
	try {
	    lyr.setEditing(true);
	    VectorialEditableAdapter vea = (VectorialEditableAdapter) lyr
		    .getSource();
	    vea.getRules().clear();
	    if (vea.getShapeType() == FShape.POLYGON) {
		IRule rulePol = new RulePolygon();
		vea.getRules().add(rulePol);
	    }
	    StartEditing.startCommandsApplicable(view, lyr);
	    vea.getCommandRecord().addCommandListener(mapCtrl);
	    view.showConsole();
	    oldAction.performAction();
	} catch (ReadDriverException e) {
	    NotificationManager.addError(e);
	} catch (StartEditionLayerException e) {
	    NotificationManager.addError(e);
	}
    }

    public void performAction() {
	FLyrVect lyr = null;
	MapControl mapCtrl = view.getMapControl();
	try {
	    mapCtrl.getMapContext().beginAtomicEvent();
	    lyr = wizard.createLayer(mapCtrl.getProjection());
	} catch (Exception e) {
	    Throwable cause = e.getCause();
	    if (cause != null) {
		NotificationManager.showMessageError(
			cause.getLocalizedMessage(), e);
	    } else {
		NotificationManager
			.showMessageError(e.getLocalizedMessage(), e);
	    }
	    return;
	}
	if (lyr == null) {
	    return;
	}
	lyr.setVisible(true);
	mapCtrl.getMapContext().getLayers().addLayer(lyr);
	mapCtrl.getMapContext().endAtomicEvent();
	lyr.addLayerListener(CADExtension.getEditionManager());
	lyr.setActive(true);
	try {
	    lyr.setEditing(true);
	    VectorialEditableAdapter vea = (VectorialEditableAdapter) lyr
		    .getSource();
	    vea.getRules().clear();
	    if (vea.getShapeType() == FShape.POLYGON) {
		IRule rulePol = new RulePolygon();
		vea.getRules().add(rulePol);
	    }
	    StartEditing.startCommandsApplicable(view, lyr);
	    vea.getCommandRecord().addCommandListener(mapCtrl);
	    view.showConsole();
	    oldAction.performAction();
	} catch (ReadDriverException e) {
	    NotificationManager.addError(e);
	} catch (StartEditionLayerException e) {
	    NotificationManager.addError(e);
	}
    }
