You are viewing a plain text version of this content. The canonical link for it is here.
Posted to graffito-commits@incubator.apache.org by cl...@apache.org on 2005/01/18 18:59:29 UTC
svn commit: r125532 - in incubator/graffito/trunk/portlets/src: java/org/apache/portals/graffito/portlets java/org/apache/portals/graffito/portlets/resources java/org/apache/portals/graffito/util webapp/WEB-INF webapp/WEB-INF/tabs webapp/WEB-INF/velocity webapp/WEB-INF/view
Author: clombart
Date: Tue Jan 18 10:59:28 2005
New Revision: 125532
URL: http://svn.apache.org/viewcvs?view=rev&rev=125532
Log:
Continue to work on the Graffito BrowserPortlet
Added:
incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/GenericTabVelocityPortlet.java
incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/TabReader.java
incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/VelocityTab.java
incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/VelocityTabPage.java
incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/util/
incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/util/GraffitoTools.java
incubator/graffito/trunk/portlets/src/webapp/WEB-INF/tabs/
incubator/graffito/trunk/portlets/src/webapp/WEB-INF/tabs/tabs.xml
incubator/graffito/trunk/portlets/src/webapp/WEB-INF/velocity/graffito-macros.vm
incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/document.vm
- copied unchanged from r125434, incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/adddocument.vm
incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/edit-tab-sample.vm
- copied, changed from r125434, incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/edit.vm
incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/folder.vm
- copied, changed from r125434, incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/addfolder.vm
incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/security.vm
incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/tab.vm
Removed:
incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/adddocument.vm
incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/addfolder.vm
incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/edit.vm
Modified:
incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/BrowserInfo.java
incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/BrowserPortlet.java
incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/resources/messages.properties
incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/resources/messages_en.properties
incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/resources/messages_fr.properties
incubator/graffito/trunk/portlets/src/webapp/WEB-INF/portlet.xml
incubator/graffito/trunk/portlets/src/webapp/WEB-INF/velocity/velocity-macros.vm
incubator/graffito/trunk/portlets/src/webapp/WEB-INF/velocity/velocity.properties
incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/view.vm
Modified: incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/BrowserInfo.java
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/BrowserInfo.java?view=diff&rev=125532&p1=incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/BrowserInfo.java&r1=125531&p2=incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/BrowserInfo.java&r2=125532
==============================================================================
--- incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/BrowserInfo.java (original)
+++ incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/BrowserInfo.java Tue Jan 18 10:59:28 2005
@@ -14,6 +14,8 @@
import java.util.Collection;
+import org.apache.portals.graffito.model.CmsObject;
+
/**
* Information on the current content folder displayed in the Graffito Browser Portlet
*
@@ -27,6 +29,8 @@
private Collection documents;
private Collection folders;
+
+ private CmsObject currentCmsObject;
/**
* @return Returns the documents.
@@ -75,7 +79,18 @@
{
this.uri = uri;
}
+
+ public CmsObject getCurrentCmsObject()
+ {
+ return currentCmsObject;
+
+ }
+
+ public void setCurrentCmsObject(CmsObject currentCmsObject)
+ {
+ this.currentCmsObject = currentCmsObject;
+ }
/**
* @return true if the Browser is empty, else false
*/
Modified: incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/BrowserPortlet.java
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/BrowserPortlet.java?view=diff&rev=125532&p1=incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/BrowserPortlet.java&r1=125531&p2=incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/BrowserPortlet.java&r2=125532
==============================================================================
--- incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/BrowserPortlet.java (original)
+++ incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/BrowserPortlet.java Tue Jan 18 10:59:28 2005
@@ -16,7 +16,7 @@
package org.apache.portals.graffito.portlets;
import java.io.IOException;
-
+import java.util.Date;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
@@ -25,16 +25,13 @@
import javax.portlet.PortletException;
import javax.portlet.PortletMode;
import javax.portlet.PortletRequest;
-import javax.portlet.PortletRequestDispatcher;
import javax.portlet.PortletSession;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.portals.bridges.velocity.GenericVelocityPortlet;
import org.apache.portals.graffito.ContentModelService;
import org.apache.portals.graffito.exception.ContentManagementException;
+import org.apache.portals.graffito.model.Folder;
import org.apache.velocity.context.Context;
/**
@@ -43,9 +40,9 @@
* @author <a href="mailto:christophe.lombart@sword-technologies.com">Christophe Lombart</a>
* @version $Id: BrowserPortlet.java,v 1.1 2004/12/28 14:29:11 christophe Exp $
*/
-public class BrowserPortlet extends GenericVelocityPortlet
+public class BrowserPortlet extends GenericTabVelocityPortlet
{
-
+
/** Velocity variable to set the browser info object in the Velocity context */
private static final String VELOCITY_BROWSER_INFO = "browserInfo";
@@ -58,12 +55,7 @@
/** Portlet preference attritube containing the root uri used to display the content browser */
private static final String CONTENT_SCOPE = "gaffito.content.scope";
-
- protected Log log = LogFactory.getLog(BrowserPortlet.class);
-
-
private ContentModelService modelService;
-
/**
* @see javax.portlet.Portlet#init(javax.portlet.PortletConfig)
@@ -71,8 +63,9 @@
public void init(PortletConfig config) throws PortletException
{
super.init(config);
- PortletContext context = getPortletContext();
-
+
+ PortletContext context = getPortletContext();
+
modelService = (ContentModelService) context.getAttribute("cps:ContentModel");
if (null == modelService)
{
@@ -88,18 +81,24 @@
{
response.setContentType("text/html");
- Context velocityContext = this.getContext(request);
+ Context velocityContext = this.getContext(request);
try
{
- BrowserInfo browserInfo = this.getSessionBrowserInfo(request);
- if (null == browserInfo)
+ BrowserInfo browserInfo = null;
+ String uri = request.getParameter("uri");
+ if (uri == null)
{
- String parentUri = this.getDefaultContentScope(request);
+ uri = this.getDefaultContentScope(request);
+ browserInfo = this.getSessionBrowserInfo(request);
+ }
+
+ if (null == browserInfo)
+ {
browserInfo = new BrowserInfo();
- browserInfo.setDocuments(modelService.getDocuments(parentUri));
- browserInfo.setFolders(modelService.getFolders(parentUri));
- browserInfo.setUri(parentUri);
+ browserInfo.setDocuments(modelService.getDocuments(uri));
+ browserInfo.setFolders(modelService.getFolders(uri));
+ browserInfo.setUri(uri);
this.setSessionContentBrowser(request, browserInfo);
}
@@ -109,8 +108,7 @@
{
throw new PortletException("Failed to view the portlet - impossible to access to Graffito content store : " + e.getMessage());
}
-
-
+
super.doView(request, response);
@@ -121,27 +119,14 @@
*/
public void doEdit(RenderRequest request, RenderResponse response) throws PortletException, IOException
{
- response.setContentType("text/html");
- Context velocityContext = this.getContext(request);
- BrowserInfo browserInfo = this.getSessionBrowserInfo(request);
- velocityContext.put(VELOCITY_BROWSER_INFO, browserInfo);
- String page = this.getEditPage(request);
+
+ response.setContentType("text/html");
- if (page != null)
- {
- this.clearEditPage(request);
- PortletContext context = getPortletContext();
- PortletRequestDispatcher rd = context.getRequestDispatcher(page);
- rd.include(request, response);
-
-
- }
- else
- {
- super.doEdit(request, response);
- }
+ BrowserInfo browserInfo = this.getSessionBrowserInfo(request);
+ Context velocityContext = this.getContext(request);
+ velocityContext.put(VELOCITY_BROWSER_INFO, browserInfo);
-
+ super.doEdit(request, response);
}
/**
@@ -149,40 +134,43 @@
*/
public void processAction(ActionRequest request, ActionResponse response) throws PortletException, IOException
{
-
+
+
if (request.getPortletMode() == PortletMode.EDIT)
- {
- String action = request.getParameter("addfolder");
+ {
+
+
+ String action = request.getParameter("folder.add");
+ if (action!=null)
+ {
+ this.createFolder(request, response);
+ return;
+ }
+
+ action = request.getParameter("document.add");
if (action!=null)
{
- this.setEditPage(request, "/WEB-INF/view/addfolder.vm");
+ response.setRenderParameter(PARAM_EDIT_PAGE, "/WEB-INF/view/document.vm");
+ return;
+ }
+
+ action = request.getParameter("folder.save");
+ if (action!=null)
+ {
+ this.saveFolder(request, response);
return;
}
- action = request.getParameter("adddocument");
+ action = request.getParameter("cancel");
if (action!=null)
{
- this.setEditPage(request, "/WEB-INF/view/adddocument.vm");
+ response.setRenderParameter(PARAM_EDIT_PAGE, "/WEB-INF/view/edit.vm" );
return;
- }
+ }
+
+ super.processAction(request, response);
}
- else
- {
-// String browserAction = request.getParameter("db.browser.action");
-// if (browserAction != null)
-// {
-// if (browserAction.equals("refresh"))
-// {
-// // clearDatabaseBrowserIterator(request);
-// }
-// String start = request.getParameter("start");
-// if (start != null)
-// {
-// response.setRenderParameter("start", start);
-// }
-// }
- }
}
@@ -191,34 +179,64 @@
return (BrowserInfo) request.getPortletSession().getAttribute(SESSION_BROWSER_INFO, PortletSession.PORTLET_SCOPE);
}
- protected void setSessionContentBrowser(RenderRequest request, BrowserInfo browserInfo)
+ protected void setSessionContentBrowser(PortletRequest request, BrowserInfo browserInfo)
{
request.getPortletSession().setAttribute(SESSION_BROWSER_INFO, browserInfo);
}
-
- protected void clearSessionContentBrowser(PortletRequest request)
+
+ protected void removeSessionContentBrowser(PortletRequest request)
{
request.getPortletSession().removeAttribute(SESSION_BROWSER_INFO);
- }
+ }
protected String getDefaultContentScope(PortletRequest request)
{
return request.getPreferences().getValue(CONTENT_SCOPE, DEFAULT_CONTENT_SCOPE);
- }
+ }
- protected void setEditPage(PortletRequest request, String page)
+ protected void createFolder(ActionRequest request, ActionResponse response) throws PortletException
{
- request.getPortletSession().setAttribute("test", page);
+
+ try
+ {
+ BrowserInfo browserInfo = this.getSessionBrowserInfo(request);
+ Folder folder = modelService.createFolder();
+ browserInfo.setCurrentCmsObject(folder);
+ this.setSessionContentBrowser(request, browserInfo);
+ response.setRenderParameter(PARAM_EDIT_PAGE, "/WEB-INF/view/folder.vm");
+ }
+ catch (ContentManagementException e)
+ {
+ throw new PortletException("Impossible to create a folder ", e);
+ }
}
- protected String getEditPage(PortletRequest request)
- {
- return (String) request.getPortletSession().getAttribute("test", PortletSession.PORTLET_SCOPE);
- }
-
- protected void clearEditPage(PortletRequest request)
- {
- request.getPortletSession().removeAttribute("test");
- }
-
+ protected void saveFolder(ActionRequest request, ActionResponse response) throws PortletException
+ {
+ try
+ {
+ BrowserInfo browserInfo = this.getSessionBrowserInfo(request);
+ Folder folder = (Folder) browserInfo.getCurrentCmsObject();
+ String name = request.getParameter("name");
+ String title = request.getParameter("title");
+ String description = request.getParameter("description");
+
+ folder.setCreationDate(new Date());
+ folder.setDescription(description);
+ folder.setLastModified(new Date());
+ folder.setName(name);
+ folder.setTitle(title);
+ folder.setUri(browserInfo.getUri() + "/" + name);
+
+ modelService.addFolder(folder);
+
+ response.setRenderParameter(PARAM_EDIT_PAGE, "/WEB-INF/view/edit.vm");
+ response.setPortletMode(PortletMode.VIEW);
+ this.removeSessionContentBrowser(request);
+ }
+ catch (ContentManagementException e)
+ {
+ throw new PortletException("Impossible to create a folder ", e);
+ }
+ }
}
Added: incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/GenericTabVelocityPortlet.java
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/GenericTabVelocityPortlet.java?view=auto&rev=125532
==============================================================================
--- (empty file)
+++ incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/GenericTabVelocityPortlet.java Tue Jan 18 10:59:28 2005
@@ -0,0 +1,121 @@
+/*
+ * Copyright 2000-2004 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.portals.graffito.portlets;
+
+import java.io.IOException;
+import java.util.HashMap;
+
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.PortletConfig;
+import javax.portlet.PortletContext;
+import javax.portlet.PortletException;
+import javax.portlet.PortletMode;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.portals.bridges.velocity.GenericVelocityPortlet;
+import org.apache.velocity.context.Context;
+
+/**
+ * Velocity portlet which can manage tab pages in the view & edit mode.
+ *
+ * @author <a href="mailto:christophe.lombart@sword-technologies.com">Christophe Lombart</a>
+ * @version $Id: Exp $
+ */
+public class GenericTabVelocityPortlet extends GenericVelocityPortlet
+{
+
+ private static final String TAB_CONFIG = "TabConfig";
+ protected HashMap tabs = new HashMap();
+
+ protected Log log = LogFactory.getLog(GenericTabVelocityPortlet.class);
+
+ /**
+ * @see javax.portlet.Portlet#init(javax.portlet.PortletConfig)
+ */
+ public void init(PortletConfig config) throws PortletException
+ {
+ super.init(config);
+
+ PortletContext context = getPortletContext();
+ String tabConfig = config.getInitParameter(TAB_CONFIG);
+ if (null == tabConfig)
+ {
+ throw new PortletException("Portlet init parameter TabConfig not found");
+ }
+
+ String xmlFile = context.getRealPath(tabConfig);
+ try
+ {
+ tabs = TabReader.getTabs(xmlFile);
+ }
+ catch (Exception e)
+ {
+ throw new PortletException("Impossible to read the tab xml file : " + xmlFile );
+ }
+
+ }
+
+ /**
+ * @see javax.portlet.GenericPortlet#doView(javax.portlet.RenderRequest, javax.portlet.RenderResponse)
+ */
+ public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException
+ {
+
+ Context velocityContext = this.getContext(request);
+ velocityContext.put("tabs", tabs);
+
+ super.doView(request, response);
+ }
+
+ /**
+ * @see javax.portlet.GenericPortlet#doEdit(javax.portlet.RenderRequest, javax.portlet.RenderResponse)
+ */
+ public void doEdit(RenderRequest request, RenderResponse response) throws PortletException, IOException
+ {
+ Context velocityContext = this.getContext(request);
+ velocityContext.put("tabs", tabs);
+ super.doEdit(request, response);
+ }
+
+ /**
+ * @see javax.portlet.Portlet#processAction(javax.portlet.ActionRequest, javax.portlet.ActionResponse)
+ */
+ public void processAction(ActionRequest request, ActionResponse response) throws PortletException, IOException
+ {
+
+ if (request.getPortletMode() == PortletMode.EDIT)
+ {
+ String tabId = request.getParameter("selectTab");
+ if (tabId != null)
+ {
+
+ VelocityTab tab = (VelocityTab) tabs.get(tabId);
+ String pageId = request.getParameter("selectPage");
+
+ if (pageId == null)
+ {
+ throw new PortletException("Impossible to find the selected page");
+ }
+
+ tab.setSelectedPage(pageId);
+ }
+ }
+ }
+}
\ No newline at end of file
Added: incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/TabReader.java
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/TabReader.java?view=auto&rev=125532
==============================================================================
--- (empty file)
+++ incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/TabReader.java Tue Jan 18 10:59:28 2005
@@ -0,0 +1,95 @@
+/*
+ * Copyright 2000-2004 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.portals.graffito.portlets;
+
+import java.io.IOException;
+import java.util.HashMap;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+
+/**
+ *
+ * @author <a href="mailto:christophe.lombart@sword-technologies.com">Lombart Christophe </a>
+ * @version $Id: Exp $
+ */
+public class TabReader
+{
+
+ /**
+ * Build a collection of {@link VelocityTab} from an xml file.
+ *
+ * @param xmlFile
+ * @return
+ * @throws IOException
+ * @throws SAXException
+ * @throws ParserConfigurationException
+ */
+ public static HashMap getTabs(String xmlFile) throws IOException, SAXException, ParserConfigurationException
+ {
+
+ HashMap tabs = new HashMap();
+
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ // try
+ // {
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document document = builder.parse(xmlFile);
+ Node root = document.getFirstChild();
+ NodeList tabList = root.getChildNodes();
+ for (int tabIndex = 0; tabIndex < tabList.getLength(); tabIndex++)
+ {
+ Node tabNode = tabList.item(tabIndex);
+ if (tabNode.getNodeType() == Node.ELEMENT_NODE)
+ {
+
+ //String tabId = no
+ String tabId = tabNode.getAttributes().getNamedItem("id").getNodeValue();
+ //System.out.println("Tab : " + tabId);
+ VelocityTab tab = new VelocityTab(tabId);
+ NodeList pageList = tabNode.getChildNodes();
+
+ for (int pageIndex = 0; pageIndex < pageList.getLength(); pageIndex++)
+ {
+ Node pageNode = pageList.item(pageIndex);
+ if (pageNode.getNodeType() == Node.ELEMENT_NODE)
+ {
+ String id = pageNode.getAttributes().getNamedItem("id").getNodeValue();
+ String label = pageNode.getAttributes().getNamedItem("label").getNodeValue();
+ String view = pageNode.getAttributes().getNamedItem("view").getNodeValue();
+ VelocityTabPage page = new VelocityTabPage(id, label, view);
+ tab.addPage(page);
+ }
+ }
+
+ tabs.put(tabId, tab);
+ }
+ }
+
+ return tabs;
+ // }
+ // catch (Exception e)
+ // {
+ // throw new PortletException("Failed to the tab xml file : " + xmlFile);
+ // }
+ }
+
+}
\ No newline at end of file
Added: incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/VelocityTab.java
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/VelocityTab.java?view=auto&rev=125532
==============================================================================
--- (empty file)
+++ incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/VelocityTab.java Tue Jan 18 10:59:28 2005
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2000-2004 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.portals.graffito.portlets;
+
+import java.util.ArrayList;
+
+/**
+ * Velocity Tab containse a series of {@link org.apache.portals.graffito.portlets.VelocityTabPage}
+ *
+ * @author <a href="mailto:christophe.lombart@sword-technologies.com">Lombart Christophe </a>
+ * @version $Id: Exp $
+ */
+public class VelocityTab
+{
+ private ArrayList tabPages = new ArrayList();
+ private int selectedPage = 0;
+ private String id;
+
+ public VelocityTab(String id)
+ {
+ this.id = id;
+ }
+
+ public String getId()
+ {
+ return id;
+ }
+
+
+ public void addPage(VelocityTabPage page)
+ {
+ tabPages.add(page);
+ }
+
+ public VelocityTabPage[] getPages()
+ {
+ return (VelocityTabPage[]) tabPages.toArray(new VelocityTabPage[tabPages.size()]);
+ }
+
+ public VelocityTabPage getSelectedPage()
+ {
+ return (VelocityTabPage) tabPages.get(selectedPage);
+ }
+
+ public void setSelectedPage(String pageId)
+ {
+ VelocityTabPage[] pages = this.getPages();
+ for (int i = 0; i<pages.length; i++)
+ {
+ if (pages[i].getId().equals(pageId))
+ {
+ this.selectedPage= i;
+ break;
+ }
+ }
+
+ }
+
+ public boolean isSelected(VelocityTabPage page)
+ {
+ return ((VelocityTabPage) tabPages.get(selectedPage)).getId().equals(page.getId());
+ }
+}
Added: incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/VelocityTabPage.java
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/VelocityTabPage.java?view=auto&rev=125532
==============================================================================
--- (empty file)
+++ incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/VelocityTabPage.java Tue Jan 18 10:59:28 2005
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2000-2004 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.portals.graffito.portlets;
+
+/**
+ * Information on one view in a VelocityTab. See {@link org.apache.portals.graffito.portlets.VelocityTab}
+ *
+ * @author <a href="mailto:christophe.lombart@sword-technologies.com">Lombart Christophe </a>
+ * @version $Id: Exp $
+ */
+public class VelocityTabPage
+{
+ private String id;
+ private String label;
+ private String view;
+
+ /**
+ * @param label
+ * @param view
+ */
+ public VelocityTabPage(String id, String label, String view)
+ {
+ this.id = id;
+ this.label = label;
+ this.view = view;
+ }
+
+
+ public String getId()
+ {
+ return id;
+ }
+ public void setId(String id)
+ {
+ this.id = id;
+ }
+
+ public String getLabel()
+ {
+ return label;
+ }
+ public void setLabel(String label)
+ {
+ this.label = label;
+ }
+ public String getView()
+ {
+ return view;
+ }
+ public void setView(String view)
+ {
+ this.view = view;
+ }
+}
Modified: incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/resources/messages.properties
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/resources/messages.properties?view=diff&rev=125532&p1=incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/resources/messages.properties&r1=125531&p2=incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/resources/messages.properties&r2=125532
==============================================================================
--- incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/resources/messages.properties (original)
+++ incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/resources/messages.properties Tue Jan 18 10:59:28 2005
@@ -7,6 +7,7 @@
help.text.edit = Use the edit mode to modify, add or delete folders & documents.
div.path= You are in :
+div.newfolder= Add new folder in :
div.folders = Folders
div.documents = Documents
@@ -15,13 +16,19 @@
edit.tab.title=Title
edit.tab.description=Description
+field.name = Name
+field.title= Title
+field.description=Description
+
link.addfolder= Add Folder
link.adddocument = Add Document
link.delete = Delete
-info.nocontent= No content found in this folder
-
+tab.document=Document
+tab.folder=Folder
+tab.security=Security
+info.nocontent= No content found in this folder. Use the edit mode to add new content.
error.servers=No content server found
Modified: incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/resources/messages_en.properties
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/resources/messages_en.properties?view=diff&rev=125532&p1=incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/resources/messages_en.properties&r1=125531&p2=incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/resources/messages_en.properties&r2=125532
==============================================================================
--- incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/resources/messages_en.properties (original)
+++ incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/resources/messages_en.properties Tue Jan 18 10:59:28 2005
@@ -7,7 +7,8 @@
help.text.edit = Use the edit mode to modity, add or delete folders & documents.
-div.path= You are in :
+div.path= You are in :
+div.newfolder= Add new folder in :
div.folders = Folders
div.documents = Documents
@@ -20,6 +21,9 @@
link.adddocument = Add Document
link.delete = Delete
-info.nocontent= No content found in this folder
+tab.general=General
+tab.security=Security
+
+info.nocontent= No content found in this folder. Use the edit mode to add new content.
error.servers=No content server found
Modified: incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/resources/messages_fr.properties
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/resources/messages_fr.properties?view=diff&rev=125532&p1=incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/resources/messages_fr.properties&r1=125531&p2=incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/resources/messages_fr.properties&r2=125532
==============================================================================
--- incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/resources/messages_fr.properties (original)
+++ incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/portlets/resources/messages_fr.properties Tue Jan 18 10:59:28 2005
@@ -6,6 +6,7 @@
help.text.edit = Utilisez le mode edit pour ajouter, modifier ou effacer des documents et r�pertoires.
div.path = Vous �tes dans
+div.newfolder= Ajout d'un nouveau r�pertoire dans
div.folders = R�pertoires
div.documents = Documents
@@ -17,8 +18,9 @@
link.addfolder= Ajouter un r�pertoire
link.adddocument = Ajouter un document
link.delete = Supprimer
-
-info.nocontent= Ce r�pertoire n'a pas de contenu
-
+tab.general=Information G�n�rale
+tab.security=Securit�
+
+info.nocontent= Ce r�pertoire n'a pas de contenu. Utilisez le mode d'�dition pour g�rer votre contenu.
error.servers=Impossible de trouver un serveur de contenu
Added: incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/util/GraffitoTools.java
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/util/GraffitoTools.java?view=auto&rev=125532
==============================================================================
--- (empty file)
+++ incubator/graffito/trunk/portlets/src/java/org/apache/portals/graffito/util/GraffitoTools.java Tue Jan 18 10:59:28 2005
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2000-2004 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.portals.graffito.util;
+
+import java.util.ArrayList;
+
+import org.apache.portals.graffito.model.CmsObject;
+import org.apache.portals.graffito.model.Folder;
+
+/**
+ *
+ * Velocity tools used for Graffito
+ *
+ * @author <a href="mailto:christophe.lombart@sword-technologies.com">Lombart Christophe </a>
+ * @version $Id: Exp $
+ */
+public class GraffitoTools
+{
+ public static Folder[] getParents(CmsObject cmsObject)
+ {
+ ArrayList parents = new ArrayList();
+ Folder parent = cmsObject.getParentFolder();
+ while (parent != null)
+ {
+ parents.add(0,parent);
+ parent = parent.getParentFolder();
+ }
+
+ if (parents.size() == 0)
+ {
+ return null;
+ }
+
+ return (Folder[]) parents.toArray(new Folder[parents.size()]);
+
+ }
+}
Modified: incubator/graffito/trunk/portlets/src/webapp/WEB-INF/portlet.xml
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/webapp/WEB-INF/portlet.xml?view=diff&rev=125532&p1=incubator/graffito/trunk/portlets/src/webapp/WEB-INF/portlet.xml&r1=125531&p2=incubator/graffito/trunk/portlets/src/webapp/WEB-INF/portlet.xml&r2=125532
==============================================================================
--- incubator/graffito/trunk/portlets/src/webapp/WEB-INF/portlet.xml (original)
+++ incubator/graffito/trunk/portlets/src/webapp/WEB-INF/portlet.xml Tue Jan 18 10:59:28 2005
@@ -37,7 +37,11 @@
<init-param>
<name>HelpPage</name>
<value>/WEB-INF/view/help.vm</value>
- </init-param>
+ </init-param>
+ <init-param>
+ <name>TabConfig</name>
+ <value>/WEB-INF/tabs/tabs.xml</value>
+ </init-param>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
@@ -53,12 +57,6 @@
<name>graffito.content.scope</name>
<value>/graffito</value>
</preference>
- <preference>
- <name>edit.tabs</name>
- <value>Tab1:Action1:/WEB-INF/view/tab1.vm</value>
- </preference>
-
-
</portlet-preferences>
</portlet>
</portlet-app>
Added: incubator/graffito/trunk/portlets/src/webapp/WEB-INF/tabs/tabs.xml
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/webapp/WEB-INF/tabs/tabs.xml?view=auto&rev=125532
==============================================================================
--- (empty file)
+++ incubator/graffito/trunk/portlets/src/webapp/WEB-INF/tabs/tabs.xml Tue Jan 18 10:59:28 2005
@@ -0,0 +1,7 @@
+<tabs>
+ <tab id="document">
+ <page id="doc" label="tab.document" view= "/WEB-INF/view/adddocument.vm" />
+ <page id="folder" label="tab.folder" view= "/WEB-INF/view/addfolder.vm" />
+ <page id="security" label="tab.security" view= "/WEB-INF/view/security.vm" />
+ </tab>
+</tabs>
\ No newline at end of file
Added: incubator/graffito/trunk/portlets/src/webapp/WEB-INF/velocity/graffito-macros.vm
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/webapp/WEB-INF/velocity/graffito-macros.vm?view=auto&rev=125532
==============================================================================
--- (empty file)
+++ incubator/graffito/trunk/portlets/src/webapp/WEB-INF/velocity/graffito-macros.vm Tue Jan 18 10:59:28 2005
@@ -0,0 +1,56 @@
+#macro (formField2 $label $value $size $id $MESSAGES $ERRORS)
+ #if ($ERRORS)
+ #set ($eflag = "$!ERRORS.get($id)")
+ #else
+ #set ($eflag = "")
+ #end
+ <tr>
+ <th class="portlet-section-alternate"><font class="portlet-form-field-label">$!MESSAGES.getString($label)</font></th>
+ <td>
+ <input id="$!id" type="text" name="$!id" size="$!size" value="$!value" class="portlet-form-label-field">
+ </td>
+ #if ($!eflag == "")
+ <td width="5%" align="left"> </td>
+ #else
+ <td width="5%" class="portlet-msg-error" align="left"> </td>
+ #end
+ </tr>
+#end
+
+#macro (tab $tab $MESSAGES $urlAction)
+
+ #set ($tabPages = $tab.getPages())
+
+
+ <div>
+ <table border="0" cellpadding="0" cellspacing="0" width="50%">
+ <tbody>
+ <tr>
+ <td style="font-size: 1pt;" nowrap="true"> </td>
+ <td style="font-size: 1pt;" nowrap="true"> </td>
+ <td style="font-size: 1pt;" nowrap="true"> </td>
+ #foreach($tabPage in $tabPages)
+ #if($tab.isSelected($tabPage))
+ <td class="LTabLeft" style="font-size: 1pt;" nowrap="true"> </td>
+ <td class="LTab" align="center" valign="middle">$MESSAGES.getString($tabPage.getLabel())</td>
+ <td class="LTabRight" style="font-size: 1pt;" nowrap="true"> </td>
+ #else
+ <td class="LTabLeftLow" style="font-size: 1pt;" nowrap="true"> </td>
+ <td class="LTabLow" align="center" valign="middle"><a href="$urlAction?selectTab=$tab.getId()&selectPage=$tabPage.getId()">$MESSAGES.getString($tabPage.getLabel())</a></td>
+ <td class="LTabRightLow" style="font-size: 1pt;" nowrap="true"> </td>
+ #end
+ #end
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="portlet-section-alternate" /></div>
+ #parse($tab.getSelectedPage().getView())
+#end
+
+
+#macro (cmspath $cmsObjects $renderResponse)
+ #foreach($cmsObject in $cmsObjects)
+ >> <a href="$renderResponse.createRenderURL()?uri=$cmsObject.getUri()">$cmsObject.getName()</a>
+ #end
+#end
\ No newline at end of file
Modified: incubator/graffito/trunk/portlets/src/webapp/WEB-INF/velocity/velocity-macros.vm
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/webapp/WEB-INF/velocity/velocity-macros.vm?view=diff&rev=125532&p1=incubator/graffito/trunk/portlets/src/webapp/WEB-INF/velocity/velocity-macros.vm&r1=125531&p2=incubator/graffito/trunk/portlets/src/webapp/WEB-INF/velocity/velocity-macros.vm&r2=125532
==============================================================================
--- incubator/graffito/trunk/portlets/src/webapp/WEB-INF/velocity/velocity-macros.vm (original)
+++ incubator/graffito/trunk/portlets/src/webapp/WEB-INF/velocity/velocity-macros.vm Tue Jan 18 10:59:28 2005
@@ -112,3 +112,6 @@
<td width="5%" class="portlet-form-label" align="left"> </td>
</tr>
#end
+
+
+
Modified: incubator/graffito/trunk/portlets/src/webapp/WEB-INF/velocity/velocity.properties
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/webapp/WEB-INF/velocity/velocity.properties?view=diff&rev=125532&p1=incubator/graffito/trunk/portlets/src/webapp/WEB-INF/velocity/velocity.properties&r1=125531&p2=incubator/graffito/trunk/portlets/src/webapp/WEB-INF/velocity/velocity.properties&r2=125532
==============================================================================
--- incubator/graffito/trunk/portlets/src/webapp/WEB-INF/velocity/velocity.properties (original)
+++ incubator/graffito/trunk/portlets/src/webapp/WEB-INF/velocity/velocity.properties Tue Jan 18 10:59:28 2005
@@ -87,7 +87,7 @@
velocimacro.library.autoreload = true
velocimacro.permissions.allow.inline.to.replace.global = true
-velocimacro.library = /WEB-INF/VM_global_library.vm, /WEB-INF/velocity/velocity-macros.vm
+velocimacro.library = /WEB-INF/VM_global_library.vm, /WEB-INF/velocity/velocity-macros.vm, /WEB-INF/velocity/graffito-macros.vm
#template.loader.2.public.name = URL
#template.loader.2.description = Velocity URL Template Loader
Deleted: /incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/adddocument.vm
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/adddocument.vm?view=auto&rev=125531
==============================================================================
Deleted: /incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/addfolder.vm
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/addfolder.vm?view=auto&rev=125531
==============================================================================
Copied: incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/document.vm (from r125434, incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/adddocument.vm)
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/document.vm?view=diff&rev=125532&p1=incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/adddocument.vm&r1=125434&p2=incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/document.vm&r2=125532
==============================================================================
Copied: incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/edit-tab-sample.vm (from r125434, incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/edit.vm)
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/edit-tab-sample.vm?view=diff&rev=125532&p1=incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/edit.vm&r1=125434&p2=incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/edit-tab-sample.vm&r2=125532
==============================================================================
--- incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/edit.vm (original)
+++ incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/edit-tab-sample.vm Tue Jan 18 10:59:28 2005
@@ -1,50 +1,28 @@
+#*
+Copyright 2004 The Apache Software Foundation
-#set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
+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
-<div class="portlet-menu">$MESSAGES.getString('div.path') $browserInfo.getUri()</div>
+ 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.
+*#
+
+#**
-<form action="$renderResponse.createActionURL()" method="post">
- #set ($folders = $browserInfo.getFolders())
- #set ($documents = $browserInfo.getDocuments())
-
- #if($browserInfo.isEmpty())
- <div class="portlet-msg-info">$MESSAGES.getString('info.nocontent')</div>
- #else
- <table>
-
- <tr>
- <th class="portlet-section-header">$MESSAGES.getString('edit.tab.select')</th>
- <th class="portlet-section-header">$MESSAGES.getString('edit.tab.name')</th>
- <th class="portlet-section-header">$MESSAGES.getString('edit.tab.title')</th>
- <th class="portlet-section-header">$MESSAGES.getString('edit.tab.description')</th>
- </tr>
- <tr><div class="portlet-menu">$MESSAGES.getString('div.folders')</div></tr>
- #foreach ($folder in $folders)
- <tr>
- <td class="portlet-section-body"><input type="checkbox"/></th>
- <td class="portlet-section-body">folder.getName()</th>
- <td class="portlet-section-body">folder.getTitle()</th>
- <td class="portlet-section-body">folder.getDescription()</th>
- </tr>
- #end
- <tr><div class="portlet-menu">$MESSAGES.getString('div.documents')</div></tr>
- #foreach ($document in $documents)
- <tr>
- <td class="portlet-section-body"><input type="checkbox"/></th>
- <td class="portlet-section-body">document.getName()</th>
- <td class="portlet-section-body">document.getTitle()</th>
- <td class="portlet-section-body">document.getDescription()</th>
- </tr>
- #end
- </table>
- #end
-
- <div class="portlet-menu">
- <input type="submit" name="addfolder" value="$MESSAGES.getString('link.addfolder')" />
- <input type="submit" name="adddocument" value="$MESSAGES.getString('link.adddocument')" />
- </div>
-
-</form>
+@author <a href="mailto:christophe.lombart@sword-technologies.com">Christophe Lombart</a>
+@version $Id: Exp $
+*#
+#set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
+
+<div class="portlet-menu">$MESSAGES.getString('div.path') $browserInfo.getUri()</div>
+#tab($tabs.get("document") $MESSAGES $renderResponse.createActionURL())
Deleted: /incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/edit.vm
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/edit.vm?view=auto&rev=125531
==============================================================================
Copied: incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/folder.vm (from r125434, incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/addfolder.vm)
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/folder.vm?view=diff&rev=125532&p1=incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/addfolder.vm&r1=125434&p2=incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/folder.vm&r2=125532
==============================================================================
--- incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/addfolder.vm (original)
+++ incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/folder.vm Tue Jan 18 10:59:28 2005
@@ -20,5 +20,22 @@
@version $Id: Exp $
*#
+#set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
+#set ($folder = $browserInfo.getCurrentCmsObject())
-ADD FOLDER
\ No newline at end of file
+<div class="portlet-menu">$MESSAGES.getString('div.newfolder') $browserInfo.getUri()</div>
+
+<div class="portlet-section-header">Folder Info </div>
+<form action="$renderResponse.createActionURL()" method="post">
+ <input type="hidden" name="uri" value="$folde.getUri()" size="100" maxlength="100"/>
+ <table border="0" cellspacing="2" cellpadding="3">
+ #formField2('field.name' "$!folder.getName()" "25" 'name' $MESSAGES $ERRORS)
+ #formField2('field.title' "$!folder.getTitle()" "25" 'title' $MESSAGES $ERRORS)
+ #formField2('field.description' "$!folder.getDescription()" "50" 'description' $MESSAGES $ERRORS)
+ </table>
+ <div class="portlet-section-footer">
+ <input type="submit" name="folder.save" value="Save" class="portlet-dlg-icon-label"/>
+ <input type="submit" name="cancel" value="Cancel" class="portlet-dlg-icon-label"/>
+ </div>
+</form>
+#ErrorMessages($ERRORS)
Added: incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/security.vm
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/security.vm?view=auto&rev=125532
==============================================================================
--- (empty file)
+++ incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/security.vm Tue Jan 18 10:59:28 2005
@@ -0,0 +1,24 @@
+#*
+Copyright 2004 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.
+*#
+
+#**
+
+@author <a href="mailto:christophe.lombart@sword-technologies.com">Christophe Lombart</a>
+@version $Id: Exp $
+
+*#
+
+Security
\ No newline at end of file
Added: incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/tab.vm
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/tab.vm?view=auto&rev=125532
==============================================================================
--- (empty file)
+++ incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/tab.vm Tue Jan 18 10:59:28 2005
@@ -0,0 +1,52 @@
+#*
+Copyright 2004 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.
+*#
+
+#**
+
+@author <a href="mailto:christophe.lombart@sword-technologies.com">Christophe Lombart</a>
+@version $Id: Exp $
+
+*#
+#set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
+#set ($tabPages = $tab.getPages())
+
+
+<div id="tabs">
+<table border="0" cellpadding="0" cellspacing="0" width="65%">
+ <tbody>
+ <tr>
+ <td style="font-size: 1pt;" nowrap="true"> </td>
+ <td style="font-size: 1pt;" nowrap="true"> </td>
+ <td style="font-size: 1pt;" nowrap="true"> </td>
+ #foreach($tabPage in $tabPages)
+ #if($tabPage.isSelected())
+ <td class="LTabLeft" style="font-size: 1pt;" nowrap="true"> </td>
+ <td class="LTab" align="center" valign="middle">$tabPage.getLabel()</td>
+ <td class="LTabRight" style="font-size: 1pt;" nowrap="true"> </td>
+ #else
+ <td class="LTabLeftLow" style="font-size: 1pt;" nowrap="true"> </td>
+ <td class="LTabLow" align="center" valign="middle"><a href="">$tabPage.getLabel()</a></td>
+ <td class="LTabRightLow" style="font-size: 1pt;" nowrap="true"> </td>
+ #end
+ #end
+ </tr>
+ </tbody>
+</table>
+</div>
+<div class="portlet-section-alternate" /></div>
+#parse($tab.getSelectedPage().getPage())
+
+
Modified: incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/view.vm
Url: http://svn.apache.org/viewcvs/incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/view.vm?view=diff&rev=125532&p1=incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/view.vm&r1=125531&p2=incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/view.vm&r2=125532
==============================================================================
--- incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/view.vm (original)
+++ incubator/graffito/trunk/portlets/src/webapp/WEB-INF/view/view.vm Tue Jan 18 10:59:28 2005
@@ -27,19 +27,35 @@
#if( $browserInfo.isEmpty())
<div class="portlet-msg-info">$MESSAGES.getString('info.nocontent')</div>
#else
-
- <div class="portlet-menu">$MESSAGES.getString('div.folders')</div>
#set ($folders = $browserInfo.getFolders())
- #foreach ($folder in $folders)
- $folder.getName()
- #end
-
-
- <div class="portlet-menu">$MESSAGES.getString('div.documents')</div>
- #set ($documents = $browserInfo.getDocuments())
- #foreach ($document in $documents)
- $document.getName()
- #end
-
+ #if($folders.size() > 0)
+ <div class="portlet-menu">$MESSAGES.getString('div.folders')</div>
+ <div class="arrowfolder">
+ <table border="0">
+ <tr>
+ <td>
+ <table border="0" cellpadding="0" cellspacing="40">
+ <tr>
+ #foreach ($folder in $folders)
+ <td>
+ <font class="portlet-folder-item"><a href="$renderResponse.createRenderURL()?uri=$folder.getUri()">$folder.getName()</a></font>
+ </td>
+ #end
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </div>
+ #end
+
+ #set ($documents = $browserInfo.getDocuments())
+ #if($documents.size() > 0)
+ <div class="portlet-menu">$MESSAGES.getString('div.documents')</div>
+
+ #foreach ($document in $documents)
+ <font class="portlet-menu-item"><a href="$renderResponse.createRenderURL()?uri=$folder.getUri()">$document.getTitle()</a></font>
+ #end
+ #end
#end