Categories
dev2dev Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

Hello World + Portlet vs. Native Navigation

Hello world! This is my first post on my shiny new dev2dev blog and needless to say, I’m very pleased to be blogging here and to be given the opportunity to contribute to this prestigious and active community.

That being said, I hope you’ll find my contributions worthwhile. I plan to address mostly technical topics pertaining to AquaLogic User Interaction or ALUI (pronounced ah-LOO-eee by those in the know) with the occasional foray into the business side of ALUI and portals in general. I’ve been working with the ALUI (formerly Plumtree) products now for almost 10 years, but I also know a bit about Weblogic and I want to learn more about the other products in the AquaLogic family. So watch this space for news about all your favorite BEA products!

Okay, on to the topic at hand — navigation. Once upon a time (pre Plumtree 5.0), UI customization meant hacking through layers of ASP or JSP includes to find the right file and then changing this and that and trying not to break anything. And then when upgrade time came, you somehow had to merge all your changes out of the old UI code and into the new. It was a black art at best, a total goat rodeo at worst.

Enter Plumtree 5.0, which introduced the concept of header, footer and content canvas portlets along with “pluggable navigation.” For the first time, you could code your navigation against a supported and documented API and bundle it into a separate DLL or JAR file. When upgrades came along, you simply installed the new code and everything in your old DLL or JAR just worked. The only problem was that writing a pluggable navigation was really hard.

So, in ALUI G6 (the current version), you can easily make a navigation using a remote portlet and few lines of HTML, CSS along with a few handy XML tags. However, the old pluggable navigation model is still in the product, which begs the question: how do I know what form of navigation to use (native or remote)?

A lot of times you’ll hear me say, “it depends” i.e. it depends on your goals or it depends on your architecture. But, in this case, with 100% certainty, I can say that you want to go with remote navigation. Why? Because it’s about 1000 times easier to code, maintain and deploy, you can change it on the fly and in a breeze, you can include Javascript and CSS just like you would in a normal web page, you don’t have to work with confusing HTMLElement classes, you don’t have to know Java or C# . . . need I say more?

If you’re not sold yet on the concept of remote, XML tag based navigation over native pluggable navigation, consider the following example. Say I want to get all the mandatory with tab communities and display them in an unordered list.

Here’s the native code for that:

CListURLMediator mediator = new CListURLMediator(m_asOwner,
m_model.GetCategoryLinks(NavCategoryType.MANDATORYTABS,
false));
HTMLList ul = new HTMLList(1);
while (mediator.Next()) {
  HTMLListItem li = new HTMLListItem();
  li.AddInnerHTMLElement((HTMLAnchor)mediator.GetEntry());
  ul.AddInnerHTMLElement(li);
}
return ul;

And here’s the remote code:

<ul xmlns:pt='http://www.plumtree.com/xmlschemas/ptui/'>
  <pt:ptdata.mandtabcommsdata pt:id='mandtabcomms'/>
  <pt:logic.foreach pt:data='mandtabcomms' pt:var='c'>
    <li><pt:core.html pt:tag='a' href='$c.url'><pt:logic.value 
  pt:value='$c.title'/></pt:core.html></li>
  </pt:logic.foreach>
</ul>

The code speaks for itself. (If you never have to learn what a CListURLMediator is, consider yourself lucky.) Not to mention that you have to worry about the NavType and deployment issues and that you have to restart the portal any time you make a change to your navigation code.

So, is remote, tag-based portlet navigation the solution to all your navigation needs? Not exactly. With pluggable navigation, you can control six navigation areas: the top bar, above the header, below the header, the left side, the right side and above the footer. It’s easy enough to suppress the top bar and replace the first three areas with your header portlet. Same goes for the footer. But what about the left and right sides? You can’t really replace those with portlets unless you use the two narrow columns, which leaves you with only a single portlet column for content.

So you’re in a pickle — you read this post and you’re now the world’s biggest remote navigation fan — but you can’t use them in left and right navigation. There is a solution. If you read this post in the newsgroups, you’ll see that it’s possible to write some code that will load a remote portlet into the left and/or right columns. (The only thing I would change about this code is make sure you put the portlet ID in a VarPack instead of hardcoding it.) Using this fairly simple approach, you can have your cake and eat it too.

Comments

Comments from BEA dev2dev are listed in date ascending order (oldest first)

  • were doing UI customization to modify the top nav section, but would like to move to remote portlet with tags instead for reasons you mention.
    If i understand correctly, we have to do this in header portlet. How do we enforce that that the same top nav is used across the portal if the community managers are able to change the tag code in the header portlet?

thanks
steph
[email protected]

Posted by: sviau on July 9, 2006 at 7:04 AM

  • That’s a great question and I’m glad you asked it. First let me clear something up: community managers cannot and should not change the tag code. However, they can change which header portlets are being used for the communities they manage (and thus choose a whole new set of tags or no tags at all).

    Fortunately, there’s a easy way to prevent this from happening using community templates. There’s a check box on the “Header and Footer” page of the community template that says “Force Community to use Header and Footer from Experience Definition.” You’ll want to check this box. Then, as the portal administrator, you can mandate which community templates your community managers can use. Set it up so that your community managers are forced to use the community template with this box checked and you should be good to go.

    Posted by: bucchere on July 10, 2006 at 2:38 AM

  • Hopefully this is applicable here…I am trying to brand (or customize) the title bar of a portlet(s). I have determined how to change the text on the title bar (PortletResponse.setTitle) but cannot find nothing on changing colors or adding colors to the title bar. Can this even be done? Is there a CSS class somewhere or can it be done programmatically? Thanks for your assistance.

    Posted by: jayparker on January 2, 2007 at 12:28 PM

  • This should do the trick:
    .platportletHeaderBg {
     background-color: red;
    }

    Posted by: bucchere on January 10, 2007 at 7:13 PM

  • is the remote code supported in 6.1 mp1? I attempted to run it and nothing is generated. Has mandtabcommsdata gone away? I notice it also is absent from the current edocs http://edocs.bea.com/alui/devdoc/docs60/Portlets/Adaptive_Portlets/Using_Adaptive_Tags/PlumtreeDevDoc_Portlets_Adaptive_Navigation.htm

    Posted by: geoffgarcia on October 2, 2007 at 11:26 AM

Categories
Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

Presenting at the DC BUG (BEA dev2dev User Group)

I’m very pleased to announce that I will be the featured speaker at the Washington DC BEA dev2dev User Group on May 11th. You can read the official invite, but here are the basics:

BEA AquaLogic User Interaction Development, Demo & Roadmap

Date: May 11 2006

Time: 6:30pm – 9:00pm

Location:

Tenleytown Ballroom
Embassy Suites Hotel at the Chevy Chase Pavilion
4300 Military Road N.W.
Washington, D.C. 20015 (map)
Metro Red Line – Friendship Heights (take the hotel exit)

Description:

Back in October of last year, BEA purchased the market-leading pure-play portal vendor Plumtree Software to provide a user interface to their AquaLogic product line. Hear former Plumtree employee and 10-year portal industry veteran Chris Bucchere explain how Plumtree fits into the AquaLogic framework, how to configure and develop for this revolutionary new platform, and what the future holds for ALUI, including integration with BEA Workshop and the WL Portal. See a demo, do some real-time ALUI portlet development, and get your technical questions answered.

Categories
Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

Watch for deprecated methods in the G6 server API

We’re doing a G6 upgrade at one of our customer sites and we noticed that one of our PEIs (that used to set a user preference) was dying due to our use of APIs that worked in 5.0.4 but no longer work in G6.

(Just for the record, I guess I have a different idea of the meaning of deprecated when it comes to APIs. I thought that if you deprecate an API it means “please don’t use this as it might be removed in future versions of the API.” For BEA AquaLogic, I guess it means “this method just doesn’t work any more.”)

Here’s an example: AddPersonalSetting has been replaced by AddPreference.

public Redirect OnAfterLogin(Object userSession, ApplicationData applicationData)
{
IPTSession session = ((IPTSession)userSession);
session.GetMyPages().OpenPage(0 - userId)
.AddPersonalSetting("UserSettingName", "UserSettingValue");
}

Here’s the new G6 way to do this:

public Redirect OnAfterLogin(Object userSession, ApplicationData applicationData)
{
IPTSession session = ((IPTSession)userSession);
session.GetSessionInfo()
.AddPreference("UserSettingName", "UserSettingValue", 0);
}

Categories
bdg Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

Mingle posted on the BEA/Plumtree Code Share

I’m very pleased to announce that Mingle, a prototype of a BEA/Plumtree Web 2.0 social networking application, has been posted on the BEA/Plumtree Code Share!

Mingle was bdg’s winning entry in Odyssey 2005’s Booth of Pain competition.

Mingle features a set of adaptive portlets that work together to help people find one another and form social networks based on personal interests, physical proximity, etc. The portlets consist of:

Adaptive User Search (JSP): each keystroke issues an EDK/PRC search API call to help people find other people quickly and easily. Clicking on a person re-focuses the Network Browser, causing the browser to center on that person’s network.

Network Browser (Java/JSP): built as a Java applet leveraging an opensource hyperbolic graphing project (HyperGraph), this portlet shows the physical connections between people and allows you to browse the network.

Featured Person Profile (JSP): when a person double-clicks on another person in the Network Browser, this portlet shows that person’s complete user profile, include all the EOD attached to that user (Name, Address, Hobbies, etc.).

Del.icio.us Hobby Links (C#.NET): when a person clicks on the featured person’s hobby of choice, this portlet makes an adaptive request to del.icio.us to download social bookmarks relevant to the hobby.

Google Map Locator (HTML/Javascript): when a person clicks on the feature person’s address, this portlet makes an adaptive request to a free geocoder and then to Google Maps to display an interactive map of the person’s address in the portal.

Mingle is bdg’s second open source offering to the BEA/Plumtree community. You can download the source and install it on your own BEA/Plumtree deployment.

Have fun, and if you run into problems, please don’t hesitate to contact us.

Categories
Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

Same old products, fancy new names

With the acquisition of Plumtree by BEA in the books, all of the Plumtree products we know and love have received new monikers.

Here’s a cheat sheet to help you map the old names to the new ones:

Portal/Foundation –> AquaLogic Interaction
Collaboration –> AquaLogic Interaction Collaboration
Studio –> AquaLogic Interaction Studio
Process –> AquaLogic Interaction Process
Content/Publisher –> AquaLogic Interaction Publisher
Analytics –> AquaLogic Interaction Analytics
AWS/PWS/CWS/SWS, Portlets & EDK Extensions –> AquaLogic Interaction Packaged Integration Services

I also heard (from someone on the inside) that no new releases of the newly branded AquaLogic family are planned until 2007.

Categories
Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

Official transition date/time

I heard from someone on the inside that at noon on Thursday, October 20th, Plumtree officially becomes the AquaLogic devision of BEA.

Categories
Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

Booth of Pain — before the chaos began

Here I am just seconds after stepping into the Booth of Pain and before the booth was bombarded by projectiles and Silly String. I figured I would post a picture before I started sweating profusely.
Categories
bdg Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

Plumtree Odyssey+ADC 2005 wrap-up

With a resounding victory this morning in the Booth of Pain, bdg put the wraps on what will probably be the last Plumtree Odyssey.

We sent five people this year: me (President & CEO), Eric Bucchere (Account Manager) and Rich Weinhold (Plumtree Developer) representing the East Coast and Howie Bagley (VP Sales & Service) and Steve Markoff (Plumtree Architect) representing the West Coast. We had the opportunity to meet many of you at our booth – thank you for stopping by and introducing yourselves! In the upcoming weeks we’ll be raffling off the iPod Nano that was on display in our booth. If you asked us to follow up with you, expect to receive a follow up call or e-mail in the next 2-3 weeks.

Although the official feedback has not been tallied up yet, the talk we gave with Wind River was standing room only and I personally received lots of positive comments including one person who said that our session was the highlight of this year’s Odyssey. Another piece of feedback I got from Jack Jones of DTIC was that without our training (given in 2004), they would have gotten nowhere with their Plumtree project.

Winning the Booth of Pain competition was the icing on the cake. Despite the heat, the claustrophobic booth and numerous distractions from David Meyer (including scaling my booth, firing projectiles at me and scrawling the word “LOSER” across my booth with Silly String), I was able to compile and assemble the PTMingle application in about 25 or 30 minutes and then give a demo, which was very well received by the audience. In a humorous moment, I clicked on a del.icio.us hobby link related to “Romance Novels” and it displayed a half naked, hunky long haired dude with a cheesy smile (think Fabio). I quickly closed the window amid quite a bit of laughter from the audience.

PTMingle at this point is no more than a concept application/prototype, but expect to see the code used in the Booth of Pain competition up on the Code Share within the next few days. Plumtree data visualization in hyperbolic trees, profile integration with del.icio.us and Google maps integration are all hot topics right now and all areas of interest that bdg would like to pursue, so you should keep an eye out for more offerings from bdg that exhibit these features.

In closing, I wanted to send a resounding THANK YOU out to Yi Hong Xu of Wind River for her help with the presentation, to Mattias Cudich for plugging this blog during his Holland presentation (more on this later), to all of you who attended our presentation or the Booth of Pain, to all of you who stopped by our booth and last but certainly not least to the stellar team of bdg-ers who made this event a huge success for bdg.

On a personal note, this year’s Odyssey had a bittersweet feel for me. It was my sixth Odyssey, having attended four as a Plumtree employee, two as a bdg-er and missing just one (in 2003) and it will most likely be the last. We do, however, look forward to seeing all of you again next year at BEA World in San Francisco.

Look for more posts from me regarding the material presented at Odyssey, especially on Project Holland, which has exciting implications for future BEA/Plumtree offerings.

Categories
bdg Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

bdg takes Plumtree Odyssey+ADC by storm

We’re going for a big splash this year at the final Odyssey+ADC while Plumtree is still, well, Plumtree.

Plumtree just released the onsite guide showing bdg in several places, so I figured it was time to announce our plans for this great user conference, which takes place Monday, Tuesday and Wednesday of next week.

For starters, we’re sponsoring at the bronze level, which includes a booth in the partner pavilion. At the booth, we’ll be handing out bdg mouse pads, marketing literature about PTSkinz and the PHP EDK, giving demos of PTSkinz and giving away an iPod Nano!

In addition to our booth presence, we’ll be co-presenting on Monday at 3:30 PM in the Regency 2 ballroom with Plumtree and bdg customer Wind River. The topic of our presentation is “Keeping it Simple: Best Practices in User Interface Design and Customization.”

Lastly, we’ll be competing in the Booth of Pain, a coding competition that will show attendees how to assemble a composite application in Plumtree from source code. That takes place at 10:15 AM on Wednesay in the Diplomat 3,4 & 5 ballrooms.

Please stop by our booth, pick up a free mouse pad, register to win an iPod Nano and join us for our presentation with Wind River and/or the Booth of Pain.

We look forward to seeing you at Odyssey!

Categories
Featured Posts Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

Is BEA a potential acquisition target for SAP?

Or IBM? Or Oracle?

The author of this brief article seems to think that all three companies have BEA in their sites.

Interesting . . . .