Wednesday, September 23, 2009

Glimmer Webinar Video

Here is a video of the Glimmer Webinar I gave today:
http://live.eclipse.org/node/792

Enjoy!

And, email me any questions you have.

6 comments:

  1. Andy,

    Glimmer seems like a well thought out and tested framework. I noticed this line of code in ListObserver

    raise "hell" if value == ["Canada"]

    Nice.

    I have two questions. All the Glimmer examples start with shell. Can Glimmer be used to partial GUIs? How. Second, can I substitute a partial GUI with an existing partial GUI? How.

    Thanks,
    Jeff

    ReplyDelete
  2. I figured it out, I created a new model called RShellBuffer that doesn't set the widgets parent in instantiation. Then in its "open" method, it iterates over the parent widgets children, disposes them, adds its own children to the parents widget. :)

    ReplyDelete
  3. raise "hell" if value == ["Canada"]

    lol, thanks for the catch.

    I must have committed that debugging line of code by mistake. Good thing it's got a funny ironic value in it. :) I'll make sure to sort that out.

    Thanks for figuring out the deal on how to substitute a partial GUI with an existing one.

    One other way to tackle it is to have a method define your partial GUI and then call it from within the shell that will contain it.

    def name_form
      composite {
        label {text "First name"}
        text {}
        label {text "Last name"}
        text {}
      }
    end

    def start_application
      shell {
        name_form
        label {"D.O.B."}
        text {}
      }.open
    end

    Hope this helps address the scenario you had.

    ReplyDelete
  4. Hi, Andy, very interesting framework

    Unfortunately not all samples work for me.

    I've tried jruby contact_manager.rb from trunk (r 20398) and got the error:
    (Configuration: MS Vista-32bit, java 1.6.0_12-b04, jruby 1.3.1 , facets-2.8.0, SWT 3.5.1)


    TableColumnPropertiesDataBindingCommandHandler will handle command: column_prope
    rties with arguments first_namelast_nameemail
    method: items and args: #<ModelObserver:0x1d41318>first_namelast_nameemail
    parent is a widget: true
    on listener?: false
    TableItemsDataBindingCommandHandler will handle command: items with arguments #<
    ModelObserver:0x1d41318>first_namelast_nameemail
    ./../../src/command_handlers/models/table_items_updater.rb:36:in `update': undef
    ined method `each' for nil:NilClass (NoMethodError)
    from ./../../src/command_handlers/models/table_items_updater.rb:23:in `i
    nitialize'
    from ./../../src/command_handlers/table_items_data_binding_command_handl
    er.rb:35:in `do_handle'
    from ./../../src/command_handler_chain_link.rb:22:in `handle'
    from ./../../src/command_handler_chain_link.rb:24:in `handle'
    from ./../../src/glimmer.rb:30:in `method_missing'
    from ./../../src/glimmer.rb:44:in `method_missing'
    from contact_manager.rb:62
    from ./../../src/command_handlers/models/r_widget.rb:144:in `call'
    ... 14 levels...
    from ./../../src/glimmer.rb:31:in `method_missing'
    from ./../../src/glimmer.rb:44:in `method_missing'
    from contact_manager.rb:29

    ReplyDelete
  5. Thanks for reporting eugu.

    I fixed it. Sync up with SVN and let me know how it goes.

    ReplyDelete
  6. yes, it working fine now, thanks

    ReplyDelete