FlexSpaces now refactored to use the presentation model pattern

The  flexspaces google code svn now has flexspaces+browser and flexspaces+air refactored to use the “presentation model” presentation design pattern. This will be in flexspaces 0.9.

Presentation model links:
Paul Williams: Presentation Patterns – Presentation Model
Max Milan Presentation – Flex Development with Cairngorm

Previously the component dir of FlexSpaces had components using either the Supervising Presenter design pattern or the Passive View design pattern (this is still available in the Alfresco forge in the 0.8 flexspaces source downloads). With the refactoring, the component package dir has been replaced with “presmodel” and “view” package directories. Still use Cairngorm with UM extensions in the control dir as before.

The flexspaces google code now also has some some cleanup work done: 1. model locator modularized to  just be a locator of model classes. 2. The xml parsing of data coming back from web scripts has been moved to the delegates. These now return models and/or value objects.

I am finally getting around to adding support for Prana (now Spring ActionScript) to allow xml configuration of various things in flexspaces (attributes to show in properties / folder grids / advanced search, etc.) This is not in google code yet (will be in flexspaces 0.9).

Steve

Calais Integration for Alfresco / Geo-Tagging / FlexSpaces part 2

FlexSpaces Geo-Tagging

Here is a screencam video of FlexSpaces 0.8 (which is ready for release). This new screencam shows auto-tagging, semi-automatic tag suggesting,  multiple semantic tag clouds, and automatic geo-location tagging (displayed on a Google map). It uses the Calais Integration  forge project for Alfresco and the Open Calais service.

This map, uses the Google Map Flash API (Flex), displays markers where there is location info provided in the semantic tags  (location info from Calais via the Calais integration).  When you click on a marker, it works just like a tag cloud,  and drives search results.

(Note: the previous part 1 post  also showed showed auto-tagging and multiple semantic tag clouds in FlexSpaces).

FlexSpaces with the semantic tagging / Calais features can be run in 4 different ways:

  • FlexSpaces+AIR with Adobe AIR (1.1, 1.5)
  • FlexSpaces+Browser in FireFox, IE, Chrome browsers (with Flash 9.x, 10.x)
  • FlexSpaces site page components inside Alfresco Share
  • FlexSpaces views as portlets in a portal (such as Liferay, JBoss, etc.)

FlexSpaces supports Alfresco Enterprise/Labs 2.x/3.x, Adobe LiveCycle Content Services ES (currently have just been testing FlexSpaces 0.8 and the semantic / Calais features with Alfresco Enterprise 3.0).

FlexSpaces 0.8 will have the following new Flex based components (and Cairngorm non ui apis): node semantic tag properties editor, auto-tag action, tag suggestion dialog, semantic tag cloud, semantic tag category tree, general Google map, semantic geo-tag map.

Steve

Liferay + FlexSpaces + Alfresco

HOW TO: FlexSpaces in Liferay IFrame portlet

liferay iframe flexspaces

screencam video demo

I just tried a quick test of running FlexSpaces+Browser in a Liferay IFrame portlet. It worked! All features of flexspaces worked:

  • Doc library, search, tasks, wcm views
  • Drag/drop of files between dual panes, internal cut/copy/paste between spaces
  • File upload, file download, file viewing, preview, play video
  • Checkin, checkout, edit, cancel checkout, update, make versionable, version history panel
  • Icon, thumbnail, grid list, cover flow view modes
  • Search, advanced search, tag cloud, category navigation
  • Create space, properties edit, tags/categories edit
  • Make pdf, make flash, start workflow
  • Coming flexspaces 0.8 features with Calais integraion (auto-tag, manual semantic tag properties edit, multiple semantic tag clouds)

Issues noticed: works best when portlet maximized, when not, doesn’t use full portlet area, when switching portlet between regular and max size looses login, liferay dialog not always on top of iframe/flash. Things might work better with the Liferay Flash portlet.

(Update 8/16/09: Added short term state save/restore in SharedObject of ticket/doclibPath/tabIndex in FlexSpaces. Now works much better (don’t loose login, view state when resize portlet. Used Liferay Flash portlet instead of IFrame portlet. Also Liferay dialogs z order was fine. Also would work with flexspaces webapp installed in either Liferay tomcat or in Alfresco tomcat (just different Flash portlet swf url config) )

Didn’t try more integrated approaches yet:
Webscripts as Liferay portlets on ecmarchitect.com
Full Integration of Liferay 5.1.2, Alfresco 3.0 E, SSO, LDAP
Use Liferay Flash portlet instead of iframe portlet

Config used: Alfresco enterprise 3.0 in one tomcat, Liferay 5.1.2 in another tomcat, windows vista

How to:
0. Install Alfresco enterprise or labs
1. Normal install of flexspaces+browser flexspaces dir in alfresco tomcat webapps area, flexspaces+browser 0.7
2. Flexspaces webscripts installed in alfresco, flexspaces 0.7 webscripts
3. Install separate liferay + tomcat bundle from liferay.com
4. I changed all the ports in liferay tomcat conf/server.xml to start with 9 instead of 8 (9080, etc.) to not conflict with tomcat running alfresco
4. Start alfresco tomcat
5. Start liferay tomcat and login test@liferay.com (password: test)
6. With liferay “Add application” add a IFrame portlet from the Sample category
7. Configure the portlet to have the source url: http://localhost:8080/flexspaces/FlexSpaces.html
8. Title of portlet can be changed to “FlexSpaces” by clicking on “IFrame” text in the title and editing
9. If portlets of the FlexSpaces individual views instead of all 4 views in one portlet, (or 2 views only in one portal, etc.) the srcUrl args doclib=true&search=true&tasks=false&wcm=false to FlexSpaces.swf can be used like in the flexspaces 0.7 page site components for share (See FlexSpaces Share integration blog post with screenshots)

Steve

Calais Integration / Semantics for Alfresco – sneak peak part 1

Auto-tagging in FlexSpaces with Calais Integration for Alfresco

Here is a sneak peak video of  semantic auto-tagging and multiple semantic tag clouds coming in the next release of FlexSpaces+AIR / FlexSpaces+Browser. This uses the  Calais Integration  Alexander and  I have been working on, the Open Calais service, and Alfresco.  The Calais integration auto-tag action can also be used from the “run action” UI in the Alfresco web client (now called Explorer).

Things in the works: Flex UI for tag suggestions, storing URIs in the integration for future linked data use, storing geo-location info from Calais 3.1, and map UI to display geo-location points to filter search results.

The Calais integration amps including web scripts are in the Calais Integration forge project. Note we may use the Semantics for Alfresco merged project for certain pieces in the future. A google code project, semantics4alfresco has also been reserved.   Current FlexSpaces downloads are in the FlexSpaces forge project. Its svn is in the flexspaces google code project.

Steve

Adobe Code Name Genesis / Flex Portals / Open Source

Genesis Presentation

Adobe is going to give more details about Genesis, their enterprise / collaborative / mashup AIR client next week at Adobe MAX. This client is supposed to be a free download with for pay SAAS collaborative services, and have an app catalog.

Although I assume it won’t be open source, I am curious how open and flexible it will be. Can it be used as a general flex based portal container? Can you customize the container or only just plug in Tiles? What apis will it have? Could you use it without their services and tie in your own SSO ?

I could  do the portlets for the FlexibleShare project I have started on as Genesis Tiles  (for Alfresco ECM, Alfresco Share collaboration, open source BI/reporting, etc).  Maybe also have an open source Flex portal container supporting the Adobe Genesis Tile api  (and support both Flex+AIR and Flex+Browser containers. Note: html embedded in Flex works best in AIR).

I have been prototyping using the Esria dashboard sample as a Flex based container with FlexSpaces components in pods (Alfresco DocLib, Search, Tasks, WCM). It works in AIR including drag/drop of desktop files into FlexSpaces pods. The DocLib and Search pods also support Adobe LiveCycle Content Services ES. The Alfresco Share UI works in this prototype currently in an HTML pod. I will be starting Flex versions of the Alfresco Share collaboration components (wiki, blog, calendar, discussions). Also have a JasperReports viewer pod based on a modified version of the flex based JasperReports flash viewer.  There is also a Flex based Pentaho dashboard sample available.  BIRT reports could be viewed as html or pdf, or with the Actuate interactive viewer.

The open source Anvil project (Flex MDI portal / Java backend framework) could be leveraged.  Also found an interesting article about Flex based portals: “A new way to look at Portals“.

Some Genesis links
Blog: Code Name Genesis – The Future of the Enterprise Desktop
Demo of an early Genesis prototype
The Future of the Enterprise Desktop: The Elevator Pitch
Office 2.0 Conference: Adobe Genesis Unveiling
Teblog: Adobe Genesis addresses real needs
Adobe readying new mashup tool for business users | ITworld

Update: Newer Genesis Links
Genesis page on Adobe Labs
Genesis Overview Slides on SlideShare from Adobe MAX 2008
update 1/12/09: Genesis presentation at Adobe MAX 2008 on Adobe TV