Ask away if you'd like more examples of Morphic/Polymorph things...
Even for me, that was the first time I used a Block as the model for a button! 
:-)

Regards, Gary

  ----- Original Message ----- 
  From: laurent laffont 
  To: [email protected] 
  Sent: Monday, August 16, 2010 7:31 PM
  Subject: Re: [Pharo-project] Pharocasts: Display Picasa photos


  This example is really interesting, I've just learn a lot of things.


  Laurent


  On Mon, Aug 16, 2010 at 2:10 PM, Gary Chambers <[email protected]> 
wrote:

    Indeed, nice...

    Here's an adaptation for Flickr...

    | xmlStream xmlDoc photos builder clickBlock |
    xmlStream := 
'http://api.flickr.com/services/feeds/photos_public.gne?id=12018...@n06&lang=en-us&format=rss_200'
 asUrl retrieveContents contentStream.
    xmlDoc := XMLDOMParser parseDocumentFrom: xmlStream.

    photos := OrderedCollection new.
    xmlDoc tagsNamed: #item do:
                [:item| | title thumbUrl photoUrl |
                 title := (item firstTagNamed: #title) characterData.
                 thumbUrl := ((item firstTagNamed: #media:thumbnail) 
attributeAt: #url) asUrl.
                 photoUrl := ((item firstTagNamed: #media:content) attributeAt: 
#url) asUrl.
                 photos add: title -> (Form fromBinaryStream: thumbUrl 
retrieveContents contentStream) -> photoUrl].

    clickBlock := [:url :title | | scrollPane |
    scrollPane := GeneralScrollPane new
     scrollTarget: (builder
     newImage: (Form fromBinaryStream: url retrieveContents contentStream)).
    scrollPane openInWindow
     setLabel: title;
     extent: 6...@400.
    scrollPane color: Color transparent].

    builder := UITheme builder.
    ((builder
      newRow: (photos collect:
                       [:aPhoto|
                        (builder
       newButtonFor: clickBlock
       getState: nil
       action: #value:value:
       arguments: {aPhoto value. aPhoto key key}
       getEnabled: nil
       label: ((builder newColumn: {
         builder newImage: aPhoto key value.
         builder newLabel: aPhoto key key})
         cellPositioning: #center;
         layoutInset: 10)
       help: nil)]))
    wrapDirection: #topToBottom;
    openInWindow)
     setLabel: (xmlDoc firstTagNamed: #title) characterData;
     extent: 7...@680.


    Regards, Gary

    ----- Original Message ----- From: "Germán Arduino" <[email protected]>
    To: <[email protected]>
    Cc: "A friendly place where any question about pharo is welcome" 
<[email protected]>
    Sent: Sunday, August 15, 2010 11:14 PM
    Subject: Re: [Pharo-project] Pharocasts: Display Picasa photos




      Excellent!

      2010/8/15 laurent laffont <[email protected]>:

        Learn:
        - how to get data from an URL
        - parse XML documents
        - build a GUI to display photos with Polymorph
        - how to prototype quickly with debugger and inspector
        
http://pharocasts.blogspot.com/2010/08/see-how-to-get-data-from-url-parse-xml.html
        Cheers,
        Laurent Laffont

        http://pharocasts.blogspot.com/
        http://magaloma.blogspot.com/

        _______________________________________________
        Pharo-project mailing list
        [email protected]
        http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project



      _______________________________________________
      Pharo-project mailing list
      [email protected]
      http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project 



    _______________________________________________
    Pharo-project mailing list
    [email protected]
    http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project





------------------------------------------------------------------------------


  _______________________________________________
  Pharo-project mailing list
  [email protected]
  http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to