de.bsvrz.sys.startstopp.buv
Class NutzerSchnittstelle

java.lang.Object
  extended by de.bsvrz.sys.startstopp.buv.NutzerSchnittstelle
All Implemented Interfaces:
java.lang.Runnable

public class NutzerSchnittstelle
extends java.lang.Object
implements java.lang.Runnable

Klasse realisiert die Nutzerschnittstelle (Telnet Interface) der StartStopp Applikation

Author:
Dambach Werke GmbH

Field Summary
private  CmdInterpreter cmdInt
          Kommando Interpreter
private  int cmdPort
          Port
private static de.bsvrz.sys.funclib.debug.Debug logger
          Debug
private  int m_counterUpdateProzesse
           
private  int m_counterUpdateProzesseRemote
           
private  CmdMenu m_subMenuProzesse
          Untermenü Prozessdaten
private  CmdMenu m_subMenuProzesseRemote
          Untermenü Prozessdaten Remoterechner
private  CmdMenu m_subMenuStartStoppBloecke
          Untermenü StartStopp Blöcke
static int SEND_TIMEOUT
          Max.
private  int timeout
          Timeout
 
Constructor Summary
NutzerSchnittstelle(int port)
          Erzeugt den Telnet Server.
 
Method Summary
 void aktualisiereProzessEintraege()
          Methode mit der die anderen Threads der Benutzeroberfläche mitteilen, dass sich die Prozessdaten geändert haben.
 void aktualisiereProzessEintraegeRemote()
          Methode mit der die anderen Threads der Benutzeroberfläche mitteilen, dass sich die Prozessdaten geändert haben.
private  ProzessDaten bestimmeProzessDatenInkarnation(java.lang.String inkarnationsName)
          Methode zum Bestimmen der Prozessdaten eines Prozesses.
private  ProzessDaten bestimmeProzessDatenRemote(java.lang.String text)
          Methode zum Bestimmen der Prozessdaten eines Remoteprozesses.
private  StartStoppBlock bestimmeStartStoppBlock(java.lang.String text)
          Methode zum Bestimmen der StartStoppBlock Daten.
private  java.lang.String eingabeOhneSteuerzeichen(java.lang.String eingabe)
          Methode entfernt die Steuerzeichen aus dem Eingabestring
private  void erzeugeProzessEintraege()
          Methode zum Erstellen der Prozesseinträge als Menü.
private  void erzeugeProzessEintraegeRemote()
          Methode zum Erstellen der Prozesseinträge der Remoterechner als Menü.
 void erzeugeStartStoppEintraege()
          Methode zum Erstellen der StartStopp Block Einträge als Menü.
 void run()
          Thread prüft alle 10 Sekunden ob sich die Prozesseinträge geändert haben, wenn ja werden die Prozesseinträge aktualisiert.
private  java.util.List<ProzessDaten> sortProzessDaten(java.util.List<ProzessDaten> alleProzessDaten)
          Methode zum alphabetischen Sortieren der einzelnen Prozesse
private  java.util.List<StartStoppBlock> sortStartStoppBloecke(java.util.List<StartStoppBlock> alleStartStoppBloecke)
          Methode zum alphabetischen Sortieren der StartStopp Blöcke
 void start()
          Startet den Telnet Server.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

private static final de.bsvrz.sys.funclib.debug.Debug logger
Debug


SEND_TIMEOUT

public static int SEND_TIMEOUT
Max. Zeit der Inaktivität, nach der der Server die Verbindung zum Client beendet.


cmdInt

private CmdInterpreter cmdInt
Kommando Interpreter


cmdPort

private int cmdPort
Port


timeout

private int timeout
Timeout


m_subMenuStartStoppBloecke

private CmdMenu m_subMenuStartStoppBloecke
Untermenü StartStopp Blöcke


m_subMenuProzesse

private CmdMenu m_subMenuProzesse
Untermenü Prozessdaten


m_subMenuProzesseRemote

private CmdMenu m_subMenuProzesseRemote
Untermenü Prozessdaten Remoterechner


m_counterUpdateProzesse

private int m_counterUpdateProzesse

m_counterUpdateProzesseRemote

private int m_counterUpdateProzesseRemote
Constructor Detail

NutzerSchnittstelle

public NutzerSchnittstelle(int port)
Erzeugt den Telnet Server. Startet ihn jedoch nicht - dazu muss start() aufgerufen werden.

Parameters:
port - Port des Telnet Servers
Method Detail

start

public void start()
Startet den Telnet Server.


aktualisiereProzessEintraege

public void aktualisiereProzessEintraege()
Methode mit der die anderen Threads der Benutzeroberfläche mitteilen, dass sich die Prozessdaten geändert haben. Dies löst in einem Thread aus, dass die Klassenvariabel m_subMenuProzesse neu gebildet wird. Befindet man sich nämlich in einem Submenü dieses Menüs, würden beim Betätigen von Aufwärts die Prozessdaten nicht mehr aktuell sein.


erzeugeProzessEintraege

private void erzeugeProzessEintraege()
Methode zum Erstellen der Prozesseinträge als Menü. Methode muss immer dann aufgerufen werden, wenn sich an der Anzahl der Inkarnationen was ändert.


sortProzessDaten

private java.util.List<ProzessDaten> sortProzessDaten(java.util.List<ProzessDaten> alleProzessDaten)
Methode zum alphabetischen Sortieren der einzelnen Prozesse

Parameters:
alleProzessDaten -
Returns:
Liste mit den IDs der sortierten Prozesse

aktualisiereProzessEintraegeRemote

public void aktualisiereProzessEintraegeRemote()
Methode mit der die anderen Threads der Benutzeroberfläche mitteilen, dass sich die Prozessdaten geändert haben. Dies löst in einem Thread aus, dass die Klassenvariabel m_subMenuProzesse neu gebildet wird. Befindet man sich nämlich in einem Submenü dieses Menüs, würden beim Betätigen von Aufwärts die Prozessdaten nicht mehr aktuell sein.


erzeugeProzessEintraegeRemote

private void erzeugeProzessEintraegeRemote()
Methode zum Erstellen der Prozesseinträge der Remoterechner als Menü. Methode muss immer dann aufgerufen werden, wenn sich an der Anzahl der Inkarnationen was ändert.


bestimmeProzessDatenInkarnation

private ProzessDaten bestimmeProzessDatenInkarnation(java.lang.String inkarnationsName)
Methode zum Bestimmen der Prozessdaten eines Prozesses. Für den Prozess wird ein String übergeben, der den Namen einer gültigen Inkarnation enthalten muss

Parameters:
inkarnationsName - Text der den Namen einer gültigen Inkarnation enthalten muss
Returns:
null Inkarnation nicht gefunden sonst Prozessdaten der Inkarnation

bestimmeProzessDatenRemote

private ProzessDaten bestimmeProzessDatenRemote(java.lang.String text)
Methode zum Bestimmen der Prozessdaten eines Remoteprozesses. Für den Prozess wird ein String übergeben, der den Namen einer gültigen Inkarnation enthalten muss

Parameters:
text - Text der den Namen einer gültigen Inkarnation enthalten muss
Returns:
null Inkarnation nicht gefunden sonst Prozessdaten der Inkarnation

eingabeOhneSteuerzeichen

private java.lang.String eingabeOhneSteuerzeichen(java.lang.String eingabe)
Methode entfernt die Steuerzeichen aus dem Eingabestring

Parameters:
eingabe - Eingabe mit Steuerzeichen
Returns:
Eingabe ohne Steuerzeichen

erzeugeStartStoppEintraege

public void erzeugeStartStoppEintraege()
Methode zum Erstellen der StartStopp Block Einträge als Menü. Methode muss immer dann aufgerufen werden, wenn sich an der Anzahl der StartStopp Blöcke was ändert.


sortStartStoppBloecke

private java.util.List<StartStoppBlock> sortStartStoppBloecke(java.util.List<StartStoppBlock> alleStartStoppBloecke)
Methode zum alphabetischen Sortieren der StartStopp Blöcke

Parameters:
alleStartStoppBloecke - StartStopp Blöcke unsortiert
Returns:
StartStopp Blöcke sortiert

bestimmeStartStoppBlock

private StartStoppBlock bestimmeStartStoppBlock(java.lang.String text)
Methode zum Bestimmen der StartStoppBlock Daten. Für den StartStopp Block wird ein String übergeben, der den Namen eines gültigen StartStopp Blocks enthalten muss

Parameters:
text - Text der den Namen eines gültigen StartStoppBlocks enthalten muss
Returns:
null StartStopp Block nicht gefunden sonst StartStopp Block

run

public void run()
Thread prüft alle 10 Sekunden ob sich die Prozesseinträge geändert haben, wenn ja werden die Prozesseinträge aktualisiert.

Specified by:
run in interface java.lang.Runnable