| GuiInterface.java |
1 /*
2 * CVS: $Id: GuiInterface.java,v 1.10 2004/07/16 16:22:34 marcus Exp $
3 *
4 * This file is part of Zuul.
5 *
6 * Zuul is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * Zuul is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with Zuul; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 *
20 * Copyrigth 2004 by marcus, leh
21 *
22 */
23
24package org.jzuul.engine.gui;
25
26import java.awt.event.ActionListener;
27import java.awt.event.KeyListener;
28import java.io.InputStream;
29
30/**
31 * Dieses Interface wird von dem Engine für seine Ein/Ausgabe benutzt.
32 * Die print Methoden müssen so weit wie möglich den erwartungen Entsprechen.
33 * Der KeyListener muss nicht unbedingt implementiert werden, der ActionListener
34 * jedoch muss die Eingabe an das Engine weiterreichen.
35 *
36 *
37 * @version $Revision: 1.10 $
38 */
39public interface GuiInterface {
40 /**
41 * Definiert die Farbe Rot in einem int[3] in RGB Werten
42 */
43 int[] RED = { 255,0,0 };
44 /**
45 * Definiert die Farbe Grün in einem int[3] in RGB Werten
46 */
47 int[] GREEN = { 0,255,0 };
48 /**
49 * Definiert die Farbe Blau in einem int[3] in RGB Werten
50 */
51 int[] BLUE = { 0, 0,255 };
52 /**
53 * Definiert die Farbe Orange in einem int[3] in RGB Werten
54 */
55 int[] ORANGE = { 255, 177 , 177 };
56 /**
57 * Definiert die Farbe Black in einem int[3] in RGB Werten
58 */
59 int[] BLACK = { 0, 0 , 0 };
60
61
62 /**
63 * Erwartet die Ausgaben von out mit anschließendem Zeilenumbruch
64 * in der Farbe color, die in RGB in einem int[3] übergeben wird.
65 *
66 * @param out der String der Ausgegeben werden soll
67 * @param color die Farbe in RGB
68 */
69 void println(String out, int[] color );
70
71 /**
72 * Erwartet die Ausgabe von out ohne Zeilenumbruch
73 *
74 * @param out der String der Ausgegeben werden soll
75 */
76 void print(String out);
77
78 /**
79 * Erwartet die Ausgabe mit anschließendem Zeilenumbruch
80 *
81 * @param out der String der Ausgegben wird
82 */
83 void println(String out);
84
85 /**
86 * Erwartet eine Leerzeile in der Ausgabe
87 */
88 void println();
89
90 /**
91 * Erwartet die Ausgabe von out unterstrichen, falls das Ausgabesystem
92 * es unterstützt
93 *
94 * @param out der String der ausgegebn werden soll
95 */
96 void printU(String out);
97
98 /**
99 * Erwartet die Ausgabe von out in Fett (Bold), falls das Ausgabesystem es
00 * unterstützt plus einen Zeilenumbruch
01 *
02 * @param out der String der Ausgegeben werden soll
03 */
04 void printlnB(String out);
05
06 /**
07 * Erwartet die Ausgabe von out in Fett (Bold) in der in color spezifizierten
08 * Farbe, falls das Ausgabesystem es unterstützt plus einen Zeilenumbruch.
09 *
10 * @param out der String der Ausgegeben werden soll
11 * @param color die RGB Farben in einem int[3]
12 */
13 void printlnB(String out, int[] color);
14
15 /**
16 * Erwartet die Ausgabe von out in Kursiv (Italic) plus einen Zeilenumbruch
17 *
18 * @param out der String der Ausgegeben werden soll.
19 */
20 void printlnI(String out);
21
22 /**
23 * Erwartet die Ausgabe von out in Kursiv(Italic) in der in color spezifizierten
24 * Farbe, falls das Ausgabesystem dies unterstützt plus einen Zeilenumbruch.
25 *
26 * @param out der String der ausgegeben werden soll
27 * @param color die Farbe in RGB in einem int[3]
28 */
29 void printlnI(String out, int[] color);
30
31 /**
32 * Setzt den ActionListener der von dem GUI Objekt bedient werden muss.
33 *
34 * @param al der ActionListener
35 */
36 void setActionListener(ActionListener al);
37
38 /**
39 * Setzt einen default ActionListener der mit setDefaultActionListener()
40 * wieder gesetzt werden kann.
41 *
42 * @param defaultListener der default ActionListener
43 * @see #setDefaultActionListener()
44 */
45 void setDefaultActionListener(ActionListener defaultListener);
46
47 /**
48 * Setzt den ActionListener der mit setDefaultActionListener(defaultListener)
49 * gesetzt worden ist wieder aktuell.
50 *
51 *@see #setDefaultActionListener(ActionListener defaultListener)
52 */
53 void setDefaultActionListener();
54
55 /**
56 * Setzt einen KeyListener, der einzelne Tastendrücke mitgeteilt bekommt,
57 * falls das Ausgabesystem dies unterstützt.
58 *
59 * @param list der KeyListener.
60 */
61 void setKeyListener(KeyListener list);
62
63 /**
64 * Gibt den aktuell aktiven ActionListener zurück
65 *
66 * @return den ActionListener, der aktuell von der Gui bedient wird
67 */
68 ActionListener getActionListener();
69
70 /**
71 * Schaltet das Input ein, der gesetzte ActionListener wird mit Events bedient.
72 */
73 void enableInput();
74
75 /**
76 * Schaltet das Input ab, der gesetzte ActionListener darf nicht mehr mit
77 * Events bedient werden.
78 */
79 void disableInput();
80
81 /**
82 * Fordert das neuzeichnen der Ausgabe, alle vorher aufgerufenen print
83 * methoden müssen dargestellt werden.
84 */
85 void redraw();
86
87 /**
88 *Übergibt dem GUI die Kontrolle
89 */
90 void start();
91
92 /**
93 * Das GUI muss die Inputzeile bereinigen, falls dies möglich ist
94 */
95 void resetInput();
96
97 /**
98 * Fragt das GUI ob es in einer Applet Sandbox läuft
99 *
00 * @return true wenn das der Fall is, false sonst
01 */
02 boolean isApplet();
03
04 /**
05 * Setzt die Eingabezeile auf newline
06 *
07 * @param newline der neue Text der Eingabezeile
08 */
09 void setInput(String newline);
10
11 /**
12 * Holt den aktuellen Wert der Eingabezeile
13 * @return den aktuellen Wert der Eingabezeile
14 */
15 String getInput() ;
16
17
18 /**
19 * Startet den Splashscreen (Fenster was den Ladevorgang illustriert)
20 * @param numOfSteps wieviele Schritte ausgeführt werden
21 */
22 void splash_start(int numOfSteps);
23
24 /**
25 * stellt aufdem Splashscreen den Fortschritt um einen weiteren Task da
26 * @param message Nachricht die für den Fortschritt ausgegeben werden soll
27 */
28 void splash_next(String message);
29
30 /**
31 * Beendet und schliesst das UserInterface
32 */
33 void close();
34
35 /**
36 * Zeigt ein Bild an, wenn das Gui dieses Unterstützt
37 *
38 * @param imageStream
39 */
40 public void showImage(InputStream imageStream);
41
42}