Package pl.zgora.uz.wmie.fe.gui.common.tag

Source Code of pl.zgora.uz.wmie.fe.gui.common.tag.Table

package pl.zgora.uz.wmie.fe.gui.common.tag;

import java.io.Writer;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.Tag;

import pl.zgora.uz.wmie.fe.gui.common.bean.ButtonBean;
import pl.zgora.uz.wmie.fe.gui.common.bean.ColumnBean;
import pl.zgora.uz.wmie.fe.gui.common.bean.FilterBean;
import pl.zgora.uz.wmie.fe.gui.common.statics.StaticFIelds;
import pl.zgora.uz.wmie.fe.gui.common.util.ColumnLabelsUtil;
import pl.zgora.uz.wmie.fe.gui.common.util.MessageUtil;
import pl.zgora.uz.wmie.fe.sps.business.util.ValidatorUtil;

public class Table implements Tag {
  private PageContext pageContext;
  private Tag parent;
  private String id;
  private List<FilterBean> filters = new ArrayList<FilterBean>();
  private String filtersArrayJS = "";
  private String tableAjaxActionClass;
  private String tableAjaxActionMethod;
  private String defaultColumnSortDir;
  private String defaultColumnSort;
  private String buttons;
  private String title;
  private List<ButtonBean> buttonList = new ArrayList<ButtonBean>();
  private List<ColumnBean> columnList = new ArrayList<ColumnBean>();
 
  int i = 0;

  public Table() {
    super();
  }

  public int doStartTag() throws JspException {
    System.out.println("pocztek");
    this.filters.clear();
    this.buttonList.clear();
    this.columnList.clear();
    return EVAL_BODY_INCLUDE;
  }

  public int doEndTag() throws JspException {
    String findClickAction = "";
    ColumnLabelsUtil label = new ColumnLabelsUtil();
    String labelText = "";
    String findClickActionSort = "";
    Locale lokalizacja = pageContext.getRequest().getLocale();
    String path=null;
    path=pageContext.getServletContext().getContextPath().substring(0,pageContext.getServletContext().getContextPath().indexOf("/",1));
    try {
      Writer out = pageContext.getOut();
      out.write("<div id=\"" + id
          + "ContentField\" class=\"tableContentField\">");

      out.write("<input type=\"hidden\" id=\"" + this.id
          + "Sort\" value=\"" + this.defaultColumnSort + "\"> "
          + "<input type=\"hidden\" id=\"" + this.id
          + "SortDir\" value=\"" + this.defaultColumnSortDir + "\">");

      out.write("<div id=\"" + id
          + "FilterField\" class=\"tableFilterField\">");

      for (FilterBean element : filters) {
        String filerHtml = element.getBody().replace(element.getName(),
            element.getName() + id);
        String filterId = element.getName() + id;
        out.write(filerHtml);
        if (!"".equals(filtersArrayJS)) {
          filtersArrayJS = filtersArrayJS + ",'" + filterId + "'";
        } else {
          filtersArrayJS = "'" + filterId + "'";
        }
      }

      String projections = "";
      for (ColumnBean columnBean : columnList) {
        if (!ValidatorUtil.isBlankOrNull(projections)) {
          projections += ",";
        }
        projections = projections + "'" + columnBean.getColumn() + "'";
      }
      findClickAction = "\"tableRefresh('" + id + "',new Array("
          + filtersArrayJS + "),new Array(" + projections + "), "
          + tableAjaxActionClass + "." + tableAjaxActionMethod
          + ")\"";
      out.write("<button id=\"" + id + "FindButton\" onclick="
          + findClickAction + ">znajdz</button>");
      out.write("</div>");
      String filterParameter = "div#" + id + "ContentField div#" + id
          + "FilterField";
      out.write("<table id=\"" + id
          + "\" border=\"1\" class=\"standardTable\">");
      if (title != null) {
        out.write("<caption onclick=\"switchFilter('" + filterParameter
            + "')\">" + title);
        out.write("<button class=\"filterTableButton\"></button>");
        out.write("</caption>");
      }
      out.write("<tr>");
      for (ColumnBean columnBean : columnList) {
        // wyswietla label jesli nie ma w tablicy wartosci
        // odpowiadajacych
        // parametrom. Mozna zmodyfikowac, do wyswietlania komunikatu.
//        if (columnBean.getLabel() == null) {
//          labelText = label.getLabelByName(columnBean.getColumn(),
//              columnBean.getSource());
//        } else {
//          labelText = (columnBean.getLabel());
//        }
       
        labelText = MessageUtil.getMessage(columnBean.getLabel(),lokalizacja);

        if (StaticFIelds.NO.equals(columnBean.getVisible())) {
          out.write("<th class=\"hideTableColumn\">"
              + columnBean.getLabel() + "</th>");
        } else {
          // OBSLUGA SORTOWANIA
          if (StaticFIelds.NO.equals(columnBean.getSort())
              || columnBean.getSort() == null) {
            out.write("<th style=\"width:" + columnBean.getWidth()
                + "\">");
            out.write(labelText);
            out.write("</th>");
          } else {
            findClickActionSort = "tableRefresh('" + id
                + "',new Array(" + filtersArrayJS
                + "),new Array(" + projections + "),"
                + tableAjaxActionClass + "."
                + tableAjaxActionMethod + ")";
            out.write("<th onclick=\"sortBy('"
                + columnBean.getColumn() + "','" + this.id + ""
                + "')," + findClickActionSort
                + "\" style=\"cursor:pointer; width:"
                + columnBean.getWidth() + "\">");
            out.write(labelText);
            String dnSortIconClass = null;
            if (this.defaultColumnSort != null
                && this.defaultColumnSortDir == "desc"
                && this.defaultColumnSort == columnBean
                    .getColumn()) {
              dnSortIconClass = "sortIconVisible";
            } else {
              dnSortIconClass = "sortIconHide";
            }
            out.write("<div class=\"" + dnSortIconClass
                + "\" id=\"dn" + this.id
                + columnBean.getColumn() + "\">");
            out
                .write("<img src=\""+path+"/pages/include/sort_dn.gif\" />");
            out.write("</div>");
            String upSortIconClass = null;
            if ((this.defaultColumnSort != null
                && this.defaultColumnSortDir == "asc" && this.defaultColumnSort == columnBean
                .getColumn())
                || (this.defaultColumnSort != null
                    && this.defaultColumnSortDir == null && this.defaultColumnSort == columnBean
                    .getColumn())) {
              upSortIconClass = "sortIconVisible";
            } else {
              upSortIconClass = "sortIconHide";
            }
            out.write("<div class=\"" + upSortIconClass
                + "\" id=\"up" + this.id
                + columnBean.getColumn() + "\">");
            out
                .write("<img src=\""+path+"/pages/include/sort_up.gif\" />");
            out.write("</div>");
            out.write("</th>");
          }
        }
      }
      out.write("</tr>");

      out.write("</table>");
      out.write("<div class=\"tableFooter\">");
      out.write("<div class=\"tableButtonField\">");
      if (StaticFIelds.YES.equals(buttons)) {
        for (ButtonBean buttonBean : buttonList) {
          out.write("<button onclick=\""
              + buttonBean.getAction()
              + "\">"
              + MessageUtil.getMessage(buttonBean.getLabel(),
                  pageContext.getRequest().getLocale())
              + "</button>");
        }
      } else {
        out.write("&nbsp;");
      }
      out.write("</div>");
      out.write("<div class=\"tableNavigation\">");
      out.write("<button id=\""+id+"FirstPageButton\" class=\"firstPage\" onclick=\"changePage('" + id
          + "','first')\"></button>");
      out.write("<button id=\""+id+"PrevPageButton\" class=\"prevPage\" onclick=\"changePage('" + id
          + "','prev')\"></button>");
      out
          .write("<input type=\"text\" id=\""
              + id
              + "PageNum\" class=\"tablePageNum\" value=\"1\" disabled=\"disabled\">");
      out
          .write(" <b>\\</b> <input type=\"text\" id=\""
              + id
              + "PageLastNum\" class=\"tablePageNum\" value=\"1\" disabled=\"disabled\">");
      out.write("<button id=\""+id+"NextPageButton\" class=\"nextPage\" onclick=\"changePage('" + id
          + "','next')\"></button>");
      out.write("<button id=\""+id+"LastPageButton\" class=\"lastPage\" onclick=\"changePage('" + id
          + "','last')\"></button>");
      out.write("</div>");

      out.write("</div>");

      out.write("</div>");

      out.write("<script>");
      out.write(findClickAction.replace("\"", ""));
      out.write("</script>");
    } catch (Exception e) {
      throw new JspTagException("IO Error: " + e.getMessage());
    }
    filters.clear();
    filtersArrayJS = "";
    return EVAL_PAGE;
  }

  public Tag getParent() {
    return parent;
  }

  public void release() {
    System.out.println("wypuszczenie");

  }

  public void setPageContext(PageContext pageContext) {
    this.pageContext = pageContext;

  }

  public void setParent(Tag parent) {
    this.parent = parent;

  }

  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }

  public List<FilterBean> getFilters() {
    return filters;
  }

  public void setFilters(List<FilterBean> filters) {
    this.filters = filters;
  }

  protected String getFiltersArrayJS() {
    return filtersArrayJS;
  }

  protected void setFiltersArrayJS(String filtersArrayJS) {
    this.filtersArrayJS = filtersArrayJS;
  }

  public String getTableAjaxActionClass() {
    return tableAjaxActionClass;
  }

  public void setTableAjaxActionClass(String tableAjaxActionClass) {
    this.tableAjaxActionClass = tableAjaxActionClass;
  }

  public String getButtons() {
    return buttons;
  }

  public void setButtons(String buttons) {
    this.buttons = buttons;
  }

  public String getTitle() {
    return title;
  }

  public void setTitle(String title) {
    this.title = title;
  }

  public List<ButtonBean> getButtonList() {
    return buttonList;
  }

  public List<ColumnBean> getColumnList() {
    return columnList;
  }

  public String getTableAjaxActionMethod() {
    return tableAjaxActionMethod;
  }

  public void setTableAjaxActionMethod(String tableAjaxActionMethod) {
    this.tableAjaxActionMethod = tableAjaxActionMethod;
  }

  public String getDefaultColumnSort() {
    return defaultColumnSort;
  }

  public void setDefaultColumnSort(String defaultColumnSort) {
    this.defaultColumnSort = defaultColumnSort;
  }

  public String getDefaultColumnSortDir() {
    return defaultColumnSortDir;
  }

  public void setDefaultColumnSortDir(String defaultColumnSortDir) {
    this.defaultColumnSortDir = defaultColumnSortDir;
  }

}
TOP

Related Classes of pl.zgora.uz.wmie.fe.gui.common.tag.Table

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.