I got everything working besides the list update when changed. Also, is there anyway to properly display data in columns? This is what i have: http://i.imgur.com/bwK2M.png
On Wed, Jan 2, 2013 at 11:47 AM, Ben Coman <[email protected]> wrote: > > J. P. L. Martín wrote: > > Hello, I'm having trouble to figure out how to do this, I have a simple >> window with 3 buttons, each button should change the content listed on the >> list below them but I'm really not sure about how to do it. >> >> This is the code for the window: >> --- >> open >> "Abre la ventana principal del Sistema de Gestion Bibleotecaria" >> >> | builder contain | >> builder := UITheme builder. >> contain := builder newColumn: {builder newRow: { >> builder newButtonFor: self action: #onPrestamosClick label: >> 'Prestamos' help: ''. >> builder newButtonFor: self action: #onMaterialesClick label: >> 'Materiales' help: ''. >> builder newButtonFor: self action: #onSociosClick label: >> 'Socios' help: ''}. >> builder newColumn: { >> builder newListFor: self list: nil selected: nil >> changeSelected: nil help: '' }.}. >> >> (contain openInWindowLabeled: 'Babel') extent: 600@600. >> --- >> >> How should I define #onLabelClick to set the list to for example: Prestamo >> database. >> >> Thanks in advance. >> >> >> > J. P. L. Martín wrote: > >> Actually the code of the GUI is inspired on the Pharocast video on the >> making of a Contact list. I wonder if the list is static since is defined >> there as a newListFor and because that you can't send any message to it, >> >> > The #changed: method tells the list to get its contents again - see > example below. > >> I'm sure there should be a way to do it so #onPrestamosClick look like: >> --- >> #onPrestamosClick >> listMorph list: Prestamo database. >> --- >> or something like that. >> >> >> >> > You didn't explicitly state your references, I presume you a referring to > http://www.pharocasts.com/**2011/02/pharo-gui-with-**polymorph.html<http://www.pharocasts.com/2011/02/pharo-gui-with-polymorph.html> > . > Note that ContactManager-**LaurentLaffront.1.mcz referred to from this > post uses... > > |builder newListFor: self list: > #contacts > selected: #contactSelectedIndex > changeSelected: #contactSelectedIndex: > help: ''.| > > whereas you have... > > builder newListFor: self list: nil > selected: nil > changeSelected: nil help: '' > which is the key part you are missing, where the (list: #contacts) defines > the method to return the list contents, for example... > --- > #contacts > ^ Contact database collect: [:aContact| > ', ' join: {aContact lastName. aContact firstName} > ]. > --- > > > You have defined your list contents as (list: nil), whereas if it was > (list: #selectedDatabase) the following might work... > --- > #onPrestamosClick > > selectedDatabase := Prestamo database. > self changed: #selectedDatabase. > --- > #selectedDatabase > ^selectedDatabase. > > --- > > good luck, > cheers -ben > > >
