/** * loads a context defined by its absolut path passed in URL encoded parameter 'FILENAME' * * @throws PortalException */ void doLoadwmc(User user) throws PortalException { String filename = null; try { filename = URLDecoder.decode(parameter.get("FILENAME"), CharsetUtils.getSystemCharset()); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } File file = new File(filename); String cntxid = file.getName(); PortletSet ps = portlet.getPortletConfig().getPortletSet(); String mapid = ps.getPortletByName("iGeoPortal:MapActionPortlet").getID(); Portlet port = ps.getPortletByID(mapid); port.getPortletConfig().setInitParameter(INIT_WMC, cntxid); String mwinid = getInitParam(INIT_MAPPORTLETID); port = ps.getPortletByID(mwinid); port.getPortletConfig().setInitParameter(INIT_WMC, cntxid); request.setAttribute(PARAM_MAPPORTLET, mwinid); ViewContext vc = null; try { vc = WebMapContextFactory.createViewContext(file.toURI().toURL(), user, null); } catch (Exception e) { LOG.logError(e.getMessage(), e); return; } setCurrentMapContext(vc, getInitParam(INIT_MAPPORTLETID)); setCurrentMapContextName(getInitParam(INIT_MAPPORTLETID), cntxid); }
/** * @param rundata * @param context * @throws Exception */ @Override protected void doOutput(RunData rundata, Context context) throws Exception { try { String portletId = ActivityUtils.getGlobalPortletId(rundata); context.put("portletId", ActivityUtils.getGlobalPortletId(rundata)); Portlet portlet = ALEipUtils.getPortlet(rundata, portletId); String desktopNotificationParam = portlet.getPortletConfig().getInitParameter("desktopNotification"); context.put("desktopNotification", "T".equals(desktopNotificationParam)); String support = rundata.getParameters().getString("s"); context.put("notifySupport", "1".equals(support)); String permission = rundata.getParameters().getString("p"); context.put("notifyPermission", "0".equals(permission) || "granted".equals(permission)); ActivitySelectData listData = new ActivitySelectData(); listData.initField(); listData.setRowsNum(5); listData.doViewList(this, rundata, context); String layout_template = "portlets/html/ja/ajax-activity-list.vm"; setTemplate(rundata, context, layout_template); } catch (Exception ex) { logger.error("ActivityListScreen.doOutput", ex); ALEipUtils.redirectDBError(rundata); } }
/** * selects the current context of a MapWindowPortlet * * @throws PortalException */ void doSelectwmc() throws PortalException { String cntxid = parameter.get("WMCID"); PortletSet ps = portlet.getPortletConfig().getPortletSet(); String mapid = ps.getPortletByName("iGeoPortal:MapActionPortlet").getID(); Portlet port = ps.getPortletByID(mapid); port.getPortletConfig().setInitParameter(INIT_WMC, cntxid); String mwinid = getInitParam(INIT_MAPPORTLETID); port = ps.getPortletByID(mwinid); port.getPortletConfig().setInitParameter(INIT_WMC, cntxid); request.setAttribute(PARAM_MAPPORTLET, mwinid); ViewContext vc = null; if ("true".equals(getInitParam(INIT_KEEP_BBOX))) { // get old current context to read its bounding box vc = getCurrentViewContext(parameter.get("MAPPORTLET")); Point[] currentEnv = vc.getGeneral().getBoundingBox(); // get new current context to set its bounding box with value of the // old current context bounding box to keep viewing area vc = getNamedViewContext(cntxid); try { vc.getGeneral().setBoundingBox(currentEnv); } catch (ContextException e) { LOG.logError(e.getMessage(), e); throw new PortalException(e.getMessage(), e); } } else { vc = getNamedViewContext(cntxid); } setCurrentMapContext(vc, getInitParam(INIT_MAPPORTLETID)); setCurrentMapContextName(getInitParam(INIT_MAPPORTLETID), cntxid); }
/** * Build the normal state content for this portlet. * * @param portlet The jsp-based portlet that is being built. * @param rundata The turbine rundata context for this request. */ protected void buildNormalContext(Portlet portlet, RunData rundata) { PortletEntry entry = (PortletEntry) Registry.getEntry(Registry.PORTLET, portlet.getName()); Iterator i = entry.getParameterNames(); Hashtable qa = new Hashtable(); while (i.hasNext()) { String name = (String) i.next(); Parameter param = entry.getParameter(name); if (param.isHidden() == false) { String title = param.getTitle(); String value = portlet.getPortletConfig().getInitParameter(name); qa.put(title, value); } } rundata.getRequest().setAttribute("questions", qa); // After successful send, the user may or may not click the Continue button so // reset to default template here if (rundata.getRequest().getAttribute("email") == null) { // this.setTemplate(rundata, portlet, null); resetTemplate(rundata); } }
/** Subclasses must override this method to provide default behavior for the portlet action */ protected void buildNormalContext(Portlet portlet, Context context, RunData rundata) { String regName = portlet.getPortletConfig().getInitParameter("registry", Registry.PORTLET); Boolean refresh = (Boolean) PortletSessionState.getAttribute( rundata, PREFIX + regName + ":" + REFRESH, Boolean.FALSE); if (refresh.equals(Boolean.TRUE)) { PortletSessionState.clearAttribute(portlet, rundata, START); PortletSessionState.clearAttribute(portlet, rundata, RESULTS); PortletSessionState.clearAttribute(portlet, rundata, FILTERED_RESULTS); PortletSessionState.clearAttribute(rundata, PREFIX + regName + ":" + REFRESH); } int start = getStart(rundata, portlet); if (start < 0) start = 0; String pageSize = portlet.getPortletConfig().getInitParameter("page-size", "20"); int size = Integer.parseInt(pageSize); int prev = start - size; if (prev < 0) { prev = 0; } String[] filterFields = (String[]) PortletSessionState.getAttribute(portlet, rundata, FILTER_FIELDS); String[] filterValues = (String[]) PortletSessionState.getAttribute(portlet, rundata, FILTER_VALUES); List regEntries = (List) PortletSessionState.getAttribute(portlet, rundata, RESULTS); List filteredEntries = (List) PortletSessionState.getAttribute(portlet, rundata, FILTERED_RESULTS); if (regEntries == null) { Iterator i = Registry.get(regName).listEntryNames(); regEntries = new ArrayList(); while (i.hasNext()) { String name = (String) i.next(); RegistryEntry regEntry = Registry.getEntry(regName, name); if ((regEntry != null) && (!regEntry.isHidden())) { regEntries.add(regEntry); } } Collections.sort( regEntries, new Comparator() { public int compare(Object o1, Object o2) { String t1 = ((RegistryEntry) o1).getName().toLowerCase(); String t2 = ((RegistryEntry) o2).getName().toLowerCase(); return t1.compareTo(t2); } }); PortletSessionState.setAttribute(portlet, rundata, RESULTS, regEntries); filteredEntries = filter(regEntries, filterFields, filterValues); PortletSessionState.setAttribute(portlet, rundata, FILTERED_RESULTS, filteredEntries); } if (filterFields != null && filterValues != null && filterFields.length == filterValues.length) { for (int i = 0; i < filterFields.length; i++) { String field = filterFields[i]; String value = filterValues[i]; context.put(field + "_filter_value", value); } } int end = start + size; if (end > filteredEntries.size()) { end = filteredEntries.size(); } List pageEntries = filteredEntries.subList(start, end); context.put("registry", pageEntries); context.put("filtered_entries", filteredEntries); if (start > 0) { context.put("prev", String.valueOf(prev)); } if (end < filteredEntries.size()) { context.put("next", String.valueOf(end)); } }
/** * Sort the quotes. * * @param portlet The jsp-based portlet that is being built. * @param rundata The turbine rundata context for this request. */ public void doEmail(RunData rundata, Portlet portlet) { StringBuffer emailBody = new StringBuffer(); PortletEntry entry = (PortletEntry) Registry.getEntry(Registry.PORTLET, portlet.getName()); Iterator i = entry.getParameterNames(); while (i.hasNext()) { String name = (String) i.next(); Parameter param = entry.getParameter(name); if (param.isHidden() == false) { String title = param.getTitle(); String value = portlet.getPortletConfig().getInitParameter(name); value = value == null || value.length() == 0 ? "NOT PROVIDED" : value; emailBody.append(title); emailBody.append(" ===> "); emailBody.append(value); emailBody.append("\n\n"); } } String emailSmtp = JetspeedResources.getString(JetspeedResources.MAIL_SERVER_KEY); String emailFrom = JetspeedResources.getString("mail.support", "*****@*****.**"); String emailTo = rundata.getParameters().getString("emailTo", "*****@*****.**"); String emailAttachment = rundata.getRequest().getParameter("emailAttachment"); try { String emailText = emailBody.toString(); // Create the JavaMail session java.util.Properties properties = System.getProperties(); properties.put("mail.smtp.host", emailSmtp); Session emailSession = Session.getInstance(properties, null); // Construct the message MimeMessage message = new MimeMessage(emailSession); // Set the from address Address fromAddress = new InternetAddress(emailFrom); message.setFrom(fromAddress); // Parse and set the recipient addresses Address[] toAddresses = InternetAddress.parse(emailTo); message.setRecipients(Message.RecipientType.TO, toAddresses); // Set the subject and text message.setSubject("Jetspeed Questionnaire from " + rundata.getUser().getEmail()); message.setText(emailText); // Attach file with message if (emailAttachment != null) { File file = new File(emailAttachment); if (file.exists()) { // create and fill the first message part MimeBodyPart mbp1 = new MimeBodyPart(); mbp1.setText(emailText); // create the second message part MimeBodyPart mbp2 = new MimeBodyPart(); // attach the file to the message FileDataSource fds = new FileDataSource(emailAttachment); mbp2.setDataHandler(new DataHandler(fds)); mbp2.setFileName(fds.getName()); // create the Multipart and its parts to it Multipart mp = new MimeMultipart(); mp.addBodyPart(mbp1); mp.addBodyPart(mbp2); // add the Multipart to the message message.setContent(mp); } else { message.setText(emailBody.toString()); } } // send the message Transport.send(message); // Display confirmation rundata.getRequest().setAttribute("email", emailBody.toString()); String confirmTemplate = portlet .getPortletConfig() .getInitParameter("confirm.template", "JetspeedQuestionnaireConfirmation.jsp"); // this.setTemplate(rundata, portlet, confirmTemplate); setTemplate(rundata, confirmTemplate, true); rundata.setMessage("Email successfully sent"); } catch (Exception e) { logger.error("Exception", e); rundata.setMessage("Error sending email: " + e); } // buildNormalContext(portlet, rundata); }