!+Initialize => .$KundeListe := Leer .WnHauptfenster.OPEN !$KundeListe : _Java-LinkedList ...Kunde .kdNr : (_String, eindeutig, nichtLeer) // Ergänzung zum Beispiel .kdName : (_String, nichtLeer) // Ergänzung zum Beispiel !#WnHauptfenster : _Java-JFrame .$Fenstergröße .$Hintergrundfarbe .+OPEN .{kein Innenfenster sichtbar} .Fenstergröße := "600x400" // 0,0,600,400 .Hintergrundfarbe := "grau" .+BtBeendenX => .WnHauptfenster.CLOSE .Menübar .Datei +Beenden => .WnHauptfenster.CLOSE .Ansicht +Eingabe => .WnIfEingabe.OPEN .WnIfEingabe.{alle Eingabefelder leer} +Tabelle => .WnIfTabelle.OPEN .WnIfTabelle.AnzeigeTabelle := $KundeListe.{aktueller Stand} .Einstellungen +Allgemein => .WnIfAllgemein.OPEN .WnIfAllgemein.CbFenstergröße.SELECTED := WnHauptfenster.Fenstergröße .WnIfAllgemein.LbHintergrundfarbe.SELECTED := WnHauptfenster.Hintergrundfarbe +Ansicht => .WnIfAnsicht.WnEingabe.OPEN .WnIfAnsicht.WnEingabe.SliderSchriftgröße := WnIfEingabe.beschriftungsgröße .WnIfAnsicht.WnTabelle.CLOSE .#WnIfEingabe : _JInternalFrame .Titel := "Dateneingabe" .PositionLinksImFrame // 0,0,290,350 .$beschriftungsgröße : "Integer 8..16" .EtKundenNummer .BeschriftungLinks := "Kundennummer" .+CHANGE => TxStatus := "" .EtKundenName .BeschriftungLinks := "Kundenname" .+CHANGE => TxStatus := "" .TxStatus : [ _String | LEER ] .+OPEN => .EtKundenNummer."" .EtKundenName."" .beschriftungsgröße.{aktuell, anfangs 12} +BtÜbernehmen => ? KundeListe.ADD << (EtKundenNummer, EtKundenName) = // zusätzlich = "OK, gespeichert" => .TxStatus := "Gespeichert" .EtKundenNummer := "" .EtKundenName := "" = "NOK, nicht gespeichert" => .TxSTatus := "Datensatz nicht gespeichert" .EtKundenNummer := {unverändert} .EtKundenName := {unverändert} +BtSchließen => .WnIfEingabe.CLOSE // beim Java-JInternalFrame: Java-dispose +BtSchließenX => .WnIfEingabe.CLOSE #WnIfTabelle : _Java-JInternalFrame .Titel := "Tabellenansicht" .PositionRechtsImFrame // 300,0,290,350 .AnzeigeTabelle : _Java-JTableOnJScrollPane // technisch im ContentPane .gitternetzlinienSichtbar : [ mitLinien | ohneLinien ] +OPEN => .AnzeigeTabelle.gitternetzlinienSichtbar := {aktueller Wert, anfangs "ohneLinien"} .AnzeigeTabelle := KundeListe.{alleDatensätze} .AnzeigeTabelle.{Überschrift} := ("Kundennummer", "Kundenname") +BtAktualisieren // technisch im ContentPane => .AnzeigeTabelle.gitternetzlinienSichtbar := {aktuell gesetzter Wert} .AnzeigeTabelle := KundeListe.{alleDatensätze} .AnzeigeTabelle.{Überschrift} := ("Kundennummer", "Kundenname") +BtSchließenX => .WnIfTabelle.CLOSE .#WnIfAllgemein : _Java-JInternalFrame .Titel := "Allgemeine Einstellungen" .PositionRechtsOben // 300,0,290,170 .CbFenstergröße : _Java-JComboBox .BeschriftungLinks := "Fenstergröße" .Einträge := ("600x400", "750x500", "900x600") .+SELECT => .WnHauptfenster.Fenstergröße.ANPASSEN .LbHintergrundfarbe : _Java-JList .{kann gescrollt werden} // Listbox in Java-JScrollPane stecken .{genau ein Eintrag selektierbar} .BeschriftungLinks := "Hintergrundfarbe" .Einträge := ("grau", "blau", "weiß", "rot", "grün", "gelb") +SELECT => .WnHauptfenster.Hintergrundfarbe.ANPASSEN +OPEN => .CbFenstergröße.SELECT := WnHauptfenster.Fenstergröße .LbHintergrundfarbe.SELECT := WnHauptfenster.Hintergrundfarbe .+BtSchließenX => .WnIfAllgemein.CLOSE .#WnIfAnsicht : _Java-JInternalFrame .Titel := "Einstellungen Ansicht" .PositionRechtsUnten // 300,180,290,170 .+BtReiterEingabe .{das ist der Reiter auf dem Fenster selbst, kein extra Knopf} => WnEingabe.OPEN WnTabelle.CLOSE .+BtReiterTabelle .{das ist der Reiter auf dem Fenster selbst, kein extra Knopf} => WnEingabe.CLOSE WnTabelle.OPEN +OPEN => .WnEingabe.OPEN .WnEingabe.SliderSchriftgröße := WnIfEingabe.beschriftungsgröße .WnTabelle.CLOSE .+BtSchließenX => .WnIfAnsicht.CLOSE .#WnEingabe : _Java-JPanel // technisch ein Teil von JTabbedPane .{Fenster mit Reiter} .Titel := "Eingabe" .SliderSchriftgröße : _Java-JSlider .BeschriftungOben := "Schriftgröße" .{einstellbar zwischen 8 und 16, Integer} +CHANGED => .WnIfEingabe.{alle Beschriftungen} := {neue Schriftgröße} +OPEN => SliderSchriftgröße := {aktuelle Schriftgröße} .#WnTabelle : _Java-JPanel .{Fenster mit Reiter} .Titel := "Tabelle" .SsGitternetzlinien : _Java-JRadioButton .Beschriftung := "Tabelle" .Einträge := ("mitLinien", "ohneLinien") .CHANGED => .WnIfTabelle.AnzeigeTabelle.gitternetzlinienSichtbar := {wie gewählt} +OPEN => SsGitternetzlinien := WnIfTabelle.gitternetzlinienSichtbar // ===============================================================