WideLens: A calendaring reference application for Bungee Connect

logo_widelens_sm  With the release of the latest version of Bungee Connect we are happy to announce the release of a new reference application for Bungee Connect. WideLens is a calendaring application built to demonstrate what can be built with Bungee Connect, such as:

Connectivity to multiple types of external data:
WeekViewWideLens connects to Microsoft Exchange calendar, Google Calendar, Salesforce.com, Facebook, MySQL and iCalendar feeds. If you’re familiar with these services, you know this list isn’t just a mouthful to say, it represents a variety of protocols and authentication schemes. MS Exchange is accessed through WebDav, Google Calendar through gData, Salesforce.com via SOAP, Facebook through REST and MySQL connectivity is based on client libraries provided by MySQL (integrated directly inside Bungee Connect).

WideLens connects to each of the sources in real-time, presenting the user with live data. With the exception of Facebook and iCalendar, users can create and modify events and those changes are immediately posted back to the source.MySQL pulls double duty, serving as both a WideLens native calendar source and as the persistence layer for all kinds of application data including user preferences and credential information for each service.

Due to the sensitivity of calendar data, user credentials for each type of service are encrypted before being stored into the database. Credentials can only be unlocked with the users password, not stored in the database. If they forget their password they will need to re-enter all their credential information for each service.This list of services was chosen to demonstrate to variety of ways Bungee Connect can leverage existing data in applications and the accelerated way in which a developer can integrate that data into their application. To provide some perspective, once the base calendar was functional it took only 3 hours of development time to integrate Salesforce.com and only 1 day to integrate Facebook.

Amazing user experience:
Users expect far more richness in web applications than they did in the past. WideLens shows how you can provide your end users with an amazing application. Features like drag-and-drop, no page refresh and even cross-browser window updates give the users a desktop-like experience without requiring an install or plug-in.From a development standpoint, this interactivity is just intrinsic to the platform–there’s no need to write or dynamically generate any JavaScript.

WideLens also shows the flexibility of the many controls available to build applications. Some of the interactions were created using calendar specific controls, such as the appointment list control, while others were created by compositing multiple controls together. For instance, the month view is actually the FormList control which uses a form to display each day of the month. Each form representing a single day also has a FormList control displaying the list of events. As you use WideLens, you’ll notice that the number of weeks displayed in the month view varies depending on the month. The developers didn’t write any logic to get that interaction, they simply bound the control to a collection of days and the FormList control took care of how to correctly display days of the current month depending on the number of days in the collection.

Another interaction worth calling out is the ability to drill down to the day view from within the month view. From within the month view you can click on the down arrow in the upper-right corner and a pop-up opens to display the day in more detail. You’ll also notice, that dragging an appointment in the pop-up to a new time causes an update in the month view behind it. Adding this interaction required only writing a function to pop open a dialog and building a form with the appointment list control on it. Bungee Connect handled the state management between the client and server and updating the views as the data changes.

There are many more interactions that give users a truly amazing experience, go check out the app and the source code to see how they were implemented.

Embed the app into any SaaS solution or website, even with single sign-on:
EmbeddedInSalesforceBecause WideLens connects to multiple data sources, it makes sense to deliver the application as part of the UI. Specifically with Salesforce.com in mind, we added the ability to embed WideLens within Salesforce.com and support single sign-on. To enable single sign-on for Salesforce we just sub-classed the EmbeddedSingleSignOn class and wrote a function to take some arguments from the URL and validate the Salesforce user. Once we validate the Salesforce user we unlock their credentials and they are logged in. This is a great way to deliver a seamless experience compositing multiple applications.

Sophistication and flexibility provided through OO programming in Bungee Connect:SolutionExplorerInheritence
Bungee Connect is built on OO principles and supports full object inheritance. WideLens was architected to take advantage of that fact and builds several base classes as a foundation for the calendar. Connecting the multiple services together required only sub-classing the base classes and overriding the appropriate functions for each new source. When you jump into the source code you’ll see exactly what I mean.

More to come!
This is only the beginning for WideLens, over the next couple of months you’ll see many new features.

Extending the WideLens Reference App
We hope that this application will provide you with both a reference on the best way to leverage Bungee Connect and even a starting point for your own projects.In addition to the release of the application, we also have an article on extending the app to fit your own business needs. In this article, WideLens was extended to support a new calendar type and display Salesforce.com opportunities on the calendar.

We provide WideLens under a BSD-style open source license so you can use it in your own projects. You can see the full license here.

There are also a couple of videos about WideLens: Developer Overview (2:26) and User Experience Overview (4:35).

Finally, you can interact with the app and inspect the source code by logging into Bungee Connect. If you don’t have a Bungee Connect developer account, get one here.

Brad Hintze
Director of Marketing
Bungee Labs


  1. […] Bungee Connect’s product marketing director has described some of WideLens’ features in this post (e.g. the app’s bi-directional connectivity to various calendaring services and application […]

  2. Don Waters said

    This might well be the app that gets us going with BungeeConnect in a significant way. If we had the Google Apps Calendar available to us that would make a HUGE difference to us in making this application fully usable. Please do notify me at the point any code is available for this calendar.

  3. Hi Don,

    WideLens code is available today for you to import and modify as you like. See: https://bungeeconnect.wordpress.com/2008/02/18/extending-the-widelens-reference-app/

    I’ll follow up with you to take you through more details.



  4. […] Blog Post: WideLens: A calendaring reference application for Bungee Connect […]

  5. Jon Forrest said

    Can you connect to Oracle Calendar?

    Jon Forrest

  6. Ted Haeger said

    @Jon Forrest:
    We’re just wrapping up a developer video about how to modify the WideLens base code to connect to any other source. If Oracle Calendar has web API’s, then it should be entirely possible. I will follow up in an email.
    –Ted Haeger

  7. […] way of data integration, WideLens is a great example of bringing data in from multiple sources and presenting it in a single view. WideLens brings […]

  8. […] – bookmarked by 4 members originally found by dukeofnorfolkschool on 2008-08-19 WideLens: A calendaring reference application for Bungee Connect […]

RSS feed for comments on this post · TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: