Contact Information
- Email: ctoohey@dominoguru.com
- BleedYelow.com: Chris Toohey
- Skype: ChrisToohey
- Gizmo: ChrisToohey
- Yahoo!: ChrsToohey
- Google: ChristopherToohey
(ctoohey@dominoguru.com) - AIM: ChrisToohey
- Twitter: ChrisToohey
- Facebook: ChrisToohey
- LinkedIn: Chris Toohey
- Podcast Information
http://www.yellowcast.net
YellowCast @ Twitter - RSS:

- Guru Tag:

Like what you see? Help feed-the-beast by donating to the site and it's humbly thankful author!
My Twitter Updates
Publishings
Domino Development and Data Store Architecture 06/06/2008Domino Development RIM's Blackberry Connections Client - First Impressions (Part 2) 05/19/2008
My Gear RIM's Blackberry Connections Client - First Impressions 05/19/2008
My Gear Remove my name from the Domino Directory!! 02/05/2008
Lotus Notes Quick and Dirty Mail Application Document Importing 01/24/2008
Methods and Strategies Publishings Archive
Examples & Downloads
xCopy v0.2 - OS xcopy Client for Lotus Notes 08/07/2008Examples and Downloads xCopy - Local Archiving and File Copying Utility for Lotus Notes 07/22/2008
Examples and Downloads SOTU - Remote Console Reporting v0.2 07/11/2008
Products Self-Discovery leading to more content, downloads, and examples 07/01/2008
Examples and Downloads Sorting Hat v0.1 06/30/2008
Lotus Notes E & D Archive
Resources
PlanetLotus.org [ Community ] Alan Lepofsky's Notes Tips [ Community ] Chris' The Business Controls Caddy [ Community ] Petr Stanicek [pixy] [ CSS ] JoeLitton.net [ Community ] Resources ArchiveBleedYellow.com Dogears
Embedded Windows Explorer/File Browser for remotely-stored file resources in the Lotus Notes Client UI
06/10/2008 03:47:40 PM | Chris Toohey | Bethlehem, PA
I had a request from a manufacturing customer who was asking for a document library, which would be used to store CAD files (read: too-large-for-logic drawings). I immediately didn't want to store these mammoth files in a Domino database container, as 1) the Full Text Index really wouldn't do any good for CAD files and 2) well - duh - there's a long list of reasons not to bring 500MB files as attachments into a Domino database container - and that's not what I'm getting at here... so I'll move on.
After some questions, I found that the customer was asking for a "document library" because they wanted to track specific drawings against specific projects and other categorizations that the standard File Store architecture would no longer facilitate. They wanted to be able to apply category labels to grouped files. All things that you'd want to do in a typical "document library" - but I again didn't want to store these large files in Domino. So I thought about using some sort of embedded, programaticaly-accessible Windows Explorer widget - which would allow me to display the "linked" documents, while storing the labeling information on the actual "container" UI document. Simple enough right? Now to just find a Windows Explorer widget... that I could modify within the Lotus Notes client container... in release 6.5.
Got some good feedback from people via my Twittering the question (thanks Steve and Andrei!!!) but me being the stubborn me, there had to be a simple way of doing it... and possibly with the Microsoft Web Browser Control (which was the closest thing that I could find to a Windows Explorer Object). So I googled "Microsoft Web Browser Object" + Lotus Notes...
Now, I should have known that...
- I was getting the idea that this was possible from somewhere.
- That someone like Tommy Valand would already have done it!
The good news? Well, using this approach, I was able to give my customer a quick-since-it-was-already-written solution:
I simply modified their current "project" Form Design Element and added (on a new tab called File Resources) a field called url and am embedded Microsoft Web Browser Object (Control).
Pretty simple right? Yeah - the only this that was missing was the logic to control the embedded object - which I added to the PostOpen event:
Sub Postopen(Source As Notesuidocument)
Dim browser As Variant
Set browser = source.GetObject("Microsoft Web Browser")
If (Len(Source.FieldGetText("url")) > 0) Then
If (browser.width <> 400) Then
browser.width = 400
browser.height = 400
End If
Call browser.navigate(Source.FieldGetText("url"))
End If
End Sub
So pretty basic stuff all around - when the "project" document is opened, I check to see if there's a value defined in the url field. If so, launch my embedded "File Browser" of sorts and show the contents!
If there's an interest in having an example of this "approach", let me know and I'll put one out here.
Like what you see? Help feed-the-beast by donating to the site and it's humbly thankful author!
Chris Toohey | Domino Guru

Comments
06/10/2008 08:34:40 PM
Tim Tripcony has done the same thing, except he was detaching attachment files to a temp folder and pointing the url at the temp file.
The result is a fantastic file preview application which ranks as one of the *most* useful notes client mechanisms blogged to date.
I've combined it with the Adobe SVG viewer and a generated SVG file to create enbedded charts and graphs.
Is it possible to embed the Mozilla browser in this way?
Wayne
06/10/2008 09:08:51 PM
Actually... I just saw a similar application that wasn't built with Notes. I thought that it would be easy enough to build one of these with Notes, but as you mention, some things are better left to the file system. Of course, Mac/Linux clients are excluded but they're used to that. I'd love to see the demo if you find time to post it.
http://nathan.lotus911.com
06/10/2008 09:29:58 PM
"ranks as one of the *most* useful notes client mechanisms blogged to date."
lol. You're welcome.
There are many Tim Tripcony moments of brilliance that I could never take credit for. But this was not one of them. :-D
That being said... head over to http://www.timtripcony.com for his latest -- which is most definitely him!
http://www.dominoguru.com
06/10/2008 09:35:33 PM
For the record:
Tim hates babies, small animals, and the eldery.
http://cubert-codepoet.blogspot.com
06/10/2008 10:09:59 PM
I'd like to see your example. I'm not sure exactly how you're presenting the files to the Web Browser control. Are you using a view and exposing that via HTTP?
I have some other ideas that won't require running HTTP, I just need to get them into Notes in a way that makes sense.
http://www.cubert.net
06/11/2008 09:36:45 AM
Oh, okay. You're using the web browser control to DISPLAY the file. That's completely different than where I was going. :-)
http://dowork.com
06/11/2008 12:20:43 PM
I hate to be such a dunce, but what does having one web browser embedded into another web browser really get you?
In one place you talk about the "Windows Explorer Object", which is not a web browser, right? It's like "Finder" on the Mac ... lets you look at and manipulate your file system.
Then the the code says "GetObject('Microsoft Web Browser')". Now that sounds like a web browser. Perhaps my problem is that I'm just not up on the Microsoft architecture.
So where are the files actually stored? Is this application on the Internet or the company intranet? How is access to the files controlled and security permissions applied? How do the files get there to begin with? You also mentioned associating meta-data with the drawing files; how does that get done?
The reason I ask is that I've designed a couple of systems kind of like this using Notes including detaching and renaming the files from the uploaded document, but the files were small. I've found no way to control access to the files stored on the server so I still do that through Notes. That is, I put the files on the server outside of the HTTP base address.
My plan to handle large files, if I ever need to, is to dynamically attached the file requested to a document so the user could download it. I don't know what that would do to performance, however.
Peace,
Rob:-]
06/11/2008 09:31:22 PM
@ Nathan: That doesn't surprise me really, I guess I mentioned Tim 'cause I got the sample DB from his blog. That being said, I've downloaded samples from your blog plenty of times. I'm just thankful that *someone* is coming up with ideas for furthering the use of the Notes client.
Wayne