Archive for the ‘AIR’ Category

CMIS Spaces source code checked in, CMIS / AtomPub ActionScript API notes

Wednesday, March 4th, 2009

The source code for CMIS Spaces (both Flex+AIR and Flex+Browser) is now checked into
http://code.google.com/p/cmisspaces/

(2191 files, including 6 language translations, although some of the files for FlexSpaces parts (workflow, wcm) are not used in CMIS Spaces)

Previous blog post covers what is working at this point and some setup info http://integratedsemantics.org/2009/03/02/cmis-spaces-flexair-early-preview-download-available/

There are 4 Flex Builder projects:
1. CMISSpaces (for CMIS Spaces Flex+Browser)
2. CMISSpacesAir (for CMIS Spaces Flex+AIR)
3. FlexSpaces (some modifications to FlexSpaces base code for CMIS, don’t need to build, dir is just used by CMISSpaces, CMISSpacesAir)
4. FlexSpacesAir (some modifications to FlexSpaces AIR base code for CMIS, don’t need to build, dir is just used by CMISSpacesAir)

Notes on the CMIS “client api” (client side service/data api) used in the code:
1. main part is in CMISSpaces/src/org/integratedsemantics/cmisspaces/cmis/atom
This consists of CMISAtomClient, extended cmis entry and feed classes, port of Alfresco’s Abdera extension classes CMISObject, CMISProperty, etc. to ActionScript
2. CMISAtomClient extends AtompubClient from as3atompub. The modified code from as3atompub is in CMISSpaces/src/org/coderepos (modified to work with newer version of as3httpclientlib
/sockets HttpClient (in org/httpclient) and to work without sockets using HttpClient2 in org/integratedsemantics/util)
3. CMIS Spaces also has Cairngorm events/commands/delegates api in org/integratedsemantics/cmisspaces/control that uses CMISAtomClient / AtompubClient

Also there are two other Atom related ActionScript libs out there
1. as3syndicationlib
2. NoteTag Kiwi AtomProtocol Library

Also a CMIS Atom Flex library project has started

Drupal + CMIS, Alfresco, CMIS Spaces Flex+AIR

Tuesday, March 3rd, 2009

Drupal CMIS Alfresco CMIS Spaces Flex+AIR CMIS Spaces Create HTML Content Dialog

Just for fun I tried out this chain of software working together for Drupal in a RIA client:

  1. Drupal 6.10 (used Acquia Drupal 1.2.3)
  2. CMIS and CMIS Alfresco Drupal modules (joint effort Optaros, Acquia, and Alfresco)
  3. Alfresco Labs 3
  4. CMIS Spaces Flex+AIR client early preview

Got it working by
1. Installing and enabling the Drupal modules
2. Configuring the CMIS, CMIS Alfresco, and CMIS Sync module settings in Drupal

(Although now only stories, pages created in Drupal get created in the Alfresco folder setup in the CMIS sync config in Drupal. I thought I had seen files created in the Alfresco folder get synced back)
Update: 2 way sync on creation
“Yes, currently Alfresco -> Drupal sync works via cron, so you’ll need to have cron running at reasonable intervals (or run it manually). This will likely be improved in future versions.”

Steve

Twitter Page

CMIS Spaces Flex+AIR early preview download available

Monday, March 2nd, 2009

CMIS Spaces screenshot

A early first build/AIR installer  of CMIS Spaces Flex+Air is now available on Google Code: http://code.google.com/p/cmisspaces/
Consider it like a prototype (some stuff works).  Update: source code is in Google Code,  a non AIR CMIS Spaces Flex+Browser is available in the source too, and a preview build 5 of Flex+AIR  is available.

Working Features (pretty much FlexSpaces minus WorkFlow, minus WCM)
(Tested with a download of Alfresco Labs 3 final with a draft CMIS implementation.)
1. Uses CMIS REST Atom binding API (or CMIS Web Services binding API) instead of Alfresco web scripts
2. Doclib with Tree, Folder view (both icon and grid views), breadcrumb nav
3. One box basic search and advanced search dialog (advanced just does basic now)
4. Version List Panel (show with View / Version History)
5. Checkout, Checkin, Cancel Checkout (may be issues with repeated use on same file)
6. Checked Out Files List View (checkin, cancel checkout from here)
7. Create Folder (File/Create Space menu)
8. Upload Files dialog (works on Flex+AIR, Flex+Browser needs multipart form post in cmis)
9. Download File dialog (works, will get auth prompt first time)
10. Viewing files on files in doc lib and checked out list views (not in search results since cmis didn’t return content stream urls)
11. Multi select Delete with confirm dialog
12. Play video file (”Play Video” menu on files in the repo)
13. AIR: Drag in from desktop into repo (multiple select) with progress bars (need to add drag out)
14. AIR: native clipboard copy / paste from desktop into repo
15. AIR:Local files pane (View / Local Files Browser menu) with drag into repo
16. AIR: Create Content dialogs (HTML, text, xml) (xml has problems)
17. Language translations for FlexSpaces will work with it (currently: English, Spanish, German, French, Japanese, Greek)
18. Application UI component library using presentation model pattern, Cairngorm based “non UI” api (also will have an extension of as3atompub lib for CMIS)

Setup:
1. CMIS Spaces Flex+AIR needs AIR 1.5 or greater installed before double clicking on the CMISSpacesAir.air file to install it.
2. In CMISSpacesConfig.xml (Spring ActionScript file) in Program Files/CMISSpacesAir
a. Set CMIS service URL for your vendor / host in the cmisUrl property
b. useSockets property set whether non sockets mode (URLLoader,HTTPServer) or sockets/as3httpclientlib mode
(some CMIS rest things that will work in AIR won’t work in non-AIR without using sockets) (also as3httpclientlib supports HTTPS using AS3Crypto TLS , in addition to HTTP,   headers, all http methods)
(delete and cancel checkout delay a long time in socket mode, update fixed this 3/3/09 on my side)
c. the crossDomainFileUrl property can be used to specify a location of a cross domain file URL to check
A sample crossdomain.xml file is included with wild cards that should be changed (use of http headers in CMIS, use of sockets mode may require this (more so with Flex+Browser than with Flex+AIR)
3. Note: patched  C:\Alfresco\install\labs\3final\tomcat\webapps\alfresco\WEB-INF\classes\alfresco\templates\webscripts\org\alfresco\repository\store changed pwc.get.atomentry.ftl to have syntax like pwc.put.atomentry.ftl to avoid server syntax error with checked out / private working copies
changed [@entryLib.pwc node ns=[@nsLib.entryNS/]/]
to [#assign namespace][@nsLib.entryNS/][/#assign]
[@entryLib.pwc node=node ns=namespace/]
4. Update 3/12/09: For Web Services mode instead of CMIS Atom REST, set useWebServices value to “true” and set url in cmisWebServicesUrl in config file.

Steve

Twitter Page

CMIS, Alfresco, Flex, AIR

Thursday, February 12th, 2009

CMIS is the new Content Management Interoperability Services standard being developed by the by the OASIS CMIS TC. CMIS has both Web Services and REST/ATOM APIs.

Shane Johnson has a new blog post with screenshots, install download, for his CMIS explorer (Flex/AIR).

David Caruana has a blog post with an update on Alfresco’s Draft CMIS Implementation. This includes screenshots of a bunch of community projects using Alfresco’s Draft CMIS implementation.

I am starting to work on CMIS Spaces (Flex+AIR, Flex+Browser) RIA clients for CMIS. These are based on FlexSpaces. Hopefully the use of Cairngorm in FlexSpaces will allow CMIS delegates to be swapped in. CMIS Spaces will also work as a pod in FlexibleShare. (Also plan to have CMIS Spaces work as a tile in Adobe Genesis).

Steve

FlexSpaces for Alfresco and LiveCycle CS ES, Calais integration, FlexibleShare

Wednesday, February 11th, 2009

Here are some links to screencam demos, previous posts about FlexSpaces (both Flex+Browser and Flex+AIR), an open source RIA client for Alfresco ECM (and for Adobe LiveCycle Content Services ES too).  FlexSpaces has many features including multiple views (icon/thumbnail/grid/coverflow),  doclib, search, workflow,  and wcm. The AIR version has desktop native drag/drop/clipboard support. These clients also have UI (auto-tagging, tag suggesting, geo-location tag google map) for the Alfresco Calais integration.  FlexSpaces uses Cairngorm and has been refactored to use the presentation model pattern.

FlexSpaces Geo-Tagging
FlexSpaces showing Calais Integration features

FlexSpaces Downloads

Additionally,  prototype work has started on FlexibleShare, which leverages FlexSpaces components in an open source Flex based portal container / dashboard with Flex based pods for open source enterprise software (Alfresco ECM, Alfresco Share,  reporting/BI, BPM, Liferay portal backend) and also LiveCycle. Also plan to enable the pods to be used as Adobe Genesis Tiles.

FlexibleShare prototype
FlexibleShare prototype

Other FlexSpaces Screenshots / Screencams
Liferay + FlexSpaces + Alfresco
Alfresco Share 3.0 Integration, Thumbnail, CoverFlow View, Advanced Search
Tagging, Categorization, WCM
General Features and AIR specific features
Start workflow, Tasks dashboard tab,  preview, dual pane drag/drop

Integrated Semantics
Integrated Semantics Blog
FlexSpaces Forum Topic
FlexSpaces on Google Code
Follow on Twitter

Steve

Flex and CMIS

Friday, January 30th, 2009

Shane Johnson has done some work on a browser with Flex / AIR and CMIS (with Alfresco). This got me thinking that I should have a pod in FlexibleShare for CMIS api repositories (with drag / drop from desktop to it and between it and Alfresco DocLib / WCM pods).

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 Genesis MAX 2008 presentation recording now on Adobe TV

Monday, January 12th, 2009

Adobe TV added about 50 more MAX 2008 presentation recordings today including:

Genesis MAX 2008 presentation recording. This recording has both a presentation and a demo in it. (Genesis MAX 2008 presentation slides on SlideShare)

Also see my previous blog post on Adobe Genesis / Flex Portals / Open Source / FlexibleShare

FlexSpaces now refactored to use the presentation model pattern

Monday, January 5th, 2009

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

Monday, December 8th, 2008

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