groovy-er desktop applications with griffon

22
Griffon Groovy-er desktop applications © 2011 Eric Wendelin

Upload: eric-wendelin

Post on 28-Jan-2015

105 views

Category:

Technology


2 download

DESCRIPTION

Ignite-style introduction to Griffon

TRANSCRIPT

Page 1: Groovy-er desktop applications with Griffon

Griffon

Groovy-er desktop applications

© 2011 Eric Wendelin

Page 2: Groovy-er desktop applications with Griffon

Griffon

Building desktop apps for the JVM just got Groovy

Page 3: Groovy-er desktop applications with Griffon
Page 4: Groovy-er desktop applications with Griffon
Page 5: Groovy-er desktop applications with Griffon

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
Page 7: Groovy-er desktop applications with Griffon
Page 8: Groovy-er desktop applications with Griffon

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
Page 10: Groovy-er desktop applications with Griffon

Based on

Page 11: Groovy-er desktop applications with Griffon

Convention >

Configuration

Ow! Pointy!

Page 12: Groovy-er desktop applications with Griffon

M V C

griffon create-mvc Login

Page 13: Groovy-er desktop applications with Griffon

@Bindable

Page 14: Groovy-er desktop applications with Griffon

griffon test-app

BOOM! Built in!

Page 15: Groovy-er desktop applications with Griffon

Lots of deployment optionsgriffon package jar

Page 16: Groovy-er desktop applications with Griffon

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

Plugins and Addons!

griffon install-plugin easyb

Page 18: Groovy-er desktop applications with Griffon

Polyglot

griffon install-plugin jython

Page 19: Groovy-er desktop applications with Griffon

Multi-UI Toolkit Support

Page 20: Groovy-er desktop applications with Griffon

You should probably buy me!

Page 21: Groovy-er desktop applications with Griffon

griffon.codehaus.org

@eriwen

Thanks!also go here

Page 22: Groovy-er desktop applications with Griffon