/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package org.dlect.controller;
import org.dlect.controller.event.ControllerListenable;
import org.dlect.controller.event.ControllerState;
import org.dlect.controller.event.ControllerType;
import org.dlect.exception.DLectException;
import org.dlect.provider.WrappedProvider;
/**
*
* @author lee
*/
public class SubjectController extends ControllerListenable<SubjectController> {
private final MainController ctl;
public SubjectController(MainController ctl) {
this.ctl = ctl;
}
@Override
public void init() {
// No op
}
public void findSubjects() throws DLectException {
event(ControllerType.SUBJECT).state(ControllerState.STARTED).fire();
boolean event = false;
try {
WrappedProvider provider = ctl.getProviderHelper().getProvider();
provider.getSubjects();
event(ControllerType.SUBJECT).state(ControllerState.COMPLETED).fire();
event = true;
} finally {
// Always fire a fail event. Even if a non-DLectException was thrown.
if (!event) {
event(ControllerType.SUBJECT).state(ControllerState.FAILED).fire();
}
}
}
}