1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * This library is free software; you can redistribute it and/or modify it under
5    * the terms of the GNU Lesser General Public License as published by the Free
6    * Software Foundation; either version 2.1 of the License, or (at your option)
7    * any later version.
8    *
9    * This library is distributed in the hope that it will be useful, but WITHOUT
10   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11   * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12   * details.
13   */
14  
15  package com.liferay.portlet.navigation.action;
16  
17  import com.liferay.portal.kernel.portlet.BaseConfigurationAction;
18  import com.liferay.portal.kernel.servlet.SessionMessages;
19  import com.liferay.portal.kernel.util.Constants;
20  import com.liferay.portal.kernel.util.ParamUtil;
21  import com.liferay.portlet.PortletPreferencesFactoryUtil;
22  
23  import javax.portlet.ActionRequest;
24  import javax.portlet.ActionResponse;
25  import javax.portlet.PortletConfig;
26  import javax.portlet.PortletPreferences;
27  import javax.portlet.RenderRequest;
28  import javax.portlet.RenderResponse;
29  
30  /**
31   * <a href="ConfigurationActionImpl.java.html"><b><i>View Source</i></b></a>
32   *
33   * @author Brian Wing Shun Chan
34   */
35  public class ConfigurationActionImpl extends BaseConfigurationAction {
36  
37      public void processAction(
38              PortletConfig portletConfig, ActionRequest actionRequest,
39              ActionResponse actionResponse)
40          throws Exception {
41  
42          String cmd = ParamUtil.getString(actionRequest, Constants.CMD);
43  
44          if (!cmd.equals(Constants.UPDATE)) {
45              return;
46          }
47  
48          String displayStyle = ParamUtil.getString(
49              actionRequest, "displayStyle");
50          String bulletStyle = ParamUtil.getString(actionRequest, "bulletStyle");
51          String headerType = ParamUtil.getString(actionRequest, "headerType");
52          String rootLayoutType = ParamUtil.getString(
53              actionRequest, "rootLayoutType");
54          int rootLayoutLevel = ParamUtil.getInteger(
55              actionRequest, "rootLayoutLevel");
56          String includedLayouts = ParamUtil.getString(
57              actionRequest, "includedLayouts");
58          boolean nestedChildren = ParamUtil.getBoolean(
59              actionRequest, "nestedChildren");
60  
61          String portletResource = ParamUtil.getString(
62              actionRequest, "portletResource");
63  
64          PortletPreferences preferences =
65              PortletPreferencesFactoryUtil.getPortletSetup(
66                  actionRequest, portletResource);
67  
68          preferences.setValue("display-style", displayStyle);
69          preferences.setValue("bullet-style", bulletStyle);
70  
71          if (displayStyle.equals("[custom]")) {
72              preferences.setValue("header-type", headerType);
73              preferences.setValue("root-layout-type", rootLayoutType);
74              preferences.setValue(
75                  "root-layout-level", String.valueOf(rootLayoutLevel));
76              preferences.setValue("included-layouts", includedLayouts);
77              preferences.setValue(
78                  "nested-children", String.valueOf(nestedChildren));
79          }
80  
81          preferences.store();
82  
83          SessionMessages.add(
84              actionRequest, portletConfig.getPortletName() + ".doConfigure");
85      }
86  
87      public String render(
88              PortletConfig portletConfig, RenderRequest renderRequest,
89              RenderResponse renderResponse)
90          throws Exception {
91  
92          return "/html/portlet/navigation/configuration.jsp";
93      }
94  
95  }