You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2013/11/17 11:09:18 UTC

[1/3] git commit: ISIS-587: fixing bug that all strings shown as textareas

Updated Branches:
  refs/heads/master 60e80afd6 -> 62c91ddae


ISIS-587: fixing bug that all strings shown as textareas

Was not checking whether MultiLineFacet when present was a no-op or not,
with effect that (because of MultiLineFacetNone) all strings were being
shown as text areas.

Also:
- have added a @TypicalLength to ToDoItem#description, to illustrate its use.


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/c9460e42
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/c9460e42
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/c9460e42

Branch: refs/heads/master
Commit: c9460e42778be11066ef88d1337d13802c15e180
Parents: 60e80af
Author: Dan Haywood <da...@apache.org>
Authored: Sun Nov 17 09:17:34 2013 +0000
Committer: Dan Haywood <da...@apache.org>
Committed: Sun Nov 17 09:17:34 2013 +0000

----------------------------------------------------------------------
 .../wicket/ui/components/scalars/string/StringPanelFactory.java | 5 +----
 .../dom/src/main/java/dom/todo/ToDoItem.java                    | 4 +++-
 2 files changed, 4 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/c9460e42/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanelFactory.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanelFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanelFactory.java
index 17eb3ce..cfa3e3f 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanelFactory.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/StringPanelFactory.java
@@ -19,8 +19,6 @@
 
 package org.apache.isis.viewer.wicket.ui.components.scalars.string;
 
-import com.google.common.collect.Lists;
-
 import org.apache.wicket.Component;
 
 import org.apache.isis.core.metamodel.facets.multiline.MultiLineFacet;
@@ -31,7 +29,6 @@ public class StringPanelFactory extends ComponentFactoryScalarAbstract {
 
     private static final long serialVersionUID = 1L;
 
-    @SuppressWarnings("rawtypes")
     public StringPanelFactory() {
         super(
             StringPanel.class, 
@@ -41,7 +38,7 @@ public class StringPanelFactory extends ComponentFactoryScalarAbstract {
     @Override
     public Component createComponent(final String id, final ScalarModel scalarModel) {
         final MultiLineFacet multiLineFacet = scalarModel.getFacet(MultiLineFacet.class);
-        if (multiLineFacet != null) {
+        if (multiLineFacet != null && !multiLineFacet.isNoop()) {
             return new MultiLineStringPanel(id, scalarModel);
         } else {
             return new StringPanel(id, scalarModel);

http://git-wip-us.apache.org/repos/asf/isis/blob/c9460e42/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
index 4ad7cec..0fa748e 100644
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
+++ b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
@@ -59,6 +59,7 @@ import org.apache.isis.applib.annotation.RegEx;
 import org.apache.isis.applib.annotation.Render;
 import org.apache.isis.applib.annotation.Render.Type;
 import org.apache.isis.applib.annotation.SortedBy;
+import org.apache.isis.applib.annotation.TypicalLength;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.clock.Clock;
 import org.apache.isis.applib.util.ObjectContracts;
@@ -151,8 +152,9 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
     
     private String description;
 
-    @javax.jdo.annotations.Column(allowsNull="false", length=30)
+    @javax.jdo.annotations.Column(allowsNull="false", length=100)
     @RegEx(validation = "\\w[@&:\\-\\,\\.\\+ \\w]*") 
+    @TypicalLength(50)
     public String getDescription() {
         return description;
     }


[2/3] git commit: ISIS-591, ISIS-589: loading javascript from footer

Posted by da...@apache.org.
ISIS-591, ISIS-589: loading javascript from footer

In addition, also bundling CSS of some other components.


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/0d8076da
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/0d8076da
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/0d8076da

Branch: refs/heads/master
Commit: 0d8076dacf2709118108c3e1d070889f523b163c
Parents: c9460e4
Author: Dan Haywood <da...@apache.org>
Authored: Sun Nov 17 09:19:26 2013 +0000
Committer: Dan Haywood <da...@apache.org>
Committed: Sun Nov 17 09:19:26 2013 +0000

----------------------------------------------------------------------
 .../wicket/viewer/IsisWicketApplication.java    | 34 ++++++++++++++------
 .../entity/properties/EntityPropertiesForm.java |  2 +-
 .../widgets/cssmenu/CssMenuItemPanel.java       |  2 +-
 .../viewer/wicket/ui/pages/PageAbstract.html    |  3 ++
 .../viewer/wicket/ui/pages/PageAbstract.java    | 11 +++++--
 5 files changed, 37 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/0d8076da/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
index 32a933a..953106b 100644
--- a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
+++ b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
@@ -43,8 +43,9 @@ import org.apache.wicket.RuntimeConfigurationType;
 import org.apache.wicket.authroles.authentication.AuthenticatedWebApplication;
 import org.apache.wicket.authroles.authentication.AuthenticatedWebSession;
 import org.apache.wicket.guice.GuiceComponentInjector;
-import org.apache.wicket.markup.html.IPackageResourceGuard;
-import org.apache.wicket.markup.html.SecurePackageResourceGuard;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.filter.JavaScriptFilteredIntoFooterHeaderResponse;
+import org.apache.wicket.markup.html.IHeaderResponseDecorator;
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Response;
@@ -82,14 +83,16 @@ import org.apache.isis.viewer.wicket.ui.ComponentFactory;
 import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistrar;
 import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
 import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;
-import org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib.IsisBlobOrClobPanelAbstract;
+import org.apache.isis.viewer.wicket.ui.components.additionallinks.AdditionalLinksPanel;
+import org.apache.isis.viewer.wicket.ui.components.entity.properties.EntityPropertiesForm;
 import org.apache.isis.viewer.wicket.ui.components.scalars.string.MultiLineStringPanel;
+import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssMenuItemPanel;
+import org.apache.isis.viewer.wicket.ui.components.widgets.cssmenu.CssSubMenuItemsPanel;
 import org.apache.isis.viewer.wicket.ui.pages.BookmarkedPagesModelProvider;
 import org.apache.isis.viewer.wicket.ui.pages.PageClassList;
 import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
 import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistryAccessor;
 import org.apache.isis.viewer.wicket.ui.panels.PanelUtil;
-import org.apache.isis.viewer.wicket.ui.selector.links.LinksSelectorPanelAbstract;
 import org.apache.isis.viewer.wicket.viewer.integration.isis.DeploymentTypeWicketAbstract;
 import org.apache.isis.viewer.wicket.viewer.integration.isis.WicketServer;
 import org.apache.isis.viewer.wicket.viewer.integration.isis.WicketServerPrototype;
@@ -236,13 +239,18 @@ public class IsisWicketApplication extends AuthenticatedWebApplication implement
             // must be done after injected componentFactoryRegistry into the app itself
             buildCssBundle();
 
-            IPackageResourceGuard guard = getResourceSettings().getPackageResourceGuard();
-            if (guard instanceof SecurePackageResourceGuard)
+            // filters Javascript header contributions so rendered to bottom of page
+            setHeaderResponseDecorator(new IHeaderResponseDecorator()
             {
-                SecurePackageResourceGuard secureGuard = (SecurePackageResourceGuard) guard;
-                secureGuard.addPattern("+org/apache/wicket/merged-resources");
-            }
-            
+                @Override
+                public IHeaderResponse decorate(IHeaderResponse response)
+                {
+                    // use this header resource decorator to load all JavaScript resources in the page
+                    // footer (after </body>)
+                    return new JavaScriptFilteredIntoFooterHeaderResponse(response, "footerJS");
+                }
+            });
+
         } catch(RuntimeException ex) {
             // because Wicket's handling in its WicketFilter (that calls this method) does not log the exception.
             LOG.error("Failed to initialize", ex);
@@ -284,6 +292,12 @@ public class IsisWicketApplication extends AuthenticatedWebApplication implement
         // instead.
         // references.add(PanelUtil.cssResourceReferenceFor(LinksSelectorPanelAbstract.class));
         
+        // components without factories
+        references.add(PanelUtil.cssResourceReferenceFor(AdditionalLinksPanel.class));
+        references.add(PanelUtil.cssResourceReferenceFor(CssSubMenuItemsPanel.class));
+        references.add(PanelUtil.cssResourceReferenceFor(CssMenuItemPanel.class));
+        references.add(PanelUtil.cssResourceReferenceFor(EntityPropertiesForm.class));
+        
         // non-conforming component factories
         references.add(PanelUtil.cssResourceReferenceFor(MultiLineStringPanel.class));
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/0d8076da/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
index 83c2e07..e4168cc 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
@@ -73,7 +73,7 @@ import org.apache.isis.viewer.wicket.ui.panels.FormAbstract;
 import org.apache.isis.viewer.wicket.ui.util.Components;
 import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
 
-class EntityPropertiesForm extends FormAbstract<ObjectAdapter> {
+public class EntityPropertiesForm extends FormAbstract<ObjectAdapter> {
 
     private static final long serialVersionUID = 1L;
 

http://git-wip-us.apache.org/repos/asf/isis/blob/0d8076da/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItemPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItemPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItemPanel.java
index 3c4628b..3a6792c 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItemPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItemPanel.java
@@ -24,7 +24,7 @@ import org.apache.wicket.model.Model;
 /**
  * Panel containing a single {@link CssMenuItem}.
  */
-class CssMenuItemPanel extends CssMenuItemPanelAbstract<CssMenuItemPanel.MyModel> {
+public class CssMenuItemPanel extends CssMenuItemPanelAbstract<CssMenuItemPanel.MyModel> {
 
     private static final long serialVersionUID = 1L;
 

http://git-wip-us.apache.org/repos/asf/isis/blob/0d8076da/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
index b6ecb04..237cdc0 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
@@ -70,5 +70,8 @@
 			</div>
 
 		</div>
+        <div class="javascriptInFooter">
+            <wicket:container wicket:id="footerJS"></wicket:container>
+        </div>
 	</body>
 </html>

http://git-wip-us.apache.org/repos/asf/isis/blob/0d8076da/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
index d882b17..396196a 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
@@ -35,6 +35,8 @@ import org.apache.wicket.markup.head.JavaScriptHeaderItem;
 import org.apache.wicket.markup.head.JavaScriptReferenceHeaderItem;
 import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
 import org.apache.wicket.markup.head.PriorityHeaderItem;
+import org.apache.wicket.markup.head.filter.FilteredHeaderItem;
+import org.apache.wicket.markup.head.filter.HeaderResponseContainer;
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.link.ExternalLink;
@@ -142,6 +144,9 @@ public abstract class PageAbstract extends WebPage {
             addAboutLink();
             add(new Label(ID_PAGE_TITLE, PageParameterNames.PAGE_TITLE.getStringFrom(pageParameters, applicationName)));
             
+            // ensure that all collected JavaScript contributions are loaded at the page footer
+            add(new HeaderResponseContainer("footerJS", "footerJS"));
+            
         } catch(RuntimeException ex) {
 
             LOG.error("Failed to construct page, going back to sign in page", ex);
@@ -180,9 +185,9 @@ public abstract class PageAbstract extends WebPage {
     public void renderHead(IHeaderResponse response) {
         super.renderHead(response);
         response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(Application.get().getJavaScriptLibrarySettings().getJQueryReference())));
-        response.render(new PriorityHeaderItem(JavaScriptReferenceHeaderItem.forReference(JQUERY_JGROWL_JS)));
-        response.render(new PriorityHeaderItem(JavaScriptReferenceHeaderItem.forReference(JQUERY_LIVEQUERY_JS)));
-        response.render(new PriorityHeaderItem(JavaScriptReferenceHeaderItem.forReference(JQUERY_ISIS_WICKET_VIEWER_JS)));
+        response.render(JavaScriptReferenceHeaderItem.forReference(JQUERY_JGROWL_JS));
+        response.render(JavaScriptReferenceHeaderItem.forReference(JQUERY_LIVEQUERY_JS));
+        response.render(JavaScriptReferenceHeaderItem.forReference(JQUERY_ISIS_WICKET_VIEWER_JS));
         
         final String feedbackMsg = JGrowlUtil.asJGrowlCalls(getMessageBroker());
         if (!Strings.isNullOrEmpty(feedbackMsg)) {


[3/3] git commit: ISIS-587: fixing integ test for example quickstart app

Posted by da...@apache.org.
ISIS-587: fixing integ test for example quickstart app


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/62c91dda
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/62c91dda
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/62c91dda

Branch: refs/heads/master
Commit: 62c91ddaed9ff26d9baab749a54f61a95ec6f650
Parents: 0d8076d
Author: Dan Haywood <da...@apache.org>
Authored: Sun Nov 17 10:07:45 2013 +0000
Committer: Dan Haywood <da...@apache.org>
Committed: Sun Nov 17 10:07:45 2013 +0000

----------------------------------------------------------------------
 .../tests/props/ToDoItemTest_description.java         | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/62c91dda/example/application/quickstart_wicket_restful_jdo/integtests/src/test/java/integration/tests/props/ToDoItemTest_description.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/integtests/src/test/java/integration/tests/props/ToDoItemTest_description.java b/example/application/quickstart_wicket_restful_jdo/integtests/src/test/java/integration/tests/props/ToDoItemTest_description.java
index 0411a90..5dadac7 100644
--- a/example/application/quickstart_wicket_restful_jdo/integtests/src/test/java/integration/tests/props/ToDoItemTest_description.java
+++ b/example/application/quickstart_wicket_restful_jdo/integtests/src/test/java/integration/tests/props/ToDoItemTest_description.java
@@ -77,15 +77,23 @@ public class ToDoItemTest_description extends ToDoIntegTest {
     public void onlyJustShortEnough() throws Exception {
         
         // when, then
-        toDoItem.setDescription("123456789012345678901234567890");
+        toDoItem.setDescription(characters(100));
     }
 
     @Test
     public void tooLong() throws Exception {
         
         // when, then
-        expectedExceptions.expectMessage("The value proposed exceeds the maximum length of 30");
-        toDoItem.setDescription("1234567890123456789012345678901");
+        expectedExceptions.expectMessage("The value proposed exceeds the maximum length of 100");
+        toDoItem.setDescription(characters(101));
+    }
+    
+    private static String characters(final int n) {
+        StringBuffer buf = new StringBuffer();
+        for(int i=0; i<n; i++) {
+            buf.append("a");
+        }
+        return buf.toString();
     }
 
 }
\ No newline at end of file