package Elevator; import java.awt.Graphics; import java.awt.TextField; import java.lang.NullPointerException; public class LiftBesturingSysteem { public static final int RICHTINGSTIL = 0; public static final int RICHTINGOMLAAG = 1; public static final int RICHTINGOMHOOG = 2; public TextField statusVeld; private int aantalEtages = 0; private int aantalLiften = 0; public Etage etages[]; public Lift liften[]; private HoofdWachtrij hoofdWachtrij; private Graphics graphics; public LiftBesturingSysteem(int e, int l, Graphics g) { aantalEtages = e; aantalLiften = l; graphics = g; //maak hoofdwachtrij hoofdWachtrij = new HoofdWachtrij(aantalEtages); initSysteem(); } public void initSysteem(){ //maak onderste etage etages = new Etage[aantalEtages]; etages[0] = new Etage(this,0,Etage.ONDERETAGE); //maak middelste etages for(int i = 1; i < (aantalEtages - 1); i++){ etages[i] = new Etage(this,i,Etage.MIDDENETAGE); } //maak bovenste etage etages[(aantalEtages - 1)] = new Etage(this,(aantalEtages - 1),Etage.BOVENETAGE); //maak liften... liften = new Lift[aantalLiften]; for(int i = 0; i < aantalLiften; i++){ liften[i] = new Lift(this,i,graphics); liften[i].start(); } } public void setStatusVeld(TextField t){ statusVeld = t; } public int getAantalEtages() { return aantalEtages; } public int getAantalLiften() { return aantalLiften; } public void voegToeInHoofdwachtrij(int e, int r){ hoofdWachtrij.addToWachtrij(e, r); } public int getNieuweEtage(int currentEtageLift){ return hoofdWachtrij.getNewEtage(); } public boolean isEtageInWachrij(int etageId, int richting){ return hoofdWachtrij.existsinWachtrij(etageId, richting); } public void verwijderEtageVanWachtrij(int etageId, int richting){ hoofdWachtrij.removeFromWachtrij(etageId, richting); clearButton(etageId,richting); } public void clearButton(int etageId, int richting){ if(etages[etageId].omlaag != null){ etages[etageId].omlaag.knopUit(); } if(etages[etageId].omhoog != null){ etages[etageId].omhoog.knopUit(); } } }