Better Software - November 2008 - (Page 30) public class Presenter { private Meeting meeting; private MeetingView meetingView; private RoomScheduler roomScheduler; public Presenter(Meeting meeting, MeetingView meetingView, RoomScheduler roomScheduler) { this.meeting = meeting; this.meetingView = meetingView; this.roomScheduler = roomScheduler; } /** * Callback when the view’s capacity text box changes * * @param textField the capacity TextBox widget */ public void requiredCapacityChanged(HasText textField) { meeting.setCapacity(Integer.parseInt(textField.getText())); if (!roomScheduler.canAcceptCapacityFor(meeting)) { meetingView.disableSaveButton(); } } protected Meeting getMeeting() { return meeting; } } Listing 4 package com.google.gwt.user.client.ui; public interface HasText { /** * Gets this object’s text. */ String getText(); /** * Sets this object’s text. * * @param text the object’s new text */ void setText(String text); } Listing 5 public class FakeTextContainer implements HasText { private String text; public FakeTextContainer(String text) { this.text = text; } public String getText() { return text; } public void setText(String text) { this.text = text; } } Listing 6 plain Java objects that don’t require any JavaScript, so these tests run quickly. Note the argument to requiredCapacityChanged is of the type HasText. This turns out to be an interface that is part of the GWT libraries, as shown in listing 5. This simple interface is used by many 30 BETTER SOFTWARE NOVEMBER 2008 GWT components and allows manipulation of a widget’s text contents, including the TextBox in our example. This interface is extremely useful for testing because we don’t need to pass in a real TextBox. Thus, we avoid instantiating a text input in the DOM, requiring our test to extend GWTTestCase to run in www.StickyMinds.com a real browser. In listing 6, I’ve made a simple, fake implementation that wraps a string. And finally, the view implementation is shown in listing 7. As you can see, there’s not much logic here. Most of the code is involved in setting up the event listeners and config- http://www.StickyMinds.com
Table of Contents Feed for the Digital Edition of Better Software - November 2008 Better Software - November 2008 Contents Mark Your Calendar Contributors eLightenment Technically Speaking Code Craft Test Connection Management Chronicles Getting Agile with User-Centered Design Google Web Toolkit Simple Summaries of Complex Projects Product Announcements 10 Things You Might Not Know About … The Last Word Ad Index Better Software - November 2008 Better Software - November 2008 - (Page Intro) Better Software - November 2008 - (Page bellyband1) Better Software - November 2008 - (Page bellyband2) Better Software - November 2008 - Better Software - November 2008 (Page Cover1) Better Software - November 2008 - Better Software - November 2008 (Page Cover2) Better Software - November 2008 - Better Software - November 2008 (Page 1) Better Software - November 2008 - Better Software - November 2008 (Page 2) Better Software - November 2008 - Contents (Page 3) Better Software - November 2008 - Mark Your Calendar (Page 4) Better Software - November 2008 - Mark Your Calendar (Page 5) Better Software - November 2008 - Contributors (Page 6) Better Software - November 2008 - Contributors (Page 7) Better Software - November 2008 - eLightenment (Page 8) Better Software - November 2008 - eLightenment (Page QA1) Better Software - November 2008 - eLightenment (Page QA2) Better Software - November 2008 - eLightenment (Page 9) Better Software - November 2008 - eLightenment (Page 10) Better Software - November 2008 - eLightenment (Page 11) Better Software - November 2008 - eLightenment (Page 12) Better Software - November 2008 - Technically Speaking (Page 13) Better Software - November 2008 - Code Craft (Page 14) Better Software - November 2008 - Code Craft (Page 15) Better Software - November 2008 - Code Craft (Page 16) Better Software - November 2008 - Code Craft (Page 17) Better Software - November 2008 - Test Connection (Page 18) Better Software - November 2008 - Test Connection (Page 19) Better Software - November 2008 - Management Chronicles (Page 20) Better Software - November 2008 - Management Chronicles (Page 21) Better Software - November 2008 - Getting Agile with User-Centered Design (Page 22) Better Software - November 2008 - Getting Agile with User-Centered Design (Page 23) Better Software - November 2008 - Getting Agile with User-Centered Design (Page 24) Better Software - November 2008 - Getting Agile with User-Centered Design (Page 25) Better Software - November 2008 - Google Web Toolkit (Page 26) Better Software - November 2008 - Google Web Toolkit (Page 27) Better Software - November 2008 - Google Web Toolkit (Page 28) Better Software - November 2008 - Google Web Toolkit (Page 29) Better Software - November 2008 - Google Web Toolkit (Page 30) Better Software - November 2008 - Google Web Toolkit (Page 31) Better Software - November 2008 - Google Web Toolkit (Page 32) Better Software - November 2008 - Google Web Toolkit (Page 33) Better Software - November 2008 - Simple Summaries of Complex Projects (Page 34) Better Software - November 2008 - Simple Summaries of Complex Projects (Page 35) Better Software - November 2008 - Simple Summaries of Complex Projects (Page 36) Better Software - November 2008 - Simple Summaries of Complex Projects (Page 37) Better Software - November 2008 - Simple Summaries of Complex Projects (Page 38) Better Software - November 2008 - Simple Summaries of Complex Projects (Page 39) Better Software - November 2008 - Simple Summaries of Complex Projects (Page 40) Better Software - November 2008 - Simple Summaries of Complex Projects (Page 41) Better Software - November 2008 - Product Announcements (Page 42) Better Software - November 2008 - Product Announcements (Page 43) Better Software - November 2008 - Product Announcements (Page 44) Better Software - November 2008 - Product Announcements (Page 45) Better Software - November 2008 - 10 Things You Might Not Know About … (Page 46) Better Software - November 2008 - The Last Word (Page 47) Better Software - November 2008 - Ad Index (Page 48) Better Software - November 2008 - Ad Index (Page Cover3) Better Software - November 2008 - Ad Index (Page Cover4)
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.