code: public void onClick(MenuItemClickEvent event) {
  		Layer<?> layer = mapWidget.getMapModel().getSelectedLayer();
  		if (layer != null && layer instanceof VectorLayer) {
  			mapWidget.getMapModel().getFeatureEditor().startEditing(null, null);
  			VectorLayer vLayer = (VectorLayer) layer;
  			if (vLayer.getLayerInfo().getLayerType() == LayerType.POINT) {
  				controller.setController(new PointEditController(mapWidget, controller));
  			} else if (vLayer.getLayerInfo().getLayerType() == LayerType.LINESTRING) {
  				controller.setController(new LineStringEditController(mapWidget, controller));
  			} else if (vLayer.getLayerInfo().getLayerType() == LayerType.MULTILINESTRING) {
  				controller.setController(new MultiLineStringEditController(mapWidget, controller));
  			} else if (vLayer.getLayerInfo().getLayerType() == LayerType.POLYGON) {
  				controller.setController(new PolygonEditController(mapWidget, controller));
  			} else if (vLayer.getLayerInfo().getLayerType() == LayerType.MULTIPOLYGON) {
  				controller.setController(new MultiPolygonEditController(mapWidget, controller));
  			}
  			controller.setEditMode(EditMode.INSERT_MODE);
  		}
  	}
docs: Activate editing, and set the correct child editing controller on the parent editing controller.