abstractBlindOptic ist ein Gedankengerüst für ein Ruby Desktop Application Framework. GUI Beschreibung mit XMLVorteile
Probleme
Alternativen
Beispiel<window title="diary"> <listbox id="DateListbox"></listbox> <textbox id="EntryTextbox">hier steht später der text</textbox> <button id="NewEntryButton">new entry</button> <button id="CloseButton" action="exit">close</button> </window> Event/Aktion Handler mit Ruby KlassenVorteile
Probleme
Beispiel#implement a current window (PROTOTYP)
class Diary < BlindOptic::Window
#define xml for view
use_view :diary
#initialize of window
def init
puts ‘init‘#debug
end
#date list was clicked
def DateListbox_Clicked
puts ‘DateListbox_Clicked‘#debug
end
#text in textbox was changed
def EntryTextbox_KeyPressed
puts ‘EntryTextbox_KeyPressed‘#debug
end
#new entry button clicked
def NewEntryButton_Clicked
puts ‘NewEntryButton_Clicked‘#debug
end
#close button was clicked
def CloseButton_Clicked
puts ‘CloseButton_Clicked‘#debug
end
end
Steuerelement Handling via InstanzvariablenVorteil
Probleme
Alternativen
Beispiel@EntryTextbox ist ein Steuerelement. #implement a current window (PROTOTYP)
class Diary < BlindOptic::Window
#define xml for view
use_view :diary
#new entry button clicked
def ReadEntryButton_Clicked
#output text from textbox
puts "Text: #{@EntryTextbox.text}"
end
def CleanEntryButton_Clicked
@EntryTextbox.clean
end
end
Layoutmanager mit YSSIdee ist die Konfiguration der Optik eines Steuerelementes über eine YAML Datei zu steuern Vorteil
Probleme
Alternativen
BeispielElemente mit basic_* prefix sind globale Klassen. Andere Elemente beziehen sich direkt auf ein spezielles Element (Match auf ID Attribut). #configurate the basic objects basic_window: width: 500 height: 500 basic_button: width: 5 height: 1 basic_textbox: width: 37 height: 28 basic_listbox: width: 20 height: 27 #now set the coordinates DateListbox: xPosition: 5 yPosition: 5 EntryTextbox: xPosition: 205 yPosition: 5 NewEntryButton: xPosition: 285 yPosition: 415 CloseButton: xPosition: 355 yPosition: 415 Fragen die mich quälenbovi: Wie kann man eine GUI vernünftig testen? Es gibt meines Wissens Screenscraper die einen Bildvergleich machen. Aber das ist ja wohl nicht das Wahre. Gibt es schon irgendwelche Erfahrungsträger in diesem Bereich? Das ist unbedingt notwendig, um zu kontrollieren ob ein bestimmtes Element, welches in der XML Datei definiert ist auch vom GUI-Handler erzeugt wurde. Nur so können wir sicherstellen, dass die einzelnen GUI-Bibliotheken korrekt arbeiten. ressourcesDritter Prototyp mit YSS in der Ruby-Mine Zweiter Prototyp in der Ruby-Mine Ein erster Entwurf in der Ruby-Mine |
|||||||||||||