Code: Select all
<render-kit>
<renderer>
<component-family>org.primefaces.component</component-family>
<renderer-type>org.primefaces.component.SheetRenderer</renderer-type>
<renderer-class>com.csc.scrumV.web.component.sheetList.ScrumVSheetRenderer</renderer-class>
</renderer>
</render-kit>
Code: Select all
public class ScrumVSheetRenderer extends SheetRenderer {
public void encodeHeader(FacesContext context, Sheet sheet) throws IOException {
ResponseWriter writer = context.getResponseWriter();
ArrayList<String> headList= (ArrayList<String>) sheet.getValue();
//fixed columns
writer.startElement("thead", null);
writer.startElement("tr", null);
//index column header
writer.startElement("th", null);
writer.writeAttribute("class", Sheet.COLUMN_HEADER_CLASS, null);
writer.startElement("div", null);
writer.writeAttribute("class", Sheet.INDEX_CELL_CLASS, null);
writer.endElement("div");
writer.endElement("th");
int columnIndex = 0;
for(UIComponent child : sheet.getChildren()) {
if(child instanceof Column && child.isRendered()) {
Column column = (Column) child;
boolean sortable = column.getValueExpression("sortBy") != null;
String style = column.getStyle();
String columnHeaderClass = sortable ? Sheet.COLUMN_HEADER_CLASS + " " + Sheet.SORTABLE_COLUMN : Sheet.COLUMN_HEADER_CLASS;
String userStyleClass = column.getStyleClass();
if(userStyleClass != null) {
columnHeaderClass = columnHeaderClass + " " + userStyleClass;
}
writer.startElement("th", null);
writer.writeAttribute("id", column.getClientId(context), style);
writer.writeAttribute("class", columnHeaderClass, null);
if(style != null) {
writer.writeAttribute("style", style, null);
}
writer.startElement("div", null);
writer.writeAttribute("class", Sheet.CELL_CLASS, null);
if(column.getWidth() != -1) {
writer.writeAttribute("style", "width:" + column.getWidth() + "px", null);
}
if(sortable) {
writer.startElement("span", null);
writer.writeAttribute("class", Sheet.SORTABLE_COLUMN_ICON, null);
writer.endElement("span");
}
if (headList.isEmpty()) {
writer.write(getColumnCode(columnIndex));
} else {
writer.write(headList.get(columnIndex));
}
writer.endElement("th");
columnIndex++;
}
}
writer.endElement("tr");
writer.endElement("thead");
//frozen headers
writer.startElement("tbody", null);
writer.startElement("tr", null);
writer.writeAttribute("class", Sheet.ROW_CLASS, null);
//index column header
writer.startElement("td", null);
writer.writeAttribute("class", Sheet.COLUMN_HEADER_CLASS, null);
writer.startElement("div", null);
writer.writeAttribute("class", Sheet.INDEX_CELL_CLASS, null);
writer.write("1");
writer.endElement("div");
writer.endElement("td");
for(UIComponent child : sheet.getChildren()) {
if(child instanceof Column && child.isRendered()) {
Column column = (Column) child;
String style = column.getStyle();
String styleClass = column.getStyleClass();
writer.startElement("td", null);
if(style != null) writer.writeAttribute("style", style, null);
if(styleClass != null) writer.writeAttribute("class", styleClass, null);
writer.startElement("div", null);
writer.writeAttribute("class", Sheet.CELL_CLASS, null);
if(column.getWidth() != -1) {
writer.writeAttribute("style", "width:" + column.getWidth() + "px", null);
}
if(column.getHeader() != null) {
column.getHeader().encodeAll(context);
}
else if(column.getHeaderText() != null) {
writer.write(column.getHeaderText());
}
writer.endElement("div");
writer.endElement("td");
}
}
writer.endElement("tr");
writer.endElement("tbody");
}
}