List for Users of Carlsbad Cubes' Technologies and Products <Forum@carlsbadcubes.com> schrieb am 01.03.05 23:10:22: > > >Sorry if this is clumsy but why don't implement the actions in your > >wizard base (the usual, public action-way)? Just call a function > >(abstract or default implementation) which is the overiden by your > >wizared-enabled classes? You may then have/use your getters just through > >some kind of delegation to these public actions... > > > > > >Frank > > hey that's what i ended up doing, and it's quite clean.. > > public Action aContinue = new AbstractAction() { > public void actionPerformed(java.awt.event.ActionEvent e) { > showNextCard(); > } > }; > > public Action aBack = new AbstractAction() { > public void actionPerformed(java.awt.event.ActionEvent e) { > showPreviousCard(); > } > }; > > and > > public void setBack (Action act){ > aBack = act; > } > > public void setContinueAction (Action act) > { > aContinue = act; > } > > all in the WizardBase.. the subclasses that want to override just call these > setters with > the actions they want.. > > The only problem is, this must be done in the constructor of the subclasses, > otherwise SwiX > will pick up the default implementations from the base class using Reflection.
Hm, the interesting part is missing: your showPreviousCard() and showNextCard() functions. In the descending classes you have all access you need to the actions, eg enable/disable them and the like. The setXxxxAction(Action) methods are not really needed... > > Is this what you meant? > Not quite, honestly ;) The whole idea was to get rid of re-implementing actions in your descendent classes. Use delegation, if you have to -- it solves the dependencies of real actions -- just implement the methods provided through delegation by other ones if you do not use actions anymore... Frank > > -- > Nandan Bagchee > > Excuse me, but what the hell? > > -- Slava Pestov, on seeing: > FunctorParser parser = new FunctorParser(); > BinaryFunctor toggleOther = > parser.parseBinary("x.setEnabled(!x.isEnabled())", > > JButton.class, ActionEvent.class); > > > > _______________________________________________ > Forum mailing list > Forum@carlsbadcubes.com > http://carlsbadcubes.com/mailman/listinfo/forum_carlsbadcubes.com