@Override
 public void unlock() {
   if (locked) {
     locked = false;
     LockInteractionEvent.fire(this, false);
     if (hasPendingNavigation()) {
       Command navigation = defferedNavigation;
       defferedNavigation = null;
       navigation.execute();
     }
   }
 }
 private void lock() {
   if (!locked) {
     locked = true;
     LockInteractionEvent.fire(this, true);
   }
 }