event.getSource().removeListener(this);
return;
}
}
ILayer selectedLayer = event.getSource().getSelectedLayer();
switch( event.getType() ) {
case EditManagerEvent.PRE_COMMIT:{
Tool tool = ApplicationGIS.getToolManager().getActiveTool();
if (tool instanceof AbstractEditTool) {
AbstractEditTool aet = (AbstractEditTool) tool;
PrimitiveShape shape = aet.getHandler().getCurrentShape();
if (shape != null && shape.getEditGeom().isChanged())
aet.getContext()
.sendSyncCommand(
aet.getHandler().getCommand(
aet.getHandler().getAcceptBehaviours()));
committing=event.getSource();
}
break;
}case EditManagerEvent.POST_COMMIT:{
committing=null;
stopListening();
resetEditState(selectedLayer);
break;
}case EditManagerEvent.PRE_ROLLBACK:
resetEditState(selectedLayer);
committing=event.getSource();
break;
case EditManagerEvent.POST_ROLLBACK:
stopListening();
committing=null;
break;
case EditManagerEvent.SELECTED_LAYER:
ILayer oldValue = (ILayer) event.getOldValue();
ILayer newValue = (ILayer)event.getNewValue();
Lock lock2 = handler.getLock();
lock2.lock();
try {
if (handler.getCurrentState() != EditState.BUSY){
// TODO what to do when busy? Should probably wait until not busy?
}
if( handler.getCurrentState()!=EditState.ILLEGAL ){
storeCurrentState(oldValue);
getPreviousStateFromLayer(newValue);
storeCurrentShape(oldValue);
setCurrentShape(newValue);
}
} finally {
lock2.unlock();
}
if( !active() )
return;
if (ApplicationGIS.getOpenMaps().contains(newValue.getMap())) {
EditUtils.instance.cancelHideSelection(oldValue);
EditUtils.instance.hideSelectedFeatures(handler, newValue);
}
// Display.getDefault().asyncExec(new Runnable(){
//