org.ism.view.TableView.java Source code

Java tutorial

Introduction

Here is the source code for org.ism.view.TableView.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package org.ism.view;

import java.io.IOException;
import javax.inject.Named;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;
import javax.enterprise.context.SessionScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.ism.jsf.util.JsfUtil;

/**
 *
 * @author r.hendrick
 */
@Named(value = "tableView")
@SessionScoped
public class TableView implements Serializable {

    private static final long serialVersionUID = 1L;

    private List<String> boolFilter = new ArrayList<String>();

    private String widgetVar = "_wv"; //  Name of the client side widget.
    private String rowIndexVar = "_riv"; // null String Name of iterator to refer each row index.

    private Object selection; //selection null Object Reference to the selection data.

    private Integer first = 0; // Index of the first row to be displayed
    private Integer rows = 10;

    private Boolean paginator = true;
    private String paginatorTemplate = "{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {CurrentPageReport} {Exporters}";
    private String rowsPerPageTemplate = "5,10,15,20,30,40,50,100"; //Template of the rowsPerPage dropdown.
    private String rowsPerPageLabel = ResourceBundle.getBundle(JsfUtil.BUNDLE).getString("TableNumberRowPerPage"); // Label for the rowsPerPage dropdown.
    private String currentPageReportTemplate = "{startRecord} - {endRecord} sur {totalRecords}";
    private Integer pageLinks = 5; // Integer Maximum number of page links to display.
    private String paginatorPosition = "both"; //  String Position of the paginator.
    private Boolean paginatorAlwaysVisible = true; // Boolean Defines if paginator should be hidden if total data count is less than number of rows per page.

    private Boolean scrollable = false; // Boolean Makes data scrollable with fixed header.
    private Integer scrollHeight = 800; //null Integer Scroll viewport height.
    private Integer scrollWidth = 500; //null Integer Scroll viewport width.

    private String selectionMode = "single"; //String Enables row selection, valid values are single? and multiple?.
    private Boolean dblClickSelect = true; // false Boolean Enables row selection on double click.

    private String emptyMessage = ResourceBundle.getBundle(JsfUtil.BUNDLE).getString("EmptyList"); // String Text to display when there is no data to display. Alternative is emptyMessage facet.

    private Boolean liveScroll = false; // Boolean Enables live scrolling.
    private Integer scrollRows = 0; //Number of rows to load on live scroll.

    private Boolean resizableColumns = true;

    private Object sortBy; //null Object Property to be used for default sorting.
    private String sortOrder = "descending"; //ascending? or descending?.
    private String sortMode = "multiple"; //!< single or multiple

    private String lazy = "true";

    private Boolean liveResize = true; //!< Directly see rizesing
    private Boolean reflow = true; //!< Auto-agency
    private Boolean draggableColumns = true; //!< Activate draggable

    /**
     * Creates a new instance of RibbonView
     */
    public TableView() {
        boolFilter.add("");
        boolFilter.add("true");
        boolFilter.add("false");
    }

    public List<String> getBoolFilter() {
        return boolFilter;
    }

    public void setBoolFilter(List<String> boolFilter) {
        this.boolFilter = boolFilter;
    }

    public Boolean getPaginator() {
        return paginator;
    }

    public void setPaginator(Boolean paginator) {
        this.paginator = paginator;
    }

    public Boolean getResizableColumns() {
        return resizableColumns;
    }

    public void setResizableColumns(Boolean resizableColumns) {
        this.resizableColumns = resizableColumns;
    }

    public Integer getRows() {
        return rows;
    }

    public void setRows(Integer rows) {
        this.rows = rows;
    }

    public String getRowsPerPageTemplate() {
        return rowsPerPageTemplate;
    }

    public void setRowsPerPageTemplate(String rowsPerPageTemplate) {
        this.rowsPerPageTemplate = rowsPerPageTemplate;
    }

    public String getPaginatorTemplate() {
        return paginatorTemplate;
    }

    public void setPaginatorTemplate(String paginatorTemplate) {
        this.paginatorTemplate = paginatorTemplate;
    }

    public String getCurrentPageReportTemplate() {
        return currentPageReportTemplate;
    }

    public void setCurrentPageReportTemplate(String currentPageReportTemplate) {
        this.currentPageReportTemplate = currentPageReportTemplate;
    }

    public String getLazy() {
        return lazy;
    }

    public void setLazy(String lazy) {
        this.lazy = lazy;
    }

    public String getSortMode() {
        return sortMode;
    }

    public void setSortMode(String sortMode) {
        this.sortMode = sortMode;
    }

    public String getWidgetVar() {
        return widgetVar;
    }

    public void setWidgetVar(String widgetVar) {
        this.widgetVar = widgetVar;
    }

    public String getRowsPerPageLabel() {
        return rowsPerPageLabel;
    }

    public void setRowsPerPageLabel(String rowsPerPageLabel) {
        this.rowsPerPageLabel = rowsPerPageLabel;
    }

    public Integer getPageLinks() {
        return pageLinks;
    }

    public void setPageLinks(Integer pageLinks) {
        this.pageLinks = pageLinks;
    }

    public String getPaginatorPosition() {
        return paginatorPosition;
    }

    public void setPaginatorPosition(String paginatorPosition) {
        this.paginatorPosition = paginatorPosition;
    }

    public Boolean getPaginatorAlwaysVisible() {
        return paginatorAlwaysVisible;
    }

    public void setPaginatorAlwaysVisible(Boolean paginatorAlwaysVisible) {
        this.paginatorAlwaysVisible = paginatorAlwaysVisible;
    }

    public Boolean getScrollable() {
        return scrollable;
    }

    public void setScrollable(Boolean scrollable) {
        this.scrollable = scrollable;
    }

    public Integer getScrollHeight() {
        return scrollHeight;
    }

    public void setScrollHeight(Integer scrollHeight) {
        this.scrollHeight = scrollHeight;
    }

    public Integer getScrollWidth() {
        return scrollWidth;
    }

    public void setScrollWidth(Integer scrollWidth) {
        this.scrollWidth = scrollWidth;
    }

    public String getSelectionMode() {
        return selectionMode;
    }

    public void setSelectionMode(String selectionMode) {
        this.selectionMode = selectionMode;
    }

    public Object getSelection() {
        return selection;
    }

    public void setSelection(Object selection) {
        this.selection = selection;
    }

    public Boolean getDblClickSelect() {
        return dblClickSelect;
    }

    public void setDblClickSelect(Boolean dblClickSelect) {
        this.dblClickSelect = dblClickSelect;
    }

    public String getRowIndexVar() {
        return rowIndexVar;
    }

    public void setRowIndexVar(String rowIndexVar) {
        this.rowIndexVar = rowIndexVar;
    }

    public String getEmptyMessage() {
        return emptyMessage;
    }

    public void setEmptyMessage(String emptyMessage) {
        this.emptyMessage = emptyMessage;
    }

    public Boolean getLiveResize() {
        return liveResize;
    }

    public void setLiveResize(Boolean liveResize) {
        this.liveResize = liveResize;
    }

    public Boolean getLiveScroll() {
        return liveScroll;
    }

    public void setLiveScroll(Boolean liveScroll) {
        this.liveScroll = liveScroll;
    }

    public Integer getScrollRows() {
        return scrollRows;
    }

    public void setScrollRows(Integer scrollRows) {
        this.scrollRows = scrollRows;
    }

    public Object getSortBy() {
        return sortBy;
    }

    public void setSortBy(Object sortBy) {
        this.sortBy = sortBy;
    }

    public String getSortOrder() {
        return sortOrder;
    }

    public void setSortOrder(String sortOrder) {
        this.sortOrder = sortOrder;
    }

    public Integer getFirst() {
        return first;
    }

    public void setFirst(Integer first) {
        this.first = first;
    }

    public Boolean getReflow() {
        return reflow;
    }

    public void setReflow(Boolean reflow) {
        this.reflow = reflow;
    }

    public Boolean getDraggableColumns() {
        return draggableColumns;
    }

    public void setDraggableColumns(Boolean draggableColumns) {
        this.draggableColumns = draggableColumns;
    }

    /**
     * ************************************************************************
     * Evnement double click sur une ligne du tableau permet d'ouvrir l'dition
     * de la non conformit pour visualisation. Une initialisation des
     * paramtres par dfaut vrification de selected et des boolenes
     *
     * @throws IOException
     * ***********************************************************************
     */
    public void handleRowDoubleClick() throws IOException {
        // PREPARATION DE LA PAGE DE CHARGEMENT
        ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
        String dir = ec.getRequestPathInfo();
        String[] dirs = dir.split("/");
        dir = "/";
        for (int i = 0; i < dirs.length - 1; i++) {
            dir += dirs[i] + "/";
        }
        dir += "View.xhtml";
        ec.redirect(ec.getRequestContextPath() + ec.getRequestServletPath() + dir);
    }

    /**
     * ************************************************************************
     * Gestion des document au format XLS
     *
     * @param document
     * ***********************************************************************
     */
    public void handlePostProcessXLS(Object document) {
        HSSFWorkbook wb = (HSSFWorkbook) document;
        HSSFSheet sheet = wb.getSheetAt(0);
        HSSFRow header = sheet.getRow(0);
        HSSFCellStyle cellStyle = wb.createCellStyle();
        cellStyle.setFillForegroundColor(HSSFColor.LIGHT_BLUE.index);
        cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
        for (int i = 0; i < header.getPhysicalNumberOfCells(); i++) {
            header.getCell(i).setCellStyle(cellStyle);
            sheet.autoSizeColumn(i);
        }
    }

}