private Locale getLocale() { logger.debug("IN"); try { Locale locale = null; if (RequestContainer.getRequestContainer() != null) { RequestContainer requestContainer = RequestContainer.getRequestContainer(); SessionContainer permanentSession = requestContainer.getSessionContainer().getPermanentContainer(); String language = (String) permanentSession.getAttribute(SpagoBIConstants.AF_LANGUAGE); String country = (String) permanentSession.getAttribute(SpagoBIConstants.AF_COUNTRY); logger.debug( "Language retrieved: [" + language + "]; country retrieved: [" + country + "]"); locale = new Locale(language, country); } else { locale = GeneralUtilities.getDefaultLocale(); } return locale; } catch (Exception e) { logger.error("Error while getting locale; using default one", e); return GeneralUtilities.getDefaultLocale(); } finally { logger.debug("OUT"); } }
private void goToDocumentRating(SourceBean request, String mod, SourceBean response) throws EMFUserError, SourceBeanException { RequestContainer requestContainer = this.getRequestContainer(); SessionContainer session = requestContainer.getSessionContainer(); SessionContainer permanentSession = session.getPermanentContainer(); String objId = (String) request.getAttribute("OBJECT_ID"); response.setAttribute("OBJECT_ID", objId); response.setAttribute("MESSAGEDET", mod); response.setAttribute(SpagoBIConstants.PUBLISHER_NAME, "ratingBIObjectPubJ"); }
/** * Starting tag. * * @return the int * @throws JspException the jsp exception */ public int doStartTag() throws JspException { httpRequest = (HttpServletRequest) pageContext.getRequest(); RequestContainer requestContainer = ChannelUtilities.getRequestContainer(httpRequest); ResponseContainer responseContainer = ChannelUtilities.getResponseContainer(httpRequest); SourceBean serviceRequest = requestContainer.getServiceRequest(); SourceBean serviceResponse = responseContainer.getServiceResponse(); SourceBean moduleResponse = (SourceBean) serviceResponse.getAttribute(moduleName); List functionalitiesList = null; if (attributeToRender == null || attributeToRender.trim().equals("")) { functionalitiesList = (List) moduleResponse.getAttribute(SpagoBIConstants.FUNCTIONALITIES_LIST); } else { functionalitiesList = (List) moduleResponse.getAttribute(attributeToRender); } String initialPath = (String) moduleResponse.getAttribute(TreeObjectsModule.PATH_SUBTREE); ITreeHtmlGenerator gen = null; try { gen = (ITreeHtmlGenerator) Class.forName(htmlGeneratorClass).newInstance(); } catch (Exception e) { return -1; } StringBuffer htmlStream = null; if (treeName == null) { htmlStream = gen.makeTree(functionalitiesList, httpRequest, initialPath); } else { htmlStream = gen.makeTree(functionalitiesList, httpRequest, initialPath, treeName); } try { pageContext.getOut().print(htmlStream); } catch (IOException ioe) { SpagoBITracer.major( SpagoBIConstants.NAME_MODULE, this.getClass().getName(), "doStartTag", "cannot start object tree tag: IOexception occurred", ioe); } return SKIP_BODY; }
public void service(SourceBean serviceRequest, SourceBean serviceResponse) throws Exception { logger.debug("IN"); RequestContainer reqCont = RequestContainer.getRequestContainer(); SessionContainer sessCont = reqCont.getSessionContainer(); SessionContainer permSess = sessCont.getPermanentContainer(); String theme_name = (String) serviceRequest.getAttribute(THEME_NAME); logger.debug("theme selected: " + theme_name); permSess.setAttribute(SpagoBIConstants.THEME, theme_name); IEngUserProfile profile = (IEngUserProfile) permSess.getAttribute(IEngUserProfile.ENG_USER_PROFILE); userProfile = null; if (profile instanceof UserProfile) { userProfile = (UserProfile) profile; } MenuUtilities.getMenuItems(serviceRequest, serviceResponse, profile); serviceResponse.setAttribute("MENU_MODE", "ALL_TOP"); serviceResponse.setAttribute(SpagoBIConstants.PUBLISHER_NAME, "userhome"); logger.debug("OUT"); }
private void documentRating(SourceBean request, String mod, SourceBean response) throws EMFUserError, SourceBeanException { String objId = ""; String rating = ""; RequestContainer requestContainer = this.getRequestContainer(); SessionContainer session = requestContainer.getSessionContainer(); SessionContainer permanentSession = session.getPermanentContainer(); UserProfile profile = (UserProfile) permanentSession.getAttribute(IEngUserProfile.ENG_USER_PROFILE); IEngUserProfile profile2 = (IEngUserProfile) permanentSession.getAttribute(IEngUserProfile.ENG_USER_PROFILE); String userId = (profile.getUserUniqueIdentifier() != null ? profile.getUserUniqueIdentifier().toString() : ""); List params = request.getContainedAttributes(); ListIterator it = params.listIterator(); while (it.hasNext()) { Object par = it.next(); SourceBeanAttribute p = (SourceBeanAttribute) par; String parName = (String) p.getKey(); logger.debug("got parName=" + parName); if (parName.equals("OBJECT_ID")) { objId = (String) request.getAttribute("OBJECT_ID"); logger.debug("got OBJECT_ID from Request=" + objId); } else if (parName.equals("RATING")) { rating = (String) request.getAttribute("RATING"); } } boolean canSee = false; BIObject obj = DAOFactory.getBIObjectDAO().loadBIObjectById(new Integer(objId)); try { canSee = ObjectsAccessVerifier.canSee(obj, profile); } catch (EMFInternalError e1) { e1.printStackTrace(); } if (!canSee) { logger.error("Object with label = '" + obj.getLabel() + "' cannot be executed by the user!!"); Vector v = new Vector(); v.add(obj.getLabel()); throw new EMFUserError(EMFErrorSeverity.ERROR, "1075", v, null); } // get all correct execution roles List correctRoles = new ArrayList(); try { correctRoles = DAOFactory.getBIObjectDAO().getCorrectRolesForExecution(new Integer(objId), profile2); } catch (NumberFormatException e2) { e2.printStackTrace(); } if (correctRoles == null || correctRoles.size() == 0) { logger.warn("Object cannot be executed by no role of the user"); throw new EMFUserError(EMFErrorSeverity.ERROR, 1006); } if (objId != null && !objId.equals("")) { if (rating != null && !rating.equals("")) { // VOTE! DAOFactory.getBIObjectRatingDAO().voteBIObject(obj, userId, rating); } } response.setAttribute("MESSAGEDET", mod); response.setAttribute(SpagoBIConstants.PUBLISHER_NAME, "ratingBIObjectPubJ"); response.setAttribute("OBJECT_ID", objId); }
/** * Do start tag. * * @return the int * @throws JspException the jsp exception * @see it.eng.spagobi.commons.presentation.tags.CheckListTag#doStartTag() */ public int doStartTag() throws JspException { SpagoBITracer.info("Admintools", "ListTag", "doStartTag", " method invoked"); httpRequest = (HttpServletRequest) pageContext.getRequest(); renderResponse = (RenderResponse) httpRequest.getAttribute("javax.portlet.response"); renderRequest = (RenderRequest) httpRequest.getAttribute("javax.portlet.request"); _requestContainer = RequestContainerPortletAccess.getRequestContainer(httpRequest); portReq = PortletUtilities.getPortletRequest(); _serviceRequest = _requestContainer.getServiceRequest(); _responseContainer = ResponseContainerPortletAccess.getResponseContainer(httpRequest); msgBuilder = MessageBuilderFactory.getMessageBuilder(); if (_bundle == null) _bundle = "messages"; _session = _requestContainer.getSessionContainer(); _serviceResponse = _responseContainer.getServiceResponse(); ConfigSingleton configure = ConfigSingleton.getInstance(); if (_actionName != null) { _serviceName = _actionName; _content = _serviceResponse; SourceBean actionBean = (SourceBean) configure.getFilteredSourceBeanAttribute("ACTIONS.ACTION", "NAME", _actionName); _layout = (SourceBean) actionBean.getAttribute("CONFIG"); if (_layout == null) { // if the layout is dinamically created it is an attribute of the response _layout = (SourceBean) _serviceResponse.getAttribute("CONFIG"); } _providerURL = "ACTION_NAME=" + _actionName + "&"; _providerUrlMap.put("ACTION_NAME", _actionName); HashMap params = (HashMap) _serviceResponse.getAttribute("PARAMETERS_MAP"); if (params != null) { _paramsMap = params; _providerUrlMap.putAll(_paramsMap); } } // if (_actionName != null) else if (_moduleName != null) { _serviceName = _moduleName; SpagoBITracer.debug("Admintools", "ListTag", "doStartTag", " Module Name: " + _moduleName); _content = (SourceBean) _serviceResponse.getAttribute(_moduleName); SourceBean moduleBean = (SourceBean) configure.getFilteredSourceBeanAttribute("MODULES.MODULE", "NAME", _moduleName); if (moduleBean != null) SpagoBITracer.debug( "Admintools", "ListTag", "doStartTag", _moduleName + " configuration loaded"); _layout = (SourceBean) moduleBean.getAttribute("CONFIG"); if (_layout == null) { // if the layout is dinamically created it is an attribute of the response _layout = (SourceBean) _serviceResponse.getAttribute(_moduleName + ".CONFIG"); } String pageName = (String) _serviceRequest.getAttribute("PAGE"); SpagoBITracer.debug("Admintools", "ListTag", "doStartTag", " PAGE: " + pageName); _providerURL = "PAGE=" + pageName + "&MODULE=" + _moduleName + "&"; _providerUrlMap.put("PAGE", pageName); _providerUrlMap.put("MODULE", _moduleName); HashMap params = (HashMap) _serviceResponse.getAttribute(_moduleName + ".PARAMETERS_MAP"); if (params != null) { _paramsMap = params; _providerUrlMap.putAll(_paramsMap); } } // if (_moduleName != null) else { SpagoBITracer.critical("Admintools", "ListTag", "doStartTag", "service name not specified"); throw new JspException("Business name not specified !"); } // if (_content == null) if (_content == null) { SpagoBITracer.warning("Admintools", "ListTag", "doStartTag", "list content null"); return SKIP_BODY; } // if (_content == null) if (_layout == null) { SpagoBITracer.warning( "Admintools", "ListTag", "doStartTag", "list module configuration null"); return SKIP_BODY; } // if (_layout == null) // if the LightNavigator is disabled entering the list, it is kept disabled untill exiting the // list Object lightNavigatorDisabledObj = _serviceRequest.getAttribute(LightNavigationManager.LIGHT_NAVIGATOR_DISABLED); if (lightNavigatorDisabledObj != null) { String lightNavigatorDisabled = (String) lightNavigatorDisabledObj; _providerUrlMap.put(LightNavigationManager.LIGHT_NAVIGATOR_DISABLED, lightNavigatorDisabled); } _htmlStream = new StringBuffer(); PortletURL url = renderResponse.createActionURL(); url.setParameter("PAGE", "DetailBIObjectPage"); url.setParameter("MESSAGEDET", "RETURN_FROM_SUBREPORTS_LOOKUP"); url.setParameter("LIGHT_NAVIGATOR_DISABLED", "true"); _htmlStream.append(" <form method='POST' action='" + url.toString() + "'>\n"); makeForm(); _htmlStream.append(" </form>\n"); try { pageContext.getOut().print(_htmlStream); } // try catch (Exception ex) { SpagoBITracer.critical( "Admintools", "ListTag", "doStartTag", "Impossible to send the stream"); throw new JspException("Impossible to send the stream"); } // catch (Exception ex) return SKIP_BODY; } // public int doStartTag() throws JspException
private ListIFace loadSpagoList( SourceBean request, SourceBean response, Integer parId, String roleName) throws Exception { logger.debug("IN"); RequestContainer requestContainer = getRequestContainer(); SessionContainer session = requestContainer.getSessionContainer(); String parameterFieldName = (String) request.getAttribute("parameterFieldName"); logger.debug("parameterFieldName=" + parameterFieldName); // define the spago paginator and list object PaginatorIFace paginator = new GenericPaginator(); ListIFace list = new GenericList(); // define variable for value column name String valColName = ""; // recover lov object IParameterDAO pardao = DAOFactory.getParameterDAO(); Parameter par = pardao.loadForExecutionByParameterIDandRoleName(parId, roleName); ModalitiesValue modVal = par.getModalityValue(); // get the lov provider String looProvider = modVal.getLovProvider(); // get from the request the type of lov String typeLov = LovDetailFactory.getLovTypeCode(looProvider); // get the user profile IEngUserProfile profile = null; SessionContainer permanentSession = session.getPermanentContainer(); profile = (IEngUserProfile) permanentSession.getAttribute(IEngUserProfile.ENG_USER_PROFILE); // HttpServletRequest httpReq = (HttpServletRequest)requestContainer.getInternalRequest(); // HttpSession httpSess = httpReq.getSession(); // profile = (IEngUserProfile)httpSess.getAttribute(IEngUserProfile.ENG_USER_PROFILE); // based on lov type fill the spago list / paginator object / valColName SourceBean rowsSourceBean = null; if (typeLov.equalsIgnoreCase("QUERY")) { QueryDetail qd = QueryDetail.fromXML(looProvider); // if (qd.requireProfileAttributes()) { // String message = PortletUtilities.getMessage("scheduler.noProfileAttributesSupported", // "component_scheduler_messages"); // response.setAttribute(SpagoBIConstants.MESSAGE_INFO, message); // return list; // } valColName = qd.getValueColumnName(); // String pool = qd.getConnectionName(); String datasource = qd.getDataSource(); String statement = qd.getQueryDefinition(); // execute query try { statement = StringUtilities.substituteProfileAttributesInString(statement, profile); // rowsSourceBean = (SourceBean) executeSelect(getRequestContainer(), // getResponseContainer(), pool, statement); rowsSourceBean = (SourceBean) executeSelect(getRequestContainer(), getResponseContainer(), datasource, statement); } catch (Exception e) { String stacktrace = e.toString(); response.setAttribute("stacktrace", stacktrace); int startIndex = stacktrace.indexOf("java.sql."); int endIndex = stacktrace.indexOf("\n\tat ", startIndex); if (endIndex == -1) endIndex = stacktrace.indexOf(" at ", startIndex); if (startIndex != -1 && endIndex != -1) response.setAttribute("errorMessage", stacktrace.substring(startIndex, endIndex)); response.setAttribute("testExecuted", "false"); } } else if (typeLov.equalsIgnoreCase("FIXED_LIST")) { FixedListDetail fixlistDet = FixedListDetail.fromXML(looProvider); // if (fixlistDet.requireProfileAttributes()) { // String message = PortletUtilities.getMessage("scheduler.noProfileAttributesSupported", // "component_scheduler_messages"); // response.setAttribute(SpagoBIConstants.MESSAGE_INFO, message); // return list; // } valColName = fixlistDet.getValueColumnName(); try { String result = fixlistDet.getLovResult(profile, null, null, null); rowsSourceBean = SourceBean.fromXMLString(result); if (!rowsSourceBean.getName().equalsIgnoreCase("ROWS")) { throw new Exception("The fix list is empty"); } else if (rowsSourceBean.getAttributeAsList(DataRow.ROW_TAG).size() == 0) { throw new Exception("The fix list is empty"); } } catch (Exception e) { SpagoBITracer.major( SpagoBIConstants.NAME_MODULE, this.getClass().getName(), "getList", "Error while converting fix lov into spago list", e); String stacktrace = e.toString(); response.setAttribute("stacktrace", stacktrace); response.setAttribute("errorMessage", "Error while executing fix list lov"); response.setAttribute("testExecuted", "false"); return list; } } else if (typeLov.equalsIgnoreCase("SCRIPT")) { ScriptDetail scriptDetail = ScriptDetail.fromXML(looProvider); // if (scriptDetail.requireProfileAttributes()) { // String message = PortletUtilities.getMessage("scheduler.noProfileAttributesSupported", // "component_scheduler_messages"); // response.setAttribute(SpagoBIConstants.MESSAGE_INFO, message); // return list; // } valColName = scriptDetail.getValueColumnName(); try { String result = scriptDetail.getLovResult(profile, null, null, null); rowsSourceBean = SourceBean.fromXMLString(result); } catch (Exception e) { SpagoBITracer.major( SpagoBIConstants.NAME_MODULE, this.getClass().getName(), "getList", "Error while executing the script lov", e); String stacktrace = e.toString(); response.setAttribute("stacktrace", stacktrace); response.setAttribute("errorMessage", "Error while executing script"); response.setAttribute("testExecuted", "false"); return list; } } else if (typeLov.equalsIgnoreCase("JAVA_CLASS")) { JavaClassDetail javaClassDetail = JavaClassDetail.fromXML(looProvider); // if (javaClassDetail.requireProfileAttributes()) { // String message = PortletUtilities.getMessage("scheduler.noProfileAttributesSupported", // "component_scheduler_messages"); // response.setAttribute(SpagoBIConstants.MESSAGE_INFO, message); // return list; // } valColName = javaClassDetail.getValueColumnName(); try { String javaClassName = javaClassDetail.getJavaClassName(); IJavaClassLov javaClassLov = (IJavaClassLov) Class.forName(javaClassName).newInstance(); String result = javaClassLov.getValues(profile); rowsSourceBean = SourceBean.fromXMLString(result); } catch (Exception e) { SpagoBITracer.major( SpagoBIConstants.NAME_MODULE, this.getClass().getName(), "getList", "Error while executing the java class lov", e); String stacktrace = e.toString(); response.setAttribute("stacktrace", stacktrace); response.setAttribute("errorMessage", "Error while executing java class"); response.setAttribute("testExecuted", "false"); return list; } } // fill paginator int count = 0; if (rowsSourceBean != null) { List rows = rowsSourceBean.getAttributeAsList(DataRow.ROW_TAG); for (int i = 0; i < rows.size(); i++) { paginator.addRow(rows.get(i)); count++; } } paginator.setPageSize(count); list.setPaginator(paginator); // get all the columns name rowsSourceBean = list.getPaginator().getAll(); List colNames = new ArrayList(); List rows = null; if (rowsSourceBean != null) { rows = rowsSourceBean.getAttributeAsList(DataRow.ROW_TAG); if ((rows != null) && (rows.size() != 0)) { SourceBean row = (SourceBean) rows.get(0); List rowAttrs = row.getContainedAttributes(); Iterator rowAttrsIter = rowAttrs.iterator(); while (rowAttrsIter.hasNext()) { SourceBeanAttribute rowAttr = (SourceBeanAttribute) rowAttrsIter.next(); colNames.add(rowAttr.getKey()); } } } // build module configuration for the list String moduleConfigStr = ""; moduleConfigStr += "<CONFIG>"; moduleConfigStr += " <QUERIES/>"; moduleConfigStr += " <COLUMNS>"; // if there's no colum name add a fake column to show that there's no data if (colNames.size() == 0) { moduleConfigStr += " <COLUMN name=\"No Result Found\" />"; } else { Iterator iterColNames = colNames.iterator(); while (iterColNames.hasNext()) { String colName = (String) iterColNames.next(); moduleConfigStr += " <COLUMN name=\"" + colName + "\" />"; } } moduleConfigStr += " </COLUMNS>"; moduleConfigStr += " <CAPTIONS/>"; moduleConfigStr += " <BUTTONS/>"; moduleConfigStr += "</CONFIG>"; SourceBean moduleConfig = SourceBean.fromXMLString(moduleConfigStr); response.setAttribute(moduleConfig); // filter the list String valuefilter = (String) request.getAttribute(SpagoBIConstants.VALUE_FILTER); if (valuefilter != null) { String columnfilter = (String) request.getAttribute(SpagoBIConstants.COLUMN_FILTER); String typeFilter = (String) request.getAttribute(SpagoBIConstants.TYPE_FILTER); String typeValueFilter = (String) request.getAttribute(SpagoBIConstants.TYPE_VALUE_FILTER); list = DelegatedBasicListService.filterList( list, valuefilter, typeValueFilter, columnfilter, typeFilter, getResponseContainer().getErrorHandler()); } // fill response response.setAttribute(SpagoBIConstants.PARAMETER_FIELD_NAME, parameterFieldName); response.setAttribute(SpagoBIConstants.VALUE_COLUMN_NAME, valColName); logger.debug("OUT"); return list; }