package com.niklim.clicktrace.controller.operation.session;
import com.google.inject.Inject;
import com.niklim.clicktrace.controller.ActiveSession;
import com.niklim.clicktrace.controller.operation.AbstractOperation;
import com.niklim.clicktrace.dialog.description.DescriptionDialog;
import com.niklim.clicktrace.dialog.description.DescriptionDialogCallback;
import com.niklim.clicktrace.model.Session;
import com.niklim.clicktrace.model.dao.SessionPropertiesWriter;
import com.niklim.clicktrace.service.SessionManager;
public class ChangeSessionDescriptionOperation extends AbstractOperation {
@Inject
private ActiveSession activeSession;
@Inject
private SessionManager sessionManager;
@Inject
private DescriptionDialog descriptionDialog;
@Override
public void perform() {
final Session session = activeSession.getSession();
if (session != null) {
descriptionDialog.open(new DescriptionDialogCallback() {
@Override
public void setText(String text) {
session.setDescription(text);
SessionPropertiesWriter writer = sessionManager.createSessionPropertiesWriter(session);
writer.saveSessionDescription();
}
@Override
public String getTitle() {
return session.getName() + " - description";
}
@Override
public String getText() {
return session.getDescription();
}
});
}
}
}