/* * 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.helper.subject; import org.dlect.controller.MainController; import org.dlect.controller.event.ControllerEvent; import org.dlect.controller.event.ControllerState; import org.dlect.controller.event.ControllerType; import org.dlect.controller.helper.Controller; import org.dlect.events.Event; import org.dlect.events.EventListener; import org.dlect.model.Database; /** * * @author lee */ public class SubjectDisplayUpdater implements EventListener { private final Database d; private SubjectDisplayUpdateHandler sduh = null; protected SubjectDisplayUpdater(Database d) { this.d = d; } @Override public void processEvent(Event e) { if (e instanceof ControllerEvent) { ControllerEvent ce = (ControllerEvent) e; if (ce.getEventID() == ControllerType.SUBJECT) { if (ce.getAfter() == ControllerState.STARTED) { if (d.getSemesters().isEmpty()) { sduh = new EmptySubjectDisplayUpdateHandler(d); } else { sduh = new UpdatingSubjectDisplayUpdateHandler(d); } } else { if (sduh != null) { sduh.updateSubjects(); } } } } } /** * All instances of this class are equal. This returns true iff the object is the same type as this class. * * @param o {@inheritDoc } * * @return {@inheritDoc } */ @Override public boolean equals(Object o) { return o instanceof SubjectDisplayUpdater; } /** * All instances of this class are equal, so all hash codes are the same. * * @return A pre-defined hash code. */ @Override public int hashCode() { return 1029456435; } public static void registerOn(MainController mc) { SubjectDisplayUpdater sdu = new SubjectDisplayUpdater(mc.getDatabaseHandler().getDatabase()); mc.addListener(sdu, Controller.class); } }