Prestamo = Loan
Ejemplar = a Copy (of a Material)
Socio = Library member.
Listado = List
Selecciono = Selected
Alerta = Alert

Anyway you could ignore most of the spanish stuff since the problem is how
should I call openModal so it blocks the main window. So, add loan creates
a Loan new, then does an openModal on UILoans where you load the Loan data:
CopyID, MemberID, etc. if you hit OK some conditions should apply for it to
be added on the Loan database (anOrderedCollection). openModal on UILoans
just popups a newPluggableDialogWindow with textEntries to fill the Loan
fields before adding it to the database.


On Sat, Feb 2, 2013 at 4:09 PM, Benjamin <
benjamin.vanryseghem.ph...@gmail.com> wrote:

> Sorry, but it's too late now for me to read spanish :s
> Can you provide an "english" version of this please ?
>
> Ben
>
> On Feb 2, 2013, at 7:54 PM, J. P. L. Martín <argu...@gmail.com> wrote:
>
> I'm not sure how should I, for making the GUI we mainly based on the
> ContactList example on PharoCasts:
> http://www.pharocasts.com/2011/02/pharo-gui-with-polymorph.html
> This is my child window:
>
> UIPrestamos>>openModal
>
> openModal
>     | builder content dialog |
>     prestamo id: (Prestamo database size = 0 ifTrue: 1 ifFalse: [Prestamo
> database last id + 1]) asString.
>     builder := UITheme builder.
>     content := builder
>         newLabelGroup:
>             {('Prestamo: '
>                 ->
>                     (builder
>                         newLabelFor: self prestamo getLabel: #id
> getEnabled: nil  )).
>             ('Socio '
>                 ->
>                     (builder
>                         newTextEntryFor: self prestamo
>                         getText: #idSocio
>                         setText: #idSocio:
>                         help: 'Codigo de Socio')).
>                         ('Ejemplar: '
>                 ->
>                     (builder
>                         newTextEntryFor: self prestamo
>                         getText: #idEjemplar
>                         setText: #idEjemplar:
>                         help: 'Codigo de Ejemplar'))}.
>     dialog := builder newPluggableDialogWindow: 'Nuevo Prestamo' for:
> content.
>     builder openModal: dialog.
>     dialog cancelled ifFalse: [self doOnOK].
>
> ----
> Which is called this way:
>
> UIBabel>>addPrestamo
>
> addPrestamo
>     | prestamo alerta |
>     prestamo := Prestamo new.
>     alerta := AlertDialogWindow new.
>     UIPrestamos new
>         prestamo: prestamo;
>         onOK: [ ((Ejemplar  database anySatisfy: [:x | x idEjemplar =
> prestamo idEjemplar and: (x fechaBaja = '') ]) and: (Socio  database
> anySatisfy: [:y| y numeroDeSocio = prestamo idSocio])) ifTrue: [Prestamo
> database add: prestamo] ifFalse: [alerta alert: 'El socio o el ejemplar no
> se encuentra disponible'].
>                 seleccionado := Prestamo database size.
>                 self
>                     changed: #listado;
>                     changed: #selecciono ];
>         openModal.
>
> ----
> I've also found another way to show lists, using GridMorph instead of the
> current PluggableMultiColumnList, sadly it look really hard and lot of
> refactor should be done :(
>
> > * Block a father window when a child is made, so the father window can't
>> > be closed if a child window exist.
>>
>
> childerWindow openModal: fatherWindow
>
>
>
>

Reply via email to