Para empezar modificaremos el fichero web-client-config-custom.xml:
Primero mostramos las asociaciones en las propiedades del documento.
Definimos la acción:
es.pruebas.evaluator.DocumentosAsociadosEvaluator /images/icons/search.gif
#{VerDocsAsociadosDialog.setupAction} dialog:verDocsAsociadosDialog /sample/docsAsociados Mostrar documentos asociados #{actionContext.nodeRef}
las funciones de las distintas etiquetas son:
<evaluator> define una clase Evaluator que controla cuando mostrar la acción
<image> icono que se mostrará para la acción
<action-listener>, <action> definimos que es lo que se ejecutará
<params> parámetros que necesitamos en nuestra acción (en nuestro caso la clase diálogo)
Definimos el diálogo:
Y por último, registramos el diálogo en alfresco\WEB-INF\faces-config-custom.xml
VerDocsAsociadosDialog es.pruebas.dialogs.VerDocsAsociadosDialog session
Las dos clases que hemos utilizado son:
VerDocsAsociadosDialog.java
public class VerDocsAsociadosDialog extends BaseDialogBean {
/**
*
*/
private static final long serialVersionUID = -653745991045332155L;
private String url;
private String title;
private String webscriptUrl;
private static Log log = LogFactory.getLog(VerDocsAsociadosDialog.class);
@Override
protected String finishImpl(FacesContext arg0, String arg1) throws Throwable {
throw new UnsupportedOperationException("Not supported yet.");
}
public void setupAction(ActionEvent event) {
UIActionLink link = (UIActionLink) event.getComponent();
Map params = link.getParameterMap();
NodeRef nodo = new NodeRef(params.get("nodeRef"));
String url2 = params.get("webscript-url");
String title2 = params.get("title");
if (!"".equals(url2)) {
this.url = url2 + "?q="+ nodo.toString();
this.title = title2;
}
}
@Override
public String getContainerTitle(){
return this.title;
}
@Override
public String getCancelButtonLabel(){
return "Cerrar";
}
@Override
public String cancel() {
return getDefaultCancelOutcome();
}
public String getWebscriptUrl() {
return "/wcservice" + url;
}
}
DocumentosAsociadosEvaluator.java public class DocumentosAsociadosEvaluator implements ActionEvaluator{
private static Log log = LogFactory.getLog(DocumentosAsociadosEvaluator.class);
public static final QName ASOCIACION_DOC = QName.createQName("custom.model", "docsAsociados");
public boolean evaluate(Node node) {
NodeRef ref = new NodeRef(Repository.getStoreRef(), node.getId());
FacesContext context = FacesContext.getCurrentInstance();
NodeService nodeSvc = Repository.getServiceRegistry(context).getNodeService();
boolean result = false;
List asocs = (List)node.getAssociations().get(ASOCIACION_DOC);
if(asocs != null && asocs.size() > 0) {
return true;
}
return result;
}
public boolean evaluate(Object arg0) {
throw new UnsupportedOperationException("Not supported yet.");
}
}
y la jsp que mostrará los resultados verDocsAsociados.jsp
<%@ taglib uri="/WEB-INF/repo.tld" prefix="r" >
No hay comentarios:
Publicar un comentario