package com.jakeapp.gui.swing.callbacks; import com.jakeapp.core.domain.Project; /** * The global ProjectChanged-Callback Interface. * Fires events when projects change. * Every registrant get all events. * Project is saved as event source. */ public interface ProjectChangedCallback { /** * Inner class that saves project & change reason */ public class ProjectChangedEvent { private Project project; private Reason reason; public ProjectChangedEvent(Project project, Reason reason) { this.project = project; this.reason = reason; } public Project getProject() { return this.project; } public Reason getReason() { return this.reason; } public enum Reason { Created, StartStopStateChanging, StartStopStateChanged, Name, Deleted, Joined, Rejected, People, Invited, Syncing, Files } public boolean isWorking() { return reason == Reason.StartStopStateChanging; } } public void projectChanged(final ProjectChangedEvent ev); }