Author: knopp
Date: Tue Jan 19 19:43:15 2010
New Revision: 900927

URL: http://svn.apache.org/viewvc?rev=900927&view=rev
Log:
Shared resources

Added:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/SharedResources.java   
(with props)
Modified:
    
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/forminput/FormInputApplication.java
    
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/images/Home.java
    
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/LinkomaticApplication.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/Application.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/Url.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/PackageResource.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReferenceRegistry.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/UrlTest.java

Modified: 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/forminput/FormInputApplication.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/forminput/FormInputApplication.java?rev=900927&r1=900926&r2=900927&view=diff
==============================================================================
--- 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/forminput/FormInputApplication.java
 (original)
+++ 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/forminput/FormInputApplication.java
 Tue Jan 19 19:43:15 2010
@@ -25,6 +25,7 @@
 import org.apache.wicket.Request;
 import org.apache.wicket.Response;
 import org.apache.wicket.Session;
+import org.apache.wicket.SharedResources;
 import org.apache.wicket.examples.WicketExampleApplication;
 import org.apache.wicket.markup.html.image.resource.DefaultButtonImageResource;
 import org.apache.wicket.protocol.http.WebSession;
@@ -92,33 +93,31 @@
                DefaultButtonImageResource imgReset = new 
DefaultButtonImageResource("\u91CD\u7F6E");
                imgReset.setFont(font);
 
-               // TODO NG
+               SharedResources sharedResources = getSharedResources();
+               sharedResources.add("save", Locale.SIMPLIFIED_CHINESE, imgSave);
+               sharedResources.add("reset", Locale.SIMPLIFIED_CHINESE, 
imgReset);
+
+               // Japanese buttons
+               Font fontJa = new Font("Serif", Font.BOLD, 16);
+               DefaultButtonImageResource imgSaveJa = new 
DefaultButtonImageResource("\u4fdd\u5b58");
+               imgSaveJa.setFont(fontJa);
+               DefaultButtonImageResource imgResetJa = new 
DefaultButtonImageResource(
+                       "\u30ea\u30bb\u30c3\u30c8");
+               imgResetJa.setFont(fontJa);
+               sharedResources.add("save", Locale.JAPANESE, imgSaveJa);
+               sharedResources.add("reset", Locale.JAPANESE, imgResetJa);
+
+               // Persian buttons
+               Font fontFa = new Font("Serif", Font.BOLD, 16);
+               Locale farsi = new Locale("fa", "IR");
+               DefaultButtonImageResource imgSaveFa = new 
DefaultButtonImageResource(
+                       "\u0630\u062e\u064a\u0631\u0647");
+               imgSaveFa.setFont(fontFa);
+               DefaultButtonImageResource imgResetFa = new 
DefaultButtonImageResource(
+                       "\u0628\u0627\u0632\u0646\u0634\u0627\u0646\u064a");
+               imgResetFa.setFont(fontFa);
+               getSharedResources().add("save", farsi, imgSaveFa);
+               getSharedResources().add("reset", farsi, imgResetFa);
 
-// SharedResources sharedResources = getSharedResources();
-// sharedResources.add("save", Locale.SIMPLIFIED_CHINESE, imgSave);
-// sharedResources.add("reset", Locale.SIMPLIFIED_CHINESE, imgReset);
-//
-// // Japanese buttons
-// Font fontJa = new Font("Serif", Font.BOLD, 16);
-// DefaultButtonImageResource imgSaveJa = new 
DefaultButtonImageResource("\u4fdd\u5b58");
-// imgSaveJa.setFont(fontJa);
-// DefaultButtonImageResource imgResetJa = new DefaultButtonImageResource(
-// "\u30ea\u30bb\u30c3\u30c8");
-// imgResetJa.setFont(fontJa);
-// sharedResources.add("save", Locale.JAPANESE, imgSaveJa);
-// sharedResources.add("reset", Locale.JAPANESE, imgResetJa);
-//
-// // Persian buttons
-// Font fontFa = new Font("Serif", Font.BOLD, 16);
-// Locale farsi = new Locale("fa", "IR");
-// DefaultButtonImageResource imgSaveFa = new DefaultButtonImageResource(
-// "\u0630\u062e\u064a\u0631\u0647");
-// imgSaveFa.setFont(fontFa);
-// DefaultButtonImageResource imgResetFa = new DefaultButtonImageResource(
-// "\u0628\u0627\u0632\u0646\u0634\u0627\u0646\u064a");
-// imgResetFa.setFont(fontFa);
-// getSharedResources().add("save", farsi, imgSaveFa);
-// getSharedResources().add("reset", farsi, imgResetFa);
-//             
        }
 }

Modified: 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/images/Home.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/images/Home.java?rev=900927&r1=900926&r2=900927&view=diff
==============================================================================
--- 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/images/Home.java
 (original)
+++ 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/images/Home.java
 Tue Jan 19 19:43:15 2010
@@ -108,9 +108,7 @@
                                final BufferedImage image = new 
BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
                                drawCircle((Graphics2D)image.getGraphics());
                                resource.setImage(image);
-
-                               // TODO: NG
-                               return (IResource)resource;
+                               return resource;
                        }
                };
        }
@@ -142,8 +140,7 @@
                        @Override
                        public IResource getResource()
                        {
-                               // TODO NG
-                               return (IResource)new 
DefaultButtonImageResource("Ok");
+                               return new DefaultButtonImageResource("Ok");
                        }
                };
        }

Modified: 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/LinkomaticApplication.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/LinkomaticApplication.java?rev=900927&r1=900926&r2=900927&view=diff
==============================================================================
--- 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/LinkomaticApplication.java
 (original)
+++ 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/LinkomaticApplication.java
 Tue Jan 19 19:43:15 2010
@@ -19,6 +19,7 @@
 import org.apache.wicket.Page;
 import org.apache.wicket.examples.ServerHostNameAndTimeFilter;
 import org.apache.wicket.examples.WicketExampleApplication;
+import org.apache.wicket.markup.html.image.resource.DefaultButtonImageResource;
 
 /**
  * Application class for the linkomatic example.
@@ -47,8 +48,7 @@
 
                mountBookmarkablePage("/home", Home.class);
 
-               // TODO WNG
-               // getSharedResources().add("cancelButton", new 
DefaultButtonImageResource("Cancel"));
+               getSharedResources().add("cancelButton", new 
DefaultButtonImageResource("Cancel"));
                // log host name and server time in the browser's status bar
                getRequestCycleSettings().addResponseFilter(new 
ServerHostNameAndTimeFilter());
        }

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Application.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Application.java?rev=900927&r1=900926&r2=900927&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Application.java 
(original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Application.java Tue 
Jan 19 19:43:15 2010
@@ -200,6 +200,7 @@
        /** can the settings object be set/used. */
        private boolean settingsAccessible;
 
+
        /**
         * Checks if the <code>Application</code> threadlocal is set in this 
thread
         * 
@@ -909,6 +910,7 @@
 
                pageManager = newPageManager(getPageManagerContext());
                resourceReferenceRegistry = newResourceReferenceRegistry();
+               sharedResources = newSharedResources(resourceReferenceRegistry);
 
                // set up default request mapper
                setRootRequestMapper(new SystemMapper());
@@ -1278,6 +1280,18 @@
                return resourceReferenceRegistry;
        }
 
+       private SharedResources sharedResources;
+
+       protected SharedResources newSharedResources(ResourceReferenceRegistry 
registry)
+       {
+               return new SharedResources(registry);
+       }
+
+       public SharedResources getSharedResources()
+       {
+               return sharedResources;
+       }
+
        private IPageFactory pageFactory;
 
        /**
@@ -1399,7 +1413,6 @@
         */
        protected RequestCycle newRequestCycle(RequestCycleContext context)
        {
-
                return new RequestCycle(context);
        }
 

Added: wicket/trunk/wicket/src/main/java/org/apache/wicket/SharedResources.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/SharedResources.java?rev=900927&view=auto
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/SharedResources.java 
(added)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/SharedResources.java 
Tue Jan 19 19:43:15 2010
@@ -0,0 +1,103 @@
+/*
+ * 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.wicket;
+
+import java.util.Locale;
+
+import org.apache.wicket.ng.resource.IResource;
+import org.apache.wicket.ng.resource.ResourceReference;
+import org.apache.wicket.ng.resource.ResourceReferenceRegistry;
+
+public class SharedResources
+{
+       private final ResourceReferenceRegistry registry;
+
+       public SharedResources(ResourceReferenceRegistry registry)
+       {
+               this.registry = registry;
+       }
+
+       private static final class SharedResourceReference extends 
ResourceReference
+       {
+               private final IResource resource;
+
+               public SharedResourceReference(Class<?> scope, String name, 
Locale locale, String style,
+                       String variation, IResource resource)
+               {
+                       super(scope, name, locale, style, variation);
+                       this.resource = resource;
+               }
+
+               @Override
+               public IResource getResource()
+               {
+                       return resource;
+               }
+       }
+
+       /**
+        * Adds a resource.
+        * 
+        * @param scope
+        *            Scope of resource
+        * @param name
+        *            Logical name of resource
+        * @param locale
+        *            The locale of the resource
+        * @param style
+        *            The resource style (see {...@link 
org.apache.wicket.Session})
+        * @param variation
+        *            The component specific variation of the style
+        * @param resource
+        *            Resource to store
+        */
+       public final void add(final Class<?> scope, final String name, final 
Locale locale,
+               final String style, final String variation, final IResource 
resource)
+       {
+               ResourceReference ref = new SharedResourceReference(scope, 
name, locale, style, variation,
+                       resource);
+               registry.registerResourceReference(ref);
+       }
+
+       /**
+        * Adds a resource.
+        * 
+        * @param name
+        *            Logical name of resource
+        * @param locale
+        *            The locale of the resource
+        * @param resource
+        *            Resource to store
+        */
+       public final void add(final String name, final Locale locale, final 
IResource resource)
+       {
+               add(Application.class, name, locale, null, null, resource);
+       }
+
+       /**
+        * Adds a resource.
+        * 
+        * @param name
+        *            Logical name of resource
+        * @param resource
+        *            Resource to store
+        */
+       public final void add(final String name, final IResource resource)
+       {
+               add(Application.class, name, null, null, null, resource);
+       }
+}

Propchange: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/SharedResources.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/Url.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/Url.java?rev=900927&r1=900926&r2=900927&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/Url.java 
(original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/request/Url.java Tue 
Jan 19 19:43:15 2010
@@ -20,11 +20,9 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
 
 import org.apache.wicket.protocol.http.WicketURLDecoder;
 import org.apache.wicket.protocol.http.WicketURLEncoder;
-import org.apache.wicket.util.lang.Arrays;
 import org.apache.wicket.util.lang.Checks;
 import org.apache.wicket.util.lang.Objects;
 import org.apache.wicket.util.string.StringValue;
@@ -68,7 +66,7 @@
        /**
         * 
         * @param qp
-        * @return query paramaters
+        * @return query parameters
         */
        private static QueryParameter parseQueryParameter(final String qp)
        {
@@ -217,31 +215,6 @@
        }
 
        /**
-        * Populates the provided {...@code params} map with query parameters
-        * 
-        * @deprecated the code should be using proper QuaryParameter oriented 
method, this is just to
-        *             help ease migration
-        */
-       @Deprecated
-       public void putQueryParameters(Map<String, String[]> params)
-       {
-               for (QueryParameter param : getQueryParameters())
-               {
-                       String[] array = params.get(param.getName());
-                       if (array == null)
-                       {
-                               array = new String[] { param.getValue() };
-                       }
-                       else
-                       {
-                               array = Arrays.copyOf(array, array.length + 1);
-                               array[array.length - 1] = param.getValue();
-                       }
-                       params.put(param.getName(), array);
-               }
-       }
-
-       /**
         * Returns whether the URL is absolute.
         * 
         * @return <code>true</code> if URL is absolute, <code>false</code> 
otherwise.

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/PackageResource.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/PackageResource.java?rev=900927&r1=900926&r2=900927&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/PackageResource.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/PackageResource.java
 Tue Jan 19 19:43:15 2010
@@ -101,6 +101,8 @@
                                        ". See IPackageResourceGuard");
                }
 
+               // TODO NG: Check path for ../
+
                scopeName = scope.getName();
                path = name;
                this.locale = locale;

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReferenceRegistry.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReferenceRegistry.java?rev=900927&r1=900926&r2=900927&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReferenceRegistry.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/ResourceReferenceRegistry.java
 Tue Jan 19 19:43:15 2010
@@ -43,11 +43,11 @@
                        Checks.argumentNotNull(scope, "scope");
                        Checks.argumentNotNull(name, "name");
 
-                       this.scope = scope;
-                       this.name = name;
+                       this.scope = scope.intern();
+                       this.name = name.intern();
                        this.locale = locale;
-                       this.style = style;
-                       this.variation = variation;
+                       this.style = style != null ? style.intern() : null;
+                       this.variation = variation != null ? variation.intern() 
: null;
                }
 
                /**
@@ -102,7 +102,11 @@
 
                Key key = new Key(reference.getScope().getName(), 
reference.getName(),
                        reference.getLocale(), reference.getStyle(), 
reference.getVariation());
-               map.put(key, reference);
+
+               if (map.containsKey(key) == false)
+               {
+                       map.put(key, reference);
+               }
        }
 
        /**

Modified: 
wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/UrlTest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/UrlTest.java?rev=900927&r1=900926&r2=900927&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/UrlTest.java 
(original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/ng/request/UrlTest.java 
Tue Jan 19 19:43:15 2010
@@ -18,9 +18,7 @@
 
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 import junit.framework.TestCase;
 
@@ -51,18 +49,6 @@
                assertEquals(list, url.getQueryParameters());
        }
 
-       public void testPutParameters()
-       {
-               Url url = Url.parse("foo?color=green&width=50&color=red");
-               Map<String, String[]> params = new HashMap<String, String[]>();
-               url.putQueryParameters(params);
-               assertEquals(2, params.size());
-               assertEquals("50", params.get("width")[0]);
-               assertEquals(2, params.get("color").length);
-               assertEquals("green", params.get("color")[0]);
-               assertEquals("red", params.get("color")[1]);
-       }
-
        /**
         * 
         */


Reply via email to