Klasse AuswahlManager<TID,TAuswahl,TDaten>

java.lang.Object
de.svws_nrw.core.utils.AuswahlManager<TID,TAuswahl,TDaten>
Typparameter:
TID - der gemeinsame Typ der ID der Auswahl- und Daten-Klassen
TAuswahl - der Typ der Auswahl-Listen-Objekte
TDaten - der Typ der Datenobjekte für eine Auswahl
Bekannte direkte Unterklassen:
FachListeManager, KlassenListeManager, KursListeManager, LehrerListeManager, RaumListeManager, ReligionListeManager, SchuelerKAoAManager, SchuelerListeManager, StundenplanUnterrichtListeManager, VermerkartenManager

public abstract class AuswahlManager<TID,TAuswahl,TDaten> extends Object
Diese Klasse stellt grundlegende Funktionalitäten für die Verwaltung einer Auswahl mit einer Manager-Klasse zur Verfügung. Ein solche Manager sollte von dieser Klasse abgeleitet werden.
  • Felddetails

    • liste

      @NotNull public final @NotNull AttributMitAuswahl<TID,TAuswahl> liste
      Ein Auswahl-Attribut für die Auswahliste. Dieses wird nicht für eine Filterung verwendet, sondern für eine Mehrfachauswahl
    • _schulform

      protected final Schulform _schulform
      Die Schulform der Schule
    • _schuljahresabschnitt

      protected final long _schuljahresabschnitt
      Der Schuljahresabschnitt, welcher für die Auswahl genutzt wird
    • _schuljahresabschnittSchule

      protected final long _schuljahresabschnittSchule
      Der Schuljahresabschnitt, in dem sich die Schule befindet
    • schuljahresabschnitte

      @NotNull public final @NotNull AttributMitAuswahl<Long,Schuljahresabschnitt> schuljahresabschnitte
      Das Filter-Attribut für die Schuljahresabschnitte - die Filterfunktion wird zur Zeit noch nicht genutzt
    • _filtered

      protected List<TAuswahl> _filtered
      Die gefilterte Liste, sofern sie schon berechnet wurde
    • _daten

      protected TDaten _daten
      Die Daten, sofern eine Auswahl vorhanden ist.
    • _eventHandlerFilterChanged

      @NotNull protected final @NotNull Runnable _eventHandlerFilterChanged
      Ein Handler für das Ereignis, dass der Filter angepasst wurde
    • _order

      @NotNull protected @NotNull List<Pair<String,Boolean>> _order
      Die Sortier-Ordnung, welche vom Comparator verwendet wird.
    • _filterPermitAuswahl

      protected boolean _filterPermitAuswahl
      Gibt an, ob die aktuelle Einzel-Auswahl auch bei dem Filter erlaubt wird oder nicht.
    • _vorherigeAuswahl

      protected TDaten _vorherigeAuswahl
      Die Daten aus der vorherigen Auswahl.
  • Konstruktordetails

    • AuswahlManager

      protected AuswahlManager(long schuljahresabschnitt, long schuljahresabschnittSchule, @NotNull @NotNull List<Schuljahresabschnitt> schuljahresabschnitte, Schulform schulform, @NotNull @NotNull Collection<TAuswahl> values, @NotNull @NotNull Comparator<TAuswahl> listComparator, @NotNull @NotNull Function<TAuswahl,TID> listeToId, @NotNull @NotNull Function<TDaten,TID> datenToId, @NotNull @NotNull List<Pair<String,Boolean>> order)
      Initialisiert die Auswahl-Manager-Instanz
      Parameter:
      schuljahresabschnitt - der Schuljahresabschnitt, für welchen die Auswahl bereitgestellt wird.
      schuljahresabschnittSchule - der Schuljahresabschnitt, in welchem sich die Schule aktuell befindet.
      schuljahresabschnitte - die Liste der Schuljahresabschnitte
      schulform - die Schulform, für welche die Auswahl bereitgestellt wird.
      values - die Werte für die Auswahlliste
      listComparator - ein comparator für das Vergleichen von Auswahl-Werten
      listeToId - eine Funktion für das Mappen eines Auswahl-Objektes auf seine ID
      datenToId - eine Funktion für das Mappen eines Daten-Objektes auf seine ID
      order - die Default-Sortierung für die Auswahl-Liste
  • Methodendetails

    • filtered

      @NotNull public @NotNull List<TAuswahl> filtered()
      Gibt eine gefilterte Auswahl-Liste zurück. Für die Filterung muss der Manager die Methode onFilter überschreiben.
      Gibt zurück:
      die gefilterte Liste
    • filterInvalidateCache

      public void filterInvalidateCache()
      Entfernt den aktuelle Cache für die gefilterte Liste und forciert so eine Neu-Berechnung der gecachten Liste
    • checkFilter

      protected abstract boolean checkFilter(@NotNull TAuswahl eintrag)
      Prüft, ob der angegebene Eintrag durch den Filter durchgelassen wird oder nicht.
      Parameter:
      eintrag - der zu prüfende Eintrag
      Gibt zurück:
      true, wenn der Eintrag den Filter passiert, und ansonsten false
    • compareAuswahl

      protected abstract int compareAuswahl(@NotNull TAuswahl a, @NotNull TAuswahl b)
      Vergleicht zwei Einträge der Auswahl miteinander.
      Parameter:
      a - der erste Eintrag
      b - der zweite Eintrag
      Gibt zurück:
      ein negativer Wert, 0 oder ein positiver Werte, wenn der erste Eintrag kleiner, gleich oder größer ist als der zweite Eintrag
    • onFilterChanged

      protected void onFilterChanged()
      Diese Methode kann überschrieben werden. Sie wird aufgerufen, wenn eine Änderung an einem Filter stattgefunden hat. Das Ereignis tritt auf bevor die alte gefilterte Liste ungültig wird.
    • onListeChanged

      protected void onListeChanged()
      Diese Methode kann überschrieben werden. Sie wird aufgerufen, wenn eine Änderung an der Liste der für die Mehrfachauswahl zulässigen Werte stattgefunden hat.
    • onMehrfachauswahlChanged

      protected void onMehrfachauswahlChanged()
      Diese Methode kann überschrieben werden. Sie wird aufgerufen, wenn eine Änderung an der Mehrfachauswahl stattgefunden hat.
    • orderSet

      public void orderSet(@NotNull @NotNull List<Pair<String,Boolean>> order)
      Setzt die Sortier-Ordnung für die gefilterten Listen. Hier wird eine Menge von Paaren angegeben, welche das zu sortierende Feld als String angebenen und als boolean ob es aufsteigend (true) oder absteigend (false) sortiert werden soll.
      Parameter:
      order - die Sortier-Ordnung
    • orderGet

      @NotNull public final @NotNull List<Pair<String,Boolean>> orderGet()
      Gibt die Sortier-Ordnung für die gefilterten Listen zurück als eine Menge von Paaren, welche das zu sortierende Feld als String angebenen und als boolean ob es aufsteigend (true) oder absteigend (false) sortiert werden soll.
      Gibt zurück:
      die Sortier-Ordnung
    • orderUpdate

      public void orderUpdate(@NotNull @NotNull String field, Boolean order)
      Aktualisiert die Reihenfolge bei der Sortierung für das angegebene Feld. Dabei werden vorhande Feld-Eintrage angepasst oder bei null entfernt. Nicht vorhande Feld-Einträge werden ergänzt, sofern eine Reihenfolge definiert wird.
      Parameter:
      field - das Feld
      order - die Reihenfolge für dieses Feld (ascending: true, descending: false, deaktivieren: null)
    • schulform

      @NotNull public @NotNull Schulform schulform()
      Gibt die Schulform der Schule zurück.
      Gibt zurück:
      die Schulform der Schule
    • hasDaten

      public boolean hasDaten()
      Gibt zurück, ob eine Auswahl und damit auch Daten vorliegen.
      Gibt zurück:
      true, wenn eine Auswahl und Daten vorliegen, und ansonsten false
    • daten

      @NotNull public TDaten daten()
      Gibt die Daten der aktuellen Auswahl zurück.
      Gibt zurück:
      die Daten
    • setDaten

      public void setDaten(TDaten daten) throws DeveloperNotificationException
      Setzt die Daten. Dabei wird ggf. die Auswahl angepasst. Die vorherige Auswahl wird gespeichert.
      Parameter:
      daten - die neuen Daten
      Löst aus:
      DeveloperNotificationException - falls die Daten nicht in der Auswahlliste vorhanden ist
    • onSetDaten

      protected boolean onSetDaten(@NotNull TAuswahl eintrag, @NotNull TDaten daten)
      Diese Methode wird aufgerufen, wenn neue Daten gesetzt werden. Hierüber kann ein Manager noch nötige Anpassungen an der Auswahlliste durchführen. Wurde die Auswahlliste so angepasst, dass Änderungen an der Sortierung daraus resultieren können, so ist true zurückzugeben.
      Parameter:
      eintrag - der Eintrag in der Auswahlliste
      daten - die neuen Daten für den Eintrag in der Auswahlliste
      Gibt zurück:
      gibt an, ob Anpassungen an der Auswahlliste vorgenommen wurden.
    • auswahlID

      public TID auswahlID()
      Gibt die ID der Auswahl zurück. Ist keine Auswahl vorhanden, so wird null zurückgegeben.
      Gibt zurück:
      die ID oder null
    • auswahl

      @NotNull public TAuswahl auswahl()
      Gibt den Eintrag der aktuellen Auswahl in der Liste zurück. Hiefür muss eine gültige Auswahl vorliegen. Dies kann ggf. vorher über hasDaten geprüft werden.
      Gibt zurück:
      der Eintrag in der Auswahlliste
      Löst aus:
      DeveloperNotificationException - wenn keine gültige Auswahl vorliegt
    • isFilterAuswahlPermitted

      public boolean isFilterAuswahlPermitted()
      Gibt zurück, ob die aktuelle Auswahl beim Filter erlaubt bleibt oder nicht.
      Gibt zurück:
      true, falls die aktuelle Auswahl beim Filtern erlaubt bleibt oder nicht.
    • setFilterAuswahlPermitted

      public void setFilterAuswahlPermitted(boolean value)
      Setzt, ob die aktuelle Auswahl beim Filter erlaubt bleibt oder nicht.
      Parameter:
      value - der neue boolean-Wert
    • getSchuljahresabschnittAuswahl

      public Schuljahresabschnitt getSchuljahresabschnittAuswahl()
      Gibt den Schuljahresabschnitt der Auswahl zurück.
      Gibt zurück:
      der Schuljahresabschnitt der Auswahl
    • getSchuljahresabschnittSchule

      @NotNull public @NotNull Schuljahresabschnitt getSchuljahresabschnittSchule()
      Gibt den Schuljahresabschnitt der Schule zurück.
      Gibt zurück:
      der Schuljahresabschnitt der Schule
    • getSchuljahr

      public int getSchuljahr()
      Gibt das Schuljahr des Schuljahresabschnitts der Schule zurück.
      Gibt zurück:
      das Schuljahr
    • istSchuljahresabschnittAktuell

      public boolean istSchuljahresabschnittAktuell()
      Gibt zurück, ob der Schuljahresabschnitt der Auswahl mit dem aktuellen Schuljahresabschnitt der Schule übereinstimmt.
      Gibt zurück:
      true, wenn die Schuljahresabschnitte übereinstimmen
    • istSchuljahresabschnittPlanung

      public boolean istSchuljahresabschnittPlanung()
      Gibt zurück, ob sich bei dem Schuljahresabschnitt der Auswahl um ein Abschnitt in Planung handelt, d.h. ob der Schuljahresabschnitt der Auswahl nach dem aktuellen Schuljahresabschnitt der Schule liegt.
      Gibt zurück:
      true, wenn der Schuljahresabschnitt der Auswahl ein Planungsabschnitt ist
    • istSchuljahresabschnittVergangenheit

      public boolean istSchuljahresabschnittVergangenheit()
      Gibt zurück, ob sich bei dem Schuljahresabschnitt der Auswahl um einen Abschnitt in der Vergangengheit handelt, d.h. ob der Schuljahresabschnitt der Auswahl vor dem aktuellen Schuljahresabschnitt der Schule liegt.
      Gibt zurück:
      true, wenn der Schuljahresabschnitt der Auswahl ein vergangener Abschnitt ist
    • getVorherigeAuswahl

      public TDaten getVorherigeAuswahl()
      Gibt die vorherige Auswahl zurück oder null, wenn es keine vorherige Auswahl gibt.
      Gibt zurück:
      vorherige Auswahl