Package com.centraview.view

Source Code of com.centraview.view.ViewEJB

/*
* $RCSfile: ViewEJB.java,v $    $Revision: 1.1.1.1 $  $Date: 2005/04/28 20:23:18 $ - $Author: mking_cv $
*
* The contents of this file are subject to the Open Software License
* Version 2.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.centraview.com/opensource/license.html
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
* License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is: CentraView Open Source.
*
* The developer of the Original Code is CentraView.  Portions of the
* Original Code created by CentraView are Copyright (c) 2004 CentraView,
* LLC; All Rights Reserved.  The terms "CentraView" and the CentraView
* logos are trademarks and service marks of CentraView, LLC.
*/

package com.centraview.view;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
import java.util.Vector;

import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import javax.naming.Context;
import javax.naming.InitialContext;

import com.centraview.common.CVDal;
import com.centraview.common.CVUtility;
import com.centraview.common.DDNameValue;
import com.centraview.common.ListView;

public class ViewEJB implements SessionBean
{
  protected javax.ejb.SessionContext ctx;
  protected Context environment;
  private String dataSource = "";
 
  /*
   * Set the associated session context. The container calls this method after the instance
   * creation. The enterprise Bean instance should store the reference to the context
   * object in an instance variable. This method is called with no transaction context.
   */
  public void setSessionContext(SessionContext ctx)
  {
    this.ctx = ctx;
  }
 
  public ViewEJB() { }
 
  public void ejbCreate() { }
 
  public void ejbRemove() { }
 
  public void ejbActivate() { }
 
  public void ejbPassivate() { }

  /*
   *  Used to add a new view entry
   */
  public int addView(int userId, ViewVO viewVO)
  {
    int viewId = 0;
    CVDal cvdl = new CVDal(dataSource);
   
    try {
      cvdl.setSql("view.insertview");
      cvdl.setString(1,viewVO.getListType());
      cvdl.setString(2,viewVO.getViewName());
      cvdl.setString(3,viewVO.getSortMember());
      cvdl.setString(4,viewVO.getSortType());
      cvdl.setInt(5,viewVO.getSearchId());
      cvdl.setString(6, viewVO.getSearchType());
      cvdl.setInt(7,viewVO.getNoOfRecord());
      cvdl.setInt(8, viewVO.getCreatedBy());
      cvdl.setInt(9, viewVO.getOwner());
      cvdl.executeUpdate();
     
      viewId = cvdl.getAutoGeneratedKey();
     
      // insert into table viewcolumns
      Vector columnVector = viewVO.getViewColumnVO();
      if (columnVector != null) {
        int sizeOfColumn = columnVector.size();
        for (int i = 0; i < sizeOfColumn; i++) {
          ViewColumnVO columnVO = (ViewColumnVO)columnVector.get(i);
          cvdl.clearParameters();
          cvdl.setSql("view.insertviewcolumn");
          cvdl.setInt(1, viewId);
          cvdl.setString(2, columnVO.getColumnName());
          cvdl.setInt(3, columnVO.getColumnOrder());
          cvdl.executeUpdate();
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      cvdl.destroy();
      cvdl = null;
    }
    return viewId;
  }

  /**
   *  Used to get view information
   *  @param individualId The <strong>individualId</strong> of the user requesting the data.
   *  @param viewVO A populated ViewVO representing the view being requested.
   */
  public ViewVO getView(int individualId, int viewId)
  {
    ViewVO viewVO = new ViewVO();

    CVDal cvdl = new CVDal(dataSource);

    try {
      cvdl.setSql("view.getview");
      cvdl.setInt(1, viewId);

      Collection col = cvdl.executeQuery();

      cvdl.clearParameters();
      cvdl.setSql("view.getcolumnview");
      cvdl.setInt(1, viewId);
      Collection columnCol = cvdl.executeQuery();

      Iterator it = col.iterator();

      HashMap hm = (HashMap)it.next();

      viewVO.setViewId(((Long)hm.get("viewid")).intValue());
      viewVO.setListType((String)hm.get("listtype"));
      viewVO.setViewName((String)hm.get("viewname"));
      viewVO.setSortMember((String)hm.get("sortmember"));
      viewVO.setSortType((String)hm.get("sorttype"));
      viewVO.setSearchId(((Long)hm.get("searchid")).intValue());
      viewVO.setSearchType((String)hm.get("searchtype"));
      viewVO.setNoOfRecord(((Long)hm.get("noofrecords")).intValue());

      //Get Relations
      InitialContext ic = CVUtility.getInitialContext();

      cvdl.clearParameters();
      cvdl.setSql("view.getsystemdefaultview");
      cvdl.setString(1, viewVO.getListType());
      Collection systemDefaultCol = cvdl.executeQuery();

      // column views
      Vector columnVector = new Vector();
      if (columnCol != null) {
        it = columnCol.iterator();
        while (it.hasNext()) {
          ViewColumnVO viewColVO = new ViewColumnVO();
          HashMap vchm = (HashMap)it.next();
          viewColVO.setViewId(viewId);
          viewColVO.setColumnName((String)vchm.get("columnname"));
          viewColVO.setColumnOrder(((Long)vchm.get("columnorder")).intValue());
          DDNameValue selectedColumnDD = new DDNameValue(viewColVO.getColumnName(),viewColVO.getColumnName());
          columnVector.add(selectedColumnDD);
        }
      }
      viewVO.setViewColumnVO(columnVector);

      // set system default view
      if (systemDefaultCol != null) {
        Iterator systemDefaultViewIterator = systemDefaultCol.iterator();
        if (systemDefaultViewIterator.hasNext()) {
          HashMap hmDefault = (HashMap)systemDefaultViewIterator.next();
          int systemDefaultViewId = ((Long)hmDefault.get("viewid")).intValue();
          if (systemDefaultViewId == viewId) {
            viewVO.setDefaultView("true");
          } else {
            viewVO.setDefaultView("false");
          }
        }
      } else {
        viewVO.setDefaultView("false");
      }

      int viewOwnerId = 0;
      if (hm.get("ownerid") != null) {
        viewOwnerId = ((Long)hm.get("ownerid")).intValue();
      }
      viewVO.setSearchIdName(getOwnerSearch(viewOwnerId, viewVO.getListType()));
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      cvdl.destroy();
      cvdl = null;
    }
    return viewVO;
  }
 
  /**
   * Used to update view information.
   * @param userId The <code>individualId</code> of the user performing the update operation.
   * @param viewVO A populated <code>ViewVO</code> object representing the view data.
   */
  public void updateView(int userId, ViewVO viewVO)
  {
    CVDal cvdl = new CVDal(dataSource);
   
    try {
      cvdl.setSql("view.updateview");
      cvdl.setString(1, viewVO.getListType());
      cvdl.setString(2, viewVO.getViewName());
      cvdl.setString(3, viewVO.getSortMember());
      cvdl.setString(4, viewVO.getSortType());
      cvdl.setInt(5, viewVO.getSearchId());
      cvdl.setString(6, viewVO.getSearchType());
      cvdl.setInt(7, viewVO.getNoOfRecord());
      cvdl.setInt(8, viewVO.getViewId());
      cvdl.executeUpdate();
     
      cvdl.clearParameters();
      cvdl.setSql("view.deleteviewcolumn");
      cvdl.setInt(1, viewVO.getViewId());
      cvdl.executeUpdate();
     
      // insert into table viewcolumns
      Vector columnVector = viewVO.getViewColumnVO();
      if (columnVector != null) {
        int sizeOfColumn = columnVector.size();
        for (int i = 0; i < sizeOfColumn; i++) {
          ViewColumnVO columnVO = (ViewColumnVO)columnVector.get(i);
          cvdl.clearParameters();
          cvdl.setSql("view.insertviewcolumn");
          cvdl.setInt(1, viewVO.getViewId());
          cvdl.setString(2, columnVO.getColumnName());
          cvdl.setInt(3, columnVO.getColumnOrder());
          cvdl.executeUpdate();
        }
      }
      viewVO.setSearchIdName(getOwnerSearch(viewVO.getOwner(), viewVO.getListType()));
    } catch (Exception e){
      e.printStackTrace();
    } finally {
      cvdl.destroy();
      cvdl = null;
    }
  }

  /**
   * Used to get all columns for a particular list
   */
  public Vector getAllColumns(String strListType)
  {
    Vector vecResult = new Vector();
    CVDal cvdal = new CVDal(dataSource);
    try {
      cvdal.setSql("view.getallcolumn");
      cvdal.setString(1, strListType);
      Collection cQuery = cvdal.executeQuery();
      if (cQuery != null) {
        Iterator iterator = cQuery.iterator();
        while (iterator.hasNext()) {
          HashMap map = (HashMap)iterator.next();
          DDNameValue ddnamevalue = new DDNameValue((String)map.get("columnname"), (String)map.get("columnname"));
          vecResult.add(ddnamevalue);
        }
      }
    } catch(Exception exe) {
      exe.printStackTrace();
    } finally {
      cvdal.destroy();
      cvdal = null;
    }
    return vecResult;
  }   // end getAllColumns() method

  /**
   * Used to get owner related search information
   * @param ownerId int
   * @return searchResult Vector
   */
  public Vector getOwnerSearch(int ownerId, String listType)
  {
    Vector searchResult = new Vector();
    CVDal cvdal = new CVDal(dataSource);

    try {
      cvdal.setSql("view.getownersearch");
      cvdal.setInt(1, ownerId);

      Collection cQuery = cvdal.executeQuery();

      DDNameValue ddnamevalue = new DDNameValue(0, "Select a Saved Search");
      searchResult.add(ddnamevalue);
      if (cQuery != null) {
        Iterator iterator = cQuery.iterator();
        while (iterator.hasNext()) {
          HashMap map = (HashMap)iterator.next();
          ddnamevalue = new DDNameValue(((Long)map.get("searchid")).intValue(), (String)map.get("searchname"));
          searchResult.add(ddnamevalue);
        }
      }
    } catch (Exception exe) {
      exe.printStackTrace();
    } finally {
      cvdal.destroy();
      cvdal = null;
    }
    return searchResult;
  }

  /**
   * Returns vector containing ddnamevalue pair of id and name
   * to be displayed in combo-box.
   */
  public Vector getViewComboData(int userId,String primaryTableName)
  {
    Vector vec = new Vector();
    CVDal dl = new CVDal(dataSource);

    try {
      dl.setSql("view.getowneruniquedefaultview");
      dl.setInt(1, userId);
      dl.setString(2, primaryTableName);
      Collection  col  = (Collection)dl.executeQuery();
      Iterator it = col.iterator();
      String defaultViewName = "";
      while (it.hasNext()) {
        HashMap hm  = (HashMap)it.next();
        Long viewid  = (Long)hm.get("defaultviewid");
        String viewname  = (String)hm.get("viewname");
        DDNameValue dd = new DDNameValue(viewid.intValue(), viewname);
        defaultViewName = viewname;
        vec.add(dd);
      }

      dl.clearParameters();
      dl.setSql("view.getownernondefaultview");
      dl.setInt(1,userId);
      dl.setString(2,primaryTableName);
      col  = (Collection)dl.executeQuery();
      it = col.iterator();
      while (it.hasNext()) {
        HashMap hm  = (HashMap)it.next();
        Long viewid  = (Long)hm.get("viewid");
        String viewname  = (String)hm.get("viewname");
        DDNameValue dd = new DDNameValue(viewid.intValue(),viewname);
        if (! (defaultViewName.equals(viewname))) {
          vec.add(dd);
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      dl.destroy();
      dl = null;
    }
    return vec;
  }
 
 
  /**
   * Returns vector containing user default view info
   */
  public Vector getViewInfo(int userId, int viewId)
  {
    Vector vec = new Vector();
    CVDal dl = new CVDal(dataSource);

    try {
      dl.setSql("view.getviewinfo");
      dl.setInt(1, viewId);
      Collection  col  = (Collection)dl.executeQuery();
      Iterator it = col.iterator();
      while (it.hasNext()) {
        HashMap hm  = (HashMap)it.next();
        String sortType  = (String)hm.get("sorttype");
        String sortElement  = (String)hm.get("sortmember");
        int noOfRecords  = ((Number)hm.get("noofrecords")).intValue();
        int searchid  = ((Number)hm.get("searchid")).intValue();
        vec.add(sortType);
        vec.add(sortElement);
        vec.add("" + noOfRecords);
        vec.add("" + searchid);
      }
    } catch(Exception e) {
      e.printStackTrace();
    } finally {
      dl.destroy();
      dl = null;
    }
    return vec;
  }

  /**
   * Get the Default View of the ListType and Its associated View as a Vector.
   * @param listTypeList  Collection of the List Type for which we must
   *        have to find the defaultView and the List of all the view
   *        which are created under that listType.
   * @return defaultViewMap A map of two things. They are key Object is
   *         DefaultViewID will contain the information of the viewID
   *         key Object is ViewList will contain a Vector (ViewID and View Name).
   */
  public HashMap getDefaultViews(ArrayList listTypeList)
  {
    HashMap defaultViewMap = new HashMap();
    CVDal dl = new CVDal(dataSource);

    try {
      for (int i = 0; i < listTypeList.size(); i++) {
        String listType = (String)listTypeList.get(i);

        Vector defaultViewList = new Vector();

        int defaultViewId = 0;
        dl.setSql("view.admin.getdefaultviewid");
        dl.setString(1, listType);
        Collection  colDefaultViewID  = (Collection)dl.executeQuery();
        if (colDefaultViewID != null) {
          Iterator itViewID = colDefaultViewID.iterator();
          while (itViewID.hasNext()) {
            HashMap hm = (HashMap) itViewID.next();
            defaultViewId = ((Number)hm.get("viewid")).intValue();
          }
        }

        dl.clearParameters();
        dl.setSql("view.getdefaultview");
        dl.setString(1,listType);
        Collection colViewList  = (Collection)dl.executeQuery();
        if (colViewList != null) {
          Iterator it = colViewList.iterator();
          while (it.hasNext()) {
            HashMap hm = (HashMap)it.next();
            int viewID = ((Number)hm.get("viewid")).intValue();
            String viewName = (String)hm.get("viewname");
            defaultViewList.add(new DDNameValue(viewID,viewName));
          }
        }
        HashMap listTypeInfo = new HashMap();
        listTypeInfo.put("DefaultViewID", defaultViewId + "");
        listTypeInfo.put("ViewList", defaultViewList);
        defaultViewMap.put(listType, listTypeInfo);
      }
    } catch(Exception e) {
      e.printStackTrace();
    } finally {
      dl.destroy();
      dl = null;
    }
    return defaultViewMap;
  }
 
  /**
   * Set the Default View of the Module to new selected ViewID.
   * @param defaultViews A collection of the key as List Type
   *        (Module name) and Value will be the newly Set View ID.
   */
  public void setDefaultView(HashMap defaultViews)
  {
    int viewID = 0;
    String listType = "";
    CVDal cvdl = new CVDal(dataSource);
   
    try {
      if (defaultViews != null) {
        Set viewSet = defaultViews.keySet();
        Iterator it = viewSet.iterator();
        while (it.hasNext()) {
          listType = (String)it.next();
          String strViewID = defaultViews.get(listType).toString();
          if (strViewID != null && ! strViewID.equals("")) {
            viewID = Integer.parseInt(strViewID);
            cvdl.setSql("view.setdefaultview");
            cvdl.setString(1, String.valueOf(viewID));
            cvdl.setString(2, listType);
            cvdl.executeUpdate();

            // This is a hack. We need to update the permissions for
            // all users and change the query for the Default View
            cvdl.clearParameters();
            cvdl.setSql("view.setdefaultviewowner");
            cvdl.setString(1, null);
            cvdl.setString(2, String.valueOf(viewID));
            cvdl.executeUpdate();
          }
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      cvdl.destroy();
      cvdl = null;
    }
  }

  /**
   * Returns system default viewid
   */
  public int getSystemDefaultView(String listType)
  {
    int systemViewId = 0;
    CVDal dl = new CVDal(dataSource);

    try {
      dl.setSql("view.getsystemdefaultview");
      dl.setString(1, listType);
      Collection  col  = (Collection)dl.executeQuery();
      Iterator it = col.iterator();
      while (it.hasNext()) {
        HashMap hm = (HashMap)it.next();
        systemViewId = ((Long)hm.get("viewid")).intValue();
      }
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      dl.destroy();
      dl = null;
    }
    return systemViewId;
  }

  /**
   * Returns user default viewid
   */
  public int getUserDefaultView(int userId, String listType)
  {
    int viewId = 0;
    CVDal dl = new CVDal(dataSource);

    try {
      dl.setSql("view.getuserdefaultview");
      dl.setInt(1, userId);
      dl.setString(2, listType);
      Collection col = (Collection)dl.executeQuery();
      Iterator it = col.iterator();
      while (it.hasNext()) {
        HashMap hm = (HashMap)it.next();
        viewId = ((Long)hm.get("defaultviewid")).intValue();
      }
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      dl.destroy();
      dl = null;
    }
    return viewId;
  }

  /**
   * Returns vector containing user default column info
   */
  public Vector getUserDefaultColumns(int viewId, String listType, int userId)
  {
    Vector vec = new Vector();
    CVDal dl = new CVDal(dataSource);

    try {
      dl.clearParameters();
      dl.setSql("view.getownerdefaultcolumn");
      dl.setInt(1, viewId);
      dl.setString(2, listType);
      dl.setInt(3, userId);
     
      Collection ownerColumnCollection = dl.executeQuery();
      Iterator ownerColumnIterator = ownerColumnCollection.iterator();
      ListView listView = new ListView(viewId);
     
      while (ownerColumnIterator.hasNext()) {
        HashMap ownerColumnHM = (HashMap)ownerColumnIterator.next();
        listView.addColumnName((String)ownerColumnHM.get("columnname"));
      }
      vec.add(listView);
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      dl.destroy();
      dl = null;
    }
    return vec;
  }
 
  /**
   * Updates user default view
   */
  public void updateUserDefaultView(int viewId, int userId, String sortType, String sortElement, int recordPerPage, String listType)
  {
    CVDal cvdl = new CVDal(dataSource);

    try {
      cvdl.setSql("view.updateuserdefaultview");
      cvdl.setString(1,sortType);
      cvdl.setString(2,sortElement);
      cvdl.setInt(3,recordPerPage);
      cvdl.setInt(4,viewId);
      cvdl.setInt(5,userId);
      cvdl.setString(6, listType);
      cvdl.executeUpdate();
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      cvdl.destroy();
      cvdl = null;
    }
  }

  /**
   * Deletes user view.
   */
  public void deleteUserView(int viewId)
  {
    CVDal cvdl = new CVDal(dataSource);

    try {
      cvdl.setSql("view.deleteview");
      cvdl.setInt(1, viewId);
      cvdl.executeUpdate();
      cvdl.clearParameters();
      cvdl.setSql("view.deleteviewcolumn");
      cvdl.setInt(1, viewId);
      cvdl.executeUpdate();
    } catch(Exception e) {
      e.printStackTrace();
    } finally {
      cvdl.destroy();
      cvdl = null;
    }
  }

  /**
   * Used to delete view information
   * @param viewId int
   */
  public void deleteView(int viewId)
  {
    CVDal cvdl = new CVDal(dataSource);

    try {
      cvdl.setSql("view.deleteview");
      cvdl.setInt(1, viewId);
      cvdl.executeUpdate();
     
      cvdl.clearParameters();
      cvdl.setSql("view.deleteviewcolumn");
      cvdl.setInt(1, viewId);
      cvdl.executeUpdate();
    } finally {
      cvdl.destroy();
      cvdl = null;
    }
  }

  /**
   * Updates user sort column and order in table listpreferences and listviews
   */
  public void updateUserDefaultViewSort(int viewId, String listType, String sortColumn, String sortOrder)
  {
    CVDal cvdl = new CVDal(dataSource);

    try {
      int systemDefaultViewId = getSystemDefaultView(listType);
     
      if (systemDefaultViewId != viewId) {
        cvdl.setSql("view.updatelistpreferencesort");
        cvdl.setString(1, sortOrder);
        cvdl.setString(2, sortColumn);
        cvdl.setInt(3, viewId);
        cvdl.executeUpdate();

        cvdl.clearParameters();
        cvdl.setSql("view.updatelistviewsort");
        cvdl.setString(1, sortOrder);
        cvdl.setString(2, sortColumn);
        cvdl.setInt(3, viewId);
        cvdl.executeUpdate();
      }
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      cvdl.destroy();
      cvdl = null;
    }
  }

  /**
   * Updates user record per page in table listpreferences and listviews
   */
  public void updateUserDefaultViewRRP(int viewId, String listType, int recordPerPage)
  {
    CVDal cvdl = new CVDal(dataSource);

    try {
      int systemDefaultViewId = getSystemDefaultView(listType);

      if (systemDefaultViewId != viewId) {
        cvdl.setSql("view.updatelistpreferencerpp");
        cvdl.setInt(1, recordPerPage);
        cvdl.setInt(2, viewId);
        cvdl.executeUpdate();

        cvdl.clearParameters();
        cvdl.setSql("view.updatelistviewrpp");
        cvdl.setInt(1, recordPerPage);
        cvdl.setInt(2, viewId);
        cvdl.executeUpdate();
      }
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      cvdl.destroy();
      cvdl = null;
    }
  }

  /**
   * This simply sets the target datasource to be used for DB interaction.
   * @param ds A string that contains the cannonical JNDI name of the datasource.
   * @author Kevin McAllister <kevin@centraview.com>
   */
  public void setDataSource(String ds) {
    this.dataSource = ds;
  }
  
}
TOP

Related Classes of com.centraview.view.ViewEJB

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.