You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by vk...@apache.org on 2009/03/13 18:50:17 UTC
svn commit: r753325 - in
/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/site:
PortalSiteManager$MetaDataTab.html PortalSiteManager$SecurityTab.html
PortalSiteManager.html PortalSiteManager.java
Author: vkumar
Date: Fri Mar 13 17:50:07 2009
New Revision: 753325
URL: http://svn.apache.org/viewvc?rev=753325&view=rev
Log:
New Feature & Bug fixes in portal site manager
1) Adding busy indicator
2) Updating meta tab with ajax
3) Updating security tab with ajax
4) Adding new meta data bug fix
Modified:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/site/PortalSiteManager$MetaDataTab.html
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/site/PortalSiteManager$SecurityTab.html
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/site/PortalSiteManager.html
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/site/PortalSiteManager.java
Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/site/PortalSiteManager$MetaDataTab.html
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/site/PortalSiteManager%24MetaDataTab.html?rev=753325&r1=753324&r2=753325&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/site/PortalSiteManager$MetaDataTab.html (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/site/PortalSiteManager$MetaDataTab.html Fri Mar 13 17:50:07 2009
@@ -20,39 +20,27 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<wicket:panel>
-
- <table>
- <tr>
- <td>
- <div wicket:id="feedback"></div>
- </td>
- </tr>
- <tr>
- <td>
- <table cellpadding="2">
+
+ <div wicket:id="feedback"></div>
+ <span wicket:id="basePanel">
+ <table cellpadding="2">
<thead>
<tr>
- <th class="portlet-section-header">Name</th>
- <th class="portlet-section-header">Language</th>
- <th class="portlet-section-header">Value</th>
+ <th class="portlet-section-header">Security Constraint</th>
+ <th class="portlet-section-header">Constraint Type</th>
+ <th> </th>
<th> </th>
- <th> </th>
</tr>
</thead>
- <tr class="even" wicket:id="metaData">
- <td><span wicket:id="name" /></td>
- <td><span wicket:id="language" /></td>
- <td><span wicket:id="value" /></td>
- <td><a href wicket:id="edit" >Edit</a></td>
- <td> <a href wicket:id="delete">Delete</a></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td><input type="button" wicket:id="new" value="New" /></td>
- </tr>
- </table>
-<div wicket:id="modalwindow"></div>
+ <tr class="even" wicket:id="metaData">
+ <td><span wicket:id="name" /></td>
+ <td><span wicket:id="type" /></td>
+ <td><a href="" wicket:id="edit">Edit</a></td>
+ <td> <a href="" wicket:id="delete">Delete</a></td>
+ </tr>
+ </table>
+ </span>
+ <input type="button" wicket:id="new" value="New" />
+ <div wicket:id="modalwindow">[modal window goes here]</div>
</wicket:panel>
</html>
\ No newline at end of file
Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/site/PortalSiteManager$SecurityTab.html
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/site/PortalSiteManager%24SecurityTab.html?rev=753325&r1=753324&r2=753325&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/site/PortalSiteManager$SecurityTab.html (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/site/PortalSiteManager$SecurityTab.html Fri Mar 13 17:50:07 2009
@@ -21,36 +21,26 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<wicket:panel>
- <table style="width:100%;">
- <tr>
- <td>
- <div wicket:id="feedback"></div>
- </td>
- </tr>
- <tr>
- <td>
- <table cellpadding="2">
- <thead>
- <tr>
- <th class="portlet-section-header">Security Constraint</th>
- <th class="portlet-section-header">Constraint Type</th>
- <th> </th>
- <th> </th>
- </tr>
- </thead>
- <tr class="even" wicket:id="metaData">
- <td><span wicket:id="name" /></td>
- <td><span wicket:id="type" /></td>
- <td><a href="" wicket:id="edit">Edit</a></td>
- <td> <a href="" wicket:id="delete">Delete</a></td>
+ <div wicket:id="feedback"></div>
+ <span wicket:id="basePanel">
+ <table cellpadding="2">
+ <thead>
+ <tr>
+ <th class="portlet-section-header">Security Constraint</th>
+ <th class="portlet-section-header">Constraint Type</th>
+ <th> </th>
+ <th> </th>
</tr>
- </table>
- </td>
- </tr>
- <tr>
- <td><input type="button" wicket:id="new" value="New" /></td>
- </tr>
- </table>
+ </thead>
+ <tr class="even" wicket:id="metaData">
+ <td><span wicket:id="name" /></td>
+ <td><span wicket:id="type" /></td>
+ <td><a href="" wicket:id="edit">Edit</a></td>
+ <td> <a href="" wicket:id="delete">Delete</a></td>
+ </tr>
+ </table>
+ </span>
+ <input type="button" wicket:id="new" value="New" />
<div wicket:id="modalwindow">[modal window goes here]</div>
</wicket:panel>
</html>
\ No newline at end of file
Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/site/PortalSiteManager.html
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/site/PortalSiteManager.html?rev=753325&r1=753324&r2=753325&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/site/PortalSiteManager.html (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/site/PortalSiteManager.html Fri Mar 13 17:50:07 2009
@@ -24,6 +24,17 @@
table.wicket-tree-content {
width: 100%;
}
+#bysy_indicator {
+ display: none;
+ float: right;
+ background: rgb(255,241,168);
+ margin-top: 5px;
+ z-index: 1000;
+ width: 200;
+ font-weight: bold;
+ text-align: center;
+ font-size: 1em;
+}
</style>
</wicket:head>
<table>
@@ -69,4 +80,32 @@
</form>
</table>
<div wicket:id="modalwindow"></div>
+<div id="bysy_indicator">Loading ...</div>
+<script type="text/javascript">
+ window.onload = setupFunc;
+
+ function setupFunc() {
+ document.getElementsByTagName('body')[0].onclick = clickFunc;
+ hideBusysign();
+ Wicket.Ajax.registerPreCallHandler(showBusysign);
+ Wicket.Ajax.registerPostCallHandler(hideBusysign);
+ Wicket.Ajax.registerFailureHandler(hideBusysign);
+ }
+
+ function hideBusysign() {
+ document.getElementById('bysy_indicator').style.display ='none';
+ }
+
+ function showBusysign() {
+ document.getElementById('bysy_indicator').style.display ='inline';
+ }
+
+ function clickFunc(eventData) {
+ var clickedElement = (window.event) ? event.srcElement : eventData.target;
+ if (clickedElement.tagName.toUpperCase() == 'BUTTON' || clickedElement.tagName.toUpperCase() == 'A' || clickedElement.parentNode.tagName.toUpperCase() == 'A'
+ || (clickedElement.tagName.toUpperCase() == 'INPUT' && (clickedElement.type.toUpperCase() == 'BUTTON' || clickedElement.type.toUpperCase() == 'SUBMIT'))) {
+ showBusysign();
+ }
+ }
+ </script>
</html>
\ No newline at end of file
Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/site/PortalSiteManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/site/PortalSiteManager.java?rev=753325&r1=753324&r2=753325&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/site/PortalSiteManager.java (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/site/PortalSiteManager.java Fri Mar 13 17:50:07 2009
@@ -73,6 +73,7 @@
import org.apache.wicket.extensions.markup.html.tabs.AbstractTab;
import org.apache.wicket.extensions.markup.html.tabs.ITab;
import org.apache.wicket.extensions.markup.html.tabs.TabbedPanel;
+import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.CheckBox;
@@ -175,12 +176,14 @@
List<String> emptyList = Collections.emptyList();
return emptyList.iterator();
}
- if(userNames.size()>10)
+ if (userNames.size() > 10)
+ {
+ return userNames.subList(0, 10).iterator();
+ }
+ else
{
- return userNames.subList(0, 10).iterator();
- }else{
return userNames.iterator();
- }
+ }
}
});
treeForm.add(new Button("userFolderButton")
@@ -341,223 +344,7 @@
}
}
- protected String determineRootFolder(RenderRequest request)
- {
- String jsroot = request.getParameter(JSROOT);
- if (jsroot == null || jsroot.equals(""))
- {
- jsroot = request.getPreferences().getValue("root", "/_user/" + request.getRemoteUser() + "/");
- }
- // this.getContext(request).put(JSROOT, jsroot);
- return jsroot;
- }
-
- protected String determineuserTree(RenderRequest request)
- {
- String userTree;
- userTree = request.getPreferences().getValue("displayUserTree", "false");
- return userTree;
- }
-
- public Folder retrieveFolders(RenderRequest request, String root) throws PortletException
- {
- try
- {
- Folder folder = pageManager.getFolder(root);
- return folder;
- }
- catch (Exception e)
- {
- // log.error("Failed to retrieve folders ", e);
- e.printStackTrace();
- throw new PortletException("Failed to get root folder");
- }
- }
-
- private String fileExt(String fileName)
- {
- int extIndex = fileName.lastIndexOf(".");
- if (extIndex > 0)
- {
- return fileName.substring(extIndex + 1, fileName.length());
- }
- return "";
- }
-
- private String getTempFolder(ActionRequest request)
- {
- String dir = System.getProperty("java.io.tmpdir");
- String path = System.getProperty("file.separator");
- File file = new File(dir + path + request.getUserPrincipal());
- file.mkdir();
- return dir + path + request.getUserPrincipal();
- }
-
- private static final void copyInputStream(InputStream in, OutputStream out) throws IOException
- {
- byte[] buffer = new byte[1024];
- int len;
- while ((len = in.read(buffer)) >= 0)
- out.write(buffer, 0, len);
- in.close();
- out.close();
- }
-
- private boolean unzipfile(String file, String destination, String sepreator)
- {
- Enumeration entries;
- String filePath = "";
- try
- {
- ZipFile zipFile = new ZipFile(destination + sepreator + file);
- entries = zipFile.entries();
- while (entries.hasMoreElements())
- {
- ZipEntry entry = (ZipEntry) entries.nextElement();
- filePath = destination + sepreator + entry.getName();
- createPath(filePath);
- copyInputStream(zipFile.getInputStream(entry), new BufferedOutputStream(new FileOutputStream(filePath)));
- }
- zipFile.close();
- return true;
- }
- catch (IOException ioe)
- {
- ioe.printStackTrace();
- return false;
- }
- }
-
- private void createPath(String filePath)
- {
- String parentPath = "";
- File file = new File(filePath);
- File parent = new File(file.getParent());
- if (!parent.exists())
- {
- parentPath = parent.getPath();
- createPath(parentPath);
- parent.mkdir();
- }
- }
-
- private Folder importFolders(Folder srcFolder, String userName, String destination) throws JetspeedException
- {
- Folder dstFolder = lookupFolder(srcFolder.getPath());
- dstFolder = pageManager.copyFolder(srcFolder, destination);
- pageManager.updateFolder(dstFolder);
- String newPath = "";
- Iterator pages = srcFolder.getPages().iterator();
- while (pages.hasNext())
- {
- Page srcPage = (Page) pages.next();
- Page dstPage = lookupPage(srcPage.getPath());
- newPath = destination + getRealPath(srcPage.getPath());
- dstPage = pageManager.copyPage(srcPage, newPath);
- pageManager.updatePage(dstPage);
- }
- Iterator links = srcFolder.getLinks().iterator();
- while (links.hasNext())
- {
- Link srcLink = (Link) links.next();
- Link dstLink = lookupLink(srcLink.getPath());
- newPath = destination + getRealPath(srcLink.getPath());
- dstLink = pageManager.copyLink(srcLink, newPath);
- pageManager.updateLink(dstLink);
- }
- Iterator folders = srcFolder.getFolders().iterator();
- while (folders.hasNext())
- {
- Folder folder = (Folder) folders.next();
- newPath = destination + getRealPath(folder.getPath());
- importFolders(folder, userName, newPath);
- }
- return dstFolder;
- }
-
- private Page lookupPage(String path)
- {
- try
- {
- return castorPageManager.getPage(path);
- }
- catch (Exception e)
- {
- return null;
- }
- }
-
- private Link lookupLink(String path)
- {
- try
- {
- return castorPageManager.getLink(path);
- }
- catch (Exception e)
- {
- return null;
- }
- }
-
- private Folder lookupFolder(String path)
- {
- try
- {
- return castorPageManager.getFolder(path);
- }
- catch (Exception e)
- {
- return null;
- }
- }
-
- private String getRealPath(String path)
- {
- int index = path.lastIndexOf("/");
- if (index > 0)
- {
- return path.substring(index);
- }
- return path;
- }
-
- private boolean cleanUserFolder(String userName)
- {
- boolean success = false;
- synchronized (this)
- {
- String tmpdir = System.getProperty("java.io.tmpdir");
- String path = System.getProperty("file.separator");
- String folder = tmpdir + path + userName;
- File dir = new File(folder);
- if (dir.exists())
- {
- success = deleteDir(dir);
- }
- success = dir.mkdir();
- }
- return success;
- }
-
- private boolean deleteDir(File dir)
- {
- if (dir.exists())
- {
- File[] files = dir.listFiles();
- for (int i = 0; i < files.length; i++)
- {
- if (files[i].isDirectory())
- {
- deleteDir(files[i]);
- }
- else
- {
- files[i].delete();
- }
- }
- }
- return (dir.delete());
- }
+
protected class InformationTab extends BasePanel
{
@@ -674,59 +461,19 @@
}
}
- private DefaultMutableTreeNode getSelectedNode()
+
+ protected class SecurityTab extends BasePanel
{
- PortalTree tree = (PortalTree) getPage().get("siteTree");
- Collection selectedNodes = tree.getTreeState().getSelectedNodes();
- DefaultMutableTreeNode treeNode = null;
- if (selectedNodes != null)
- {
- Iterator selectedNode = selectedNodes.iterator();
- while (selectedNode.hasNext())
- {
- treeNode = (DefaultMutableTreeNode) selectedNode.next();
- break;
- }
- }
- return treeNode;
- }
+ private static final long serialVersionUID = 7948533482848224251L;
- private SiteTreeNode getUserSelectedNode()
- {
- SiteTreeNode nodeTree = null;
- PortalTree tree = (PortalTree) getPage().get("siteTree");
- Collection selectedNodes = tree.getTreeState().getSelectedNodes();
- DefaultMutableTreeNode treeNode = null;
- if (selectedNodes != null)
+ public SecurityTab(String id, JetspeedDocument document)
{
- Iterator selectedNode = selectedNodes.iterator();
- while (selectedNode.hasNext())
- {
- treeNode = (DefaultMutableTreeNode) selectedNode.next();
- break;
- }
- if (treeNode != null)
- {
- nodeTree = (SiteTreeNode) treeNode.getUserObject();
- }
- else
- {
- nodeTree = new SiteTreeNode("ROOT", "/", SiteTreeNode.FileType.Folder);
- }
- }
- return nodeTree;
- }
-
- protected class SecurityTab extends BasePanel
- {
- private static final long serialVersionUID = 7948533482848224251L;
-
- public SecurityTab(String id, JetspeedDocument document)
- {
- super(id, document);
- final ModalWindow metaDataModalWindow;
- add(metaDataModalWindow = new ModalWindow("modalwindow"));
- add(new ListView("metaData", new PropertyModel(this, "document.securityConstraints"))
+ super(id, document);
+ final ModalWindow metaDataModalWindow;
+ add(metaDataModalWindow = new ModalWindow("modalwindow"));
+ final WebMarkupContainer ajaxPanel = new WebMarkupContainer("basePanel");
+ ajaxPanel.setOutputMarkupId(true);
+ ajaxPanel.add(new ListView("metaData", new PropertyModel(this, "document.securityConstraints"))
{
public void populateItem(final ListItem listItem)
{
@@ -738,8 +485,9 @@
@Override
public void onClick(AjaxRequestTarget target)
{
- metaDataModalWindow.setContent(new SecurityTabWindowPanel(metaDataModalWindow.getContentId(), constraints));
+ metaDataModalWindow.setContent(new SecurityTabWindowPanel(metaDataModalWindow.getContentId(), constraints,ajaxPanel));
metaDataModalWindow.show(target);
+ target.addComponent(ajaxPanel);
}
});
listItem.add(new AjaxLink("delete")
@@ -748,6 +496,7 @@
public void onClick(AjaxRequestTarget target)
{
securityConstraintAction(REMOVE_ACTION, constraints, "");
+ target.addComponent(ajaxPanel);
}
}.add(new JavascriptEventConfirmation("onclick", "are you sure?")));
}
@@ -757,10 +506,11 @@
@Override
public void onClick(AjaxRequestTarget target)
{
- metaDataModalWindow.setContent(new SecurityTabWindowPanel(metaDataModalWindow.getContentId(), ""));
+ metaDataModalWindow.setContent(new SecurityTabWindowPanel(metaDataModalWindow.getContentId(), "",ajaxPanel));
metaDataModalWindow.show(target);
}
});
+ add(ajaxPanel);
}
}
@@ -772,8 +522,9 @@
{
super(id, doc);
final ModalWindow metaDataModalWindow;
+ final WebMarkupContainer ajaxPanel = new WebMarkupContainer("basePanel");
add(metaDataModalWindow = new ModalWindow("modalwindow"));
- ListView metaDataListView = new ListView("metaData", new PropertyModel(this, "document.metaData"))
+ final ListView metaDataListView = new ListView("metaData", new PropertyModel(this, "document.metaData"))
{
private static final long serialVersionUID = 1L;
@@ -788,7 +539,7 @@
@Override
public void onClick(AjaxRequestTarget target)
{
- metaDataModalWindow.setContent(new MetaDataPanel(metaDataModalWindow.getContentId(), getDocument(), metaData));
+ metaDataModalWindow.setContent(new MetaDataPanel(metaDataModalWindow.getContentId(), getDocument(), metaData, ajaxPanel));
metaDataModalWindow.show(target);
}
});
@@ -800,21 +551,25 @@
public void onClick(AjaxRequestTarget target)
{
metaDataAction(REMOVE_ACTION, metaData, null);
+ target.addComponent(ajaxPanel);
}
}.add(new JavascriptEventConfirmation("onclick", "are you sure?")));
}
};
- add(metaDataListView);
+ metaDataListView.setOutputMarkupId(true);
+ ajaxPanel.setOutputMarkupId(true);
+ ajaxPanel.add(metaDataListView);
add(new AjaxLink("new", new Model("New"))
{
@Override
public void onClick(AjaxRequestTarget target)
{
metaDataModalWindow.setContent(new MetaDataPanel(metaDataModalWindow.getContentId(), getDocument(),
- new JetspeedDocumentMetaData("", "", "")));
+ new JetspeedDocumentMetaData("", "", ""), ajaxPanel));
metaDataModalWindow.show(target);
}
});
+ add(ajaxPanel);
}
}
@@ -840,7 +595,7 @@
this.constraintName = constraintName;
}
- public SecurityTabWindowPanel(String id, String constrainName)
+ public SecurityTabWindowPanel(String id, final String constrainName, final WebMarkupContainer markUp)
{
super(id);
this.constraintName = constrainName;
@@ -853,8 +608,9 @@
@Override
protected void onSubmit(AjaxRequestTarget target, Form form)
{
- securityConstraintAction(SAVE_ACTION, getConstraintName(), null);
+ securityConstraintAction(SAVE_ACTION, getConstraintName(), constrainName);
((ModalWindow) SecurityTabWindowPanel.this.getParent()).close(target);
+ target.addComponent(markUp);
}
});
add(securityTabForm);
@@ -912,7 +668,7 @@
private JetspeedDocumentMetaData metaData;
private JetspeedDocumentMetaData oldMetaData;
- public MetaDataPanel(String id, JetspeedDocument document, JetspeedDocumentMetaData jmetaData)
+ public MetaDataPanel(String id, JetspeedDocument document, JetspeedDocumentMetaData jmetaData, final WebMarkupContainer markup)
{
super(id, document);
this.metaData = jmetaData;
@@ -938,118 +694,162 @@
{
metaDataAction(SAVE_ACTION, metaData, oldMetaData);
((ModalWindow) MetaDataPanel.this.getParent()).close(target);
+ target.addComponent(markup);
}
});
add(metaDataForm);
}
}
-
- private void securityConstraintAction(String action, String constraint, String oldConstraintName)
+ private class BasePanel extends Panel
{
- SiteTreeNode node = getUserSelectedNode();
- Node jetspeedNode = null;
- PageManager pageManager = getPageManager();
- try
+ private static final long serialVersionUID = -6442196391739061842L;
+ private JetspeedDocument document;
+
+ public BasePanel(String id, JetspeedDocument jDoc)
{
- if (node.getDocType() == SiteTreeNode.FileType.Folder)
+ super(id);
+ this.document = jDoc;
+ final FeedbackPanel feedback = new FeedbackPanel("feedback");
+ feedback.setOutputMarkupId(true);
+ add(feedback);
+ }
+
+ public BasePanel(String id)
+ {
+ super(id);
+ final FeedbackPanel feedback = new FeedbackPanel("feedback");
+ feedback.setOutputMarkupId(true);
+ add(feedback);
+ }
+
+ /**
+ * @return the document
+ */
+ public JetspeedDocument getDocument()
+ {
+ if (PortalSiteManager.this.document != document)
{
- jetspeedNode = (Node) pageManager.getFolder(node.getNodePath());
- if (action.equals(ADD_ACTION) || action.equals(SAVE_ACTION))
- {
- updateSecurityReference(constraint, oldConstraintName, "", jetspeedNode);
- }
- else if (action.equals(REMOVE_ACTION))
- {
- removeSecurityReference(constraint, jetspeedNode);
- }
- pageManager.updateFolder((Folder) jetspeedNode);
+ document = PortalSiteManager.this.document;
}
- else if (node.getDocType() == SiteTreeNode.FileType.Page)
+ return document;
+ }
+ }
+
+ private class AddFolderPanel extends Panel
+ {
+ private JetspeedDocument document;
+
+ public AddFolderPanel(String id)
+ {
+ super(id);
+ document = new JetspeedDocument();
+ Form infoForm = new Form("newForm");
+ Label nameLabel = new Label("name", "Name");
+ TextField nameField = new TextField("nameField", new PropertyModel(this, "document.name"));
+ infoForm.add(nameLabel);
+ infoForm.add(nameField);
+ Label titleLabel = new Label("title", "Title");
+ TextField titleField = new TextField("titleField", new PropertyModel(this, "document.title"));
+ infoForm.add(titleLabel);
+ infoForm.add(titleField);
+ Label shortTitleLabel = new Label("shortTitle", "ShortTitle");
+ TextField shortTitleField = new TextField("shortTitleField", new PropertyModel(this, "document.shortTitle"));
+ infoForm.add(shortTitleField);
+ infoForm.add(shortTitleLabel);
+ infoForm.add(new AjaxLink("close")
{
- jetspeedNode = (Node) getPageManager().getPage(node.getNodePath());
- if (action.equals(ADD_ACTION) || action.equals(SAVE_ACTION))
- {
- updateSecurityReference(constraint, oldConstraintName, "", jetspeedNode);
- }
- else if (action.equals(REMOVE_ACTION))
+ @Override
+ public void onClick(AjaxRequestTarget target)
{
- removeSecurityReference(constraint, jetspeedNode);
+ ((ModalWindow) AddFolderPanel.this.getParent()).close(target);
}
- pageManager.updatePage((Page) jetspeedNode);
- }
- else if (node.getDocType() == SiteTreeNode.FileType.Link)
+ });
+ infoForm.add(new AjaxButton("new")
{
- jetspeedNode = (Node) getPageManager().getLink(node.getNodePath());
- if (action.equals(ADD_ACTION) || action.equals(SAVE_ACTION))
- {
- updateSecurityReference(constraint, oldConstraintName, "", jetspeedNode);
- }
- else if (action.equals(REMOVE_ACTION))
+ @Override
+ protected void onSubmit(AjaxRequestTarget target, Form<?> form)
{
- removeSecurityReference(constraint, jetspeedNode);
+ SiteTreeNode treeNode = getUserSelectedNode();
+ DefaultMutableTreeNode node = getSelectedNode();
+ Folder folder = getPageManager().newFolder(treeNode.getNodePath() + "/" + document.getName());
+ folder.setTitle(document.getTitle());
+ folder.setShortTitle(document.getShortTitle());
+ try
+ {
+ getPageManager().updateFolder(folder);
+ node.insert(new DefaultMutableTreeNode(new SiteTreeNode(folder)), 0);
+ }
+ catch (FolderNotUpdatedException e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ catch (NodeException e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ ((ModalWindow) AddFolderPanel.this.getParent()).close(target);
}
- pageManager.updateLink((Link) jetspeedNode);
- }
+ });
+ add(infoForm);
}
- catch (Exception e)
+ }
+
+ private class AddPagePanel extends Panel
+ {
+ public AddPagePanel(String id)
{
- // TODO: handle exception
+ super(id);
}
}
- private void metaDataAction(String action, JetspeedDocumentMetaData metaData, JetspeedDocumentMetaData oldMetaData)
+ private class AddLinkPanel extends Panel
{
- SiteTreeNode node = getUserSelectedNode();
- Node jetspeedNode = null;
- PageManager pageManager = getPageManager();
- try
+ public AddLinkPanel(String id)
{
- if (node.getDocType() == SiteTreeNode.FileType.Folder)
+ super(id);
+ }
+ }
+ protected void controlTabs()
+ {
+ TabbedPanel tabs = (TabbedPanel) get("tabs");
+ tabs.getTabs().clear();
+ ITab tempTab;
+ tempTab = new AbstractTab(new Model("Information"))
+ {
+ public Panel getPanel(String panelId)
{
- jetspeedNode = (Node) pageManager.getFolder(node.getNodePath());
- if (action.equals(ADD_ACTION) || action.equals(SAVE_ACTION))
- {
- updateMetadata(metaData, oldMetaData, jetspeedNode);
- }
- else if (action.equals(REMOVE_ACTION))
- {
- removeMetadata(metaData, jetspeedNode);
- }
- pageManager.updateFolder((Folder) jetspeedNode);
+ return new InformationTab(panelId, document);
}
- else if (node.getDocType() == SiteTreeNode.FileType.Page)
+ };
+ tabs.getTabs().add(tempTab);
+ tempTab = new AbstractTab(new Model("Metadata"))
+ {
+ public Panel getPanel(String panelId)
{
- jetspeedNode = (Node) getPageManager().getPage(node.getNodePath());
- if (action.equals(ADD_ACTION) || action.equals(SAVE_ACTION))
- {
- updateMetadata(metaData, oldMetaData, jetspeedNode);
- }
- else if (action.equals(REMOVE_ACTION))
- {
- removeMetadata(metaData, jetspeedNode);
- }
- pageManager.updatePage((Page) jetspeedNode);
+ return new MetaDataTab(panelId, document);
}
- else if (node.getDocType() == SiteTreeNode.FileType.Link)
+ };
+ tabs.getTabs().add(tempTab);
+ tempTab = new AbstractTab(new Model("Security"))
+ {
+ public Panel getPanel(String panelId)
{
- jetspeedNode = (Node) getPageManager().getLink(node.getNodePath());
- if (action.equals(ADD_ACTION) || action.equals(SAVE_ACTION))
- {
- updateMetadata(metaData, oldMetaData, jetspeedNode);
- }
- else if (action.equals(REMOVE_ACTION))
- {
- removeMetadata(metaData, jetspeedNode);
- }
- pageManager.updateLink((Link) jetspeedNode);
+ return new SecurityTab(panelId, document);
}
- }
- catch (Exception e)
+ };
+ tabs.getTabs().add(tempTab);
+ tempTab = new AbstractTab(new Model("Import/Export"))
{
- // TODO: handle exception
- }
+ public Panel getPanel(String panelId)
+ {
+ return new ImportDataTab(panelId, document);
+ }
+ };
+ tabs.getTabs().add(tempTab);
+ tabs.setSelectedTab(0);
}
-
protected void insertMetadata(JetspeedDocumentMetaData metaData, Node node)
{
Locale locale = new Locale(metaData.getLanguage());
@@ -1062,6 +862,7 @@
if (cfields == null || cfields.size() == 0)
{
insertMetadata(metaData, node);
+ return;
}
boolean found = false;
Iterator fields = cfields.iterator();
@@ -1157,24 +958,257 @@
}
}
- private DefaultMutableTreeNode populateUserTree(String userName)
+ protected void insertSecurityReference(String name, String kind, Node node) throws AJAXException
{
- // DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode(new SiteTreeNode("ROOT", "/"));
- // List list = new ArrayList<SiteTreeNode>();
- // list.add(new SiteTreeNode("pages", "/pages"));
- // list.add(new SiteTreeNode("_users", "/_users"));
- // // rootNode.add(new DefaultMutableTreeNode(list));
- // add(rootNode, list);
- DefaultMutableTreeNode rootNode = null;
- rootNode = retrieveFolders("/_user/" + userName, rootNode);
- treeRoot = new DefaultTreeModel(rootNode);
- return rootNode;
+ if (node.getSecurityConstraints() == null)
+ {
+ SecurityConstraints cons = node.newSecurityConstraints();
+ node.setSecurityConstraints(cons);
+ }
+ if (kind.equals("Owner"))
+ {
+ node.getSecurityConstraints().setOwner(name);
+ }
+ else
+ {
+ List refs = node.getSecurityConstraints().getSecurityConstraintsRefs();
+ if (refs.contains(name))
+ return;
+ refs.add(name);
+ }
+ return;
}
- private DefaultMutableTreeNode populateTree()
+ protected void updateSecurityReference(String name, String oldName, String kind, Node node) throws AJAXException
{
- // DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode(new SiteTreeNode("ROOT", "/"));
- // List list = new ArrayList<SiteTreeNode>();
+ if (node.getSecurityConstraints() == null)
+ {
+ SecurityConstraints cons = node.newSecurityConstraints();
+ node.setSecurityConstraints(cons);
+ }
+ List refs = node.getSecurityConstraints().getSecurityConstraintsRefs();
+ if (refs == null || refs.size() == 0)
+ {
+ insertSecurityReference(name, kind, node);
+ }
+ boolean found = false;
+ if (kind.equals("Owner"))
+ {
+ node.getSecurityConstraints().setOwner(name);
+ found = true;
+ }
+ else
+ {
+ for (int ix = 0; ix < refs.size(); ix++)
+ {
+ String ref = (String) refs.get(ix);
+ if (areFieldsSame(ref, oldName))
+ {
+ refs.set(ix, name);
+ found = true;
+ break;
+ }
+ }
+ }
+ if (!found)
+ insertSecurityReference(name, kind, node);
+ return;
+ }
+
+ protected void removeSecurityReference(String name, Node node)
+ {
+ if (node.getSecurityConstraints() != null)
+ {
+ String kind = "";
+ if (kind.equals("Owner"))
+ {
+ node.getSecurityConstraints().setOwner(null);
+ }
+ else
+ {
+ List refs = node.getSecurityConstraints().getSecurityConstraintsRefs();
+ if (!refs.contains(name))
+ return; // nothing to do
+ refs.remove(name);
+ }
+ }
+ }
+
+
+ /**
+ * @return the userFolder
+ */
+ protected String getUserFolder()
+ {
+ return userFolder;
+ }
+
+ /**
+ * @param userFolder
+ * the userFolder to set
+ */
+ protected void setUserFolder(String userFolder)
+ {
+ this.userFolder = userFolder;
+ }
+
+
+ protected String determineRootFolder(RenderRequest request)
+ {
+ String jsroot = request.getParameter(JSROOT);
+ if (jsroot == null || jsroot.equals(""))
+ {
+ jsroot = request.getPreferences().getValue("root", "/_user/" + request.getRemoteUser() + "/");
+ }
+ // this.getContext(request).put(JSROOT, jsroot);
+ return jsroot;
+ }
+
+ protected String determineuserTree(RenderRequest request)
+ {
+ String userTree;
+ userTree = request.getPreferences().getValue("displayUserTree", "false");
+ return userTree;
+ }
+
+ protected Folder retrieveFolders(RenderRequest request, String root) throws PortletException
+ {
+ try
+ {
+ Folder folder = pageManager.getFolder(root);
+ return folder;
+ }
+ catch (Exception e)
+ {
+ // log.error("Failed to retrieve folders ", e);
+ e.printStackTrace();
+ throw new PortletException("Failed to get root folder");
+ }
+ }
+
+ private void securityConstraintAction(String action, String constraint, String oldConstraintName)
+ {
+ SiteTreeNode node = getUserSelectedNode();
+ Node jetspeedNode = null;
+ PageManager pageManager = getPageManager();
+ try
+ {
+ if (node.getDocType() == SiteTreeNode.FileType.Folder)
+ {
+ jetspeedNode = (Node) pageManager.getFolder(node.getNodePath());
+ if (action.equals(ADD_ACTION) || action.equals(SAVE_ACTION))
+ {
+ updateSecurityReference(constraint, oldConstraintName, "", jetspeedNode);
+ }
+ else if (action.equals(REMOVE_ACTION))
+ {
+ removeSecurityReference(constraint, jetspeedNode);
+ }
+ pageManager.updateFolder((Folder) jetspeedNode);
+ }
+ else if (node.getDocType() == SiteTreeNode.FileType.Page)
+ {
+ jetspeedNode = (Node) getPageManager().getPage(node.getNodePath());
+ if (action.equals(ADD_ACTION) || action.equals(SAVE_ACTION))
+ {
+ updateSecurityReference(constraint, oldConstraintName, "", jetspeedNode);
+ }
+ else if (action.equals(REMOVE_ACTION))
+ {
+ removeSecurityReference(constraint, jetspeedNode);
+ }
+ pageManager.updatePage((Page) jetspeedNode);
+ }
+ else if (node.getDocType() == SiteTreeNode.FileType.Link)
+ {
+ jetspeedNode = (Node) getPageManager().getLink(node.getNodePath());
+ if (action.equals(ADD_ACTION) || action.equals(SAVE_ACTION))
+ {
+ updateSecurityReference(constraint, oldConstraintName, "", jetspeedNode);
+ }
+ else if (action.equals(REMOVE_ACTION))
+ {
+ removeSecurityReference(constraint, jetspeedNode);
+ }
+ pageManager.updateLink((Link) jetspeedNode);
+ }
+ populateDocument(node);
+ }
+ catch (Exception e)
+ {
+ // TODO: handle exception
+ }
+ }
+ private void metaDataAction(String action, JetspeedDocumentMetaData metaData, JetspeedDocumentMetaData oldMetaData)
+ {
+ SiteTreeNode node = getUserSelectedNode();
+ Node jetspeedNode = null;
+ PageManager pageManager = getPageManager();
+ try
+ {
+ if (node.getDocType() == SiteTreeNode.FileType.Folder)
+ {
+ jetspeedNode = (Node) pageManager.getFolder(node.getNodePath());
+ if (action.equals(ADD_ACTION) || action.equals(SAVE_ACTION))
+ {
+ updateMetadata(metaData, oldMetaData, jetspeedNode);
+ }
+ else if (action.equals(REMOVE_ACTION))
+ {
+ removeMetadata(metaData, jetspeedNode);
+ }
+ pageManager.updateFolder((Folder) jetspeedNode);
+ }
+ else if (node.getDocType() == SiteTreeNode.FileType.Page)
+ {
+ jetspeedNode = (Node) getPageManager().getPage(node.getNodePath());
+ if (action.equals(ADD_ACTION) || action.equals(SAVE_ACTION))
+ {
+ updateMetadata(metaData, oldMetaData, jetspeedNode);
+ }
+ else if (action.equals(REMOVE_ACTION))
+ {
+ removeMetadata(metaData, jetspeedNode);
+ }
+ pageManager.updatePage((Page) jetspeedNode);
+ }
+ else if (node.getDocType() == SiteTreeNode.FileType.Link)
+ {
+ jetspeedNode = (Node) getPageManager().getLink(node.getNodePath());
+ if (action.equals(ADD_ACTION) || action.equals(SAVE_ACTION))
+ {
+ updateMetadata(metaData, oldMetaData, jetspeedNode);
+ }
+ else if (action.equals(REMOVE_ACTION))
+ {
+ removeMetadata(metaData, jetspeedNode);
+ }
+ pageManager.updateLink((Link) jetspeedNode);
+ }
+ populateDocument(node);
+ }
+ catch (Exception e)
+ {
+ // TODO: handle exception
+ }
+ }
+ private DefaultMutableTreeNode populateUserTree(String userName)
+ {
+ // DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode(new SiteTreeNode("ROOT", "/"));
+ // List list = new ArrayList<SiteTreeNode>();
+ // list.add(new SiteTreeNode("pages", "/pages"));
+ // list.add(new SiteTreeNode("_users", "/_users"));
+ // // rootNode.add(new DefaultMutableTreeNode(list));
+ // add(rootNode, list);
+ DefaultMutableTreeNode rootNode = null;
+ rootNode = retrieveFolders("/_user/" + userName, rootNode);
+ treeRoot = new DefaultTreeModel(rootNode);
+ return rootNode;
+ }
+ private DefaultMutableTreeNode populateTree()
+ {
+ // DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode(new SiteTreeNode("ROOT", "/"));
+ // List list = new ArrayList<SiteTreeNode>();
// list.add(new SiteTreeNode("pages", "/pages"));
// list.add(new SiteTreeNode("_users", "/_users"));
// // rootNode.add(new DefaultMutableTreeNode(list));
@@ -1184,7 +1218,6 @@
treeRoot = new DefaultTreeModel(rootNode);
return rootNode;
}
-
private DefaultMutableTreeNode retrieveFolders(String folderPath, DefaultMutableTreeNode rootNode)
{
try
@@ -1228,7 +1261,6 @@
}
return rootNode;
}
-
private List<String> getPortletDecorators()
{
if (portletDecorators == null)
@@ -1242,7 +1274,6 @@
}
return portletDecorators;
}
-
private List<String> getPageDecorators()
{
if (pageDecoraters == null)
@@ -1256,7 +1287,6 @@
}
return pageDecoraters;
}
-
private List<String> getThemes()
{
if (pageThemes == null)
@@ -1270,7 +1300,6 @@
}
return pageThemes;
}
-
private List<String> getTargetList()
{
if (targetList == null)
@@ -1283,7 +1312,6 @@
}
return targetList;
}
-
private List<String> getConstraintsDef()
{
if (constraintsDefs == null)
@@ -1304,7 +1332,6 @@
}
return constraintsDefs;
}
-
private void populateDocument(SiteTreeNode node)
{
try
@@ -1327,54 +1354,13 @@
e.printStackTrace();
}
}
-
- private void controlTabs()
+ private void excuteAction(JetspeedDocument document, String action)
{
- TabbedPanel tabs = (TabbedPanel) get("tabs");
- tabs.getTabs().clear();
- ITab tempTab;
- tempTab = new AbstractTab(new Model("Information"))
- {
- public Panel getPanel(String panelId)
- {
- return new InformationTab(panelId, document);
- }
- };
- tabs.getTabs().add(tempTab);
- tempTab = new AbstractTab(new Model("Metadata"))
- {
- public Panel getPanel(String panelId)
- {
- return new MetaDataTab(panelId, document);
- }
- };
- tabs.getTabs().add(tempTab);
- tempTab = new AbstractTab(new Model("Security"))
+ SiteTreeNode node = getUserSelectedNode();
+ PageManager pageManger = getPageManager();
+ if (node != null)
{
- public Panel getPanel(String panelId)
- {
- return new SecurityTab(panelId, document);
- }
- };
- tabs.getTabs().add(tempTab);
- tempTab = new AbstractTab(new Model("Import/Export"))
- {
- public Panel getPanel(String panelId)
- {
- return new ImportDataTab(panelId, document);
- }
- };
- tabs.getTabs().add(tempTab);
- tabs.setSelectedTab(0);
- }
-
- private void excuteAction(JetspeedDocument document, String action)
- {
- SiteTreeNode node = getUserSelectedNode();
- PageManager pageManger = getPageManager();
- if (node != null)
- {
- if (node.getDocType() == SiteTreeNode.FileType.Folder)
+ if (node.getDocType() == SiteTreeNode.FileType.Folder)
{
try
{
@@ -1485,112 +1471,14 @@
}
}
}
-
- private class BasePanel extends Panel
- {
- private static final long serialVersionUID = -6442196391739061842L;
- private JetspeedDocument document;
-
- public BasePanel(String id, JetspeedDocument jDoc)
- {
- super(id);
- this.document = jDoc;
- final FeedbackPanel feedback = new FeedbackPanel("feedback");
- feedback.setOutputMarkupId(true);
- add(feedback);
- }
-
- public BasePanel(String id)
- {
- super(id);
- final FeedbackPanel feedback = new FeedbackPanel("feedback");
- feedback.setOutputMarkupId(true);
- add(feedback);
- }
-
- /**
- * @return the document
- */
- public JetspeedDocument getDocument()
- {
- return document;
- }
- }
-
- protected void insertSecurityReference(String name, String kind, Node node) throws AJAXException
- {
- if (node.getSecurityConstraints() == null)
- {
- SecurityConstraints cons = node.newSecurityConstraints();
- node.setSecurityConstraints(cons);
- }
- if (kind.equals("Owner"))
- {
- node.getSecurityConstraints().setOwner(name);
- }
- else
- {
- List refs = node.getSecurityConstraints().getSecurityConstraintsRefs();
- if (refs.contains(name))
- return;
- refs.add(name);
- }
- return;
- }
-
- protected void updateSecurityReference(String name, String oldName, String kind, Node node) throws AJAXException
- {
- if (node.getSecurityConstraints() == null)
- {
- SecurityConstraints cons = node.newSecurityConstraints();
- node.setSecurityConstraints(cons);
- }
- List refs = node.getSecurityConstraints().getSecurityConstraintsRefs();
- if (refs == null || refs.size() == 0)
- {
- insertSecurityReference(name, kind, node);
- }
- boolean found = false;
- if (kind.equals("Owner"))
- {
- node.getSecurityConstraints().setOwner(name);
- found = true;
- }
- else
- {
- for (int ix = 0; ix < refs.size(); ix++)
- {
- String ref = (String) refs.get(ix);
- if (areFieldsSame(ref, oldName))
- {
- refs.set(ix, name);
- found = true;
- break;
- }
- }
- }
- if (!found)
- insertSecurityReference(name, kind, node);
- return;
- }
-
- protected void removeSecurityReference(String name, Node node)
+ private String fileExt(String fileName)
{
- if (node.getSecurityConstraints() != null)
+ int extIndex = fileName.lastIndexOf(".");
+ if (extIndex > 0)
{
- String kind = "";
- if (kind.equals("Owner"))
- {
- node.getSecurityConstraints().setOwner(null);
- }
- else
- {
- List refs = node.getSecurityConstraints().getSecurityConstraintsRefs();
- if (!refs.contains(name))
- return; // nothing to do
- refs.remove(name);
- }
+ return fileName.substring(extIndex + 1, fileName.length());
}
+ return "";
}
private String ExportObject(SiteTreeNode siteNode, boolean recursive, String userName)
@@ -1648,98 +1536,221 @@
}
return downloadPath;
}
+ private String getTempFolder(ActionRequest request)
+ {
+ String dir = System.getProperty("java.io.tmpdir");
+ String path = System.getProperty("file.separator");
+ File file = new File(dir + path + request.getUserPrincipal());
+ file.mkdir();
+ return dir + path + request.getUserPrincipal();
+ }
- /**
- * @return the userFolder
- */
- public String getUserFolder()
+ private static final void copyInputStream(InputStream in, OutputStream out) throws IOException
{
- return userFolder;
+ byte[] buffer = new byte[1024];
+ int len;
+ while ((len = in.read(buffer)) >= 0)
+ out.write(buffer, 0, len);
+ in.close();
+ out.close();
}
- /**
- * @param userFolder
- * the userFolder to set
- */
- public void setUserFolder(String userFolder)
+ private boolean unzipfile(String file, String destination, String sepreator)
{
- this.userFolder = userFolder;
+ Enumeration entries;
+ String filePath = "";
+ try
+ {
+ ZipFile zipFile = new ZipFile(destination + sepreator + file);
+ entries = zipFile.entries();
+ while (entries.hasMoreElements())
+ {
+ ZipEntry entry = (ZipEntry) entries.nextElement();
+ filePath = destination + sepreator + entry.getName();
+ createPath(filePath);
+ copyInputStream(zipFile.getInputStream(entry), new BufferedOutputStream(new FileOutputStream(filePath)));
+ }
+ zipFile.close();
+ return true;
+ }
+ catch (IOException ioe)
+ {
+ ioe.printStackTrace();
+ return false;
+ }
}
- private class AddFolderPanel extends Panel
+ private void createPath(String filePath)
{
- private JetspeedDocument document;
+ String parentPath = "";
+ File file = new File(filePath);
+ File parent = new File(file.getParent());
+ if (!parent.exists())
+ {
+ parentPath = parent.getPath();
+ createPath(parentPath);
+ parent.mkdir();
+ }
+ }
- public AddFolderPanel(String id)
+ private Folder importFolders(Folder srcFolder, String userName, String destination) throws JetspeedException
+ {
+ Folder dstFolder = lookupFolder(srcFolder.getPath());
+ dstFolder = pageManager.copyFolder(srcFolder, destination);
+ pageManager.updateFolder(dstFolder);
+ String newPath = "";
+ Iterator pages = srcFolder.getPages().iterator();
+ while (pages.hasNext())
{
- super(id);
- document = new JetspeedDocument();
- Form infoForm = new Form("newForm");
- Label nameLabel = new Label("name", "Name");
- TextField nameField = new TextField("nameField", new PropertyModel(this, "document.name"));
- infoForm.add(nameLabel);
- infoForm.add(nameField);
- Label titleLabel = new Label("title", "Title");
- TextField titleField = new TextField("titleField", new PropertyModel(this, "document.title"));
- infoForm.add(titleLabel);
- infoForm.add(titleField);
- Label shortTitleLabel = new Label("shortTitle", "ShortTitle");
- TextField shortTitleField = new TextField("shortTitleField", new PropertyModel(this, "document.shortTitle"));
- infoForm.add(shortTitleField);
- infoForm.add(shortTitleLabel);
- infoForm.add(new AjaxLink("close")
+ Page srcPage = (Page) pages.next();
+ Page dstPage = lookupPage(srcPage.getPath());
+ newPath = destination + getRealPath(srcPage.getPath());
+ dstPage = pageManager.copyPage(srcPage, newPath);
+ pageManager.updatePage(dstPage);
+ }
+ Iterator links = srcFolder.getLinks().iterator();
+ while (links.hasNext())
+ {
+ Link srcLink = (Link) links.next();
+ Link dstLink = lookupLink(srcLink.getPath());
+ newPath = destination + getRealPath(srcLink.getPath());
+ dstLink = pageManager.copyLink(srcLink, newPath);
+ pageManager.updateLink(dstLink);
+ }
+ Iterator folders = srcFolder.getFolders().iterator();
+ while (folders.hasNext())
+ {
+ Folder folder = (Folder) folders.next();
+ newPath = destination + getRealPath(folder.getPath());
+ importFolders(folder, userName, newPath);
+ }
+ return dstFolder;
+ }
+
+ private Page lookupPage(String path)
+ {
+ try
+ {
+ return castorPageManager.getPage(path);
+ }
+ catch (Exception e)
+ {
+ return null;
+ }
+ }
+
+ private Link lookupLink(String path)
+ {
+ try
+ {
+ return castorPageManager.getLink(path);
+ }
+ catch (Exception e)
+ {
+ return null;
+ }
+ }
+
+ private Folder lookupFolder(String path)
+ {
+ try
+ {
+ return castorPageManager.getFolder(path);
+ }
+ catch (Exception e)
+ {
+ return null;
+ }
+ }
+
+ private String getRealPath(String path)
+ {
+ int index = path.lastIndexOf("/");
+ if (index > 0)
+ {
+ return path.substring(index);
+ }
+ return path;
+ }
+
+ private boolean cleanUserFolder(String userName)
+ {
+ boolean success = false;
+ synchronized (this)
+ {
+ String tmpdir = System.getProperty("java.io.tmpdir");
+ String path = System.getProperty("file.separator");
+ String folder = tmpdir + path + userName;
+ File dir = new File(folder);
+ if (dir.exists())
{
- @Override
- public void onClick(AjaxRequestTarget target)
+ success = deleteDir(dir);
+ }
+ success = dir.mkdir();
+ }
+ return success;
+ }
+
+ private boolean deleteDir(File dir)
+ {
+ if (dir.exists())
+ {
+ File[] files = dir.listFiles();
+ for (int i = 0; i < files.length; i++)
+ {
+ if (files[i].isDirectory())
{
- ((ModalWindow) AddFolderPanel.this.getParent()).close(target);
+ deleteDir(files[i]);
}
- });
- infoForm.add(new AjaxButton("new")
- {
- @Override
- protected void onSubmit(AjaxRequestTarget target, Form<?> form)
+ else
{
- SiteTreeNode treeNode = getUserSelectedNode();
- DefaultMutableTreeNode node = getSelectedNode();
- Folder folder = getPageManager().newFolder(treeNode.getNodePath() + "/" + document.getName());
- folder.setTitle(document.getTitle());
- folder.setShortTitle(document.getShortTitle());
- try
- {
- getPageManager().updateFolder(folder);
- node.insert(new DefaultMutableTreeNode(new SiteTreeNode(folder)), 0);
- }
- catch (FolderNotUpdatedException e)
- {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- catch (NodeException e)
- {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- ((ModalWindow) AddFolderPanel.this.getParent()).close(target);
+ files[i].delete();
}
- });
- add(infoForm);
+ }
}
+ return (dir.delete());
}
-
- private class AddPagePanel extends Panel
+ private DefaultMutableTreeNode getSelectedNode()
{
- public AddPagePanel(String id)
+ PortalTree tree = (PortalTree) getPage().get("siteTree");
+ Collection selectedNodes = tree.getTreeState().getSelectedNodes();
+ DefaultMutableTreeNode treeNode = null;
+ if (selectedNodes != null)
{
- super(id);
+ Iterator selectedNode = selectedNodes.iterator();
+ while (selectedNode.hasNext())
+ {
+ treeNode = (DefaultMutableTreeNode) selectedNode.next();
+ break;
+ }
}
+ return treeNode;
}
- private class AddLinkPanel extends Panel
+ private SiteTreeNode getUserSelectedNode()
{
- public AddLinkPanel(String id)
+ SiteTreeNode nodeTree = null;
+ PortalTree tree = (PortalTree) getPage().get("siteTree");
+ Collection selectedNodes = tree.getTreeState().getSelectedNodes();
+ DefaultMutableTreeNode treeNode = null;
+ if (selectedNodes != null)
{
- super(id);
+ Iterator selectedNode = selectedNodes.iterator();
+ while (selectedNode.hasNext())
+ {
+ treeNode = (DefaultMutableTreeNode) selectedNode.next();
+ break;
+ }
+ if (treeNode != null)
+ {
+ nodeTree = (SiteTreeNode) treeNode.getUserObject();
+ }
+ else
+ {
+ nodeTree = new SiteTreeNode("ROOT", "/", SiteTreeNode.FileType.Folder);
+ }
}
+ return nodeTree;
}
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org