[Seaside] Updating non Smallfaces component.

Timothy James Ziebart timothy at churchmilitant.org
Thu Aug 27 16:02:08 UTC 2009


Hi All,

I have an object SearchInterface, a subclass of WASmallFacesComposite.  
On SearchInterface there are rendered a number of SFListBoxes and 
SFButtons.  Included are three listboxes that are cascaded and the 
control was created like this:

createRegionListBox
    |pane panes list|
   
    list := self session findCodeByParent: 'region'.
   
    panes := OrderedCollection
        with: ( self paneNamed: 'nhoodList')
        with: ( self paneNamed: 'cityList').
       
    pane := SFListBox new.
    pane
        name: 'regionList';
        items: list;
        lines: 5;
        printSelector: #asString;
        owner: self;
        when: #changed:
            send: #regionSelectionChanged:
            to: self
            refresh: panes.
    ^pane

The listboxes work correctly.  What I need to do is have a GoogleMap 
rendered on SearchInterfaces as well.  The map will not be a WAComponent 
as I need to render it as new whenever the listbox contents change.  But 
not before an Update button is pressed.  Such as:

createUpdateButton

    | pane panes |
   
    panes := OrderedCollection with: (*self paneNamed: 'mapDisplay')*.
    pane := SFButton new.
    pane
        label: 'Update Map';
        name: 'updateButton';
        when: #clicked
            send: #updateButtonPressed
            to: self
            refresh: panes.
    ^pane

The question is how do I create *mapDisplay*?  mapDisplay is rendered 
like this everytime the update button is pressed.

map

    ^LBCGoogleMap new
        setCenter: model coordinates zoom: model zoom;
        addControl: GControl largeMapControl;
        setUIToDefault;
        yourself.

Can I place it on a SmallFace component that will render as I desire or 
do I replace it with non SmallFace components?  Thank you for any 
assistance.

Tim


More information about the seaside mailing list