package fi.otavanopisto.muikku.plugins.workspace;
import java.util.List;
import javax.enterprise.event.Observes;
import javax.inject.Inject;
import fi.otavanopisto.muikku.plugins.material.events.QueryFieldDeleteEvent;
import fi.otavanopisto.muikku.plugins.material.events.QueryFieldUpdateEvent;
import fi.otavanopisto.muikku.plugins.material.model.QueryField;
import fi.otavanopisto.muikku.plugins.workspace.model.WorkspaceMaterialField;
public class QueryFieldChangeListener {
@Inject
private WorkspaceMaterialFieldController workspaceMaterialFieldController;
public void onQueryOrganizerFieldUpdate(@Observes QueryFieldUpdateEvent event) {
if (event.getMaterialField().getType().equals("application/vnd.muikku.field.organizer")) {
QueryField queryField = event.getQueryField();
List<WorkspaceMaterialField> workspaceMaterialFields = workspaceMaterialFieldController.listWorkspaceMaterialFieldsByQueryField(queryField);
for (WorkspaceMaterialField workspaceMaterialField : workspaceMaterialFields) {
workspaceMaterialFieldController.updateWorkspaceMaterialField(workspaceMaterialField, event.getMaterialField(), event.getRemoveAnswers());
}
}
}
public void onQuerySorterFieldUpdate(@Observes QueryFieldUpdateEvent event) {
if (event.getMaterialField().getType().equals("application/vnd.muikku.field.sorter")) {
QueryField queryField = event.getQueryField();
List<WorkspaceMaterialField> workspaceMaterialFields = workspaceMaterialFieldController.listWorkspaceMaterialFieldsByQueryField(queryField);
for (WorkspaceMaterialField workspaceMaterialField : workspaceMaterialFields) {
workspaceMaterialFieldController.updateWorkspaceMaterialField(workspaceMaterialField, event.getMaterialField(), event.getRemoveAnswers());
}
}
}
public void onQuerySelectFieldUpdate(@Observes QueryFieldUpdateEvent event) {
if (event.getMaterialField().getType().equals("application/vnd.muikku.field.select")) {
QueryField queryField = event.getQueryField();
List<WorkspaceMaterialField> workspaceMaterialFields = workspaceMaterialFieldController.listWorkspaceMaterialFieldsByQueryField(queryField);
for (WorkspaceMaterialField workspaceMaterialField : workspaceMaterialFields) {
workspaceMaterialFieldController.updateWorkspaceMaterialField(workspaceMaterialField, event.getMaterialField(), event.getRemoveAnswers());
}
}
}
public void onQueryMultiSelectFieldUpdate(@Observes QueryFieldUpdateEvent event) {
if (event.getMaterialField().getType().equals("application/vnd.muikku.field.multiselect")) {
QueryField queryField = event.getQueryField();
List<WorkspaceMaterialField> workspaceMaterialFields = workspaceMaterialFieldController.listWorkspaceMaterialFieldsByQueryField(queryField);
for (WorkspaceMaterialField workspaceMaterialField : workspaceMaterialFields) {
workspaceMaterialFieldController.updateWorkspaceMaterialField(workspaceMaterialField, event.getMaterialField(), event.getRemoveAnswers());
}
}
}
public void onQueryFieldDelete(@Observes QueryFieldDeleteEvent event) {
QueryField queryField = event.getQueryField();
List<WorkspaceMaterialField> workspaceMaterialFields = workspaceMaterialFieldController.listWorkspaceMaterialFieldsByQueryField(queryField);
for (WorkspaceMaterialField workspaceMaterialField : workspaceMaterialFields) {
workspaceMaterialFieldController.deleteWorkspaceMaterialField(workspaceMaterialField, event.getRemoveAnswers());
}
}
}