You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsrp4j-dev@portals.apache.org by dl...@apache.org on 2006/11/21 20:11:20 UTC
svn commit: r477828 - in /portals/wsrp4j/trunk/consumer-proxyportlet/src:
java/org/apache/wsrp4j/consumer/configportlet/beans/
java/org/apache/wsrp4j/consumer/configportlet/controller/
java/org/apache/wsrp4j/consumer/configportlet/exception/ java/org/a...
Author: dlouzan
Date: Tue Nov 21 11:11:19 2006
New Revision: 477828
URL: http://svn.apache.org/viewvc?view=rev&rev=477828
Log:
Added support for viewing portlet details
Completed support for creating new portlets (still without interactive producer & handler lookup)
Added:
portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/exception/PortletNotFoundException.java
portals/wsrp4j/trunk/consumer-proxyportlet/src/webapp/jsp/configportlet/showPortlet.jsp
Modified:
portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/beans/PortletForm.java
portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/controller/DeployPortletConfigPortlet.java
portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/delegate/DeployPortletDelegate.java
portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/delegate/impl/DeployPortletDelegateImpl.java
portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/to/PortletTO.java
portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/services/DeployPortletService.java
portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/util/Constants.java
portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/validator/PropertyValidator.java
portals/wsrp4j/trunk/consumer-proxyportlet/src/resources/Messages.properties
portals/wsrp4j/trunk/consumer-proxyportlet/src/webapp/jsp/configportlet/showAddPortlet.jsp
portals/wsrp4j/trunk/consumer-proxyportlet/src/webapp/jsp/configportlet/showAllDeployedPortlets.jsp
Modified: portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/beans/PortletForm.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/beans/PortletForm.java?view=diff&rev=477828&r1=477827&r2=477828
==============================================================================
--- portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/beans/PortletForm.java (original)
+++ portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/beans/PortletForm.java Tue Nov 21 11:11:19 2006
@@ -27,6 +27,10 @@
private String id;
private String description;
private String displayName;
+ private String title;
+ private String shortTitle;
+ private String keywords;
+ private String[] keywordsAsArray;
private String portletHandle;
private String producerId;
@@ -59,6 +63,34 @@
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getShortTitle() {
+ return shortTitle;
+ }
+
+ public void setShortTitle(String shortTitle) {
+ this.shortTitle = shortTitle;
+ }
+
+ public String getKeywords() {
+ return keywords;
+ }
+
+ public void setKeywords(String keywords) {
+ this.keywords = keywords;
+ }
+
+ public String[] getKeywordsAsArray() {
+ return keywordsAsArray;
+ }
public String getPortletHandle() {
return portletHandle;
@@ -85,6 +117,13 @@
description, false);
validator.validateString(errors, Constants.PARAM_DISPLAY_NAME,
displayName, false);
+ validator.validateString(errors, Constants.PARAM_TITLE,
+ title, true);
+ validator.validateString(errors, Constants.PARAM_SHORT_TITLE,
+ shortTitle, false);
+ keywordsAsArray =
+ validator.validateStringArray(errors, Constants.PARAM_KEYWORDS,
+ keywords, false);
validator.validateString(errors, Constants.PARAM_REMOTE_PRODUCER_ID,
producerId, true);
validator.validateString(errors, Constants.PARAM_REMOTE_PORTLET_HANDLE,
@@ -95,11 +134,15 @@
private void reset() {
- setId(null);
- setDescription(null);
- setDisplayName(null);
- setPortletHandle(null);
- setProducerId(null);
+ id = null;
+ description = null;
+ displayName = null;
+ title = null;
+ shortTitle = null;
+ keywords = null;
+ keywordsAsArray = null;
+ producerId = null;
+ portletHandle = null;
}
Modified: portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/controller/DeployPortletConfigPortlet.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/controller/DeployPortletConfigPortlet.java?view=diff&rev=477828&r1=477827&r2=477828
==============================================================================
--- portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/controller/DeployPortletConfigPortlet.java (original)
+++ portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/controller/DeployPortletConfigPortlet.java Tue Nov 21 11:11:19 2006
@@ -88,6 +88,9 @@
if ((action == null) || (action.equals(Constants.ACTION_SHOW_ALL_DEPLOYED_PORTLETS))) {
service.showAllDeployedPortlets(request);
delegateToJSP(request, response, "/jsp/configportlet/showAllDeployedPortlets.jsp");
+ } else if (action.equals(Constants.ACTION_SHOW_PORTLET)) {
+ service.showPortlet(request);
+ delegateToJSP(request, response, "/jsp/configportlet/showPortlet.jsp");
} else if (action.equals(Constants.ACTION_SHOW_ADD_PORTLET)) {
service.showAddPortlet(request);
delegateToJSP(request, response, "/jsp/configportlet/showAddPortlet.jsp");
Added: portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/exception/PortletNotFoundException.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/exception/PortletNotFoundException.java?view=auto&rev=477828
==============================================================================
--- portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/exception/PortletNotFoundException.java (added)
+++ portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/exception/PortletNotFoundException.java Tue Nov 21 11:11:19 2006
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2003-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wsrp4j.consumer.configportlet.exception;
+
+
+public class PortletNotFoundException extends Exception {
+
+ private String id;
+
+ public PortletNotFoundException(String id) {
+ super();
+ this.id = id;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+}
Modified: portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/delegate/DeployPortletDelegate.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/delegate/DeployPortletDelegate.java?view=diff&rev=477828&r1=477827&r2=477828
==============================================================================
--- portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/delegate/DeployPortletDelegate.java (original)
+++ portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/delegate/DeployPortletDelegate.java Tue Nov 21 11:11:19 2006
@@ -19,6 +19,7 @@
import org.apache.wsrp4j.consumer.configportlet.exception.ConfigPortletException;
import org.apache.wsrp4j.consumer.configportlet.exception.DuplicatePortletException;
+import org.apache.wsrp4j.consumer.configportlet.exception.PortletNotFoundException;
import org.apache.wsrp4j.consumer.configportlet.model.to.PortletTO;
@@ -34,6 +35,9 @@
public boolean existsPortlet(String id)
throws ConfigPortletException;
+
+ public PortletTO findPortlet(String id)
+ throws PortletNotFoundException, ConfigPortletException;
public void addPortlet(PortletTO portletTO)
throws DuplicatePortletException, ConfigPortletException;
Modified: portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/delegate/impl/DeployPortletDelegateImpl.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/delegate/impl/DeployPortletDelegateImpl.java?view=diff&rev=477828&r1=477827&r2=477828
==============================================================================
--- portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/delegate/impl/DeployPortletDelegateImpl.java (original)
+++ portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/delegate/impl/DeployPortletDelegateImpl.java Tue Nov 21 11:11:19 2006
@@ -27,6 +27,7 @@
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.OutputKeys;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
@@ -54,6 +55,7 @@
import org.apache.wsrp4j.consumer.configportlet.exception.ConfigPortletException;
import org.apache.wsrp4j.consumer.configportlet.exception.DuplicatePortletException;
+import org.apache.wsrp4j.consumer.configportlet.exception.PortletNotFoundException;
import org.apache.wsrp4j.consumer.configportlet.model.delegate.DeployPortletDelegate;
import org.apache.wsrp4j.consumer.configportlet.model.to.PortletTO;
@@ -149,6 +151,17 @@
}
+ public PortletTO findPortlet(String id)
+ throws PortletNotFoundException, ConfigPortletException {
+
+ if (!existsPortlet(id)) {
+ throw new PortletNotFoundException(id);
+ }
+
+ return (PortletTO) portletTOs.get(id);
+
+ }
+
public void addPortlet(PortletTO portletTO)
throws DuplicatePortletException, ConfigPortletException {
@@ -182,6 +195,9 @@
String id = null;
String description = null;
String displayName = null;
+ String title = null;
+ String shortTitle = null;
+ String keywords = null;
String portletHandle = null;
String producerId = null;
boolean isProxyPortlet = false;
@@ -203,6 +219,11 @@
description = child.getChildNodes().item(0).getNodeValue().trim();
} else if (child.getNodeName().equals("display-name")) {
displayName = child.getChildNodes().item(0).getNodeValue().trim();
+ } else if (child.getNodeName().equals("portlet-info")) {
+ Map portletInfo = getPortletInfoMap(child.getChildNodes());
+ title = (String) portletInfo.get("title");
+ shortTitle = (String) portletInfo.get("short-title");
+ keywords = (String) portletInfo.get("keywords");
} else if (child.getNodeName().equals("portlet-preferences")) {
/* Examine <portlet-preferences> */
Map prefs = getPreferencesMap(child.getChildNodes());
@@ -213,6 +234,7 @@
if (isProxyPortlet) {
PortletTO portletTO = new PortletTO(id, description, displayName,
+ title, shortTitle, stringArrayFromString(keywords),
portletHandle, producerId);
portletMap.put(id, portletTO);
}
@@ -222,7 +244,7 @@
}
/**
- * Get a Map containing the preferences for a portlet
+ * Get a <code>Map</code> containing the preferences for a portlet
*
* @param preferenceNodes a <code>NodeList</code> containing
* <code><preference></code> elements
@@ -252,6 +274,35 @@
return prefs;
}
+ /**
+ * Get a <code>Map</code> with the contents of the <code>portlet-info</code>
+ * section of a portlet
+ * @return a <code>Map</code> of key-value for each of <code>title</code>,
+ * <code>short-title</code> and <code>keywords</code>
+ */
+ private Map getPortletInfoMap(NodeList portletInfoNodes) {
+ Map portletInfo = new Hashtable();
+
+ for (int i=0; i<portletInfoNodes.getLength(); i++) {
+ Node portletInfoNode = portletInfoNodes.item(i);
+ if (portletInfoNode.getNodeName().equals("title")) {
+ String title =
+ portletInfoNode.getChildNodes().item(0).getNodeValue().trim();
+ portletInfo.put("title", title);
+ } else if (portletInfoNode.getNodeName().equals("short-title")) {
+ String shortTitle =
+ portletInfoNode.getChildNodes().item(0).getNodeValue().trim();
+ portletInfo.put("short-title", shortTitle);
+ } else if (portletInfoNode.getNodeName().equals("keywords")) {
+ String keywords =
+ portletInfoNode.getChildNodes().item(0).getNodeValue().trim();
+ portletInfo.put("keywords", keywords);
+ }
+ }
+
+ return portletInfo;
+ }
+
/**
* Creates a DOM XML <code>Element</code> for a given {@link PortletTO}
@@ -262,10 +313,13 @@
Element portletElement = portletXmlDOM.createElement("portlet");
/* Add description element */
- Element descriptionElement = portletXmlDOM.createElement("description");
- descriptionElement.appendChild(portletXmlDOM.createTextNode(
- portletTO.getDescription()));
- portletElement.appendChild(descriptionElement);
+ if ((portletTO.getDescription() != null)
+ && (!portletTO.getDescription().equals(""))) {
+ Element descriptionElement = portletXmlDOM.createElement("description");
+ descriptionElement.appendChild(portletXmlDOM.createTextNode(
+ portletTO.getDescription()));
+ portletElement.appendChild(descriptionElement);
+ }
/* Add portlet-name element */
Element portletNameElement = portletXmlDOM.createElement("portlet-name");
@@ -274,10 +328,13 @@
portletElement.appendChild(portletNameElement);
/* Add display-name element */
- Element displayNameElement = portletXmlDOM.createElement("display-name");
- displayNameElement.appendChild(portletXmlDOM.createTextNode(
- portletTO.getDisplayName()));
- portletElement.appendChild(displayNameElement);
+ if ((portletTO.getDisplayName() != null)
+ && (!portletTO.getDisplayName().equals(""))) {
+ Element displayNameElement = portletXmlDOM.createElement("display-name");
+ displayNameElement.appendChild(portletXmlDOM.createTextNode(
+ portletTO.getDisplayName()));
+ portletElement.appendChild(displayNameElement);
+ }
/* Add portlet-class element */
Element portletClassElement = portletXmlDOM.createElement("portlet-class");
@@ -285,8 +342,47 @@
proxyPortletClassName));
portletElement.appendChild(portletClassElement);
+ /* Add supports element (hardcoded) */
+ Element supportsElement = portletXmlDOM.createElement("supports");
+ portletElement.appendChild(supportsElement);
+ Element mimeTypeElement = portletXmlDOM.createElement("mime-type");
+ supportsElement.appendChild(mimeTypeElement);
+ mimeTypeElement.appendChild(portletXmlDOM.createTextNode("text/html"));
+ Element portletModeView = portletXmlDOM.createElement("portlet-mode");
+ supportsElement.appendChild(portletModeView);
+ portletModeView.appendChild(portletXmlDOM.createTextNode("view"));
+ Element portletModeHelp = portletXmlDOM.createElement("portlet-mode");
+ supportsElement.appendChild(portletModeHelp);
+ portletModeHelp.appendChild(portletXmlDOM.createTextNode("help"));
+ Element portletModeEdit = portletXmlDOM.createElement("portlet-mode");
+ supportsElement.appendChild(portletModeEdit);
+ portletModeEdit.appendChild(portletXmlDOM.createTextNode("edit"));
+
+ /* Add portlet-info element */
+ Element portletInfoElement = portletXmlDOM.createElement("portlet-info");
+ portletElement.appendChild(portletInfoElement);
+ Element portletInfoTitleElement = portletXmlDOM.createElement("title");
+ portletInfoElement.appendChild(portletInfoTitleElement);
+ portletInfoTitleElement.appendChild(portletXmlDOM.createTextNode(
+ portletTO.getTitle()));
+ if ((portletTO.getShortTitle() != null)
+ && (!portletTO.getShortTitle().equals(""))) {
+ Element portletInfoShortTitleElement = portletXmlDOM.createElement("short-title");
+ portletInfoElement.appendChild(portletInfoShortTitleElement);
+ portletInfoShortTitleElement.appendChild(portletXmlDOM.createTextNode(
+ portletTO.getShortTitle()));
+ }
+ if ((portletTO.getKeywords() != null)
+ && (!(portletTO.getKeywords())[0].equals(""))) {
+ Element portletInfoKeywordsElement = portletXmlDOM.createElement("keywords");
+ portletInfoElement.appendChild(portletInfoKeywordsElement);
+ portletInfoKeywordsElement.appendChild(portletXmlDOM.createTextNode(
+ stringFromStringArray(portletTO.getKeywords())));
+ }
+
/* Add portlet-preferences */
Element preferencesElement = portletXmlDOM.createElement("portlet-preferences");
+ portletElement.appendChild(preferencesElement);
/* Add portlet-handle pref */
Element prefPortletHandleElement = portletXmlDOM.createElement("preference");
preferencesElement.appendChild(prefPortletHandleElement);
@@ -321,9 +417,13 @@
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
+ transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+ transformer.setOutputProperty(
+ "{http://xml.apache.org/xslt}indent-amount", "4");
Source src = new DOMSource(document);
Result dest = new StreamResult(file);
+
transformer.transform(src, dest);
} catch (TransformerConfigurationException e) {
@@ -332,6 +432,28 @@
throw new ConfigPortletException(e);
}
+ }
+
+ private String stringFromStringArray(String[] array) {
+ String result = new String();
+
+ for (int i=0; i<array.length; i++) {
+ if (i < array.length-1) {
+ result += array[i] + ", ";
+ } else {
+ result += array[i];
+ }
+ }
+
+ return result;
+ }
+
+ private String[] stringArrayFromString(String s) {
+ if (s != null) {
+ return s.split(",\\s");
+ } else {
+ return null;
+ }
}
}
Modified: portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/to/PortletTO.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/to/PortletTO.java?view=diff&rev=477828&r1=477827&r2=477828
==============================================================================
--- portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/to/PortletTO.java (original)
+++ portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/to/PortletTO.java Tue Nov 21 11:11:19 2006
@@ -23,14 +23,21 @@
private String id;
private String description;
private String displayName;
+ private String title;
+ private String shortTitle;
+ private String[] keywords;
private String portletHandle;
private String producerId;
public PortletTO(String id, String description, String displayName,
+ String title, String shortTitle, String[] keywords,
String portletHandle, String producerId) {
this.id = id;
this.description = description;
this.displayName = displayName;
+ this.title = title;
+ this.shortTitle = shortTitle;
+ this.keywords = keywords;
this.portletHandle = portletHandle;
this.producerId = producerId;
}
@@ -57,6 +64,45 @@
public void setDisplayName(String displayName) {
this.displayName = displayName;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getShortTitle() {
+ return shortTitle;
+ }
+
+ public void setShortTitle(String shortTitle) {
+ this.shortTitle = shortTitle;
+ }
+
+ public String[] getKeywords() {
+ return keywords;
+ }
+
+ public void setKeywords(String[] keywords) {
+ this.keywords = keywords;
+ }
+
+ public String getKeywordsAsString() {
+ String result = null;
+ if (keywords != null) {
+ result = new String();
+ for (int i=0; i<keywords.length; i++) {
+ if (i<keywords.length-1) {
+ result += keywords[i] + " ";
+ } else {
+ result += keywords[i];
+ }
+ }
+ }
+ return result;
}
public String getPortletHandle() {
Modified: portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/services/DeployPortletService.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/services/DeployPortletService.java?view=diff&rev=477828&r1=477827&r2=477828
==============================================================================
--- portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/services/DeployPortletService.java (original)
+++ portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/services/DeployPortletService.java Tue Nov 21 11:11:19 2006
@@ -33,6 +33,7 @@
import org.apache.wsrp4j.consumer.configportlet.beans.PortletForm;
import org.apache.wsrp4j.consumer.configportlet.exception.ConfigPortletException;
import org.apache.wsrp4j.consumer.configportlet.exception.DuplicatePortletException;
+import org.apache.wsrp4j.consumer.configportlet.exception.PortletNotFoundException;
import org.apache.wsrp4j.consumer.configportlet.model.delegate.DeployPortletDelegate;
import org.apache.wsrp4j.consumer.configportlet.model.delegate.DeployPortletDelegateFactory;
import org.apache.wsrp4j.consumer.configportlet.model.to.PortletTO;
@@ -70,6 +71,26 @@
}
+ public void showPortlet(RenderRequest request)
+ throws ConfigPortletException {
+
+ try {
+ String portletId = request.getParameter(Constants.PARAM_PORTLET_ID);
+ PortletTO portletTO = delegate.findPortlet(portletId);
+ request.setAttribute(Constants.ATTR_PORTLET, portletTO);
+ } catch (PortletNotFoundException e) {
+ errors = new Hashtable();
+ errors.put(Constants.PARAM_PORTLET_ID, Constants.ERROR_PORTLET_NOT_FOUND);
+ request.setAttribute(Constants.ATTR_ERRORS, errors);
+ }
+
+ String isError = request.getParameter(Constants.PARAM_IS_ERROR);
+ if (isError != null) {
+ request.setAttribute(Constants.ATTR_ERRORS, errors);
+ }
+
+ }
+
public void showAddPortlet(RenderRequest request)
throws ConfigPortletException {
@@ -118,7 +139,8 @@
private PortletTO createPortletTO(PortletForm form) {
return new PortletTO(form.getId(), form.getDescription(),
- form.getDisplayName(), form.getPortletHandle(),
+ form.getDisplayName(), form.getTitle(), form.getShortTitle(),
+ form.getKeywordsAsArray(), form.getPortletHandle(),
form.getProducerId());
}
Modified: portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/util/Constants.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/util/Constants.java?view=diff&rev=477828&r1=477827&r2=477828
==============================================================================
--- portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/util/Constants.java (original)
+++ portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/util/Constants.java Tue Nov 21 11:11:19 2006
@@ -23,6 +23,7 @@
public static final String ERROR_DUPLICATE_PRODUCER = "Duplicate producer key";
public static final String ERROR_MALFORMED_URL="This is not a valid URL";
public static final String ERROR_DUPLICATE_PORTLET = "Duplicate portlet key";
+ public static final String ERROR_PORTLET_NOT_FOUND = "Portlet not found";
public static final String PARAM_ACTION = "action";
public static final String PARAM_IS_ERROR = "isError";
@@ -36,6 +37,9 @@
public static final String PARAM_REGISTRATION_REQUIRED = "registrationRequired";
public static final String PARAM_PORTLET_ID = "id";
public static final String PARAM_DISPLAY_NAME = "displayName";
+ public static final String PARAM_TITLE = "title";
+ public static final String PARAM_SHORT_TITLE = "shortTitle";
+ public static final String PARAM_KEYWORDS = "keywords";
public static final String PARAM_REMOTE_PORTLET_HANDLE = "portletHandle";
public static final String PARAM_REMOTE_PRODUCER_ID = "producerId";
@@ -43,6 +47,7 @@
public static final String ATTR_PRODUCER = "producer";
public static final String ATTR_ERRORS = "errors";
public static final String ATTR_ALL_PORTLETS = "portlets";
+ public static final String ATTR_PORTLET = "portlet";
public static final String ATTR_PRODUCER_FORM = "producerForm";
public static final String ATTR_PORTLET_FORM = "portletForm";
@@ -56,6 +61,7 @@
public static final String ACTION_DELETE_PRODUCER = "deleteProducer";
public static final String ACTION_SHOW_ALL_DEPLOYED_PORTLETS = "showAllDeployedPortlets";
+ public static final String ACTION_SHOW_PORTLET = "showPortlet";
public static final String ACTION_SHOW_ADD_PORTLET = "showAddPortlet";
public static final String ACTION_ADD_PORTLET = "addPortlet";
Modified: portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/validator/PropertyValidator.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/validator/PropertyValidator.java?view=diff&rev=477828&r1=477827&r2=477828
==============================================================================
--- portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/validator/PropertyValidator.java (original)
+++ portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/validator/PropertyValidator.java Tue Nov 21 11:11:19 2006
@@ -43,6 +43,22 @@
}
+ public String[] validateStringArray(Map errors, String propertyName,
+ String propertyValue, boolean mandatory) {
+
+ String[] result = null;
+
+ if (validateMandatory(errors, propertyName, propertyValue,
+ mandatory)) {
+ if (propertyValue != null) {
+ result = propertyValue.split("\\s");
+ }
+ }
+
+ return result;
+
+ }
+
public boolean validateBoolean(Map errors, String propertyName,
String propertyValue, boolean mandatory) {
Modified: portals/wsrp4j/trunk/consumer-proxyportlet/src/resources/Messages.properties
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/consumer-proxyportlet/src/resources/Messages.properties?view=diff&rev=477828&r1=477827&r2=477828
==============================================================================
--- portals/wsrp4j/trunk/consumer-proxyportlet/src/resources/Messages.properties (original)
+++ portals/wsrp4j/trunk/consumer-proxyportlet/src/resources/Messages.properties Tue Nov 21 11:11:19 2006
@@ -13,11 +13,13 @@
# limitations under the License.
Alert.deleteProducer=Are you sure you want to delete this producer?
+Alert.deletePortlet=Are you sure you want to delete this portlet?
Error.exceptionNotFound=Exception Object Not Found
Error.exceptionThrown=Exception Thrown
Error.noPortletsFound=No Deployed Portlets Found
Error.noProducersFound=No Producers Found
+Error.portletNotFound=Portlet Not Found
Error.producerNotFound=Producer Not Found
Form.addPortlet=Add Portlet
@@ -28,14 +30,19 @@
Link.addPortlet=Add Portlet
Link.addProducer=Add Producer
+Link.deletePortlet=Delete Portlet
Link.deleteProducer=Delete Producer
+Link.editPortlet=Edit Portlet
Link.editProducer=Edit Producer
Portlet.id=ID
Portlet.description=Description
Portlet.displayName=Display Name
+Portlet.keywords=Keywords
Portlet.remoteProducer=Remote Producer ID
Portlet.remoteHandle=Remote Portlet Handle
+Portlet.shortTitle=Short Title
+Portlet.title=Title
Producer.description=Description
Producer.id=ID
@@ -51,4 +58,5 @@
Title.editProducer=Edit Producer
Title.viewAllDeployedPortlets=Deployed Portlets
Title.viewAllProducers=ProxyPortlet Producers
+Title.viewPortlet=View Portlet
Title.viewProducer=View Producer
Modified: portals/wsrp4j/trunk/consumer-proxyportlet/src/webapp/jsp/configportlet/showAddPortlet.jsp
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/consumer-proxyportlet/src/webapp/jsp/configportlet/showAddPortlet.jsp?view=diff&rev=477828&r1=477827&r2=477828
==============================================================================
--- portals/wsrp4j/trunk/consumer-proxyportlet/src/webapp/jsp/configportlet/showAddPortlet.jsp (original)
+++ portals/wsrp4j/trunk/consumer-proxyportlet/src/webapp/jsp/configportlet/showAddPortlet.jsp Tue Nov 21 11:11:19 2006
@@ -74,6 +74,48 @@
</tr>
<tr>
<td class="portlet-font">
+ <fmt:message key="Portlet.title"/>
+ </td>
+ <td>
+ <input type="text" name="title"
+ class="portlet-form-input-field"
+ value="<c:out value='${portletForm.title}'/>"
+ size="30"/>
+ <span class="portlet-msg-error">
+ <c:out value="${errors['title']}"/>
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <td class="portlet-font">
+ <fmt:message key="Portlet.shortTitle"/>
+ </td>
+ <td>
+ <input type="text" name="shortTitle"
+ class="portlet-form-input-field"
+ value="<c:out value='${portletForm.shortTitle}'/>"
+ size="30"/>
+ <span class="portlet-msg-error">
+ <c:out value="${errors['shortTitle']}"/>
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <td class="portlet-font">
+ <fmt:message key="Portlet.keywords"/>
+ </td>
+ <td>
+ <input type="text" name="keywords"
+ class="portlet-form-input-field"
+ value="<c:out value='${portletForm.keywords}'/>"
+ size="30"/>
+ <span class="portlet-msg-error">
+ <c:out value="${errors['keywords']}"/>
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <td class="portlet-font">
<fmt:message key="Portlet.remoteProducer"/>
</td>
<td>
Modified: portals/wsrp4j/trunk/consumer-proxyportlet/src/webapp/jsp/configportlet/showAllDeployedPortlets.jsp
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/consumer-proxyportlet/src/webapp/jsp/configportlet/showAllDeployedPortlets.jsp?view=diff&rev=477828&r1=477827&r2=477828
==============================================================================
--- portals/wsrp4j/trunk/consumer-proxyportlet/src/webapp/jsp/configportlet/showAllDeployedPortlets.jsp (original)
+++ portals/wsrp4j/trunk/consumer-proxyportlet/src/webapp/jsp/configportlet/showAllDeployedPortlets.jsp Tue Nov 21 11:11:19 2006
@@ -44,9 +44,19 @@
</tr>
<c:forEach var="portlet" items="${portlets}">
+
+ <c:set var="portletID" scope="page" value="${portlet.id}"/>
+ <jsp:useBean id="portletID" class="java.lang.String"/>
+ <portlet:renderURL var="showPortletURL">
+ <portlet:param name="action" value="showPortlet"/>
+ <portlet:param name="id" value="<%= portletID %>"/>
+ </portlet:renderURL>
+
<tr>
<td class="portlet-section-body">
- <c:out value="${portlet.id}"/>
+ <a href="<c:out value='${showPortletURL}'/>" escapeXml="false">
+ <c:out value="${portlet.id}"/>
+ </a>
</td>
<td class="portlet-section-body">
<c:out value="${portlet.producerId}"/>
Added: portals/wsrp4j/trunk/consumer-proxyportlet/src/webapp/jsp/configportlet/showPortlet.jsp
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/consumer-proxyportlet/src/webapp/jsp/configportlet/showPortlet.jsp?view=auto&rev=477828
==============================================================================
--- portals/wsrp4j/trunk/consumer-proxyportlet/src/webapp/jsp/configportlet/showPortlet.jsp (added)
+++ portals/wsrp4j/trunk/consumer-proxyportlet/src/webapp/jsp/configportlet/showPortlet.jsp Tue Nov 21 11:11:19 2006
@@ -0,0 +1,143 @@
+<%--
+Copyright 2003-2006 The Apache Software Foundation
+Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+implied.
+
+See the License for the specific language governing permissions and
+limitations under the License.
+--%>
+
+<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
+<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
+<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
+
+<script type="text/javascript">
+ function <portlet:namespace/>checkDeletePortlet() {
+ return confirm("<fmt:message key='Alert.deletePortlet'/>");
+ }
+</script>
+
+<portlet:defineObjects/>
+
+<p class="portlet-section-header">
+ <fmt:message key="Title.viewPortlet"/>
+</p>
+
+<c:choose>
+
+<c:when test="${!empty portlet}">
+
+ <table width="100%">
+
+ <tr>
+ <td class="portlet-section-subheader">
+ <fmt:message key="Portlet.id"/>
+ </td>
+ <td class="portlet-section-body">
+ <c:out value="${portlet.id}"/>
+ </td>
+ </tr>
+ <tr>
+ <td class="portlet-section-subheader">
+ <fmt:message key="Portlet.description"/>
+ </td>
+ <td class="portlet-section-body">
+ <c:out value="${portlet.description}"/>
+ </td>
+ </tr>
+ <tr>
+ <td class="portlet-section-subheader">
+ <fmt:message key="Portlet.displayName"/>
+ </td>
+ <td class="portlet-section-body">
+ <c:out value="${portlet.displayName}"/>
+ </td>
+ </tr>
+ <tr>
+ <td class="portlet-section-subheader">
+ <fmt:message key="Portlet.title"/>
+ </td>
+ <td class="portlet-section-body">
+ <c:out value="${portlet.title}"/>
+ </td>
+ </tr>
+ <tr>
+ <td class="portlet-section-subheader">
+ <fmt:message key="Portlet.shortTitle"/>
+ </td>
+ <td class="portlet-section-body">
+ <c:out value="${portlet.shortTitle}"/>
+ </td>
+ </tr>
+ <tr>
+ <td class="portlet-section-subheader">
+ <fmt:message key="Portlet.keywords"/>
+ </td>
+ <td class="portlet-section-body">
+ <c:out value="${portlet.keywordsAsString}"/>
+ </td>
+ </tr>
+ <tr>
+ <td class="portlet-section-subheader">
+ <fmt:message key="Portlet.remoteHandle"/>
+ </td>
+ <td class="portlet-section-body">
+ <c:out value="${portlet.portletHandle}"/>
+ </td>
+ </tr>
+ <tr>
+ <td class="portlet-section-subheader">
+ <fmt:message key="Portlet.remoteProducer"/>
+ </td>
+ <td class="portlet-section-body">
+ <c:out value="${portlet.producerId}"/>
+ </td>
+ </tr>
+
+ </table>
+
+ <c:set var="portletID" scope="page" value="${portlet.id}"/>
+ <jsp:useBean id="portletID" class="java.lang.String"/>
+ <portlet:renderURL var="editPortletURL">
+ <portlet:param name="action" value="showEditPortlet"/>
+ <portlet:param name="id" value="<%= portletID %>"/>
+ </portlet:renderURL>
+ <portlet:actionURL var="deletePortletURL">
+ <portlet:param name="action" value="deletePortlet"/>
+ <portlet:param name="id" value="<%= portletID %>"/>
+ </portlet:actionURL>
+ <p class="portlet-font">
+ <a href="<c:out value='${editPortletURL}'/>" escapeXml="false">
+ <fmt:message key="Link.editPortlet"/>
+ </a>
+ <a href="<c:out value='${deletePortletURL}'/>" escapeXml="false"
+ onclick="return <portlet:namespace/>checkDeletePortlet()">
+ <fmt:message key="Link.deletePortlet"/>
+ </a>
+ </p>
+
+ <c:if test="${!empty errors}">
+ <c:forEach var="error" items="${errors}">
+ <p class="portlet-msg-error">
+ <c:out value="${error.key}"/> : <c:out value="${error.value}"/>
+ </p>
+ </c:forEach>
+ </c:if>
+
+</c:when>
+
+<c:otherwise>
+ <p class="portlet-msg-error">
+ <fmt:message key="Error.portletNotFound"/>
+ </p>
+</c:otherwise>
+
+</c:choose>
\ No newline at end of file