@Override
 public void createPartControl(Composite parent) {
   this.parent = parent;
   backgroundColor = parent.getBackground();
   new SyncViewDropTarget(this, parent);
   if (instance.current() == null) setDefaultName();
 }
 @Override
 public final boolean synchronize(Clock clock) {
   if (!viewLock.acquire()) return false;
   T current = instance.current();
   boolean result = synchronizeIFN(clock, current);
   viewLock.release();
   unprotectedSynchronization(current);
   return result;
 }