package org.ourproject.massmob.client; import com.google.inject.Inject; import com.thezukunft.wave.connector.Participant; import com.thezukunft.wave.connector.Wave; public class StateManager { private final Participant viewer; private final Wave wave; private final UserSelfPreferences userPrefs; private boolean enabled; @Inject public StateManager(final Wave wave, final UserSelfPreferences userPrefs) { this.wave = wave; this.userPrefs = userPrefs; viewer = wave.getViewer(); enabled = true; } public String getAnswer(final Participant part) { return wave.getState().get(genKey(part, CustomConstants.ANSWER)); } public boolean getAssistantOpen() { return Boolean.parseBoolean(userPrefs.get(CustomConstants.ASSISTOPEN, CustomConstants.DEFASSISTOPEN)); } public boolean getDescOpen() { return Boolean.parseBoolean(userPrefs.get(CustomConstants.DESCOPEN, CustomConstants.DEFDESCOPEN)); } public String getStatus(final Participant part) { return getValue(genKey(part, CustomConstants.STATUS)); } public String getValue(final String key) { return wave.getState().get(key); } public void setAnswer(final String answer) { setValue(genKey(viewer, CustomConstants.ANSWER), answer); } public void setAssistanceOpen(final boolean open) { userPrefs.set(CustomConstants.ASSISTOPEN, Boolean.toString(open)); } public void setDescriptionOpen(final boolean open) { userPrefs.set(CustomConstants.DESCOPEN, Boolean.toString(open)); } public void setEnabled(final boolean enabled) { this.enabled = enabled; } public void setStatus(final String status) { setValue(genKey(viewer, CustomConstants.STATUS), status); } public void setValue(final String key, final String value) { if (enabled) { wave.getState().submitValue(key, value); } } private String genKey(final Participant part, final String key) { return new StringBuffer().append(part.getId()).append(":").append(key).toString(); } }