Class WinAppDemo

java.lang.Object
  extended by de.frame4j.util.App
      extended by de.a_weinert.WinApp
          extended by WinAppDemo
All Implemented Interfaces:
AttrSettable, TextHelper.MessageComponents, UIInfo, ActionListener, ComponentListener, WindowListener, EventListener, DynamicMBean

public class WinAppDemo
extends WinApp

Test/Demo von WinApp (Gerüst einer graphischen Anwendung).

Diese Klasse demonstriert die Möglichkeiten der Klasse WinApp in einer text- und menuorientierten graphischen Anwendung. Siehe main()

Hinweis: Diese Anwendung läuft nicht ohne eine zugehörige .properties-Datei im aktuellen oder im jre/lib-Verzeichnis bzw. in einem ggf. .jar-File der Anwendung.

Öffentliche Felder des WinAppDemo-Objekts werden durch die Programmstartparameter-Auswertung der Klasse Prop automatisch gesetzt. Dies trifft auch auf einen Teil der geerbten Felder zu, siehe WinApp.go(String, Image).

Copyright © 2001 - 2003, 2005   Albrecht Weinert

Version:
1 (11.02.2010)
Author:
Albrecht Weinert
See Also:
MEVALogo, WinApp

Field Summary
 boolean allowExtras
          Alpha-Testerweiterungen ggf.
 boolean grafStart
          Start mit Zeichen- statt Textfenster.
 String imin
          Image input (Kamera-Adresse).
 String impass
          Image password (Kamera-Zugang).
 
Fields inherited from class de.a_weinert.WinApp
actSize, backGround, canvas, fileDialog, icon, killFast, lastShownText, LOG_SHOW_SIZE, menuBar, myCntPane, myFrame, OUT_SHOW_SIZE, preferredSize, showOutAuto, showOutConti, textPanel, textPanelCont, textPanelFont, textPanelFontSize, tickThread, twoTicks, xmlMBdescr
 
Fields inherited from class de.frame4j.util.App
ano, appBase, appIO, appStartTime, args, bgColor, err, fullClassName, help, INIT_ERROR, jmxRemoteNote, JOB_DONE_OK, log, LOG_OUT_ERROR, MAIN_THREAD_EXC, mainThread, myClass, name, NO_PARS_ERROR, objectName, out, outMode, packName, prop, retCode, runFlag, shortClassName, title, verbose, verbosity
 
Fields inherited from interface de.frame4j.net.AttrSettable
ILLEGAL_TYPE, ILLEGAL_VALUE, NO_ATTRIBUTE, NO_KNOWN_ATTRIBUTE, NO_VALUE, OK
 
Constructor Summary
WinAppDemo()
           
 
Method Summary
 int doIt()
          Die Aktionen der Anwendung im Hauptausführungsfaden.
 int initWinApp()
          (Zusätzliche) Initialisierungen vor dem Sichtbarmachen.
static void main(String[] args)
          Start der Anwendung.
 void tick(int ticks)
          Der Tick.
 
Methods inherited from class de.a_weinert.WinApp
chooseFile, componentHidden, componentMoved, componentResized, componentShown, getByAction, getByAction, getMinimumSize, getMyFrame, getPanel, getPreferredHeight, getPreferredWidth, getTicks, go, go, go, initMenuBar, isCanvasShowing, isStarted, loadMenus, performeAction, setCBMIstate, setCBMIstate, setLogDat, setMenuBar, setOutDat, setPanel, setPanelText, setPreferredHeight, setPreferredSize, setPreferredWidth, setTitle, setTwoTicks, setXmlMBdescr, showLogText, showOutText, showPanelText, showProps, showState, shutdown, storeMenus, storeMenus, windowActivated, windowClosed, windowClosing, windowDeactivated, windowDeiconified, windowIconified, windowOpened
 
Methods inherited from class de.frame4j.util.App
actionPerformed, allowNoPropertiesFile, clientOrder, condHelpLog, connect, errMeld, errMeld, errorExit, errorExit, errorExit, errorText, formMessage, formMessage, getAbout, getAboutText, getActTime, getAppLogger, getAppStartTime, getArgs, getAttribute, getAttributes, getAuthor, getCopyright, getDbLogger, getExecTimeMs, getExecTimeString, getHelp, getHelpText, getIcon, getLanguage, getLogHandler, getMBeanInfo, getMessageComponent, getMessageComponentsLength, getName, getNameWithVersDate, getOutMode, getProp, getPurpose, getStartTime, getStateString, getTitle, getUsage, getVerbosity, getVerbosityString, getVersDate, getXMLinput, go, go, go, haveIcon, invoke, isDebug, isHelp, isHelpLog, isNormal, isRunFlag, isSilent, isTest, isVerbose, logVerbose, logVerbose, makeDbLogger, makeMenuBar, makeMenuBar, makeStatusTextEnd, makeStatusTextStart, messageFormat, normalExit, parsePartial, postDeregister, postRegister, preRegister, queueAction, registerAsMBean, setAboutText, setAttribute, setAttribute, setAttribute, setAttributes, setAuthor, setBgColor, setCodePages, setCopyright, setHelp, setJmxRemoteNote, setLogOut2, setName, setOutMode, setOutMode, setPurpose, setUsage, setVerbose, setVerbose, setVerbosity, setVerbosity, setVerbosityString, setVersDate, stop, threeLineEndMsg, toString, twoLineEndMsg, twoLineStartMsg, valueLang, valueLang, wakeMainThread
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.event.ActionListener
actionPerformed
 

Field Detail

grafStart

public boolean grafStart
Start mit Zeichen- statt Textfenster.


imin

public String imin
Image input (Kamera-Adresse).

Axis: private 192.168.89.207 Axis: FH-LAN 195.37.171.207


impass

public String impass
Image password (Kamera-Zugang).


allowExtras

public boolean allowExtras
Alpha-Testerweiterungen ggf. freigeben.

default: true

Constructor Detail

WinAppDemo

public WinAppDemo()
Method Detail

main

public static void main(String[] args)
Start der Anwendung.

Diese Methode erzeugt ein Objekt dieser Klasse und startet dieses Anwendungsobjekt mit WinApp.go(String[], java.awt.Image) (Standard-Start).

Die Hauptzeichenfläche der graphischen Anwendung ist eine TextArea, auf der Hilfe- und Vorstellungstexte sowie Textdateien und Properties-Informationen ausgegeben werden können.

Eine zweite, alternative Hauptzeichenfläche ist ein einfach erweiterter Canvas, der einen schwarzen Strich zeichnet. Dessen Lage und Länge ist zufallsgesteuert, damit man die Wirkung von erneutem Zeichnen sehen kann.

Zwischen den beiden alternativen Zeichenflächen kann menugesteuert und für den Start mit Optionsparametern umgeschaltet werden.

See Also:
WinApp, App.makeMenuBar(CharSequence, PrintWriter), App.actionPerformed(java.awt.event.ActionEvent)

initWinApp

public int initWinApp()
(Zusätzliche) Initialisierungen vor dem Sichtbarmachen.

Diese Methode gibt im Falle, dass App.help und grafStart true sind, den Hilfetext auf App.out aus und beendet alles durch return 19.

Ansonsten werden die Menus und die Zeichenfläche anwendungsspezifisch erzeugt.

Overrides:
initWinApp in class WinApp

doIt

public int doIt()
Description copied from class: WinApp
Die Aktionen der Anwendung im Hauptausführungsfaden.

In der in abgeleiteten Klassen überschriebenen Methode sind die (bei einer graphischen Anwendung nicht notwendigen) Aktionen des Hauptausführungsfadens zu implementieren.
doIt() wird von allen Initialisierungsmethoden go(...) aufgerufen. Liefert doIt() einen Wert ungleich 0 zurück, wird das Ende der Anwendung durch shutdown(false) vorbereitet (Menus beseitigen, nur noch Beenden mit X zu lassen).

Bei Rückkehr mit 0 geschieht nichts derartiges.
Diese Implementierung tut nichts außer return 0.

Aus dieser Methode, wie auch aus initWinApp(), können auch die Methoden App.errorExit(int, String) und App.normalExit(int) zum Beenden der Anwendung aufgerufen werden.
Im Falle erorExit() gilt:
Aus Namen und Version der Anwendung, der Fehlernummer errNum und dem Fehlertext errText wird ein mehrzeiliger Text erzeugt und auf App.log ausgegeben.

Wenn bereits ein sichtbares Fenster existiert, werden dessen Menus beseitigt ( shutdown(true) ). Das Fenster kann nun nur noch mit dem X geschlossen werden. Als Parameter für System.exit() wird dann ggf. errNum statt 0 verwendet (s.o.).

Zum weiteren Ablauf siehe AppBase.errorExit(Object, int, String).

Hinweis: Die Methode errorExit liefert errNum zurück. Diese ermöglicht in einer überschriebenen Methode initWinApp() oder doIt() die bequeme Schreibweise
if (fehlerBedingung()) return errorExit(x, "y");

Overrides:
doIt in class WinApp
Returns:
0
See Also:
WinApp.WinApp(), App.JOB_DONE_OK

tick

public void tick(int ticks)
Description copied from class: WinApp
Der Tick.

Diese Methode wird etwa alle Sekunde aufgerufen und bekommt die Nummer des Aufrufs (ab 1) als Parameter.
Sie kann mit applikationsspezifischen wiederkehrenden Aufgaben überschrieben werden. Diese Implementierung tut nichts.

Overrides:
tick in class WinApp