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:

Unknown said...

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

Unknown said...

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. :)

Andy Maleh said...

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.

eugu said...

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

Andy Maleh said...

Thanks for reporting eugu.

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

eugu said...

yes, it working fine now, thanks