Practical Ext JS Projects with Gears
Total Page:16
File Type:pdf, Size:1020Kb
Practical Ext JS Projects with Gears Frank W. Zammetti Practical Ext JS Projects with Gears Copyright © 2009 by Frank W. Zammetti All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher. ISBN-13 (pbk): 978-1-4302-1924-8 ISBN-13 (electronic): 978-1-4302-1925-5 Printed and bound in the United States of America 9 8 7 6 5 4 3 2 1 Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, we use the names only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. Java™ and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc., in the US and other countries. Apress, Inc., is not affiliated with Sun Microsystems, Inc., and this book was writ- ten without endorsement from Sun Microsystems, Inc. Lead Editor: Steve Anglin Development Editor: Douglas Pundick Technical Reviewer: Herman van Rosmalen Editorial Board: Clay Andres, Steve Anglin, Mark Beckner, Ewan Buckingham, Tony Campbell, Gary Cornell, Jonathan Gennick, Michelle Lowman, Matthew Moodie, Jeffrey Pepper, Frank Pohlmann, Ben Renow-Clarke, Dominic Shakeshaft, Matt Wade, Tom Welsh Project Manager: Richard Dal Porto Copy Editor: Liz Welch Associate Production Director: Kari Brooks-Copony Production Editor: Katie Stence Compositor: Linda Weidemann, Wolf Creek Publishing Services Proofreader: Kim Burton Indexer: Brenda Miller Artist: Anthony Volpe Cover Designer: Kurt Krames Manufacturing Director: Tom Debolski Distributed to the book trade worldwide by Springer-Verlag New York, Inc., 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax 201-348-4505, e-mail kn`ano)ju<olnejcan)o^i*_ki, or visit dppl6++sss*olnejcankjheja*_ki. For information on translations, please contact Apress directly at 2855 Telegraph Avenue, Suite 600, Berkeley, CA 94705. Phone 510-549-5930, fax 510-549-5939, e-mail ejbk<]lnaoo*_ki, or visit dppl6++sss*]lnaoo*_ki. Apress and friends of ED books may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Spe- cial Bulk Sales–eBook Licensing web page at dppl6++sss*]lnaoo*_ki+ejbk+^qhgo]hao. The information in this book is distributed on an “as is” basis, without warranty. Although every pre- caution has been taken in the preparation of this work, neither the author(s) nor Apress shall have any liability to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the information contained in this work. The source code for this book is available to readers at dppl6++sss*]lnaoo*_ki. You may need to answer questions pertaining to this book in order to successfully download the code. I’m going to do something unusual for me here and write a serious dedication. This book is dedicated to the memory of Michael A. Baker. Mike, the lead singer for a band named Shadow Gallery, passed away in October 2008 at the far-too-young age of 45. The music of Shadow Gallery has always been a huge inspiration for me, as a musician myself, as a writer, and simply as a human being who appreciates art that touches you. Mike’s voice was the emotional anchor of the group’s music, an integral part of the experience. I never had the privilege of meeting Mike in person, but through his work I feel like I knew him extremely well, and I don’t think I could come up with a greater compliment for any artist. Rest in peace, Mike, and I think I can safely say, on behalf of all Shadow Gallery fans, thank you. Contents at a Glance About the Author ..................................................................xiii About the Technical Reviewer ......................................................xv About the Illustrator .............................................................. xvii Acknowledgments ................................................................xix Introduction ......................................................................xxi PART 1 NNN The Preliminaries CHAPTER 1 Introducing Web Development with Ext JS ........................3 CHAPTER 2 Widgets and Advanced Ext JS ..................................57 PART 2 NNN The Projects CHAPTER 3 Ext JS for a Busy Lifestyle: OrganizerExt ........................131 CHAPTER 4 Making Project Management Cool: TimekeeperExt ..............195 CHAPTER 5 A Place for Your Stuff: Code Cabinet Ext ........................259 CHAPTER 6 When the Yellow Pages Just Isn’t Cool Enough: Local Business Search ........................................309 CHAPTER 7 Your Dad Had a Workbench, Now So Do You: SQL Workbench .....371 CHAPTER 8 All Work and No Play: Dueling Cards ...........................437 CHAPTER 9 Managing Your Finances: Finance Master ......................497 INDEX .......................................................................559 v Contents About the Author ..................................................................xiii About the Technical Reviewer ......................................................xv About the Illustrator .............................................................. xvii Acknowledgments ................................................................xix Introduction ......................................................................xxi PART 1 NNN The Preliminaries CHAPTER 1 Introducing Web Development with Ext JS .................3 The Evolution of the Web: Web Sites vs. Web Applications .............3 The Rise of the Cool: Rich Internet Applications .......................6 Enter Ajax: The Driving Force behind RIAs ...........................9 Ajax (for Those Living under a Rock the Past 2–3 Years) ..........9 The Benefits of Ajax (and by Extension, RIAs) ...................10 The Evolution of Web Development ................................13 Choice Is Good: Toolkits Make It a Breeze ..........................14 Enter Ext JS: The Best of the Bunch ................................16 Fisher Price™ My First Ext JS Application ...........................19 Ext JS’s High-Level Organizational Structure ........................20 Global-Scope Classes .......................................21 The Ext Namespace. 34 Ext.Ajax ...................................................34 Ext.DomHelper .............................................36 Ext.DomQuery ..............................................39 Ext.Updater ................................................43 vii viii NCONTENTS The Ext.util Namespace ..........................................44 Ext.util.CSS ................................................44 Ext.util.DelayedTask ........................................45 Ext.util.Format .............................................46 Ext.util.JSON ...............................................49 Ext.util.MixedCollection ......................................50 Ext.util.TaskRunner .........................................53 Ext.util.TextMetrics .........................................54 But...but...What About the Widgets? .............................55 One Last Tangential Thing: Ext Core ...............................55 Summary .......................................................56 CHAPTER 2 Widgets and Advanced Ext JS ..............................57 Ext JS Widgets: An Overview ......................................57 The Hierarchy of Widgets ....................................58 The Basics of Widget Usage ..................................60 Layout and Containers in Ext JS ..............................62 Form Widgets ..............................................75 Menus and Toolbars (Oh My!) ................................87 Trees in Ext JS .............................................90 Grids in Ext JS .............................................93 The Other Widgets ..........................................95 Working with Data in Ext JS. 101 The Template and XTemplate Classes .............................105 Drag and Drop .................................................109 The “State” of Things ...........................................116 For Your Date in the Boardroom: Ext JS Charting ...................118 Plug-ins .......................................................122 These Are the Gears That Power the Tubes!. 123 LocalServer ...............................................124 WorkerPool ...............................................124 Database .................................................124 Summary ......................................................127 NCONTENTS ix PART 2 NNN The Projects CHAPTER 3 Ext JS for a Busy Lifestyle: OrganizerExt .................131 What’s This Application Do Anyway? ..............................131 Overall Structure and Files .......................................133 The Markup ....................................................134 The Style Sheet ................................................141 The Code ......................................................144 The DAO Class ............................................144 The OrganizerExt Class .....................................153 Suggested Exercises ............................................192 Summary ......................................................193 CHAPTER 4 Making Project Management