Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/ParameterPanel.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/ParameterPanel.java?rev=769862&r1=769861&r2=769862&view=diff ============================================================================== --- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/ParameterPanel.java (original) +++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/ParameterPanel.java Wed Apr 29 18:26:19 2009 @@ -19,13 +19,19 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Locale; +import org.apache.jetspeed.components.portletregistry.FailedToStorePortletDefinitionException; +import org.apache.jetspeed.components.portletregistry.PortletRegistry; import org.apache.jetspeed.components.portletregistry.RegistryException; import org.apache.jetspeed.om.portlet.Description; import org.apache.jetspeed.om.portlet.InitParam; +import org.apache.jetspeed.om.portlet.PortletApplication; import org.apache.jetspeed.om.portlet.PortletDefinition; -import org.apache.jetspeed.portlets.prm.model.DescriptionModel; -import org.apache.jetspeed.portlets.prm.model.PortletModel; +import org.apache.jetspeed.portlets.JetspeedServiceLocator; +import org.apache.jetspeed.portlets.prm.DescriptionBean; +import org.apache.jetspeed.portlets.prm.PortletApplicationNodeBean; +import org.apache.jetspeed.portlets.wicket.AbstractAdminWebApplication; import org.apache.jetspeed.portlets.wicket.component.editor.EditorTemplate; import org.apache.jetspeed.portlets.wicket.component.editor.LocalizedDescriptionEditor; import org.apache.wicket.markup.html.form.Button; @@ -40,11 +46,18 @@ public class ParameterPanel extends EditorTemplate<InitParam> { - private String newName, newLocale, newDescription, newValue; + private static final long serialVersionUID = 1L; + + private PortletApplicationNodeBean paNodeBean; + private String newName; + private String newLocale; + private String newDescription; + private String newValue; - public ParameterPanel(String id, PortletModel model) + public ParameterPanel(String id, PortletApplicationNodeBean paNodeBean) { - super(id, model); + super(id); + this.paNodeBean = paNodeBean; } @Override @@ -68,44 +81,62 @@ fragment.add(new TextField<String>("name", new PropertyModel<String>(model, "name"))); fragment.add(new TextField<String>("value", new PropertyModel<String>(model, "value"))); - fragment.add(new LocalizedDescriptionEditor("localizationEditor", getDefaultModel()) + JetspeedServiceLocator locator = ((AbstractAdminWebApplication) getApplication()).getServiceLocator(); + + fragment.add(new LocalizedDescriptionEditor("localizationEditor", locator, paNodeBean, model.getParamName()) { @Override - public IDataProvider<DescriptionModel> getDataProvider() + public IDataProvider<DescriptionBean> getDataProvider() { - PortletDefinition portletModel = (PortletDefinition) getDefaultModelObject(); - final InitParam param = portletModel.getInitParam(model.getParamName()); + PortletRegistry registry = ((AbstractAdminWebApplication) getApplication()).getServiceLocator().getPortletRegistry(); + PortletApplication app = registry.getPortletApplication(paNodeBean.getApplicationName()); + PortletDefinition def = app.getPortlet(paNodeBean.getName()); - List<DescriptionModel> list = new ArrayList<DescriptionModel>(); + final InitParam param = def.getInitParam(model.getParamName()); - Iterator<Description> desc = param.getDescriptions().iterator(); - while (desc.hasNext()) + List<DescriptionBean> list = new ArrayList<DescriptionBean>(); + + for (Description description : param.getDescriptions()) { - list.add(new DescriptionModel(param, desc.next())); + list.add(new DescriptionBean(description)); } - return new ListDataProvider<DescriptionModel>(list); + return new ListDataProvider<DescriptionBean>(list); } @Override protected Button saveButton(String componentId) { - final PortletModel portlet = (PortletModel) getDefaultModel(); return new Button(componentId) { @Override public void onSubmit() { + PortletRegistry registry = ((AbstractAdminWebApplication) getApplication()).getServiceLocator().getPortletRegistry(); + PortletApplication app = registry.getPortletApplication(paNodeBean.getApplicationName()); + PortletDefinition def = app.getPortlet(paNodeBean.getName()); + if (newLocale != null && newDescription != null) { - model.addDescription(newLocale).setDescription(newDescription); + Locale locale = new Locale(newLocale); + Description description = def.getDescription(locale); + + if (description == null) + { + description = def.addDescription(newLocale); + } + + description.setDescription(newDescription); + + newLocale = null; + newDescription = null; } try { - portlet.getParent().getServiceLocator().getPortletRegistry().savePortletDefinition(portlet.getObject()); + registry.savePortletDefinition(def); } catch (RegistryException e) { @@ -117,11 +148,38 @@ } @Override - public void delete(IModel<DescriptionModel>[] fields) + public void delete(IModel<DescriptionBean>[] fields) { - for (IModel<DescriptionModel> field : fields) + try { - field.getObject().remove(); + PortletRegistry registry = ((AbstractAdminWebApplication) getApplication()).getServiceLocator().getPortletRegistry(); + PortletApplication app = registry.getPortletApplication(paNodeBean.getApplicationName()); + PortletDefinition def = app.getPortlet(paNodeBean.getName()); + InitParam initParam = def.getInitParam(name); + + if (initParam != null) + { + for (Iterator<Description> it = initParam.getDescriptions().iterator(); it.hasNext(); ) + { + Description description = it.next(); + + for (IModel<DescriptionBean> descriptionBeanModel : fields) + { + if (descriptionBeanModel.getObject().getLocale().equals(description.getLocale())) + { + it.remove(); + break; + } + } + } + + registry.savePortletDefinition(def); + } + } + catch (FailedToStorePortletDefinitionException e) + { + // TODO Auto-generated catch block + e.printStackTrace(); } } }); @@ -131,12 +189,16 @@ @Override public void delete(IModel<InitParam>[] fields) { - PortletModel portletModel = (PortletModel) getDefaultModel(); + PortletRegistry registry = ((AbstractAdminWebApplication) getApplication()).getServiceLocator().getPortletRegistry(); + PortletApplication app = registry.getPortletApplication(paNodeBean.getApplicationName()); + PortletDefinition def = app.getPortlet(paNodeBean.getName()); - Iterator<InitParam> it = portletModel.getObject().getInitParams().iterator(); + Iterator<InitParam> it = def.getInitParams().iterator(); while (it.hasNext()) { - String id = it.next().getParamName(); + InitParam initParam = it.next(); + String id = initParam.getParamName(); + for (IModel<InitParam> field : fields) { if (field.getObject().getParamName().equals(id)) @@ -149,7 +211,7 @@ try { - portletModel.getParent().getServiceLocator().getPortletRegistry().savePortletDefinition(portletModel.getObject()); + registry.savePortletDefinition(def); } catch (RegistryException e) { @@ -162,7 +224,10 @@ @Override public Iterator<IModel<InitParam>> getItemModels() { - PortletDefinition def = (PortletDefinition) getDefaultModelObject(); + PortletRegistry registry = ((AbstractAdminWebApplication) getApplication()).getServiceLocator().getPortletRegistry(); + PortletApplication app = registry.getPortletApplication(paNodeBean.getApplicationName()); + PortletDefinition def = app.getPortlet(paNodeBean.getName()); + return new ModelIteratorAdapter<InitParam>(def.getInitParams().iterator()) { @@ -184,17 +249,18 @@ @Override protected Button saveButton(String componentId) { - final PortletModel portletModel = (PortletModel) getDefaultModel(); return new Button(componentId) { - @Override public void onSubmit() { + PortletRegistry registry = ((AbstractAdminWebApplication) getApplication()).getServiceLocator().getPortletRegistry(); + PortletApplication app = registry.getPortletApplication(paNodeBean.getApplicationName()); + PortletDefinition def = app.getPortlet(paNodeBean.getName()); if (newName != null && newValue != null) { - InitParam param = portletModel.getObject().addInitParam(newName); + InitParam param = def.addInitParam(newName); param.setParamValue(newValue); if (newLocale != null && newDescription != null) @@ -202,11 +268,16 @@ Description desc = param.addDescription(newLocale); desc.setDescription(newDescription); } + + newName = null; + newValue = null; + newLocale = null; + newDescription = null; } try { - portletModel.getParent().getServiceLocator().getPortletRegistry().savePortletDefinition(portletModel.getObject()); + registry.savePortletDefinition(def); } catch (RegistryException e) {
Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/PortletDetailsView.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/PortletDetailsView.java?rev=769862&r1=769861&r2=769862&view=diff ============================================================================== --- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/PortletDetailsView.java (original) +++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/PortletDetailsView.java Wed Apr 29 18:26:19 2009 @@ -16,16 +16,13 @@ */ package org.apache.jetspeed.portlets.prm.portlet; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; +import java.util.ArrayList; +import java.util.List; import org.apache.jetspeed.portlets.AdminPortletWebPage; -import org.apache.jetspeed.portlets.prm.MetadataPanel; import org.apache.jetspeed.portlets.prm.ApplicationsListApplication; -import org.apache.jetspeed.portlets.prm.PortletDefinitionBean; -import org.apache.jetspeed.portlets.prm.model.ApplicationModel; -import org.apache.jetspeed.portlets.prm.model.PortletModel; +import org.apache.jetspeed.portlets.prm.MetadataPanel; +import org.apache.jetspeed.portlets.prm.PortletApplicationNodeBean; import org.apache.portals.messaging.PortletMessaging; import org.apache.wicket.extensions.markup.html.tabs.AbstractTab; import org.apache.wicket.extensions.markup.html.tabs.ITab; @@ -36,29 +33,25 @@ public class PortletDetailsView extends AdminPortletWebPage { - private Map<String, ITab> tabs; private String title; private boolean dirty = true; - private PortletModel portletDefinitionModel; + private PortletApplicationNodeBean paNodeBean; public PortletDetailsView() { - tabs = new HashMap<String, ITab>(); - this.title = getPortletName(); } @Override protected void onBeforeRender() { - PortletDefinitionBean portletDefinitionBean = (PortletDefinitionBean) PortletMessaging.consume(getPortletRequest(), + PortletApplicationNodeBean receivedPANodeBean = (PortletApplicationNodeBean) PortletMessaging.consume(getPortletRequest(), ApplicationsListApplication.PRM_TOPIC, ApplicationsListApplication.SELECTED_PORTLET_EVENT); - if (portletDefinitionBean != null) + if (receivedPANodeBean != null) { - this.portletDefinitionModel = new PortletModel(new ApplicationModel(getServiceLocator(), portletDefinitionBean.getAppName()), - portletDefinitionBean.getName()); - this.title = getPortletName() + " - " + portletDefinitionBean.getName(); + paNodeBean = receivedPANodeBean; + this.title = getPortletName() + " - " + paNodeBean.getName(); this.dirty = true; } @@ -75,7 +68,7 @@ private void constructLayout() { - if (portletDefinitionModel == null) + if (paNodeBean == null) { removeAll(); add(new Label("status", "No application selected")); @@ -83,54 +76,51 @@ } else { + addOrReplace(new Label("status", "")); - if (get("status") != null) - { - remove("status"); - } - add(new Label("status", "")); - + List<ITab> tabs = new ArrayList<ITab>(); + ITab detailsTab = new AbstractTab(new Model("Details")) { public Panel getPanel(String panelId) { - return new DetailsPanel(panelId, portletDefinitionModel); + return new DetailsPanel(panelId, paNodeBean); } }; - tabs.put("details", detailsTab); + tabs.add(detailsTab); - ITab metadataTab = new AbstractTab(new Model("Metadata")) + ITab parametersTab = new AbstractTab(new Model("Parameters")) { public Panel getPanel(String panelId) { - return new MetadataPanel(panelId, portletDefinitionModel); + return new ParameterPanel(panelId, paNodeBean); } }; - tabs.put("metadata", metadataTab); + tabs.add(parametersTab); ITab preferencesTab = new AbstractTab(new Model("Preferences")) { public Panel getPanel(String panelId) { - return new PreferencePanel(panelId, portletDefinitionModel); + return new PreferencePanel(panelId, paNodeBean); } }; - tabs.put("preferences", preferencesTab); + tabs.add(preferencesTab); - ITab parametersTab = new AbstractTab(new Model("Parameters")) + ITab metadataTab = new AbstractTab(new Model("Metadata")) { public Panel getPanel(String panelId) { - return new ParameterPanel(panelId, portletDefinitionModel); + return new MetadataPanel(panelId, paNodeBean); } }; - tabs.put("parameters", parametersTab); + tabs.add(metadataTab); - TabbedPanel tabbedPanel = new TabbedPanel("tabs", Arrays.asList(tabs.values().toArray(new ITab[tabs.values().size()]))); + TabbedPanel tabbedPanel = new TabbedPanel("tabs", tabs); if (get("tabs") == null) { tabbedPanel.setSelectedTab(0); @@ -146,7 +136,7 @@ } } - add(tabbedPanel); + addOrReplace(tabbedPanel); } } } Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/PreferencePanel.html URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/PreferencePanel.html?rev=769862&r1=769861&r2=769862&view=diff ============================================================================== --- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/PreferencePanel.html (original) +++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/PreferencePanel.html Wed Apr 29 18:26:19 2009 @@ -27,7 +27,7 @@ <th class="portlet-section-subheader">Name</th> <th class="portlet-section-subheader">Value</th> <wicket:fragment wicket:id="itemFragment"> - <td class="portlet-section-body"><input type="text" wicket:id="name"/></td> + <td class="portlet-section-body"><input type="text" wicket:id="name" readonly="true"/></td> <td class="portlet-section-body" wicket:id="values"> <input type="text" wicket:id="value"/> </td> Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/PreferencePanel.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/PreferencePanel.java?rev=769862&r1=769861&r2=769862&view=diff ============================================================================== --- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/PreferencePanel.java (original) +++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/PreferencePanel.java Wed Apr 29 18:26:19 2009 @@ -17,11 +17,15 @@ package org.apache.jetspeed.portlets.prm.portlet; import java.util.Iterator; +import java.util.List; +import org.apache.jetspeed.components.portletregistry.PortletRegistry; import org.apache.jetspeed.components.portletregistry.RegistryException; +import org.apache.jetspeed.om.portlet.PortletApplication; import org.apache.jetspeed.om.portlet.PortletDefinition; import org.apache.jetspeed.om.portlet.Preference; -import org.apache.jetspeed.portlets.prm.model.PortletModel; +import org.apache.jetspeed.portlets.prm.PortletApplicationNodeBean; +import org.apache.jetspeed.portlets.wicket.AbstractAdminWebApplication; import org.apache.jetspeed.portlets.wicket.component.editor.EditorTemplate; import org.apache.wicket.markup.html.form.Button; import org.apache.wicket.markup.html.form.TextField; @@ -35,11 +39,15 @@ public class PreferencePanel extends EditorTemplate<Preference> { + private static final long serialVersionUID = 1L; + + private PortletApplicationNodeBean paNodeBean; private String newName, newValue; - public PreferencePanel(String id, PortletModel model) + public PreferencePanel(String id, PortletApplicationNodeBean paNodeBean) { - super(id, model); + super(id); + this.paNodeBean = paNodeBean; } /** @@ -48,23 +56,27 @@ @Override protected Button saveButton(String componentId) { - final PortletModel model = (PortletModel) getDefaultModel(); return new Button(componentId) { - @Override public void onSubmit() { + PortletRegistry registry = ((AbstractAdminWebApplication) getApplication()).getServiceLocator().getPortletRegistry(); + PortletApplication app = registry.getPortletApplication(paNodeBean.getApplicationName()); + PortletDefinition def = app.getPortlet(paNodeBean.getName()); + if (newName != null && newValue != null) { - PortletDefinition def = model.getObject(); Preference pref = def.getPortletPreferences().addPreference(newName); pref.addValue(newValue); + + newName = null; + newValue = null; } try { - model.getParent().getServiceLocator().getPortletRegistry().savePortletDefinition(model.getObject()); + registry.savePortletDefinition(def); } catch (RegistryException e) { @@ -89,39 +101,22 @@ } @Override - public void buildItems(Fragment fragment, final Preference model) + public void buildItems(Fragment fragment, final Preference preference) { - fragment.add(new TextField<String>("name", new Model<String>() - { - - @Override - public String getObject() - { - return model.getName(); - } - - @Override - public void setObject(String object) - { - System.out.println("TODO set preference name: " + object); - } - })); - + fragment.add(new TextField<String>("name", new PropertyModel(preference, "name"))); + RefreshingView<String> view = new RefreshingView<String>("values") { - @Override protected Iterator<IModel<String>> getItemModels() { - return new ModelIteratorAdapter<String>(model.getValues().iterator()) + return new ModelIteratorAdapter<String>(preference.getValues().iterator()) { - @Override protected IModel<String> model(String object) { return new Model<String>(object); } - }; } @@ -130,7 +125,6 @@ { item.add(new TextField<String>("value", item.getModel())); } - }; fragment.add(view); @@ -139,13 +133,19 @@ @Override public void delete(IModel<Preference>[] fields) { - PortletModel model = (PortletModel) getDefaultModel(); + PortletRegistry registry = ((AbstractAdminWebApplication) getApplication()).getServiceLocator().getPortletRegistry(); + PortletApplication app = registry.getPortletApplication(paNodeBean.getApplicationName()); + PortletDefinition def = app.getPortlet(paNodeBean.getName()); + for (IModel<Preference> field : fields) { - Iterator<Preference> it = model.getObject().getPortletPreferences().getPortletPreferences().iterator(); + Iterator<Preference> it = def.getPortletPreferences().getPortletPreferences().iterator(); + while (it.hasNext()) { - if (it.next().getName().equals(field.getObject().getName())) + Preference pref = it.next(); + + if (pref.getName().equals(field.getObject().getName())) { it.remove(); break; @@ -155,7 +155,7 @@ try { - model.getParent().getServiceLocator().getPortletRegistry().savePortletDefinition(model.getObject()); + registry.savePortletDefinition(def); } catch (RegistryException e) { @@ -167,22 +167,25 @@ @Override public Iterator<IModel<Preference>> getItemModels() { - PortletModel model = (PortletModel) getDefaultModel(); - return new ModelIteratorAdapter<Preference>(model.getObject().getPortletPreferences().getPortletPreferences().iterator()) - { + PortletRegistry registry = ((AbstractAdminWebApplication) getApplication()).getServiceLocator().getPortletRegistry(); + PortletApplication app = registry.getPortletApplication(paNodeBean.getApplicationName()); + PortletDefinition def = app.getPortlet(paNodeBean.getName()); + List<Preference> prefs = def.getPortletPreferences().getPortletPreferences(); + + return new ModelIteratorAdapter<Preference>(prefs.iterator()) + { @Override - protected IModel<Preference> model(Preference object) + protected IModel<Preference> model(Preference preference) { - return new Model<Preference>(object); + return new Model<Preference>(preference); } - }; } @Override - public IModel<Preference> getNewRowModel(Preference object) + public IModel<Preference> getNewRowModel(Preference preference) { - return new Model<Preference>(object); + return new Model<Preference>(preference); } } Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/AbstractAdminWebApplication.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/AbstractAdminWebApplication.java?rev=769862&r1=769861&r2=769862&view=diff ============================================================================== --- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/AbstractAdminWebApplication.java (original) +++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/AbstractAdminWebApplication.java Wed Apr 29 18:26:19 2009 @@ -18,21 +18,41 @@ import java.net.MalformedURLException; import java.net.URL; +import java.security.Principal; +import java.util.Map; +import javax.portlet.GenericPortlet; +import javax.portlet.PortletRequest; +import javax.portlet.PortletResponse; +import javax.portlet.RenderResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; + +import org.apache.jetspeed.PortalReservedParameters; +import org.apache.jetspeed.portlets.JetspeedServiceLocator; +import org.apache.wicket.RequestContext; import org.apache.wicket.WicketRuntimeException; import org.apache.wicket.protocol.http.WebApplication; +import org.apache.wicket.protocol.http.portlet.PortletRequestContext; import org.apache.wicket.util.resource.IResourceStream; import org.apache.wicket.util.resource.UrlResourceStream; import org.apache.wicket.util.resource.locator.ResourceStreamLocator; /** - * Abstract Admin Wicket Application to load customized templates from /WEB-INF/templates/. + * Abstract Admin Wicket Application + * <P> + * This abstract class loads customized templates from /WEB-INF/templates/. + * Also, this class contains many useful unitlity methods for portlet-based applications. + * </P> * * @author <a href="mailto:[email protected]">Woonsan Ko</a> - * @version $Id: $ + * @version $Id$ */ public abstract class AbstractAdminWebApplication extends WebApplication { + protected Map<String, String> initParams = null; + protected JetspeedServiceLocator serviceLocator; + public static final String USER_ADMINISTRATION = "J2 User Administration"; public abstract Class getHomePage(); @@ -43,7 +63,7 @@ // instruct the application to use our custom resource stream locator getResourceSettings().setResourceStreamLocator(new TemplatesResourceStreamLocator()); } - + private class TemplatesResourceStreamLocator extends ResourceStreamLocator { @@ -88,4 +108,174 @@ } + // Utility methods + + public JetspeedServiceLocator getServiceLocator() + { + if (serviceLocator == null) + { + serviceLocator = new JetspeedServiceLocator(); + } + + return serviceLocator; + } + + public Map<String, String> getInitParams() + { + if (initParams == null) + { + initParams = (Map<String, String>) getPortletRequest().getAttribute(AdminWicketPortlet.INIT_PARAMS); + } + + return initParams; + } + + public String getInitParam(String paramKey) + { + String paramValue = null; + if (getInitParams().containsKey(paramKey)) + { + paramValue = (String) getInitParams().get(paramKey); + } + return paramValue; + } + + public int getInitParamAsInteger(String paramKey) + { + int result = 0; + if (getInitParams().containsKey(paramKey)) + { + String paramValue = (String) getInitParams().get(paramKey); + result = Integer.parseInt(paramValue); + } + return result; + } + + public boolean getInitParamAsBoolean(String paramKey) + { + boolean result = false; + if (getInitParams().containsKey(paramKey)) + { + String paramValue = (String) getInitParams().get(paramKey); + result = Boolean.parseBoolean(paramValue); + } + return result; + } + + public String getPreference(String key) + { + String preferenceValue = null; + if( getPortletRequest().getPreferences().getMap().containsKey(key)) + { + preferenceValue = getPortletRequest().getPreferences().getValue(key, null); + } + return preferenceValue; + } + + public int getPreferenceAsInteger(String key) + { + int result = 0; + if (getPortletRequest().getPreferences().getMap().containsKey(key)) + { + String preferenceValue = getPortletRequest().getPreferences().getValue(key, null); + if (preferenceValue != null) + { + result = Integer.parseInt(preferenceValue); + } + } + return result; + } + + public boolean getPreferenceAsBoolean(String key) + { + boolean result = false; + if (getPortletRequest().getPreferences().getMap().containsKey(key)) + { + String preferenceValue = getPortletRequest().getPreferences().getValue(key, null); + if (preferenceValue != null) + { + result = Boolean.parseBoolean(preferenceValue); + } + } + return result; + } + + public String getPreference(String key,String defaultValue) + { + String preferenceValue=null;; + if(getPortletRequest().getPreferences().getMap().containsKey(key)) + { + preferenceValue = getPortletRequest().getPreferences().getValue(key, defaultValue); + } + return preferenceValue; + } + + public String [] getPreference(String key,String values []) + { + String preferenceValue[]=null;; + if(getPortletRequest().getPreferences().getMap().containsKey(key)) + { + preferenceValue = getPortletRequest().getPreferences().getValues(key, null); + } + return preferenceValue; + } + + public PortletRequest getPortletRequest() + { + return ((PortletRequestContext) RequestContext.get()).getPortletRequest(); + } + + public void setTitle(String title) + { + PortletResponse pr = getPortletResponse(); + if (pr instanceof RenderResponse) { + RenderResponse rr = (RenderResponse) pr; + rr.setTitle(title); + } + } + + public String getTitle() + { + return (String)getPortletRequest().getAttribute(AdminWicketPortlet.PORTLET_TITLE); + } + + public String getPortletName() + { + GenericPortlet portlet = (GenericPortlet) getPortletRequest().getAttribute(AdminWicketPortlet.PORTLET); + return portlet.getPortletName(); + } + + public PortletResponse getPortletResponse() + { + return ((PortletRequestContext) RequestContext.get()).getPortletResponse(); + } + + public HttpServletRequest getServletRequest(PortletRequest request) + { + HttpServletRequest realRequest = (HttpServletRequest)((HttpServletRequestWrapper) request).getRequest(); + return realRequest; + } + + public HttpServletRequest getServletRequest() + { + HttpServletRequest realRequest = (HttpServletRequest)((HttpServletRequestWrapper) getPortletRequest()).getRequest(); + return realRequest; + } + + public String getIPAddress() + { + org.apache.jetspeed.request.RequestContext context = (org.apache.jetspeed.request.RequestContext) getPortletRequest().getAttribute( + PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE); + return (context == null ? "" : context.getRequest().getRemoteAddr()); + } + + public String getAuthenticatedUsername() + { + Principal p = getPortletRequest().getUserPrincipal(); + if (p == null) + return ""; + else + return p.getName(); + } + } Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/EditorTemplate.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/EditorTemplate.java?rev=769862&r1=769861&r2=769862&view=diff ============================================================================== --- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/EditorTemplate.java (original) +++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/EditorTemplate.java Wed Apr 29 18:26:19 2009 @@ -48,6 +48,11 @@ public static final String ITEMS_FRAGMENT_ID = "itemFragment"; public static final String NEW_FRAGMENT_ID = "newFragment"; + public EditorTemplate(String id) + { + this(id, null); + } + public EditorTemplate(String id, IModel<?> model) { super(id, model); @@ -116,8 +121,6 @@ add(form); } - - protected Button deleteButton(String componentId) { return new Button(componentId) { Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDescriptionEditor.html URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDescriptionEditor.html?rev=769862&r1=769861&r2=769862&view=diff ============================================================================== --- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDescriptionEditor.html (original) +++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDescriptionEditor.html Wed Apr 29 18:26:19 2009 @@ -27,7 +27,7 @@ <th class="portlet-section-subheader">Locale</th> <th class="portlet-section-subheader">Description</th> <wicket:fragment wicket:id="itemFragment"> - <td class="portlet-section-body"><input type="text" wicket:id="locale"/></td> + <td class="portlet-section-body"><input type="text" wicket:id="locale" readonly="true"/></td> <td class="portlet-section-body"><input type="text" wicket:id="description"/></td> </wicket:fragment> <wicket:fragment wicket:id="newFragment"> Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDescriptionEditor.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDescriptionEditor.java?rev=769862&r1=769861&r2=769862&view=diff ============================================================================== --- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDescriptionEditor.java (original) +++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDescriptionEditor.java Wed Apr 29 18:26:19 2009 @@ -20,25 +20,36 @@ import java.util.Iterator; import java.util.List; -import org.apache.jetspeed.portlets.prm.model.DescriptionModel; +import org.apache.jetspeed.portlets.JetspeedServiceLocator; +import org.apache.jetspeed.portlets.prm.DescriptionBean; +import org.apache.jetspeed.portlets.prm.PortletApplicationNodeBean; +import org.apache.jetspeed.portlets.prm.model.DescriptionBeanModel; import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.markup.html.panel.Fragment; import org.apache.wicket.markup.repeater.data.IDataProvider; import org.apache.wicket.model.IModel; -import org.apache.wicket.model.Model; import org.apache.wicket.model.PropertyModel; /** * * @author Ruben Alexander de Gooijer */ -public abstract class LocalizedDescriptionEditor extends EditorTemplate<DescriptionModel> +public abstract class LocalizedDescriptionEditor extends EditorTemplate<DescriptionBean> { + private static final long serialVersionUID = 1L; + + protected JetspeedServiceLocator locator = null; + protected PortletApplicationNodeBean paNodeBean = null; + protected String name = null; + protected String newLocale, newDescription; - public LocalizedDescriptionEditor(String id, IModel<?> model) + public LocalizedDescriptionEditor(String id, JetspeedServiceLocator locator, PortletApplicationNodeBean paNodeBean, String name) { - super(id, model); + super(id); + this.locator = locator; + this.paNodeBean = paNodeBean; + this.name = name; } @Override @@ -48,23 +59,10 @@ } @Override - public void buildItems(Fragment fragment, final DescriptionModel model) + public void buildItems(Fragment fragment, final DescriptionBean descriptionBean) { - fragment.add(new TextField<String>("locale", new Model<String>() { - @Override - public String getObject() - { - return model.getLang(); - } - - @Override - public void setObject(String object) - { - model.setLang(object); - } - })); - - fragment.add(new TextField<String>("description", new PropertyModel<String>(model, "description"))); + fragment.add(new TextField<String>("locale", new PropertyModel(descriptionBean, "localeString"))); + fragment.add(new TextField<String>("description", new PropertyModel(descriptionBean, "description"))); } @Override @@ -75,22 +73,30 @@ } @Override - public Iterator<IModel<DescriptionModel>> getItemModels() + public Iterator<IModel<DescriptionBean>> getItemModels() { - IDataProvider<DescriptionModel> dataProvider = getDataProvider(); - Iterator<? extends DescriptionModel> it = dataProvider.iterator(0, dataProvider.size()); - List<IModel<DescriptionModel>> list = new ArrayList<IModel<DescriptionModel>>(); - while(it.hasNext()) { - list.add(dataProvider.model(it.next())); + IDataProvider<DescriptionBean> dataProvider = getDataProvider(); + List<IModel<DescriptionBean>> list = new ArrayList<IModel<DescriptionBean>>(); + JetspeedServiceLocator locator = null; + PortletApplicationNodeBean paNodeBean = null; + String name = null; + + Iterator<? extends DescriptionBean> it = dataProvider.iterator(0, dataProvider.size()); + + while(it.hasNext()) + { + DescriptionBean descriptionBean = it.next(); + list.add(new DescriptionBeanModel(locator, paNodeBean, name, descriptionBean)); } + return list.iterator(); } @Override - public IModel<DescriptionModel> getNewRowModel(DescriptionModel object) + public IModel<DescriptionBean> getNewRowModel(DescriptionBean descriptionBean) { - return new Model<DescriptionModel>(object); + return new DescriptionBeanModel(locator, paNodeBean, name, descriptionBean); } - public abstract IDataProvider<DescriptionModel> getDataProvider(); + public abstract IDataProvider<DescriptionBean> getDataProvider(); } Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/portlet.xml URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/portlet.xml?rev=769862&r1=769861&r2=769862&view=diff ============================================================================== --- portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/portlet.xml (original) +++ portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/portlet.xml Wed Apr 29 18:26:19 2009 @@ -1689,7 +1689,6 @@ </init-param> <supports> <mime-type>text/html</mime-type> - <portlet-mode>EDIT</portlet-mode> <portlet-mode>VIEW</portlet-mode> <portlet-mode>HELP</portlet-mode> </supports> @@ -1716,7 +1715,6 @@ </init-param> <supports> <mime-type>text/html</mime-type> - <portlet-mode>EDIT</portlet-mode> <portlet-mode>VIEW</portlet-mode> <portlet-mode>HELP</portlet-mode> </supports> --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
