advertisement
javaboutique
Search Tips
Articles  |   Tutorials  |   Reviews  |   Tools  |   by Category  |   by Date  |   by Name  |   Submit  |   Source  |   Forums  |  
javaboutique
Browse DevX


Partners & Affiliates











advertisement

Tutorials : Deliver On-the-Fly Mapping Services to Your Rich Desktop Java Application, Part 3 :

Enhancing the SwingX-WS Projects Map Viewer

The ca.swingx.maps package contains classes that extend and enhance the SwingX-WS project's map viewer. The MapKit class is a direct extension of the SwingX-WS project's JXMapKit class. JXMapKit is extended for two reasons. First, the original setTileFactory method in the JXMapKit class resets the map's zoom and center position if it is invoked. Because you have the ability to plugin a new TileFactory on the fly, the aforementioned behavior is not desirable. Second, the extensions provide a more generic overlay mechanism than the JXMapKit class provided.

For the purposes of this article, the MapKit extension was also wrapped in the Map class. Though the Map class provides only a few delegate methods to the wrapped MapKit instance, you may add other delegate methods as required. There are four main reasons for wrapping the MapKit class:

  1. Wrapping hides and simplifies the full API to the SwingX-WS project's JXMapKit class.
  2. Wrapping hides the setTileFactory method and provides a new setTileFactory method which accepts an XMLTileFactory object and an index.
  3. Wrapping initializes the wrapped MapKit.
  4. Wrapping provides a credit overlay painter to display map credits.
Two other classes in the ca.ansir.swingx.maps package are GeoBounds and GeoUtil. For readers that are familiar with the Google Maps API, the GeoBounds class serves the same purpose as Google's GlatLngBounds class. The GeoBounds class provides access to the northwest corner and the southeast corner of a rectangular geographic region. GeoBounds also provides an intersects method to determine whether or not a GeoBounds object interests another GeoBounds object. The GeoUtil class provides a static method to obtain the visible GeoBounds of the map.

The CreditPainter class is the final class in the ca.ansir.swingx.maps package. CreditPainter extends the AbstractPainter object and implements the MouseListener interface. The CreditPainter also implements the AbstractPainter object's doPaint method generically with the following signature:

protected void doPaint(Graphics2D g, final JXMapViewer mapViewer,
		int width, int height)
Part 2 showed how to design the XML configuration to contain metadata which could then be used to model the behavior of applying unique map credits to particular areas and zoom levels. The CreditPainter accomplishes this by using the map's zoom, GeoBounds, and the GeoBounds object's interests method.

Besides the ability to apply unique map credits, the CreditPainter is also responsible for launching a browser if the metadata contains a terms of use link. This is accomplished by adding CreditPainter as a MouseListener to the wrapped MapKit object's map viewer. Additionally, the bounds where the terms link was painted are known and if the map viewer is clicked in those bounds, the the CreditPainter opens the terms link in a browser.

Home / Articles / Deliver On-the-Fly Mapping Services to Your Rich Desktop Java Application, Part 3 / 1 / 2 / Next Page

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.

 Microsoft RIA Development Center
 IBM Rational Resource Center
 Destination .NET
XML error: not well-formed (invalid token) at line 33
advertisement
Receive Articles via our XML/RSS feed
Receive Articles via our XML/RSS feed

JavaBytes
Internet Cyclone
This powerful, easy-to-use, internet optimizer is for Windows 95, 98, ME, NT, 2000 and XP. It's designed to automatically optimize your Windows settings, boosting your Internet connection up to 200%.

Free VMware Server 2.0 Now Release Candidate
Linux Player Xandros Grabs Storied Rival Linspire
Hey Enterprise: Here Comes the 3G iPhone
MySpace Opens Profile Portability API
Microsoft Jumps Into Virtualization Fray
Eclipse Ganymede Makes It Easier for Devs
Open Source Nokia a Threat to Microsoft, Google?
Salesforce, Google Head for 2nd on Apps
HP Open Sources Unix File System for Linux
Red Hat Opens Its Network to Space

Build a Generic Histogram Generator for SQL Server
Beyond XML and JSON: YAML for Java Developers
Mastering the Windows Mobile Emulators
Avaya AE Services Provide Rapid Telephony Integration with Facebook
Featured Algorithm: Intel Threading Building Blocks: parallel_reduce
Getting Started with Windows Live Admin Center
Eight Key Practices for ASP.NET Deployment
Java ME User Interfaces: Do It with LWUIT!
Talking VPro: Transcript
Bringing Semantic Technology to the Enterprise

Advertising Info  |   Member Services  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About



JupiterOnlineMedia

internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info


Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers

Solutions
Whitepapers and eBooks
IBM eBook: Planning a Service Oriented Architecture
IBM eBook: Choosing the Right Architecture--What It Means for You and Your Business
Microsoft Article: Will Hyper-V Make VMware This Decade's Netscape?
Avaya Article: Using Intelligent Presence to Create Smarter Business Applications
Intel Go Parallel Article: Getting Started with TBB on Windows
Microsoft Article: 7.0, Microsoft's Lucky Version?
Avaya Article: How to Feed Data into the Avaya Event Processor
IBM Article: Developing a Software Policy for Your Organization
Microsoft Article: Managing Virtual Machines with Microsoft System Center
Intel Go Parallel Article: Intel Threading Tools and OpenMP
HP eBook: Storage Networking , Part 1
Microsoft Article: Solving Data Center Complexity with Microsoft System Center Configuration Manager 2007
MORE WHITEPAPERS, EBOOKS, AND ARTICLES
Webcasts
HP Video: StorageWorks EVA4400 and Oracle
HP Webcast: Storage Is Changing Fast - Be Ready or Be Left Behind
Microsoft Silverlight Video: Creating Fading Controls with Expression Design and Expression Blend 2
MORE WEBCASTS, PODCASTS, AND VIDEOS
Downloads and eKits
Red Gate Download: SQL Toolbelt and free High-Performance SQL Code eBook
Iron Speed Designer Application Generator
MORE DOWNLOADS, EKITS, AND FREE TRIALS
Tutorials and Demos
Silverlight 2 App and Walkthrough: Leverage Silverlight 2 with SQL Server and XML
IBM Article: Enterprise Search--Do You Know What's Out There?
HP Demo: StorageWorks EVA4400
Microsoft Article: The Progress and Promise of Deep Zoom
Microsoft How-to Article: Get Going with Silverlight and Windows Live
MORE TUTORIALS, DEMOS AND STEP-BY-STEP GUIDES