package com.yourconame.desc; import java.util.Map; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import com.ibm.xsp.extlib.builder.ControlBuilder.IControl; import com.ibm.xsp.extlib.component.dynamicview.DominoDynamicColumnBuilder.DominoViewCustomizer; import com.ibm.xsp.extlib.component.dynamicview.UIDynamicViewPanel.DynamicColumn; import com.ibm.xsp.extlib.component.dynamicview.ViewDesign.ColumnDef; public class MyCustomizerBean extends DominoViewCustomizer{ @SuppressWarnings("unchecked") @Override public void afterCreateColumn(FacesContext context, int index, ColumnDef colDef, IControl column) { //Get a map of the session variables to read the view session scope variable Map svals = context.getExternalContext().getSessionMap(); //Create a variable for the current component UIComponent columnComponent = column.getComponent(); //Create a reference to the column and set the links to open in read mode DynamicColumn dynamicColumn = (DynamicColumn) columnComponent; //To have every view open the selected documents in read mode add the following dynamicColumn.setOpenDocAsReadonly(true); /* * If all you need to do is have the views open in read mode instead of * edit mode then the above code is all you need. * If you want to customize the view columns the the follow code can be * used as an example. */ //Set column properties for specific views. //Where VIEWNAME is the view name stored in a session scope variable if (svals.containsValue("VIEWNAME") & colDef.isLink()) { //set the checkbox property to true for this view if(dynamicColumn.getColumnName().equalsIgnoreCase("COLUMNNAME")){ dynamicColumn.setShowCheckbox(true); } } if (svals.containsValue("VIEWNAME")) { //Hide the address column in this view if(dynamicColumn.getColumnName().equalsIgnoreCase("COLUMNNAME")){ dynamicColumn.setRendered(false); } } super.afterCreateColumn(context, index, colDef, column); } }