Thanks Stephan.
--- Philippe Back Dramatic Performance Improvements Mob: +32(0) 478 650 140 | Fax: +32 (0) 70 408 027 Mail:p...@highoctane.be | Web: http://philippeback.eu Blog: http://philippeback.be | Twitter: @philippeback Youtube: http://www.youtube.com/user/philippeback/videos High Octane SPRL rue cour Boisacq 101 | 1301 Bierges | Belgium Featured on the Software Process and Measurement Cast http://spamcast.libsyn.com Sparx Systems Enterprise Architect and Ability Engineering EADocX Value Added Reseller On Mon, Jul 8, 2013 at 5:48 PM, Stephan Eggermont <step...@stack.nl> wrote: > Some snippets of a working glamour application loading excel files (Moose > 4.8) > MNU on SmallInteger could be a broken VM > > A separate class to represent the csv file, storing the rows: > > ANExcelModel >> on: aFilename > ^self new > rows: (NeoCSVReader on: (FileSystem root / aFilename) > readStream) upToEnd ; > yourself > > The domain model has an announcer letting the browser know when something > changed > > AModel>loadFrom: aFileName > |excel regel | > excel := ANExcelModel on: aFileName . > excel rows allButFirstDo: [ :row | > regel := ANRegel new. > regel thema: (self findIn: row at: 1 key: #thema). > regel onderwerp: (self findIn: row at: 3 key: #onderwerp). > regel addTo: self. > ]. > self announce: ANChanged > > > ANModel>announce: anAnnouncement > ^self announcer announce: anAnnouncement > > > Part of the browser construction, loading a file: > > browser transmit to: #thema; andShow: [ :a | > a list > title: 'Themas'; > display: [ (self model dimensies at: #thema) items > ]; > updateOn: SVChanged from: SVModel default > announcer; > act: [ : b | self loadExcel ] entitled: 'Laad csv'; > selectionAct: [ :list | > self addOnderwerpTo: list selection] > on: $o > entitled: 'Voeg onderwerp toe'. > a text > title: '?'; > display: [ self helpThema ]. > ]. > > > ANBrowser>loadExcel > |excel| > excel := MorphicUIManager new chooseFullFileName: 'Selecteer een > .csv bestand' extensions: nil path: nil preview: nil. > > excel isEmptyOrNil ifFalse:[ > self model loadFrom: excel] > >