Halli hallo hallöle
Ich bin derzeit eine Client/Server Anwendung am basteln und habe da eine Idee.
Der Titel selber sagt schon ein Teil dazu.
Es geht nicht um einen eigendlichen "Window Manager", wie man ihn sich vorstellen kann, ich habe da eher eine eigene Vorstellung:
Serverseitig können beliebige Fenster "versendet" werden, die zuvor über Methoden "zusammengebastelt" wurden. Der Client intepretiert dies, "parsed" den Mist und gibt dann das Fenster aus. Nein, nicht im densinne eines Object-Streams.
Ich gebe nun mal ein Beispiel:
Bei einer Authentifizierung wird ein "Popup" serverseitig aufbereitet und versendet, wenn das Passwort falsch eingegeben wurde:
Hier die dafür vorgesehene Methode:
Serverseitig werden halt Klassen einzelner Komponenten bereitgestellt, die diverse Eigenschaften besitzen.
Der Client erhält folgendes Paket und bereitet durch die gegebenen Trennzeichen das Fenster auf:
Das ganze sieht dann später folgendermaßen aus:
Soweit so gut.
Generell setzt sich das Paket folgendermaßen zusammen:
Jetzt habe ich aber eine kleine Denkstütze Nötig.
Wie wäre es am sinnvollsten auch etwas komplexere Aufbauten zu implementieren/zu verschachteln?
Ein Beispiel: Mehrere Panels die ineinander verschachtelt sind mit unterschiedlichen LayoutManagern.
Grund hierfür ist, dass ich später nur noch Serverseitig Fenster "abändern" kann, ohne ständig den Clienten updaten zu müssen.
Ich bin derzeit eine Client/Server Anwendung am basteln und habe da eine Idee.
Der Titel selber sagt schon ein Teil dazu.
Es geht nicht um einen eigendlichen "Window Manager", wie man ihn sich vorstellen kann, ich habe da eher eine eigene Vorstellung:
Serverseitig können beliebige Fenster "versendet" werden, die zuvor über Methoden "zusammengebastelt" wurden. Der Client intepretiert dies, "parsed" den Mist und gibt dann das Fenster aus. Nein, nicht im densinne eines Object-Streams.
Ich gebe nun mal ein Beispiel:
Bei einer Authentifizierung wird ein "Popup" serverseitig aufbereitet und versendet, wenn das Passwort falsch eingegeben wurde:
Java:
client.send(WindowManager.popup("Falsches Passwort", String.format("_Falsches Passwort_ für %s eingegeben.", rs.getString("account_nickname"))));
Hier die dafür vorgesehene Methode:
Java:
public static String popup(String title, String text) {
Window window = new Window("Problem", 400, 300);
window.setType(2);
window.setPosition("CENTER");
TextPanel panel_text = new TextPanel(text);
panel_text.setPosition("Center");
window.addPanel(panel_text);
Button button_close = new Button("OK");
button_close.setCloseable(true);
button_close.setPosition("South");
window.addPanel(button_close);
return PacketCreator.window(window);
}
Serverseitig werden halt Klassen einzelner Komponenten bereitgestellt, die diverse Eigenschaften besitzen.
Der Client erhält folgendes Paket und bereitet durch die gegebenen Trennzeichen das Fenster auf:
Code:
[ >>> ] w\0WINDOW_TYPEÚ℁Ú2õWINDOW_TITLEÚℂÚProblemõWINDOW_SIZEÚÚ¿,õWINDOW_RESIZABLEÚ℄ÚFALSEõWINDOW_POSITIONÚℂÚCENTER¯_Falsches Passwort_ für Admin eingegeben.Ú倂Ú¬OKÚ倁Ú
Das ganze sieht dann später folgendermaßen aus:
Soweit so gut.
Generell setzt sich das Paket folgendermaßen zusammen:
w - Opcode (w = Window)
0x00 - NULL Byte Trennzeichen
[WINDOW PROPERTIES] - Beispielsweise Titel, Größe, etc..
0xAF - Trennzeichen, hier fangen alle auf dem Fenster dargestellten Komponenten an
[COMPONENTS] - Buttons, Panels & co...
Jetzt habe ich aber eine kleine Denkstütze Nötig.
Wie wäre es am sinnvollsten auch etwas komplexere Aufbauten zu implementieren/zu verschachteln?
Ein Beispiel: Mehrere Panels die ineinander verschachtelt sind mit unterschiedlichen LayoutManagern.
Grund hierfür ist, dass ich später nur noch Serverseitig Fenster "abändern" kann, ohne ständig den Clienten updaten zu müssen.
Zuletzt bearbeitet: