KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > portlets > folders > action > OrderMenuAction


1 package com.dotmarketing.portlets.folders.action;
2
3 import java.util.ArrayList JavaDoc;
4 import java.util.Iterator JavaDoc;
5 import javax.portlet.ActionRequest;
6 import javax.portlet.ActionResponse;
7 import javax.portlet.PortletConfig;
8 import org.apache.struts.action.ActionForm;
9 import org.apache.struts.action.ActionMapping;
10 import com.dotmarketing.beans.Inode;
11 import com.dotmarketing.beans.WebAsset;
12 import com.dotmarketing.factories.InodeFactory;
13 import com.dotmarketing.menubuilders.RefreshMenus;
14 import com.dotmarketing.portal.struts.DotPortletAction;
15 import com.dotmarketing.portlets.folders.factories.FolderFactory;
16 import com.dotmarketing.portlets.folders.model.Folder;
17 import com.dotmarketing.util.Config;
18 import com.dotmarketing.util.WebKeys;
19 import com.liferay.portal.struts.ActionException;
20 import com.liferay.util.servlet.SessionMessages;
21
22 /**
23  * @author Maria
24  */

25
26 public class OrderMenuAction extends DotPortletAction {
27     
28     public static boolean debug = false;
29     
30     public void processAction(
31              ActionMapping mapping, ActionForm form, PortletConfig config,
32              ActionRequest req, ActionResponse res)
33          throws Exception JavaDoc {
34         
35         try {
36             String JavaDoc cmd = req.getParameter("cmd");
37             
38             if (((cmd != null) && cmd.equals("generatemenu"))) {
39                 //regenerates menu files
40
RefreshMenus.deleteMenus();
41                 _sendToReferral(req,res,req.getParameter("referer"));
42                 return;
43             }
44             if (((cmd != null) && cmd.equals(com.dotmarketing.util.Constants.REORDER))) {
45                 //prepublish
46
_orderMenuItems(req,res,config,form);
47             }
48             _getMenuItems(req,res,config,form);
49             setForward(req,"portlet.ext.folders.order_menu");
50             
51         } catch (ActionException ae) {
52             _handleException(ae,req);
53         }
54         
55     }
56
57     private void _getMenuItems(ActionRequest req, ActionResponse res,PortletConfig config,ActionForm form)
58     throws Exception JavaDoc {
59
60         String JavaDoc path = req.getParameter("path");
61         String JavaDoc hostId = req.getParameter("hostId");
62         
63         //Host host = UtilMethods.getHostFromSession(req);
64
if (!path.equals("/")) {
65         
66             Folder folder = FolderFactory.getFolderByPath(path, Long.parseLong(hostId));
67
68             //gets menu items for this folder
69
java.util.List JavaDoc itemsList = FolderFactory.getMenuItems(folder);
70         
71             req.setAttribute(WebKeys.MENU_ITEMS,itemsList);
72             req.setAttribute(WebKeys.MENU_MAIN_FOLDER,folder);
73         }
74         else {
75             String JavaDoc condition = "show_on_menu = " + com.dotmarketing.db.DbConnectionFactory.getDBTrue();
76             java.util.List JavaDoc itemsList = FolderFactory.getFoldersByParentAndCondition(Long.parseLong(hostId),condition);
77             req.setAttribute(WebKeys.MENU_ITEMS,itemsList);
78         }
79     }
80
81     private void _orderMenuItems(ActionRequest req, ActionResponse res,PortletConfig config,ActionForm form)
82     throws Exception JavaDoc {
83
84         //gets item inode that's being moved
85
String JavaDoc itemInode = req.getParameter("item");
86
87         //gets folder object from folderParent inode
88
Folder folder = (Folder) InodeFactory.getInode(req.getParameter("folderParent"),Folder.class);
89         
90         java.util.List JavaDoc itemsList = new ArrayList JavaDoc();
91
92         if (folder.getInode()!=0) {
93             //gets menu items for this folder parent
94
itemsList = FolderFactory.getMenuItems(folder);
95         }
96         else {
97             //if i dont have a parent folder im ordering all the folder on the root for this folder
98
String JavaDoc condition = "show_on_menu = " + com.dotmarketing.db.DbConnectionFactory.getDBTrue();
99             String JavaDoc hostId = req.getParameter("hostId");
100             itemsList = FolderFactory.getFoldersByParentAndCondition(Long.parseLong(hostId),condition);
101         }
102
103         int increment = 0;
104         
105         if (req.getParameter("move").equals("up")) {
106             //if it's up
107
increment = -3;
108         }
109         else {
110             //if it's down
111
increment = 3;
112         }
113         
114         Iterator JavaDoc i = itemsList.iterator();
115         int x = 0;
116         while (i.hasNext()) {
117
118             Inode item = (Inode) i.next();
119             
120             
121             if (item.getInode() == Integer.parseInt(itemInode)) {
122                 //this is the item to move
123
if (item instanceof Folder) {
124                     ((Folder)item).setSortOrder(x + increment);
125                 }
126                 else {
127                     ((WebAsset)item).setSortOrder(x + increment);
128                 }
129             }
130             else {
131                 //all other items
132
if (item instanceof Folder) {
133                     ((Folder)item).setSortOrder(x);
134                 }
135                 else {
136                     ((WebAsset)item).setSortOrder(x);
137                 }
138             }
139             x = x + 2;
140         }
141         
142         SessionMessages.add(req, "message", "message.menu.reordered");
143         
144     }
145
146 }
147
Popular Tags