Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 15th, 2012  |  syntax: None  |  size: 1.54 KB  |  hits: 12  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. How to build a panel dynamically with Griffon
  2. panel(id: 'tabpanelWest', constraints: WEST, border: emptyBorder(6)) {
  3.         boxLayout(axis: BoxLayout.Y_AXIS)
  4.         button('Add', actionPerformed: controller.addToggleButton)
  5.         toggleButton(new JToggleButton('Secretaría',imageIcon('/onbutton.png'), true), itemStateChanged: controller.toggleRly)
  6.         toggleButton(new JToggleButton('Hall Entrada',imageIcon('/onbutton.png'), true), itemStateChanged: controller.toggleRly)
  7. }
  8.        
  9. def toggleRly = { evt ->
  10.         def toggleButton = evt.source
  11.         def status = toggleButton.isSelected() ? 1 : 0
  12.         // Calls to a service which does some stuff
  13.         URL url = status ? app.getResourceAsURL('onbutton.png') : app.getResourceAsURL('offbutton.png')        
  14.         toggleButton.setIcon(new ImageIcon(url))
  15.         toggleButton.setSelected(status ? true : false)      
  16.   }
  17.  
  18.   def addToggleButton = { evt ->
  19.       execInsideUIAsync {
  20.         URL url = app.getResourceAsURL('onbutton.png')
  21.         def panel = view.tabpanelWest
  22.         def jtogglebutton = new JToggleButton('Secretaría',new ImageIcon(url), true)
  23.         panel.add(jtogglebutton)
  24.         panel.revalidate()
  25.       }
  26.  }
  27.        
  28. panel.add(new SwingBuilder().edt {toggleButton(jtogglebutton, itemStateChanged: view.controller.toggleRly)})
  29.        
  30. def addToggleButton = { evt ->
  31.       edt {
  32.         def panel = view.tabpanelWest
  33.         def jtogglebutton = toggleButton(text:'Secretaria', selected:true, itemStateChanged: toggleRly)
  34.         panel.add(jtogglebutton)
  35.         panel.revalidate()
  36.       }
  37.  }