package org.peerbox.forcesync; import java.nio.file.Path; import org.peerbox.app.AppContext; import org.peerbox.notifications.InformationNotification; import org.peerbox.view.tray.SynchronizationCompleteNotification; import org.peerbox.view.tray.SynchronizationStartsNotification; import com.google.inject.Inject; public class ForceSyncHandler implements IForceSyncHandler{ private AppContext appContext; @Inject public ForceSyncHandler(AppContext appContext) { this.appContext = appContext; } @Override public void forceSync(Path topLevel) { appContext.getMessageBus().publish(new ForceSyncMessage(topLevel)); ForceSync forceSync = new ForceSync(appContext.getCurrentClientContext()); appContext.getMessageBus().publish(new SynchronizationStartsNotification()); forceSync.forceSync(topLevel); appContext.getMessageBus().publish(new SynchronizationCompleteNotification()); appContext.getMessageBus().publish(new InformationNotification("Forced synchronization complete", "Possible inconsistencies should be resolved now.")); } @Override public void forceSync() { forceSync(appContext.getCurrentClientContext().getUserConfig().getRootPath()); } }