Home > Store

larger cover

Add To My Wish List

Rich Client Programming: Plugging into the NetBeans Platform

Register your product to gain access to bonus material or receive a coupon.

  • Description
  • Extras
  • Reviews
  • Sample Content

Product Author Bios

Tim Boudreau coauthored NetBeans™: The Definitive Guide (O'Reilly), served on the team that open-sourced NetBeans, and continues to develop for the NetBeans project.

Jaroslav Tulach cofounded the NetBeans project, and remains a leading guardian of the project API.

Geertjan Wielenga is the technical writer responsible for NetBeans documentation relating to module development and rich-client application development.

The open-source NetBeans Platform is an extraordinarily powerful framework for building "write once, run anywhere" rich client applications. Now, for the first time since the release of NetBeans IDE 5.0, there's a comprehensive guide to rich client development on the NetBeans Platform.

Written for Java developers and architects who have discovered that basic Swing components are not enough for them, this book will help you get started with NetBeans module development, master NetBeans' key APIs, and learn proven techniques for building reliable desktop software. Each chapter is filled with practical, step-by-step instructions for creating complete rich client applications on top of the NetBeans Platform and plugins for NetBeans IDE.

Rich Client Programming's wide-ranging content covers

  • Why modular development makes sense for small, medium, and large applications
  • Using NetBeans to accelerate development and improve efficiency
  • Leveraging NetBeans productivity features, from the Component Palette to Code Completion
  • Leveraging NetBeans' modular architecture in your own applications
  • Implementing loosely coupled communication to improve code maintainability and robustness
  • Managing user- and system-configuration data
  • Building reloadable components with solid threading models
  • Constructing sophisticated multiwindow applications and presenting rich data structures to users
  • Adding user-configurable options
  • Integrating Web services with NetBeans desktop applications
  • Automating module updates and providing user help
Foreword by Jonathan Schwartz     
Foreword by Jan Chalupa       
Preface       
About the Authors and Contributors       
Acknowledgments       

Chapter 1: Getting Started with the NetBeans Platform       
Chapter 2: The Benefits of Modular Programming        
Chapter 3: Modular Architecture       
Chapter 4: Loosely Coupled Communication        
Chapter 5: Lookup       
Chapter 6: Filesystems       
Chapter 7: Threading, Listener Patterns, and MIME Lookup       
Chapter 8: The Window System       
Chapter 9: Nodes, Explorer Views, Actions, and Presenters       
Chapter 10: DataObjects and DataLoaders       
Chapter 11: Graphical User Interfaces        
Chapter 12: Multiview Editors       
Chapter 13: Syntax Highlighting       
Chapter 14: Code Completion       
Chapter 15: Component Palettes       
Chapter 16: Hyperlinks       
Chapter 17: Annotations       
Chapter 18: Options Windows       
Chapter 19: Web Frameworks       
Chapter 20: Web Services        
Chapter 21: JavaHelp Documentation       
Chapter 22  Update Centers       
Chapter 23: Use Case 1: NetBeans Module Development       
Chapter 24: Use Case 2: Rich Unger on Application Development    
Chapter A: Advanced Module System Techniques       
Chapter B: Common Idioms and Code Patterns in NetBeans       
Chapter C: Performance       
Index       

Customer Reviews

10 of 11 people found the following review helpful
2.0 out of 5 stars poor editing mars potentially useful book, October 29, 2008
By 
mathboy (San Diego, CA) - See all my reviews
This review is from: Rich Client Programming: Plugging into the NetBeans Platform (Paperback)
This is a book about how Netbeans, the application framework, works. Its intended audience is Netbeans framework users, people interested in frameworks generally and people who want to know how Netbeans works so they can, say, write plugins for it. Netbeans is mostly known for being a Java editor.

So what we have here is a book written about a technology by the people who created that technology. The worry for readers is there will not be enough editorial pushback against the experts to clarify their language; if they say "that's right" about something they wrote, then who is going to argue with them?

Unfortunately, that fear is well founded in this case. For instance, after a lengthy and rather abstract "manifesto" type chapter (chapter 4) on the (uncontroversial) benefits of modular applications and decoupling of abstraction from implementation, they introduce something called Lookup, which is, basically, a little database of keys and values, or, even more... Read more
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


7 of 8 people found the following review helpful
1.0 out of 5 stars lots of information; very little context, October 30, 2008
By 
R. Mark Volkmann (St. Charles, MO United States) - See all my reviews
(REAL NAME)   
Amazon Verified Purchase(What's this?)
This review is from: Rich Client Programming: Plugging into the NetBeans Platform (Paperback)
I read a lot of computer books. This is one of the worst I have ever read. While it does contain some good information, it is presented with very little context. That makes it very difficult to absorb. The other issue is that the material has become dated as the NetBeans Platform has been improved. Unfortunately there isn't an alternative to this book now. Maybe there will be in 2009.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


1 of 1 people found the following review helpful
1.0 out of 5 stars Almost Worthless, July 1, 2011
By 
Gary E. Albers (Long Beach, CA) - See all my reviews
(REAL NAME)   
Amazon Verified Purchase(What's this?)
I purchased the Kindle version of this book to help in understanding NetBeans, as I am beginning a study of X3D programming and need to use the X3D-Edit program plugin in the Linux version of NetBeans. Within the first couple of pages of the first chapter, I discovered that (1) apparently all of the book's example programs came on a CD with the hardcopy version of the book, and are NOT available for download on the publisher's or authors' websites, and (2) the instructions in the book are completely worthless with current versions of NetBeans; i.e., the menu systems on NetBeans 6.9 and 7.0 are totally different from those described in this book. Searching for info on the internet, it looks like I could go through a laborious process of installing a legacy version of NetBeans (5.5, which the book describes), which also involves installing an outdated version of the Java Runtime Executable, and possibly more contortions (I didn't pursue that route). Since I need to study the latest... Read more
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


Share your thoughts with other customers:
 See all 5 customer reviews...

Table of Contents

Foreword by Jonathan Schwartz        xv
Foreword by Jan Chalupa        xvii
Preface        xix
About the Authors and Contributors        xxvii
Acknowledgments        xxxi

Chapter 1: Getting Started with the NetBeans Platform        1

1.1  Setting Up the IDE        1
1.2  NetBeans IDE Basics        3

Chapter 2: The Benefits of Modular Programming         11

2.1  Distributed Development        11
2.2  Modular Applications         13
2.3  A Modular Programming Manifesto        15
2.4  Using NetBeans to Do Modular Programming        19

Chapter 3: Modular Architecture        23

3.1  Modules—The Assembly Units of a Modular Application         23
3.2  Types of Modules        24
3.3  Module Lifecycle        29
3.4  Groups of Modules        33

Chapter 4: Loosely Coupled Communication         39

4.1  Registration and Discovery        39
4.2  MetaInf Services        41
4.3  The Global Lookup        43
4.4  Writing an Extension Point        46

Chapter 5: Lookup        49

5.1  Objects That Own Lookups        53
5.2  Lookup as a Communication Mechanism        55
5.3  Lookups and Proxying        58
5.4  Lookup and Selection        62
5.5  Writing Lookup-Sensitive Actions        63
5.6  Tracking the Global Selection        64
5.7  Legacy Variants of the Lookup Pattern in NetBeans APIs        65
5.8  Common Lookup Patterns        66

Chapter 6: Filesystems        69

6.1  FileSystems and FileObjects        70
6.2  What Kinds of FileSystems Will I Be Dealing With?        71
6.3  Layering        72
6.4  XML Filesystems        73
6.5  Declarative Registration II: The System Filesystem        74
6.6  Getting from FileObjects to Java Objects        88
6.7  Browsing the System Filesystem        96
6.8  Conclusions        96

Chapter 7: Threading, Listener Patterns, and MIME Lookup        103

7.1  Creating the Modules and SPI        104
7.2  Implementing ListModelProvider        107
7.3  Providing a UI Component        123
7.4  Using the Pseudo Navigator        132
7.5  Conclusion: PseudoNavigator—What's Wrong with This Picture?        132

Chapter 8: The Window System        135

8.1  What the Window System Does        137
8.2  Classes in the Window System API        139
8.3  Using TopComponent        141
8.4  Persisting State across Sessions        145
8.5  Window System Persistence Data        147
8.6  Creating Editor-Style (Nondeclarative) TopComponents        152
8.7  Advanced Window System Configuration: Defining Your Own Modes        153
8.8  Using TopComponent Groups        158

Chapter 9: Nodes, Explorer Views, Actions, and Presenters        163

9.1  The Nodes API        164
9.2  The Explorer API        177
9.3  Actions        190
9.4  Node Properties        199
9.5  Nodes and DataObjects: Creating a System Filesystem Browser        203
9.6  Epilogue: Of Nodes, Property Sheets, and User Interface Design        205

Chapter 10: DataObjects and DataLoaders        207

10.1  DataObjects: Where Do They Come From?        210
10.2  Adding Support for a New File Type        212
10.3  Using Custom File Types Internally        234
10.4  Serialized Objects and the System Filesystem        235

Chapter 11: Graphical User Interfaces        237

11.1  Introduction        237
11.2  Creating a New GUI Form        240
11.3  Placing and Aligning a Component in a Form        240
11.4  Setting Component Size and Resizability        242
11.5  Specifying Component Behavior and Appearance        244
11.6  Generating Event Listening and Handling Methods        244
11.7  Customizing Generated Code        247
11.8  Building an Explorer View Visually         249
11.9  Previewing a Form        250
11.10  Using Custom Beans in the Form Editor        250
11.11  Using Different Layout Managers        251

Chapter 12: Multiview Editors        253

12.1  Introduction        253
12.2  Getting Started        255
12.3  Understanding Multiview Editors        256
12.4  Creating the Editor’s Infrastructure        257
12.5  Creating the Source View        261
12.6  Creating the Visual View        269
12.7  Finishing the Sample        271

Chapter 13: Syntax Highlighting        273

13.1  Introduction        273
13.2  Preparing to Create Syntax Highlighting        274
13.3  Creating Token IDs        275
13.4  Creating a Lexical Analyzer        277
13.5  Extending the Options Window        281
13.6  Registering the Syntax Highlighting in the Layer File        284
13.7  Finishing Up        286

Chapter 14: Code Completion        287

14.1  Introduction        287
14.2  Understanding Code Completion        289
14.3  Code Completion Query Types        291
14.4  Preparing to Work with the CompletionProvider Interface        291
14.5  Implementing a CompletionProvider        293
14.6  Implementing a CompletionItem        296
14.7  Adding a Filter to the CompletionProvider        300
14.8  Adding Documentation to the Code Completion Box        304
14.9  Adding a Tooltip to the Code Completion Box        305

Chapter 15: Component Palettes        307

15.1  Introduction        307
15.2  Adding Items to a Palette        313
15.3  Dragging and Dropping Palette Items        323
15.4  Adding Supporting Features to a Palette        331
15.5  Creating a Palette for a Text-Based Editor        344

Chapter 16: Hyperlinks        355

16.1  Introduction        355
16.2  Preparing to Work with the HyperlinkProvider Class        357
16.3  Hyperlinks in Manifest Files        359

Chapter 17: Annotations        367

17.1  Introduction        367
17.2  Preparing to Create an Error Annotation        368
17.3  Creating an Error Annotation        368
17.4  Preparing to Use an Error Annotation        376
17.5  Using an Error Annotation        377
17.6  Finishing Up        383

Chapter 18: Options Windows        385

18.1  Introduction        385
18.2  Looking at the Options Window Extension Files        389
18.3  Creating a Primary Panel        393
18.4  Adding Settings to the Options Window        396

Chapter 19: Web Frameworks        399

19.1  Introduction        399
19.2  Preparing to Work with the WebFrameworkProvider Class        404
19.3  Providing a Framework Configuration Panel        406
19.4  Creating a Source Structure        413
19.5  Letting the User Select a Library in the Frameworks Panel        423
19.6  Project Properties Dialog Box and Web Frameworks        424
19.7  Finishing Up        427

Chapter 20: Web Services        429

20.1  Introduction        429
20.2  Creating and Testing a Web Service Client        430
20.3  Integrating the Web Service Client        435

Chapter 21: JavaHelp Documentation        441

21.1  Creating a Help Set        442
21.2  Removing the IDE's Help Sets        446
21.3  Branding the Help Set's Default Texts        449

Chapter 22  Update Centers        453

22.1  Introduction        453
22.2  Adding the IDE's Update Center Functionality        454
22.3  Creating and Distributing an Autoupdate Descriptor        456
22.4  Distributing the URL to the Autoupdate Descriptor        458
22.5  Downloading NBM Files from an Update Center        461
22.6  Publishing Updates to Existing Modules        462

Chapter 23: Use Case 1: NetBeans Module Development        463

23.1  Introduction        463
23.2  Calling the External Tool        465
23.3  Handling the Output        476
23.4  Configuring the Tool        491
23.5  Formatting and Converting Files        496
23.6  Controlling the Conversion        505

Chapter 24: Use Case 2: Rich Unger on Application Development        521

24.1  Introduction        521
24.2  Getting Started        522
24.3  Creating Support for the audio/wav MIME Type        526
24.4  Encapsulating Audio Data in the WavDataObject        530
24.5  Creating a Component for Viewing WAV Files        533
24.6  Converting WAV Editor to Multiview        535
24.7  Creating an API for Plugging in Additional Views        542
24.8  Implementing Your Own API to Provide a New View        544

Chapter A: Advanced Module System Techniques        551

A.1  Hiding Implementation Details        551
A.2  Design for Extensibility        553
A.3  Splitting API and Implementation        555
A.4  Do I Really Need Cyclic Dependency?        559
A.5  Crossing the Informational Divide        563
A.6  Restricting Access to Friends        565
A.7  Having Public as Well as Friend API        566
A.8  A Final Word on Modularity        568

Chapter B: Common Idioms and Code Patterns in NetBeans        569

B.1  Things You Do Differently in NetBeans Than in Plain Swing Code        569
B.2  Things That Represent Files        571
B.3  Working with Lookup        573
B.4  Projects        573

Chapter C: Performance        575

C.1  Responsiveness versus Performance        577
C.2  Performance Tips for Module Authors        578
C.3  Writing Modules That Are Good Citizens        579

Index        583

Downloadable Sample Chapter

Download the sample chapter

Foreword

Download the Foreword

Index

Download the Index

 
Best Value

Book + eBook Bundle  $98.98  $59.39

Book Price $43.99
eBook Price $15.40
eBook formats included

Buy

This book is temporarily out of stock, but will ship for free when in stock.

Buy

Book  $54.99  $43.99

We're temporarily out of stock, but order now and we'll send it to you later.

This book is temporarily out of stock, but will ship for free when in stock.

Buy

eBook (Watermarked)  $43.99  $35.19

Includes EPUB, MOBI, and PDF
About eBook Formats

This eBook includes the following formats, accessible from your Account page after purchase:

ePubEPUBThe open industry format known for its reflowable content and usability on supported mobile devices.

MOBIMOBIThe eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

Adobe ReaderPDFThe popular standard, used most often with the free Adobe® Reader® software.

This eBook requires no passwords or activation to read. We customize your eBook by discretely watermarking it with your name, making it uniquely yours.

Purchase Reward: One Month Free Subscription
By completing any purchase on InformIT, you become eligible for an unlimited access one-month subscription to Safari Books Online.

Get access to thousands of books and training videos about technology, professional development and digital media from more than 40 leading publishers, including Addison-Wesley, Prentice Hall, Cisco Press, IBM Press, O'Reilly Media, Wrox, Apress, and many more. If you continue your subscription after your 30-day trial, you can receive 30% off a monthly subscription to the Safari Library for up to 12 months. That's a total savings of $199.