/*
* $Id: WebDAVFilePermissions.java,v 1.11 2006/10/30 13:42:08 gimmi Exp $
* Created on 29.12.2004
*
* Copyright (C) 2004 Idega Software hf. All Rights Reserved.
*
* This software is the proprietary information of Idega hf.
* Use is subject to license terms.
*/
package com.idega.content.presentation;
import javax.faces.component.html.HtmlCommandButton;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.context.FacesContext;
import com.idega.content.business.ContentUtil;
import com.idega.webface.WFList;
import com.idega.webface.WFUtil;
/**
*
* Last modified: $Date: 2006/10/30 13:42:08 $ by $Author: gimmi $
*
* @author <a href="mailto:gummi@idega.com">Gudmundur Agust Saemundsson</a>
* @version $Revision: 1.11 $
*/
public class WebDAVFilePermissions extends ContentBlock {
private static final String BEANID_STANDARD_MATRIX = "standardPermissionMatrix";
private static final String BEANID_ROLE_MATRIX = "rolePermissionMatrix";
private static final String BEANID_GROUP_MATRIX = "groupPermissionMatrix";
private static final String BEANID_USER_MATRIX = "userPermissionMatrix";
private static final String BEANID_SHARED_MATRIX_BEAN = "sharedPermissionMatrix";
private String[] permissionMatrixIDs = new String[] {BEANID_STANDARD_MATRIX,BEANID_ROLE_MATRIX,BEANID_GROUP_MATRIX,BEANID_USER_MATRIX,BEANID_SHARED_MATRIX_BEAN};
public WebDAVFilePermissions(){
}
/* (non-Javadoc)
* @see com.idega.presentation.IWBaseComponent#initializeContent()
*/
protected void initializeComponent(FacesContext context) {
String resourcePath = getCurrentResourcePath();
if(resourcePath!=null){
WFUtil.invoke(BEANID_SHARED_MATRIX_BEAN, "setResourcePath", resourcePath);
setCurrentResourcePath(resourcePath);
} else {
System.err.println("[WARNING]["+getClass().getName()+"]: resource path is null");
}
initializePermissionMatirx(BEANID_STANDARD_MATRIX,"permissionmatrix.standard",resourcePath);
initializePermissionMatirx(BEANID_ROLE_MATRIX,"permissionmatrix.roles",resourcePath);
// initializePermissionMatirx(BEANID_GROUP_MATRIX,"permissionmatrix.groups",resourcePath);
//
// HtmlCommandButton addButton = new HtmlCommandButton();
// addButton.setId(BEANID_GROUP_MATRIX+".add_principal");
// addButton.setStyleClass("permission_add_button");
// addButton.setValue("+");
//// getBundle().getLocalizedUIComponent("add", addButton);
// getChildren().add(addButton);
initializePermissionMatirx(BEANID_USER_MATRIX,"permissionmatrix.users",resourcePath);
HtmlCommandButton refreshButton = new HtmlCommandButton();
refreshButton.setId("refresh_permissions");
getBundle().getLocalizedUIComponent("refresh", refreshButton);
refreshButton.setAction(WFUtil.createMethodBinding("#{"+BEANID_SHARED_MATRIX_BEAN+".refresh}", new Class[0]));
HtmlCommandButton button = new HtmlCommandButton();
button.setId("save_permissions");
getBundle().getLocalizedUIComponent("save", button);
button.setAction(WFUtil.createMethodBinding("#{"+BEANID_SHARED_MATRIX_BEAN+".saveACL}", new Class[0]));
WFUtil.setValueBinding(button,"rendered",BEANID_SHARED_MATRIX_BEAN+".allowedToWriteACL");
getChildren().add(refreshButton);
getChildren().add(button);
}
protected void initializePermissionMatirx(String beanID, String headerLocalizedKey, String resourcePath){
if(resourcePath!=null){
WFUtil.invoke(beanID, "setResourcePath", resourcePath);
} else {
System.err.println("[WARNING]["+getClass().getName()+"]: resource path is null");
}
WFList pMatrix = new WFList(beanID);
pMatrix.setId(beanID);
pMatrix.setListStyleClass(ContentUtil.MODULE_PREFIX+"permission_matrix");
pMatrix.setRowClasses("cms_permission_listoddrow,cms_permission_listevenrow");
HtmlOutputText headerStandard = getBundle().getLocalizedText(headerLocalizedKey);
headerStandard.setId(beanID+"_title");
headerStandard.setStyleClass(ContentUtil.MODULE_PREFIX+"permission_matrix_header");
getChildren().add(headerStandard);
getChildren().add(pMatrix);
}
/**
* @see javax.faces.component.StateHolder#restoreState(javax.faces.context.FacesContext,
* java.lang.Object)
*/
public void processRestoreState(FacesContext ctx, Object state) {
super.processRestoreState(ctx, state);
String resourcePath = getCurrentResourcePath();
if(resourcePath!=null){
for (int i = 0; i < this.permissionMatrixIDs.length; i++) {
WFUtil.invoke(this.permissionMatrixIDs[i], "setResourcePath", resourcePath);
}
} else {
System.err.println("[WARNING]["+getClass().getName()+"]: resource path can not be restored for managed beans");
}
}
}