Archive for the ‘Share’ Category

Flexible Dashboard, FlexibleShare, and Flexible Liferay updates

Sunday, June 26th, 2011

  FlexibleDashboard

FlexibleDashboard

FlexibleDashboard is a dashboard application / framework focused on the uses of dashboards for BI / Reporting / Charting. It started with esria dashboard code and evolved from there, adding flexmdi cascading / tiling (esria pod drag/drop in tile mode), more pods, pods in Flex modules, Spring ActionScript configurable pods, and both Flex+Browser and Flex+Air versions. 

Additional pods beyond the esria charting pods include: JasperReports viewer, BIRT Report viewer, OLAP pivotable grid with XMLA datasource support and MDX query editor (from Grebulon sourceforge project), Pentaho Charts, GridPod, ChartGridPod, calendar, and iframe html. The AIR version has additional Flex+AIR pods: webkit HTML, web browser, Google gadgets, Liferay portlet gadget, and a local files browser.

In February, FlexibleDashboard was ported from Flex 3 to Flex 4 in build3, including a first pass of using spark controls instead of halo controls. I got mostly through porting the esria dashboard part, then discovered code by Greg Lafrance (who later wrote a 4 part Adobe devnet series of articles part1, part2, part3, part4)  that helped me port the remaining parts of the esria code in FlexibleDashboard. I also used a skin from flexdevtips for pod windows.  Instead of porting the full flexmdi code to Flex 4 / spark, all the style setting code was removed, and just the basic parts were ported.

In April, build 4 of FlexibleDashboard added having pods built in separate flex modules and instead of having the esria style hardcoded switch on pod type to pod class, the module path is listed in the pods xml files on each pod. 

Build 4 also introduced having each use of a pod/module configurable separately with Spring ActionScript in a separate context xml file (in src/spring-actionscript/ dir). This is currently used in 3 differently configured GridPods and in one ChartGridPod.  A similar approach could be used with other Flex frameworks that support modules (Parsley, etc.).  The GridPods and ChartGridPod  just reference a data service interface IDataService, and the particular data service implementation is configured and injected / autowired with Spring ActionScript. 

Build 4 also has 3 simple data service class implementations (SoapDataService, XmlDataService, RemoteObjectDataService) which get data via BlazeDS (or from LCDS).  The shared ChannelSet for the grid pods is configured in src /spring-actionscript/ application-config.xml   The esria dashboard like config is still in data/ FlexibleDashboardPods.xml (or in data/ FlexibleDashboardAirPods.xml for the AIR version).

 FlexibleShare

FlexibleShare

FlexibleShare adds the following to FlexibleDashboard: FlexSpaces pods for Alfresco document management along with Flex based collaboration pod front ends (wiki, blog, calendar, doc lib, discussions) to an Alfresco Share backend.  FlexibleShare was ported from Flex 3 to Flex 4 in May.  The additional pods are now in Flex modules too.

FlexibleLiferay

FlexibleLiferay extends FlexibleDashboard to provide a Flex portal container for Liferay.  The Flex+AIR client is able to get all of the places/layouts, tabs, and portlets you would normally see as a Liferay portal user and display them using a Flex based container with an HTML control for each portlet (doesn’t support pure Flex/Flash portlets yet).

The basic idea was for a Flex Portal, instead of starting from scratch, leverage the server side and services of an existing portal. Another use case is for views from an existing portal can be included in a larger enterprise Flex application.  Note that FlexibleDashboard and FlexibleShare can also display individual Liferay portlets in a configurable pod using the Liferay widget, just not whole existing portal layouts.

Recently FlexibleLiferay was ported from Flex 3 to Flex 4. The server side code was changed from Liferay 5.x ext environment code to a simpler web plugin for Liferay 6.x. The FlexibleLiferay client uses BlazeDS/AMF to remote to Java APIs provided in the web plugin. Built versions of the AIR client and the server piece (web plugin) are now available (previously there was only code available in the svn).

Alfresco OpenCalais Integration Share UI

Tuesday, March 8th, 2011

The Alfresco OpenCalais Integration now has UI (Spring Surf / HTML /JavaScript / YUI)  for Alfresco Share in addition to the support in FlexSpaces (Flex/Flash).  The Share UI has a semantic tag cloud dashlet, a geo-tagged (Google map based) semantic map dashlet, and an auto-tagging action.  The Share UI is for Alfresco 3.3 and 3.4.

share-calais-dashlets-2.png

The dashlets will show semantic tags in all share sites when added to the overall Share dashboard, and show site specific semantic tags when added to site dashboards.  Clicking on a tag in the semantic tag cloud or on a semantic tag map marker will take you to a search results list of documents with the semantic tag.  The semantic tag cloud dashlet can be changed to show semantic tags for a specific category or all categories.

The semantic tag cloud dashlet is based on  Will Abson’s tag cloud dashlet in the Alfresco Share Extras collection. Will now also has a Google map dashlet in this collection showing geo-location of photo files using Tika extracted metadata available in Alfresco 3.4.

share-calais-autotag-action-2.png

The added auto-tag action menu (in more menu and details page) can be used to auto tag the selected document with the OpenCalais service. This action is added to both site document libraries and repository document library page menu.The auto-tagging action can also be setup in a content rule to auto-tag all documents in a folder in the rule UI of Alfresco Explorer or in Share (choose to perfom the action “Auto-tag with Calais”).

Note that semantic tags are implemented with categories with a custom root category. They won’t show up in regular Alfresco tag or category UI.  Currently only the Alfresco Explorer details page will list semantic tags (update 3/30/2011: will now show up the Share doc details page too in the 1.3.1 version of the OpenCalais integration).

FlexSpaces, in addition to having the semantic tag clouds, semantic map, and auto-tag action features in the Share UI, also has support for suggesting semantic tags and for editing what semantic tags are assigned to a document.  See the semantic features in action in this screen-cam of an older version of FlexSpaces.

First FlexibleShare prototype sneak peak

Thursday, January 29th, 2009

Here is a screencam of an early prototype of FlexibleShare, an open source Flex  based portal container / dashboard with Flex based pods for open source enterprise SW (Alfresco ECM, Alfresco Share,  reporting/BI, BPM, portals):

FlexibleShare prototype

This will initially focus on Flex+AIR, and later will have Flex+Browser support.  Also plan to enable the pods to be used as Adobe Genesis Tiles.  (Note: the Flex based pods for Alfresco ECM will support Adobe LiveCycle Content Services ES too).

Overview of  the prototype:

The prototype currently uses the Esria dashboard sample (inside a Flex+AIR application) as its portal container (also looking at the Anvil project to provide more modular support for loading Flex portlets).

Alfresco ECM / FlexSpaces tab:
The first tab in the prototype screencam has pods based on FlexSpaces (Doc Lib, Search, Tasks, WCM, Local Files). The cool thing in AIR is that desktop drag / drop into the Doc Lib and WCM pods just “works”. The Local Files pod takes advantage of AIR apis to access local files and drag / drop from it into the Doc Lib and WCM pods works too.  FlexSpaces support for Calais integration semantic tagging is also supported if enabled.

Flex-ification of Alfesco Share tab:
This tab has the early beginnings of some Flex UI (blog, wiki, discussions, site doc lib, calendar) for Alfresco Share backend. For the calendar, I am using code based on Ely’s interactive calendar. For the overall Share dashboard and Share site dashboards, using the AIR webkit HTML control to display them (so Ajax Surf dashlets can be used in them). Update: for blog, wiki, discussions, now working on more specific UI  instead of FolderViews (instead will have post/comment tree,  selected item content viewer pane, etc.) Update: Later will look into pods for individual Surf dashlets.

JasperReports tab:
This tab is using a modified version of the flex based JasperReports flash viewer to display jrpxml files.

Charts tab:
This has left in pods from the ESRIA dashboard sample. These use the Quietly Scheming chart animation effects.

Pentaho tab:
This is based on a Flex version of the Pentaho dashboard sample.

Liferay tab:
This runs Liferay in a AIR webkit HTML control. Update: later will look into pods for individual Liferay portlets.

CMIS:
Update: Will look into pod for CMIS api repositories with drag / drop from desktop and with Alfresco pods

Adobe Code Name Genesis / Flex Portals / Open Source

Saturday, November 15th, 2008

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

FlexibleShare

Tuesday, November 11th, 2008

Something new is on the way: FlexibleShare

Flex based version of Alfresco Share / Flex based Portal Container  (Open Source)

1. Dashboard dashlet/portlet drag /drop in Flex
2. Portlets in Flex and HTML/Ajax
3. Leverages FlexSpaces components
4. Leverages Alfresco Share (site model, rest apis, surf, dashlets),
5. Additonal Flex components for wikis, blogs, discussions, calendar
6. Leverage Liferay, (supports jsr-168, wsrp) in a later stage
7. Reporting/BI (JasperReports, Pentaho, BIRT)
8. BPM (JBoss jBPM in Alfresco)
9. Desktop drag/drop of files with AIR

Registered a google code project  http://code.google.com/p/flexibleshare/ and an Alfresco forge project http://forge.alfresco.com/projects/flexibleshare/

Note on the name: Alfresco Share and Surf are already “flexible” (in the able to adapt to new situations sense). Also you can implement Share/Surf components/dashlets with Flex  (as I did with the FlexSpaces page site components).  The difference with FlexibleShare is that the container itself is in Flex and the primary way for implementing dashlet/portlet UI is Flex (and Flex+AIR). Surf dashlets and Liferay portlets in HTML/Ajax are still supported.

Also used “Flexible” to sound like the book Flexible Rails (Flex+Ruby on Rails).  With FlexibleShare although the server scripting would tend to be the usual web scripts in JavaScript, also  supporting Groovy/Grails would be interesting and fit in with the Java and Spring use in Alfresco.  The Alfresco forge has a Groovy integration (although it needs some updating for Alfresco 3.0).

Other things: the use of a web-tier Flex compiler (like the Flex plugin for Grails does) could be used to allow Flex forms/UI to be added (and compiled automatically) without having to use a development tool. BlazeDS support like in this plugin would also be nice too for higher performance data transfer.

Update: See description of  FlexibleShare prototyping mentioned in my Genesis / Flex Portals / Open Source blog post.