|
Groovy example source code file (Greet.groovy)
The Groovy Greet.groovy source code/* * Created by IntelliJ IDEA. * User: Danno.Ferrin * Date: Apr 26, 2008 * Time: 8:32:03 AM */ package swing.greet import groovy.beans.Bindable import groovy.swing.SwingBuilder import javax.swing.JOptionPane class Greet { TwitterAPI api Binding view @Bindable boolean allowLogin = true @Bindable boolean allowSelection = true @Bindable boolean allowTweet = true @Bindable def focusedUser = "" @Bindable def friends = [] @Bindable def tweets = [] @Bindable def timeline = [] @Bindable def statuses = [] void startUp() { setAllowSelection(false) setAllowTweet(false) view.greetFrame.show() view.loginDialog.show() } void login(evt) { setAllowLogin(false) view.doOutside { try { if (api.login(view.twitterNameField.text, view.twitterPasswordField.password)) { setFriends(api.getFriends(api.authenticatedUser)) friends.each {it.status.user = [screen_name:it.screen_name, profile_image_url:it.profile_image_url] } setStatuses(friends.collect {it.status}) selectUser(api.authenticatedUser) view.greetFrame.show() view.loginDialog.dispose() } else { JOptionPane.showMessageDialog(view.loginDialog, "Login failed") } } catch (Exception e) { e.printStackTrace() } finally { view.edt { setAllowLogin(true) setAllowSelection(true) setAllowTweet(true) } } } } void filterTweets(evt = null) { setAllowSelection(false) setAllowTweet(false) view.doOutside { try { setStatuses( friends.collect {it.status}.findAll {it.text =~ view.searchField.text} ) setTimeline( api.getFriendsTimeline(focusedUser).findAll {it.text =~ view.searchField.text} ) setTweets( api.getTweets(focusedUser).findAll {it.text =~ view.searchField.text} ) } catch (Exception e) { e.printStackTrace() } finally { view.edt { setAllowSelection(true) setAllowTweet(true) } } } } def userSelected(evt) { view.doOutside { selectUser(view.users.selectedItem) } } def selectUser(user) { setAllowSelection(false) setAllowTweet(false) try { setFocusedUser(api.getUser(user.screen_name as String)) setTweets(api.getTweets(focusedUser).findAll {it.text =~ view.searchField.text}) setTimeline(api.getFriendsTimeline(focusedUser).findAll {it.text =~ view.searchField.text}) } finally { view.edt { setAllowSelection(true) setAllowTweet(true) } } } def tweet(evt = null) { setAllowTweet(false) view.doOutside { try { api.tweet(view.tweetBox.text) // true story: it froze w/o the EDT call here view.edt {tweetBox.text = ""} filterTweets() } finally { setAllowTweet(true) } } } public static void main(String[] args) { def model = new TwitterAPI() def controller = new Greet() def view = new SwingBuilder() controller.api = model controller.view = view view.controller = controller view.build(View) view.view = view controller.startUp() } } Other Groovy examples (source code examples)Here is a short list of links related to this Groovy Greet.groovy source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.