Groovy-er desktop applications with Griffon
-
Upload
eric-wendelin -
Category
Technology
-
view
105 -
download
2
description
Transcript of Groovy-er desktop applications with Griffon
![Page 1: Groovy-er desktop applications with Griffon](https://reader034.fdocuments.in/reader034/viewer/2022051819/54c85e674a79593e6c8b45d9/html5/thumbnails/1.jpg)
Griffon
Groovy-er desktop applications
© 2011 Eric Wendelin
![Page 2: Groovy-er desktop applications with Griffon](https://reader034.fdocuments.in/reader034/viewer/2022051819/54c85e674a79593e6c8b45d9/html5/thumbnails/2.jpg)
Griffon
Building desktop apps for the JVM just got Groovy
![Page 3: Groovy-er desktop applications with Griffon](https://reader034.fdocuments.in/reader034/viewer/2022051819/54c85e674a79593e6c8b45d9/html5/thumbnails/3.jpg)
![Page 4: Groovy-er desktop applications with Griffon](https://reader034.fdocuments.in/reader034/viewer/2022051819/54c85e674a79593e6c8b45d9/html5/thumbnails/4.jpg)
![Page 5: Groovy-er desktop applications with Griffon](https://reader034.fdocuments.in/reader034/viewer/2022051819/54c85e674a79593e6c8b45d9/html5/thumbnails/5.jpg)
import java.awt.GridLayout;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import javax.swing.JFrame;import javax.swing.JTextField; import javax.swing.JButton; import javax.swing.SwingUtilities;
public class JavaFrame { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable(){ public void run() { JFrame frame = buildUI(); } frame.setVisible(true); }); } private static JFrame buildUI() { JFrame frame = new Jframe("JavaFrame"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().setLayout(new GridLayout(3,1)); final JTextField input = new JTextField(20); final JTextField output = new JTextField(20); output.setEditable(false); JButton button = new JButton("Click me!"); button.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event) { output.setText(input.getText()); } }); frame.getContentPane().add(input); frame.getContentPane().add(button); frame.getContentPane().add(output); frame.pack(); return frame; } }
![Page 6: Groovy-er desktop applications with Griffon](https://reader034.fdocuments.in/reader034/viewer/2022051819/54c85e674a79593e6c8b45d9/html5/thumbnails/6.jpg)
![Page 7: Groovy-er desktop applications with Griffon](https://reader034.fdocuments.in/reader034/viewer/2022051819/54c85e674a79593e6c8b45d9/html5/thumbnails/7.jpg)
![Page 8: Groovy-er desktop applications with Griffon](https://reader034.fdocuments.in/reader034/viewer/2022051819/54c85e674a79593e6c8b45d9/html5/thumbnails/8.jpg)
import groovy.swing.SwingBuilderimport static javax.swing.JFrame.EXIT_ON_CLOSEnew SwingBuilder().edt { frame(title: "GroovyFrame", pack: true, visible: true, defaultCloseOperation: EXIT_ON_CLOSE) { gridLayout(cols: 1, rows: 3) textField(id: "input", columns: 20) button("Click me!", actionPerformed: { output.text = input.text }) textField(id: "output", columns: 20, editable: false) }}
![Page 9: Groovy-er desktop applications with Griffon](https://reader034.fdocuments.in/reader034/viewer/2022051819/54c85e674a79593e6c8b45d9/html5/thumbnails/9.jpg)
![Page 10: Groovy-er desktop applications with Griffon](https://reader034.fdocuments.in/reader034/viewer/2022051819/54c85e674a79593e6c8b45d9/html5/thumbnails/10.jpg)
Based on
![Page 11: Groovy-er desktop applications with Griffon](https://reader034.fdocuments.in/reader034/viewer/2022051819/54c85e674a79593e6c8b45d9/html5/thumbnails/11.jpg)
Convention >
Configuration
Ow! Pointy!
![Page 12: Groovy-er desktop applications with Griffon](https://reader034.fdocuments.in/reader034/viewer/2022051819/54c85e674a79593e6c8b45d9/html5/thumbnails/12.jpg)
M V C
griffon create-mvc Login
![Page 13: Groovy-er desktop applications with Griffon](https://reader034.fdocuments.in/reader034/viewer/2022051819/54c85e674a79593e6c8b45d9/html5/thumbnails/13.jpg)
@Bindable
![Page 14: Groovy-er desktop applications with Griffon](https://reader034.fdocuments.in/reader034/viewer/2022051819/54c85e674a79593e6c8b45d9/html5/thumbnails/14.jpg)
griffon test-app
BOOM! Built in!
![Page 15: Groovy-er desktop applications with Griffon](https://reader034.fdocuments.in/reader034/viewer/2022051819/54c85e674a79593e6c8b45d9/html5/thumbnails/15.jpg)
Lots of deployment optionsgriffon package jar
![Page 16: Groovy-er desktop applications with Griffon](https://reader034.fdocuments.in/reader034/viewer/2022051819/54c85e674a79593e6c8b45d9/html5/thumbnails/16.jpg)
application(title: ‘GroovyTitle’, pack: true) { gridLayout(cols: 1, rows: 3) textField(id: "input", columns: 20) button("Click me!", actionPerformed: { output.text = input.text }) textField(id: "output", columns: 20, editable: false)}
![Page 17: Groovy-er desktop applications with Griffon](https://reader034.fdocuments.in/reader034/viewer/2022051819/54c85e674a79593e6c8b45d9/html5/thumbnails/17.jpg)
Plugins and Addons!
griffon install-plugin easyb
![Page 18: Groovy-er desktop applications with Griffon](https://reader034.fdocuments.in/reader034/viewer/2022051819/54c85e674a79593e6c8b45d9/html5/thumbnails/18.jpg)
Polyglot
griffon install-plugin jython
![Page 19: Groovy-er desktop applications with Griffon](https://reader034.fdocuments.in/reader034/viewer/2022051819/54c85e674a79593e6c8b45d9/html5/thumbnails/19.jpg)
Multi-UI Toolkit Support
![Page 20: Groovy-er desktop applications with Griffon](https://reader034.fdocuments.in/reader034/viewer/2022051819/54c85e674a79593e6c8b45d9/html5/thumbnails/20.jpg)
You should probably buy me!
![Page 21: Groovy-er desktop applications with Griffon](https://reader034.fdocuments.in/reader034/viewer/2022051819/54c85e674a79593e6c8b45d9/html5/thumbnails/21.jpg)
griffon.codehaus.org
@eriwen
Thanks!also go here
![Page 22: Groovy-er desktop applications with Griffon](https://reader034.fdocuments.in/reader034/viewer/2022051819/54c85e674a79593e6c8b45d9/html5/thumbnails/22.jpg)