Action Java con acceso al documento

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-02-2009 03:53 AM
Estoy intentando realizar una Integración de una librería que realiza tareas de firma digital con documentos con Alfresco. Soy nuevo en Alfresco y por lo poco que he visto he pensado que podía hacer esto:
1- declarar un 'action' y añadirlo al grupo de acciones que actuan sobre documentos (document_browse_menu)
2- hacer que este action llamará a un codigo Java que hiciera las llamadas pertinentes a la librería
El paso 1 lo he conseguido modificando el fichero web-client-config-custom.xml, añadiendo estas entradas:
<config> <actions> <!– Launch Add Aspect Dialog –> <action id="custodia"> <label>Custodia</label> <image>/images/icons/add.gif</image> <tooltip>Envia el documento a custodia</tooltip> </action> <!– Add action to more actions menu for each space –> <action-group id="document_browse_menu"> <action idref="add_aspect" /> </action-group> </actions> </config>
Una vez realizada esta modificación, he comprobado que aparece una nueva opción en el menu contextual de un documento.
Para el paso dos he visto en el API de Alfresco que existe la clase 'TransformActionExecuter' , implementando una clase que herede de está tendre acceso al documento e incluso modificarlo.
El problema es que no se como modificar la declaración de action del paso1 para llamar a mi clase, he visto que existe el tag <action> y <action-listener>, pero no me permite llamar a mi clase, solo veo que puedo llamar a scripts y a dialogs.
¿Alguien podría decirme como llamar a mi clase Java desde el action declarado?
Muchas Gracias.
- Labels:
-
Archive

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-03-2009 03:13 AM
Con la siguiente llamada:
<action-listener>#{custodia.executeImpl}</action-listener>
Obtengo otro error diferente:
javax.faces.el.EvaluationException: Exception while invoking expression #{custodia.executeImpl}caused by:java.lang.NoSuchMethodException: es.sia.alfresco.action.executer.CustodiaSIAVALActionExecuter.executeImpl(javax.faces.event.ActionEvent)
Que es el mismo que me daba con la solucion que proponia 'dacedos' (definiendo el bean en el fichero faces-config-custom.xml)
¿Por que es necesario que los metodos a llamar de la clase Java tengan como parámetro un objeto javax.faces.event.ActionEvent?
He estado ojeando el API de esa clase y no he visto que pueda tener acceso al documento a partir de ese objeto.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-03-2009 03:43 AM
Implement the setActive method. It gets called when the UI Action is
invoked. It is passed as an ActionEvent through which you can get the
parameters:
/**
* Action handler called when the enable or disable action is
clicked.
* @param event
*/
public void setActive(ActionEvent event) {
UIActionLink link = (UIActionLink)event.getComponent();
Map<String, String> params = link.getParameterMap();
String id = params.get(PARAM_ID);
String active = params.get(PARAM_ACTIVE);
Boolean activeFlag = Boolean.parseBoolean(active);
Por tanto me imagino que dicho parametro sera el "disparador" de la accion personalizada.
Saludos

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-03-2009 07:06 AM
muchas gracias por el ejemplo, he visto como acceder a los parámetros que se definen en el action mediante los tags <param>.
En todos los ejemplos que he visto siempre se pasa el mismo parámetro:
<params> <param name="id">#{actionContext.id}</param></params>
Que corresponde con un identificador de la accion, necesito saber si el actionContext tiene alguna referencia al documento, ya que en mi accion debería tener acceso al documento. ¿Hay algo de documentacion relacionada con actionContext?
Muchas Gracias
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-03-2009 07:22 AM
Te adjunto un post bastante significativo
http://forums.alfresco.com/en/viewtopic.php?f=9&t=5010
El ContextAction, puede ser el documento,spacio… mismo al que estas aplicando la accion
Saludos

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-08-2009 09:14 AM
pero sigo con problemas para acceder al fichero, por lo que he podido ver en el API, para acceder al InputStream del fichero necesito su url.
He definido la url como parametro:
<param name="url">#{actionContext.properties['cm:url']}</param>
Y luego por codigo obtengo esa url e intento acceder al inputStream a patir de ella
UIActionLink link = (UIActionLink)e.getComponent(); Map params = link.getParameterMap();String url = (String)params.get("url");HttpAlfrescoStore store = new HttpAlfrescoStore(); ContentReader readerURL = store.getReader(url);InputStream is = readerURL.getContentInputStream();
La url tiene valor, su formato es:
workspace/SpacesStore/cf68c25f-458c-4f32-ade3-8d83d97b4ecb/fileIn.txt
pero obtengo un error al obtener el inputstream a partir de él, como si el fichero no existiese.
¿Alguna idea de como debe ser el formato del URL o de como obtenerlo?
Gracias.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-09-2009 02:22 AM
Una cosa que no me cuadra
La url tiene valor, su formato es:
workspace/SpacesStore/cf68c25f-458c-4f32-ade3-8d83d97b4ecb/fileIn.txt
Creo que no es correcto, la url entiendo que podria ser la siguiente:
workspace/SpacesStore/cf68c25f-458c-4f32-ade3-8d83d97b4ecb
pero la ultima parte (/fileIn.txt) ¿ de donde sale?
Saludos

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-09-2009 02:33 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-09-2009 02:36 AM
http://IP-Alfresco:8080/alfresco/d/d/workspace/SpacesStore/dc20f0e7-5679-467a-92c8-9660addd8372/Proc...
Saludos
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-09-2009 03:02 AM
ContentReader getReader(NodeRef nodeRef)
Saludos

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-09-2009 07:04 AM
