package com.liferay.portal.editor.fckeditor.receiver.impl; import java.io.File; import java.util.Date; import java.util.List; import java.util.StringTokenizer; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import com.liferay.portal.editor.fckeditor.command.CommandArgument; import com.liferay.portal.editor.fckeditor.exception.FCKException; import com.liferay.portal.model.Group; import com.liferay.portal.model.Layout; import com.liferay.portal.service.spring.GroupLocalServiceUtil; import com.liferay.portal.service.spring.GroupServiceUtil; import com.liferay.portal.service.spring.LayoutLocalServiceUtil; import com.liferay.portal.util.PortletKeys; import com.liferay.portlet.LiferayWindowState; import com.liferay.portlet.PortletURLImpl; import com.liferay.portlet.PortletURLUtil; import com.liferay.portlet.journal.model.JournalArticle; import com.liferay.portlet.journal.service.spring.JournalArticleLocalServiceUtil; import com.liferay.util.StringPool; public class ArticleCommandReceiver extends BaseCommandReceiver { protected String createFolder(CommandArgument arg) { return "0"; } protected String fileUpload(CommandArgument arg, String fileName, File file, String extension) { return "0"; } protected void getFolders(CommandArgument arg, Node root, Document doc) { try { _getFolders(arg, root, doc); } catch (Exception e) { throw new FCKException(e); } } protected void getFoldersAndFiles( CommandArgument arg, Node root, Document doc) { try { if(arg.getCurrentFolder().equals("/")){ _getFolders(arg, root, doc); }else{ _getFiles(arg, root, doc); } } catch (Exception e) { throw new FCKException(e); } } private String _getGroupName(String folderName) { if (folderName.equals("/")) { return StringPool.BLANK; } else { StringTokenizer st = new StringTokenizer(folderName, "/"); return st.nextToken(); } } private void _getFolders(CommandArgument arg, Node root, Document doc) throws Exception { Element foldersEl = doc.createElement("Folders"); root.appendChild(foldersEl); List groups = GroupLocalServiceUtil.getUserGroups(arg.getUserId()); for (int i = 0; i < groups.size(); ++i) { Group group = (Group)groups.get(i); System.out.println("*************************group Name (" + group.getName() + " )***************************"); Element folderEl = doc.createElement("Folder"); folderEl.setAttribute("name", group.getName()); foldersEl.appendChild(folderEl); } } private void _getFiles(CommandArgument arg, Node root, Document doc) throws Exception { Element filesEl = doc.createElement("Files"); root.appendChild(filesEl); System.out.println("*************************arg.getCurrentFolder() (" + arg.getCurrentFolder() + " )***************************"); String groupName = _getGroupName(arg.getCurrentFolder()); System.out.println("*************************groupName (" + groupName + " )***************************"); Group group = GroupServiceUtil.getGroup(arg.getCompanyId(), groupName); List journalArticlesList = JournalArticleLocalServiceUtil.getArticles(group.getGroupId()); for (int i = 0; i < journalArticlesList.size(); i++) { JournalArticle article = (JournalArticle)journalArticlesList.get(i); if (article.isApproved() && !(article.isExpired()) && article.getDisplayDate().before(new Date ())){ Element fileEl = doc.createElement("File"); fileEl.setAttribute("name", article.getTitle()); fileEl.setAttribute("size", article.getType()); fileEl.setAttribute("desc", article.getTitle()); StringBuffer url = new StringBuffer(arg.getThemeDisplay().getPathMain()); url.append("/journal_articles/view_article_content?articleId="); url.append(article.getArticleId()); url.append("&version="); url.append(article.getVersion()); fileEl.setAttribute("url", url.toString()); filesEl.appendChild(fileEl); } } } }