package net.mms_projects.copy_it;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import net.mms_projects.copy_it.listeners.EnabledListener;
import net.mms_projects.copy_it.ui.UserInterfaceImplementation;
public class QueueFunctionality implements Activatable, SyncListener {
private boolean enabled;
private List<EnabledListener> enabledListeners = new ArrayList<EnabledListener>();
private UserInterfaceImplementation userInterfaceImplementation;
public QueueFunctionality(
UserInterfaceImplementation userInterfaceImplementation) {
this.userInterfaceImplementation = userInterfaceImplementation;
}
@Override
public void enable() {
this.enabled = true;
for (EnabledListener listener : this.enabledListeners) {
listener.onEnabled();
}
}
@Override
public void disable() {
this.enabled = false;
this.userInterfaceImplementation.getQueueUserInterface().close();
for (EnabledListener listener : this.enabledListeners) {
listener.onDisabled();
}
}
@Override
public boolean isEnabled() {
return this.enabled;
}
@Override
public void setEnabled(boolean enabled) {
if (enabled) {
this.enable();
} else {
this.disable();
}
}
@Override
public void addEnabledListener(EnabledListener listener) {
this.enabledListeners.add(listener);
}
@Override
public void onRemoteContentChange(String content, Date date) {
if (this.isEnabled()) {
this.userInterfaceImplementation.getQueueUserInterface()
.addContent(content, date);
}
}
}