Sun Java System Portal Server 7.1 Update 1 introduces the Ajax table container (see screencast for more information) . The Ajax container provides Ajax capabilities at the framework level such as drag & drop positioning of portlets, asynchronous refreshing of portlets, multiple layouts and styles.
The Community feature (see this post for more information) allows you to create new communities with different layout templates. The layout templates provided out-of-the-box are 2 column, weblog and wiki, left navigation, and wiki. The Ajax container is not provided out-of-the-box, but it is fairly easy to add the Ajax table layout to the existing templates. Follow these steps to add Ajax table layout as one of the options to be displayed during community creation.
From your command shell (make sure you are logged in as root or the portal user), go to /var/opt/SUNWportal/portals/<portal-id>/communitytemplates. All the paths in this post are for a portal installed on Solaris. If you are using Linux or Windows use the appropriate corresponding paths. For example, the above path on Linux will be /var/opt/sun/portal/portals/<portal-id>/communitytemplates, and on Windows it'll be something like C:\\Sun\\JavaES5\\portal\\data\\portals\\<portal-id>\\communitytemplates.
In the /var/opt/SUNWportal/portals/<portal-id>/communitytemplates directory, copy 2column directory as ajax (or some other name), and 2column.properties as ajax.properties.
# cd /var/opt/SUNWportal/portals/portal1/communitytemplates
# cp -r 2column ajax
# cp 2column.properties ajax.properties
2column ajax.properties menucontainer wiki.properties
2column.properties menucontainer.properties wiki_en.properties
2column_en.properties blogwiki menucontainer_en.properties
ajax blogwiki.properties wiki
Step # 3
Change to the newly created ajax directory. You'll see a number of XML files in the directory.
# cd ajax
banned.xml disabled.xml member.xml pending.xml visitor.xml
deleted.xml invited.xml owner.xml rejected.xml
Edit each file and replace the string "JSPTableContainerProvider" with "AJAXTableContainerProvider".
Step # 4
Change directory one level up and edit ajax.properties. Customize the values for the new ajax template. This should be fairly straightforward. Next create a localized copy of ajax.properties by copying it as ajax_en.properties.
# cp ajax.properties ajax_en.properties
That's it! Your ajax community layout is now ready to be tested.
Login to the Community sample as a user. Default user is test/test. Click on the "Create a New Community" link to launch the community creation wizard. Enter the values for the first two screens of the wizard till you reach the Template step. In the templates screen you should now see a new option for the Ajax Table Layout.
Select Ajax Layout in the template selection step and go through the wizard to create a new community. Access your newly created community and you should see the community load up using the Ajax table layout. In your layout, you'll be able to drag and drop portlets around the page, change the layout from 2-column to 3-column, and even change the style of the page.
This concludes the simple hack to make your community Ajax-enabled!