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 wo...@apache.org on 2009/05/04 19:16:12 UTC

svn commit: r771364 - in /portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets: prm/ prm/model/ prm/portlet/ wicket/component/editor/

Author: woonsan
Date: Mon May  4 17:16:12 2009
New Revision: 771364

URL: http://svn.apache.org/viewvc?rev=771364&view=rev
Log:
JS2-946: Improving portlet detail tab to allow to edit expirationCache value and localized display name.

Added:
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/DisplayNameBean.java   (with props)
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/model/DisplayNameBeanModel.java   (with props)
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDisplayNameEditor.html   (with props)
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDisplayNameEditor.java   (with props)
Modified:
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/DetailsPanel.html
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/DetailsPanel.java

Added: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/DisplayNameBean.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/DisplayNameBean.java?rev=771364&view=auto
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/DisplayNameBean.java (added)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/DisplayNameBean.java Mon May  4 17:16:12 2009
@@ -0,0 +1,55 @@
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.portlets.prm;
+
+import java.util.Locale;
+
+import org.apache.jetspeed.om.portlet.DisplayName;
+import org.apache.wicket.IClusterable;
+
+public class DisplayNameBean  implements IClusterable
+{
+    private static final long serialVersionUID = 1L;
+    
+    private DisplayName displayName;
+    
+    public DisplayNameBean(DisplayName displayName)
+    {
+        this.displayName = displayName;
+    }
+    
+    public String getLocaleString()
+    {
+        return displayName.getLocale().toString();
+    }
+    
+    public Locale getLocale()
+    {
+        return displayName.getLocale();
+    }
+    
+    public String getDisplayName()
+    {
+        return displayName.getDisplayName();
+    }
+
+    public void setDisplayName(String dispName)
+    {
+        displayName.setDisplayName(dispName);
+    }
+    
+}

Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/DisplayNameBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/DisplayNameBean.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/DisplayNameBean.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/model/DisplayNameBeanModel.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/model/DisplayNameBeanModel.java?rev=771364&view=auto
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/model/DisplayNameBeanModel.java (added)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/model/DisplayNameBeanModel.java Mon May  4 17:16:12 2009
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.portlets.prm.model;
+
+import java.util.Locale;
+
+import org.apache.jetspeed.om.portlet.DisplayName;
+import org.apache.jetspeed.om.portlet.PortletApplication;
+import org.apache.jetspeed.om.portlet.PortletDefinition;
+import org.apache.jetspeed.portlets.JetspeedServiceLocator;
+import org.apache.jetspeed.portlets.prm.DisplayNameBean;
+import org.apache.jetspeed.portlets.prm.PortletApplicationNodeBean;
+import org.apache.wicket.model.LoadableDetachableModel;
+
+public class DisplayNameBeanModel extends LoadableDetachableModel<DisplayNameBean>
+{
+    
+    private static final long serialVersionUID = 1L;
+    
+    private JetspeedServiceLocator locator;
+    private PortletApplicationNodeBean paNodeBean;
+    private Locale locale;
+
+    public DisplayNameBeanModel(JetspeedServiceLocator locator, PortletApplicationNodeBean paNodeBean, DisplayNameBean displayNameBean)
+    {
+        super(displayNameBean);
+        this.locator = locator;
+        this.paNodeBean = paNodeBean;
+        this.locale = displayNameBean.getLocale();
+    }
+    
+    @Override
+    protected DisplayNameBean load()
+    {
+        PortletApplication app = locator.getPortletRegistry().getPortletApplication(paNodeBean.getApplicationName());
+        PortletDefinition def = app.getPortlet(paNodeBean.getName());
+        DisplayName displayName = def.getDisplayName(locale);
+        return new DisplayNameBean(displayName);
+    }
+    
+}
\ No newline at end of file

Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/model/DisplayNameBeanModel.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/model/DisplayNameBeanModel.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/model/DisplayNameBeanModel.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/DetailsPanel.html
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/DetailsPanel.html?rev=771364&r1=771363&r2=771364&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/DetailsPanel.html (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/DetailsPanel.html Mon May  4 17:16:12 2009
@@ -21,6 +21,7 @@
 <head></head>
 <body>
 	<wicket:panel>
+	<form action="post" wicket:id="form">
 	<table style="border-collapse: collapse; width: 100%; margin-top: 8px; float: left;">
 		<thead>
 			<tr>
@@ -30,7 +31,7 @@
 		</thead>
 		<tr>
 			<td class="portlet-section-body">Expiration Cache</td>
-			<td class="portlet-section-body"><span wicket:id="expirationCache"></span></td>
+			<td class="portlet-section-body"><input type="text" wicket:id="expirationCache" /></td>
 		</tr>
 		<tr>
 			<td class="portlet-section-body">Unique Name</td>
@@ -40,7 +41,18 @@
 			<td class="portlet-section-body">Class Name</td>
 			<td class="portlet-section-body"><span wicket:id="className"></span></td>
 		</tr>
+		<tr>
+		    <td class="portlet-section-body" colspan="2">
+                <span wicket:id="localizationEditor"/>
+            </td>
+        </tr>
+		<tr>
+            <td class="portlet-section-footer" colspan="2">
+                <input wicket:id="save" type="submit" value="Save"/> 
+            </td>
+        </tr>
 	</table>
+	</form>
 	</wicket:panel>
 </body>
 </html>
\ No newline at end of file

Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/DetailsPanel.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/DetailsPanel.java?rev=771364&r1=771363&r2=771364&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/DetailsPanel.java (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/prm/portlet/DetailsPanel.java Mon May  4 17:16:12 2009
@@ -16,30 +16,215 @@
  */
 package org.apache.jetspeed.portlets.prm.portlet;
 
+import java.util.Iterator;
+import java.util.LinkedList;
+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.DisplayName;
 import org.apache.jetspeed.om.portlet.PortletApplication;
 import org.apache.jetspeed.om.portlet.PortletDefinition;
+import org.apache.jetspeed.portlets.JetspeedServiceLocator;
+import org.apache.jetspeed.portlets.prm.DisplayNameBean;
 import org.apache.jetspeed.portlets.prm.PortletApplicationNodeBean;
 import org.apache.jetspeed.portlets.wicket.AbstractAdminWebApplication;
+import org.apache.jetspeed.portlets.wicket.component.editor.LocalizedDisplayNameEditor;
 import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.Button;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.TextField;
 import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.markup.repeater.data.IDataProvider;
+import org.apache.wicket.markup.repeater.data.ListDataProvider;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.PropertyModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 
 public class DetailsPanel extends Panel
 {
     private static final long serialVersionUID = 1L;
     
+    static final Logger logger = LoggerFactory.getLogger(DetailsPanel.class);
+    
     private PortletApplicationNodeBean paNodeBean;
+    private Integer expirationCache;
+    private String newLocale, newDisplayName;
     
-    public DetailsPanel(String id, PortletApplicationNodeBean paNodeBean)
+    public DetailsPanel(String id, PortletApplicationNodeBean paNodeBeanParam)
     {
         super(id);
-        this.paNodeBean = paNodeBean;
+        this.paNodeBean = paNodeBeanParam;
         
         PortletApplication app = ((AbstractAdminWebApplication) getApplication()).getServiceLocator().getPortletRegistry().getPortletApplication(this.paNodeBean.getApplicationName());
         PortletDefinition definition = app.getPortlet(this.paNodeBean.getName());
-        add(new Label("expirationCache", Integer.toString(definition.getExpirationCache())));
-        add(new Label("uniqueName", definition.getUniqueName()));
-        add(new Label("className", definition.getPortletClass()));
+        setExpirationCache(new Integer(definition.getExpirationCache()));
+        
+        Form form = new Form("form");
+        form.add(new TextField<Integer>("expirationCache", new PropertyModel<Integer>(this, "expirationCache")));
+        form.add(new Label("uniqueName", definition.getUniqueName()));
+        form.add(new Label("className", definition.getPortletClass()));
+        
+        JetspeedServiceLocator locator = ((AbstractAdminWebApplication) getApplication()).getServiceLocator();
+        
+        form.add(new LocalizedDisplayNameEditor("localizationEditor", locator, paNodeBean)
+        {
+
+            @Override
+            public IDataProvider<DisplayNameBean> getDataProvider()
+            {
+                PortletRegistry registry = ((AbstractAdminWebApplication) getApplication()).getServiceLocator().getPortletRegistry();
+                PortletApplication app = registry.getPortletApplication(paNodeBean.getApplicationName());
+                PortletDefinition def = app.getPortlet(paNodeBean.getName());
+
+                List<DisplayNameBean> list = new LinkedList<DisplayNameBean>();
+
+                for (DisplayName displayName : def.getDisplayNames())
+                {
+                    list.add(new DisplayNameBean(displayName));
+                }
+
+                return new ListDataProvider<DisplayNameBean>(list);
+            }
+
+            @Override
+            public void delete(IModel<DisplayNameBean>[] fields)
+            {
+                try
+                {
+                    PortletRegistry registry = ((AbstractAdminWebApplication) getApplication()).getServiceLocator().getPortletRegistry();
+                    PortletApplication app = registry.getPortletApplication(paNodeBean.getApplicationName());
+                    PortletDefinition def = app.getPortlet(paNodeBean.getName());
+                    
+                    for (Iterator<DisplayName> it = def.getDisplayNames().iterator(); it.hasNext(); )
+                    {
+                        DisplayName displayName = it.next();
+                        
+                        for (IModel<DisplayNameBean> displayNameBeanModel : fields)
+                        {
+                            if (displayNameBeanModel.getObject().getLocale().equals(displayName.getLocale()))
+                            {
+                                it.remove();
+                                break;
+                            }
+                        }
+                    }
+                    
+                    registry.savePortletDefinition(def);
+                }
+                catch (FailedToStorePortletDefinitionException e)
+                {
+                    logger.error("Failed to save portlet definition.", e);
+                }
+            }
+
+            @Override
+            protected Button saveButton(String componentId)
+            {
+                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 && newDisplayName != null)
+                        {
+                            Locale locale = new Locale(newLocale);
+                            DisplayName targetDisplayName = null;
+                            
+                            for (DisplayName displayName : def.getDisplayNames())
+                            {
+                                if (displayName.getLocale().equals(locale))
+                                {
+                                    targetDisplayName = displayName;
+                                    break;
+                                }
+                            }
+                            
+                            if (targetDisplayName == null)
+                            {
+                                targetDisplayName = def.addDisplayName(newLocale);
+                            }
+                            
+                            targetDisplayName.setDisplayName(newDisplayName);
+                            
+                            newLocale = null;
+                            newDisplayName = null;
+                        }
+
+                        try
+                        {
+                            registry.savePortletDefinition(def);
+                        }
+                        catch (RegistryException e)
+                        {
+                            logger.error("Failed to save portlet definition.", e);
+                        }
+                    }
+                };
+            }
+            
+        });
+        
+        form.add(new Button("save")
+        {
+            @Override
+            public void onSubmit()
+            {
+                try
+                {
+                    PortletRegistry registry = ((AbstractAdminWebApplication) getApplication()).getServiceLocator().getPortletRegistry();
+                    PortletApplication app = registry.getPortletApplication(paNodeBean.getApplicationName());
+                    PortletDefinition def = app.getPortlet(paNodeBean.getName());
+                    def.setExpirationCache(getExpirationCache().intValue());
+                    registry.savePortletDefinition(def);
+                }
+                catch (FailedToStorePortletDefinitionException e)
+                {
+                    logger.error("Failed to store portlet definition.", e);
+                }
+            }
+        });
+        
+        add(form);
     }
 
+    public void setExpirationCache(Integer expirationCache)
+    {
+        this.expirationCache = expirationCache;
+    }
+    
+    public Integer getExpirationCache()
+    {
+        return expirationCache;
+    }
+    
+//    public void setNewLocale(String newLocale)
+//    {
+//        this.newLocale = newLocale;
+//    }
+//    
+//    public String getNewLocale()
+//    {
+//        return newLocale;
+//    }
+//    
+//    public void setNewDisplayName(String newDisplayName)
+//    {
+//        this.newDisplayName = newDisplayName;
+//    }
+//    
+//    public String getNewDisplayName()
+//    {
+//        return newDisplayName;
+//    }
+    
 }

Added: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDisplayNameEditor.html
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDisplayNameEditor.html?rev=771364&view=auto
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDisplayNameEditor.html (added)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDisplayNameEditor.html Mon May  4 17:16:12 2009
@@ -0,0 +1,41 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
+<!-- 
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+  
+       http://www.apache.org/licenses/LICENSE-2.0
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<html 
+	xmlns="http://www.w3.org/1999/xhtml" 
+	xmlns:wicket="http://wicket.sourceforge.net/" 
+	xml:lang="en" 
+	lang="en">
+<head></head>
+<body>
+	<wicket:extend>
+		<th class="portlet-section-subheader">Locale</th>
+		<th class="portlet-section-subheader">Display Name</th>
+		<wicket:fragment wicket:id="itemFragment">
+			<td class="portlet-section-body"><input type="text" wicket:id="locale" readonly="true"/></td>
+			<td class="portlet-section-body"><input type="text" wicket:id="displayName"/></td>
+		</wicket:fragment>
+		<wicket:fragment wicket:id="newFragment">
+		    <!-- FIXME:
+			<td style="border-top:1px dashed #000;"><input wicket:id="newLocale" style="margin-top:10px;" type="text"/></td>
+			<td style="border-top:1px dashed #000;"><input wicket:id="newDisplayName" style="margin-top:10px;" type="text"/></td>
+		    -->
+		</wicket:fragment>
+	</wicket:extend>
+</body>
+</html>
\ No newline at end of file

Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDisplayNameEditor.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDisplayNameEditor.html
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDisplayNameEditor.html
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDisplayNameEditor.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDisplayNameEditor.java?rev=771364&view=auto
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDisplayNameEditor.java (added)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDisplayNameEditor.java Mon May  4 17:16:12 2009
@@ -0,0 +1,104 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.portlets.wicket.component.editor;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.jetspeed.portlets.JetspeedServiceLocator;
+import org.apache.jetspeed.portlets.prm.DisplayNameBean;
+import org.apache.jetspeed.portlets.prm.PortletApplicationNodeBean;
+import org.apache.jetspeed.portlets.prm.model.DisplayNameBeanModel;
+import org.apache.jetspeed.portlets.wicket.AbstractAdminWebApplication;
+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.PropertyModel;
+
+/**
+ * 
+ * @author Ruben Alexander de Gooijer
+ */
+public abstract class LocalizedDisplayNameEditor extends EditorTemplate<DisplayNameBean>
+{
+    private static final long serialVersionUID = 1L;
+    
+    protected JetspeedServiceLocator locator = null;
+    protected PortletApplicationNodeBean paNodeBean = null;
+
+    protected String newLocale, newDisplayName;
+    
+    public LocalizedDisplayNameEditor(String id, JetspeedServiceLocator locator, PortletApplicationNodeBean paNodeBean)
+    {
+        super(id);
+        this.locator = locator;
+        this.paNodeBean = paNodeBean;
+    }
+
+    @Override
+    public int getColumnCount()
+    {
+        return 2;
+    }
+
+    @Override
+    public void buildItems(Fragment fragment, final DisplayNameBean displayNameBean)
+    {
+        JetspeedServiceLocator locator = ((AbstractAdminWebApplication) getApplication()).getServiceLocator();
+        fragment.add(new TextField<String>("locale", new PropertyModel(new DisplayNameBeanModel(locator, paNodeBean, displayNameBean), "localeString"))); 
+        fragment.add(new TextField<String>("displayName", new PropertyModel(new DisplayNameBeanModel(locator, paNodeBean, displayNameBean), "displayName")));
+    }
+    
+    @Override
+    public void buildNew(Fragment fragment)
+    {
+        // FIXME:
+//        fragment.add(new TextField<String>("newLocale", new PropertyModel<String>(this, "newLocale")));
+//        fragment.add(new TextField<String>("newDescription", new PropertyModel<String>(this, "newDescription")));
+    }
+    
+    @Override
+    public Iterator<IModel<DisplayNameBean>> getItemModels()
+    {
+        IDataProvider<DisplayNameBean> dataProvider = getDataProvider();
+        List<IModel<DisplayNameBean>> list = new ArrayList<IModel<DisplayNameBean>>();
+        JetspeedServiceLocator locator = null;
+        PortletApplicationNodeBean paNodeBean = null;
+        String name = null;
+        
+        Iterator<? extends DisplayNameBean> it = dataProvider.iterator(0, dataProvider.size());
+        
+        while(it.hasNext()) 
+        {
+            DisplayNameBean displayNameBean = it.next();
+            list.add(new DisplayNameBeanModel(locator, paNodeBean, displayNameBean));
+        }
+        
+        return list.iterator();
+    }
+    
+    @Override
+    public IModel<DisplayNameBean> getNewRowModel(DisplayNameBean displayNameBean)
+    {
+        return new DisplayNameBeanModel(locator, paNodeBean, displayNameBean);
+    }
+    
+    public abstract IDataProvider<DisplayNameBean> getDataProvider();
+    
+}

Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDisplayNameEditor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDisplayNameEditor.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/wicket/component/editor/LocalizedDisplayNameEditor.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org