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]);
- }
-
/**
*
*/