03.11.2013 Aufrufe

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

266 13 Das Model/View-Konzept<br />

Hinweis: Diese drei Klassen sollen den zur Lösung von PROB-5 eingesetzten Klassen<br />

“NoWerteErfassung”, “OrWerteErfassung” sowie “InWerteErfassung” entsprechen (siehe<br />

Abschnitt 7.4).<br />

Zur Benennung der jeweils eingesetzten Instanz der Klasse “WerteErfassungModell”<br />

wird in der Klasse “WerteErfassungView” eine Instanz-Variable benötigt.<br />

Anstelle der ursprünglich verwendeten Instanz-Variablen “werteBag” der Klasse<br />

“WerteErfassung” setzen wir jetzt in der Klasse “WerteErfassungView” die Instanz-<br />

Variable “daten” ein, durch die auf eine Instanz der Klasse “WerteErfassungModell”<br />

verwiesen werden soll.<br />

Für die Initialisierung des Erfassungsfensters verabreden wir in der Klasse “WerteErfassungView”<br />

wiederum die Methode “initialisierenErfassung”. Dabei legen wir<br />

die in Abschnitt 12.4 angegebene Methoden-Vereinbarung zugrunde. Als einzige<br />

Änderung müssen wir die ursprünglich eingesetzte Zuweisung<br />

werteBag := Bag new.<br />

in die Zuweisung<br />

daten := WerteErfassungModell new.<br />

abändern.<br />

Somit besitzt die Methode “initialisierenErfassung” innerhalb der Klasse “WerteErfassungView”<br />

die folgende Form:<br />

initialisierenErfassung<br />

daten := WerteErfassungModell new.<br />

self addView: ( self topPaneClass new owner: self;<br />

labelWithoutPrefix: ’ ’;<br />

noSmalltalkMenuBar;<br />

viewName: ’erfassungsfenster’;<br />

framingRatio: ( (Rectangle leftTopUnit<br />

rightAndDown:1/2@(1/2)) extentFromLeftTop:1/2@(1/2));<br />

addSubpane: (StaticText new owner: self;<br />

framingRatio: ( (Rectangle leftTopUnit<br />

rightAndDown:1/8@(2/8)) extentFromLeftTop:2/8@(1/8));<br />

contents: ’Wert:’);<br />

addSubpane: (EntryField new owner: self;<br />

framingRatio: ( (Rectangle leftTopUnit<br />

rightAndDown:2/8@(2/8)) extentFromLeftTop:2/8@(1/16));<br />

paneName: ’eingabeFeld’);<br />

addSubpane: (Button new owner: self;<br />

framingRatio: ( (Rectangle leftTopUnit<br />

rightAndDown:2/8@(6/8)) extentFromLeftTop:2/8@(1/8));<br />

contents: ’erfasse’;<br />

when: #clicked perform: #erfassenWert:);<br />

addSubpane: (Button new owner: self;<br />

framingRatio: ( (Rectangle leftTopUnit<br />

rightAndDown:5/8@(6/8)) extentFromLeftTop:2/8@(1/8));

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!