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 2017/05/17 09:57:00 UTC

[1/7] isis git commit: ISIS-1613: renames default promptStyle configuration property, and changes default to INLINE

Repository: isis
Updated Branches:
  refs/heads/master 19b2962b6 -> 96813fabb


ISIS-1613: renames default promptStyle configuration property, and changes default to INLINE

property itself renamed from "isis.objects.promptStyle" to "isis.viewer.wicket.promptStyle"
default, if not specified using annotation/layout.xml, and config property not present, is now INLINE rather than DIALOG (so apps automatically updated to the new behaviour).


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

Branch: refs/heads/master
Commit: 9853fc6d2b743fb762fb53b5c3f854b5490d7255
Parents: 19b2962
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed May 17 06:52:55 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed May 17 06:52:55 2017 +0100

----------------------------------------------------------------------
 .../rgant/_rgant-ActionLayout_promptStyle.adoc     |  4 ++--
 .../rgant/_rgant-PropertyLayout_promptStyle.adoc   |  4 ++--
 .../guides/rgcfg/_rgcfg_configuring-core.adoc      | 11 +----------
 .../ugvw/_ugvw_configuration-properties.adoc       |  8 ++++++++
 .../apache/isis/applib/annotation/PromptStyle.java |  8 ++++----
 .../promptStyle/PromptStyleConfiguration.java      |  8 ++++----
 .../promptStyle/PromptStyleFacetAsConfigured.java  |  8 ++++----
 .../settings/WicketViewerSettingsDefault.java      |  7 +++++++
 .../wicket/model/isis/WicketViewerSettings.java    | 15 ++++++++++++++-
 .../main/webapp/WEB-INF/viewer_wicket.properties   | 17 ++++++++++++++---
 10 files changed, 60 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/9853fc6d/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-ActionLayout_promptStyle.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-ActionLayout_promptStyle.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-ActionLayout_promptStyle.adoc
index bf1fbbb..4363633 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-ActionLayout_promptStyle.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-ActionLayout_promptStyle.adoc
@@ -7,8 +7,8 @@
 
 The `promptStyle()` attribute is used to specify whether, when invoking an action associated with a domain object property, the parameters for the action are prompted by way of a dialog box, or is prompted using an inline panel (replacing the property on the page).
 
-If the attribute is not set, then thevalue of the xref:../rgcfg/rgcfg.adoc#_rgcfg_configuring-core[configuration property] `isis.objects.promptStyle` is used.
-If this is itself not set, then a dialog box is used.
+If the attribute is not set, then the value of the xref:../ugvw/ugvw.adoc#_ugvw_configuration-properties[configuration property] `isis.viewer.wicket.promptStyle` is used.
+If this is itself not set, then an inline prompt is used.
 
 For example:
 

http://git-wip-us.apache.org/repos/asf/isis/blob/9853fc6d/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-PropertyLayout_promptStyle.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-PropertyLayout_promptStyle.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-PropertyLayout_promptStyle.adoc
index 08b46ef..bcbe637 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-PropertyLayout_promptStyle.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-PropertyLayout_promptStyle.adoc
@@ -7,8 +7,8 @@
 
 The `promptStyle()` attribute is used to specify whether, when editing a domain object property, the new value for the property is prompted by way of a dialog box, or is prompted using an inline panel (replacing the property on the page).
 
-If the attribute is not set, then the value of the xref:../rgcfg/rgcfg.adoc#_rgcfg_configuring-core[configuration property] `isis.objects.promptStyle` is used.
-If this is itself not set, then a dialog box is used.
+If the attribute is not set, then the value of the xref:../ugvw/ugvw.adoc#_ugvw_configuration-properties[configuration property] `isis.viewer.wicket.promptStyle` is used.
+If this is itself not set, then an inline prompt is used.
 
 For example:
 

http://git-wip-us.apache.org/repos/asf/isis/blob/9853fc6d/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_configuring-core.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_configuring-core.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_configuring-core.adoc
index 17f6ff9..72ae0a1 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_configuring-core.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_configuring-core.adoc
@@ -582,14 +582,6 @@ If enabled, this configuration property will ensure that domain services only de
 |Whether objects' properties and collections can be edited directly (for objects annotated with xref:../rgant/rgant.adoc#_rgant-DomainObject_editing[`@DomainObject#editing()`]); see xref:../rgcfg/rgcfg.adoc#__rgcfg_configuring-core_isis-objects-editing[below] for further discussion.
 
 
-|`isis.objects.` +
-`promptStyle`
-|`dialog`,`inline` +
-(`dialog`)
-|(`1.15.0-SNAPSHOT`) whether the prompt for editing a domain object property is shown in a dialog box or inline within the form.
-Can be overridden on a property-by-property basis using xref:../rgant/rgant.adoc#_rgant-PropertyLayout_promptStyle[`@Property#promptStyle()`]).
-
-
 |`isis.persistor.` +
 `disable` +
 `ConcurrencyChecking`
@@ -670,13 +662,12 @@ See xref:../ugbtb/ugbtb.adoc#_ugbtb_programming-model_layout-metadata-reader[Lay
 
 
 
-
-
 |`isis.viewers.` +
 `paged.parented`
 |positive integer (12)
 |Default page size for parented collections (as owned by an object, eg `Customer#getOrders()`)
 
+
 |`isis.viewers.` +
 `paged.standalone`
 |positive integer (25)

http://git-wip-us.apache.org/repos/asf/isis/blob/9853fc6d/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc
index 1de2b88..35ad690 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_configuration-properties.adoc
@@ -135,6 +135,14 @@ for further details).
 | Whether to disable a no-arg action button after it has been clicked, to prevent users causing an error if they do a double click.
 
 |`isis.viewer.wicket.` +
+`promptStyle`
+|`dialog`,`inline` +
+(`inline`)
+|(`1.15.0-SNAPSHOT`) whether the prompt for editing a domain object property or invoking an action (associated with a property) is shown inline within the property's form, or instead shown in a modal dialog box.
+Can be overridden on a property-by-property basis using xref:../rgant/rgant.adoc#_rgant-PropertyLayout_promptStyle[`@Property#promptStyle()`]) or  xref:../rgant/rgant.adoc#_rgant-ActionLayout_promptStyle[`@Action#promptStyle()`]).
+
+
+|`isis.viewer.wicket.` +
 `redirectEvenIfSameObject`
 | `true`,`false` +
 (`_false_`)

http://git-wip-us.apache.org/repos/asf/isis/blob/9853fc6d/core/applib/src/main/java/org/apache/isis/applib/annotation/PromptStyle.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/PromptStyle.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/PromptStyle.java
index 46f4012..efe8664 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/PromptStyle.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/PromptStyle.java
@@ -21,17 +21,17 @@ package org.apache.isis.applib.annotation;
 import javax.xml.bind.annotation.XmlType;
 
 /**
- * How prompting for new values (property edit) should be performed
+ * How prompting for new values of a property/arguments for an action should be performed
  */
 @XmlType(
         namespace = "http://isis.apache.org/applib/layout/component"
 )
 public enum PromptStyle {
     /**
-     * Edit the property according to the default edit style policy configured in <tt>isis.properties</tt>.
+     * Prompt using the style configured by <tt>isis.viewer.wicket.promptStyle</tt>.
      *
      * <p>
-     *      If no editing style is configured, then {@link #DIALOG} is assumed.
+     *      If no style is configured, then {@link #INLINE} is assumed.
      * </p>
      */
     AS_CONFIGURED,
@@ -40,7 +40,7 @@ public enum PromptStyle {
      */
     DIALOG,
     /**
-     * Show the form inline, replacing the rendering of the property.
+     * Show the form inline, temporarily replacing the rendering of the property.
      */
     INLINE
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/9853fc6d/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleConfiguration.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleConfiguration.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleConfiguration.java
index f833a64..a38b9c2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleConfiguration.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleConfiguration.java
@@ -26,7 +26,7 @@ public class PromptStyleConfiguration {
 
     private PromptStyleConfiguration() {}
 
-    public static final String PROMPT_STYLE_KEY = "isis.objects.promptStyle";
+    public static final String PROMPT_STYLE_KEY = "isis.viewer.wicket.promptStyle";
 
     public static PromptStyle parse(final IsisConfiguration configuration) {
         final String configuredValue = configuration.getString(PROMPT_STYLE_KEY);
@@ -34,9 +34,9 @@ public class PromptStyleConfiguration {
     }
 
     private static PromptStyle parse(final String value) {
-        return value != null && value.trim().equalsIgnoreCase(PromptStyle.INLINE.name())
-                ? PromptStyle.INLINE
-                : PromptStyle.DIALOG;
+        return value != null && value.trim().equalsIgnoreCase(PromptStyle.DIALOG.name())
+                ? PromptStyle.DIALOG
+                : PromptStyle.INLINE;
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/9853fc6d/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleFacetAsConfigured.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleFacetAsConfigured.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleFacetAsConfigured.java
index 722bc1d..e0a25da 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleFacetAsConfigured.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleFacetAsConfigured.java
@@ -24,14 +24,14 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public class PromptStyleFacetAsConfigured extends PromptStyleFacetAbstract {
 
-    private final PromptStyle editStyle;
+    private final PromptStyle promptStyle;
 
-    public PromptStyleFacetAsConfigured(final PromptStyle editStyle, final FacetHolder holder) {
+    public PromptStyleFacetAsConfigured(final PromptStyle promptStyle, final FacetHolder holder) {
         super(holder);
-        this.editStyle = editStyle;
+        this.promptStyle = promptStyle;
     }
 
     @Override public PromptStyle value() {
-        return editStyle;
+        return promptStyle;
     }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/9853fc6d/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
index 2da0dd4..6782fd9 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
@@ -21,7 +21,9 @@ package org.apache.isis.viewer.wicket.viewer.settings;
 
 import com.google.inject.Singleton;
 
+import org.apache.isis.applib.annotation.PromptStyle;
 import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleConfiguration;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
@@ -97,6 +99,11 @@ public class WicketViewerSettingsDefault implements WicketViewerSettings {
     }
 
     @Override
+    public PromptStyle getPromptStyle() {
+        return PromptStyleConfiguration.parse(getConfiguration());
+    }
+
+    @Override
     public boolean isRedirectEvenIfSameObject() {
         return getConfiguration().getBoolean("isis.viewer.wicket.redirectEvenIfSameObject", false);
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/9853fc6d/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
index 848d0d1..cd9b5ad 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
@@ -21,6 +21,8 @@ package org.apache.isis.viewer.wicket.model.isis;
 
 import java.io.Serializable;
 
+import org.apache.isis.applib.annotation.PromptStyle;
+
 public interface WicketViewerSettings extends Serializable {
 
     /**
@@ -102,10 +104,21 @@ public interface WicketViewerSettings extends Serializable {
     boolean isUseIndicatorForNoArgAction();
 
     /**
+     * Whether to use a modal dialog for property edits and for actions associated with properties.
+     * This can be overridden on a case-by-case basis using <code>@PropertyLayout#promptStyle</code> and
+     * <code>@ActionLayout#promptStyle</code>.
+     *
+     * This behaviour is disabled by default; the viewer will use an inline prompt in these cases, making for a smoother
+     * user experience. If enabled then this reinstates the pre-1.15.0 behaviour of using a dialog prompt in all cases.
+     */
+    PromptStyle getPromptStyle();
+
+    /**
      * Whether to redirect to a new page, even if the object being shown (after an action invocation or a property edit)
      * is the same as the previous page.
      *
-     * This behaviour is disable by default; the viewer will update the existing page if it can.
+     * This behaviour is disabled by default; the viewer will update the existing page if it can, making for a
+     * smoother user experience. If enabled then this reinstates the pre-1.15.0 behaviour of redirecting in all cases.
      */
     boolean isRedirectEvenIfSameObject();
 

http://git-wip-us.apache.org/repos/asf/isis/blob/9853fc6d/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
index b85d0da..c51e860 100644
--- a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
+++ b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
@@ -1,4 +1,4 @@
-#  Licensed to the Apache Software Foundation (ASF) under one
+    #  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
@@ -134,7 +134,18 @@ isis.viewer.wicket.themes.showChooser=true
 
 
 #
+# specifies whether an INLINE or DIALOG prompt should be used for property edits and for action invocations (of actions
+# associated with a property).  This is a fallback where not specified on a case-by-case using @PropertyLayout or
+# @ActionLayout (or equivalents in the Xxx.layout.xml file).
+#
+# If not specified then the default is an inline prompt.
+#
+#isis.viewer.wicket.promptStyle=INLINE
+
+
+#
 # If set then reverts to pre-1.15.0 behaviour of redirecting to a new page on any action invocation or property edit.
-# If left to its default then the page will be updated if the same object is rendered, improving the user experience.
+# If left to its default then the page will be updated if the same object is rendered, making for a smoother user
+# experience.
 #
-#isis.viewer.wicket.redirectEvenIfSameObject=false
\ No newline at end of file
+#isis.viewer.wicket.redirectEvenIfSameObject=false


[3/7] isis git commit: ISIS-1621: moves HsqlDbManagerMenu to applib (from simpleapp)

Posted by da...@apache.org.
ISIS-1621: moves HsqlDbManagerMenu to applib (from simpleapp)


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

Branch: refs/heads/master
Commit: 7c6d97b6d53f9ce548f3c54786030d39463cd8eb
Parents: 503ce7b
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed May 17 06:50:10 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed May 17 06:53:34 2017 +0100

----------------------------------------------------------------------
 .../services/hsqldb/HsqlDbManagerMenu.java      | 84 ++++++++++++++++++++
 .../services/dbmanager/HsqlDbManagerMenu.java   | 74 -----------------
 2 files changed, 84 insertions(+), 74 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/7c6d97b6/core/applib/src/main/java/org/apache/isis/applib/services/hsqldb/HsqlDbManagerMenu.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/hsqldb/HsqlDbManagerMenu.java b/core/applib/src/main/java/org/apache/isis/applib/services/hsqldb/HsqlDbManagerMenu.java
new file mode 100644
index 0000000..48843ae
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/hsqldb/HsqlDbManagerMenu.java
@@ -0,0 +1,84 @@
+/*
+ *  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.isis.applib.services.hsqldb;
+
+import java.util.Map;
+
+import javax.annotation.PostConstruct;
+
+import com.google.common.base.Strings;
+
+import org.hsqldb.util.DatabaseManagerSwing;
+
+import org.apache.isis.applib.IsisApplibModule;
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.DomainServiceLayout;
+import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.applib.annotation.RestrictTo;
+import org.apache.isis.applib.annotation.SemanticsOf;
+
+@DomainService(
+        nature = NatureOfService.VIEW_MENU_ONLY,
+        objectType = "isisApplib.HsqlDbManagerMenu"
+)
+@DomainServiceLayout(
+        named = "Prototyping",
+        menuOrder = "500.800",
+        menuBar = DomainServiceLayout.MenuBar.SECONDARY
+)
+public class HsqlDbManagerMenu {
+
+
+    private String url;
+
+    @PostConstruct
+    public void init(Map<String,String> properties) {
+        this.url = properties.get("isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL");
+    }
+
+
+    public static class ActionDomainEvent extends IsisApplibModule.ActionDomainEvent<HsqlDbManagerMenu>{}
+
+    @Action(
+            semantics = SemanticsOf.SAFE,
+            restrictTo = RestrictTo.PROTOTYPING,
+            domainEvent = ActionDomainEvent.class
+    )
+    @ActionLayout(
+            named = "HSQL DB Manager",
+            cssClassFa = "database"
+    )
+    public void hsqlDbManager() {
+        String[] args = {"--url", url, "--noexit" };
+        DatabaseManagerSwing.main(args);
+    }
+    public boolean hideHsqlDbManager() {
+        try {
+            // hsqldb is configured as optional in the applib's pom.xml
+            Thread.currentThread().getContextClassLoader().loadClass(DatabaseManagerSwing.class.getCanonicalName());
+        } catch (ClassNotFoundException e) {
+            return true;
+        }
+        return Strings.isNullOrEmpty(url) || !url.contains("hsqldb:mem");
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/7c6d97b6/example/application/simpleapp/application/src/main/java/domainapp/application/services/dbmanager/HsqlDbManagerMenu.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/application/src/main/java/domainapp/application/services/dbmanager/HsqlDbManagerMenu.java b/example/application/simpleapp/application/src/main/java/domainapp/application/services/dbmanager/HsqlDbManagerMenu.java
deleted file mode 100644
index 7d85cdc..0000000
--- a/example/application/simpleapp/application/src/main/java/domainapp/application/services/dbmanager/HsqlDbManagerMenu.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- *  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 domainapp.application.services.dbmanager;
-
-import java.util.Map;
-
-import javax.annotation.PostConstruct;
-
-import com.google.common.base.Strings;
-
-import org.hsqldb.util.DatabaseManagerSwing;
-
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.DomainServiceLayout;
-import org.apache.isis.applib.annotation.NatureOfService;
-import org.apache.isis.applib.annotation.RestrictTo;
-import org.apache.isis.applib.annotation.SemanticsOf;
-
-@DomainService(
-        nature = NatureOfService.VIEW_MENU_ONLY,
-        objectType = "prototyping.HsqlDbManagerMenu"
-)
-@DomainServiceLayout(
-        named = "Prototyping",
-        menuOrder = "999",
-        menuBar = DomainServiceLayout.MenuBar.SECONDARY
-)
-public class HsqlDbManagerMenu {
-
-
-    private String url;
-
-    @PostConstruct
-    public void init(Map<String,String> properties) {
-        this.url = properties.get("isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL");
-    }
-
-
-    @Action(
-            semantics = SemanticsOf.SAFE,
-            restrictTo = RestrictTo.PROTOTYPING
-    )
-    @ActionLayout(
-            named = "HSQL DB Manager",
-            cssClassFa = "database"
-    )
-    public void hsqlDbManager() {
-        String[] args = {"--url", url, "--noexit" };
-        DatabaseManagerSwing.main(args);
-    }
-    public boolean hideHsqlDbManager() {
-        return Strings.isNullOrEmpty(url) || !url.contains("hsqldb:mem");
-    }
-
-
-}


[7/7] isis git commit: ISIS-1613: fixes unit tests

Posted by da...@apache.org.
ISIS-1613: fixes unit tests

from earlier commit changing promptStyle config property and fallback default


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

Branch: refs/heads/master
Commit: 96813fabb80d18cab6d662bcafec2e1df6fae109
Parents: 281f25c
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed May 17 10:53:24 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed May 17 10:56:50 2017 +0100

----------------------------------------------------------------------
 ...youtXmlLayoutAnnotationFacetFactoryTest.java |   2 +-
 .../PromptStyleConfiguration_Test.java          |  74 ---------
 ...itStyleFacetFromPropertyAnnotation_Test.java | 158 -------------------
 .../PromptStyleConfiguration_Test.java          |  74 +++++++++
 ...ptStyleFacetFromPropertyAnnotation_Test.java | 158 +++++++++++++++++++
 5 files changed, 233 insertions(+), 233 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/96813fab/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutXmlLayoutAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutXmlLayoutAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutXmlLayoutAnnotationFacetFactoryTest.java
index 79ca4a1..b09a42f 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutXmlLayoutAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/layout/ActionLayoutXmlLayoutAnnotationFacetFactoryTest.java
@@ -74,7 +74,7 @@ public class ActionLayoutXmlLayoutAnnotationFacetFactoryTest extends AbstractFac
                 allowing(mockObjSpec).getFacet(DomainServiceFacet.class);
                 will(returnValue(null));
 
-                allowing(mockConfiguration).getString("isis.objects.promptStyle");
+                allowing(mockConfiguration).getString("isis.viewer.wicket.promptStyle");
                 will(returnValue(null));
 
             }

http://git-wip-us.apache.org/repos/asf/isis/blob/96813fab/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/editstyle/PromptStyleConfiguration_Test.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/editstyle/PromptStyleConfiguration_Test.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/editstyle/PromptStyleConfiguration_Test.java
deleted file mode 100644
index 479e113..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/editstyle/PromptStyleConfiguration_Test.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.apache.isis.core.metamodel.facets.properties.editstyle;
-
-import org.jmock.Expectations;
-import org.jmock.auto.Mock;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
-
-import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleConfiguration;
-import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
-
-import static org.hamcrest.CoreMatchers.is;
-
-public class PromptStyleConfiguration_Test {
-
-    @Rule
-    public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(JUnitRuleMockery2.Mode.INTERFACES_AND_CLASSES);
-
-    @Mock
-    IsisConfiguration mockIsisConfiguration;
-
-    @Test
-    public void when_none() throws Exception {
-        context.checking(new Expectations() {{
-            oneOf(mockIsisConfiguration).getString("isis.objects.promptStyle");
-            will(returnValue(null));
-        }});
-        PromptStyle editStyle = PromptStyleConfiguration.parse(mockIsisConfiguration);
-        Assert.assertThat(editStyle, is(PromptStyle.DIALOG));
-    }
-
-    @Test
-    public void when_inline() throws Exception {
-        context.checking(new Expectations() {{
-            oneOf(mockIsisConfiguration).getString("isis.objects.promptStyle");
-            will(returnValue("inline"));
-        }});
-        PromptStyle editStyle = PromptStyleConfiguration.parse(mockIsisConfiguration);
-        Assert.assertThat(editStyle, is(PromptStyle.INLINE));
-    }
-
-    @Test
-    public void when_inline_mixed_case_and_superfluous_characters() throws Exception {
-        context.checking(new Expectations() {{
-            oneOf(mockIsisConfiguration).getString("isis.objects.promptStyle");
-            will(returnValue(" inLIne "));
-        }});
-        PromptStyle editStyle = PromptStyleConfiguration.parse(mockIsisConfiguration);
-        Assert.assertThat(editStyle, is(PromptStyle.INLINE));
-    }
-
-    @Test
-    public void when_dialog() throws Exception {
-        context.checking(new Expectations() {{
-            oneOf(mockIsisConfiguration).getString("isis.objects.promptStyle");
-            will(returnValue("dialog"));
-        }});
-        PromptStyle editStyle = PromptStyleConfiguration.parse(mockIsisConfiguration);
-        Assert.assertThat(editStyle, is(PromptStyle.DIALOG));
-    }
-
-    @Test
-    public void when_invalid() throws Exception {
-        context.checking(new Expectations() {{
-            oneOf(mockIsisConfiguration).getString("isis.objects.promptStyle");
-            will(returnValue("garbage"));
-        }});
-        PromptStyle editStyle = PromptStyleConfiguration.parse(mockIsisConfiguration);
-        Assert.assertThat(editStyle, is(PromptStyle.DIALOG));
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/96813fab/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/editstyle/PropertyEditStyleFacetFromPropertyAnnotation_Test.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/editstyle/PropertyEditStyleFacetFromPropertyAnnotation_Test.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/editstyle/PropertyEditStyleFacetFromPropertyAnnotation_Test.java
deleted file mode 100644
index f52091d..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/editstyle/PropertyEditStyleFacetFromPropertyAnnotation_Test.java
+++ /dev/null
@@ -1,158 +0,0 @@
-package org.apache.isis.core.metamodel.facets.properties.editstyle;
-
-import org.hamcrest.Matcher;
-import org.jmock.Expectations;
-import org.jmock.auto.Mock;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
-
-import org.apache.isis.applib.annotation.PromptStyle;
-import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.commons.matchers.IsisMatchers;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet;
-import org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured;
-import org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBack;
-import org.apache.isis.core.metamodel.facets.properties.propertylayout.PromptStyleFacetForPropertyLayoutAnnotation;
-import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.nullValue;
-
-public class PropertyEditStyleFacetFromPropertyAnnotation_Test {
-
-    @Rule
-    public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(JUnitRuleMockery2.Mode.INTERFACES_AND_CLASSES);
-
-    @Mock
-    IsisConfiguration mockConfiguration;
-
-    @Mock
-    FacetHolder mockFacetHolder;
-
-    @Mock
-    PropertyLayout mockPropertyLayout;
-
-
-    public static class Create_Test extends PropertyEditStyleFacetFromPropertyAnnotation_Test {
-
-        @Test
-        public void when_annotated_with_dialog() throws Exception {
-
-            context.checking(new Expectations() {{
-                allowing(mockPropertyLayout).promptStyle();
-                will(returnValue(PromptStyle.DIALOG));
-
-                never(mockConfiguration);
-            }});
-
-            PromptStyleFacet facet = PromptStyleFacetForPropertyLayoutAnnotation
-                    .create(mockPropertyLayout, mockConfiguration, mockFacetHolder);
-
-            Assert.assertThat(facet, is((Matcher) IsisMatchers.anInstanceOf(PromptStyleFacetForPropertyLayoutAnnotation.class)));
-            Assert.assertThat(facet.value(), is(PromptStyle.DIALOG));
-        }
-
-        @Test
-        public void when_annotated_with_inline() throws Exception {
-
-            context.checking(new Expectations() {{
-                allowing(mockPropertyLayout).promptStyle();
-                will(returnValue(PromptStyle.INLINE));
-
-                never(mockConfiguration);
-            }});
-
-
-            PromptStyleFacet facet = PromptStyleFacetForPropertyLayoutAnnotation
-                    .create(mockPropertyLayout, mockConfiguration, mockFacetHolder);
-
-            Assert.assertThat(facet, is((Matcher) IsisMatchers.anInstanceOf(PromptStyleFacetForPropertyLayoutAnnotation.class)));
-            Assert.assertThat(facet.value(), is(PromptStyle.INLINE));
-        }
-
-        @Test
-        public void when_annotated_with_as_configured() throws Exception {
-
-            context.checking(new Expectations() {{
-                allowing(mockPropertyLayout).promptStyle();
-                will(returnValue(PromptStyle.AS_CONFIGURED));
-
-                oneOf(mockConfiguration).getString("isis.objects.promptStyle");
-                will(returnValue(PromptStyle.INLINE.name()));
-
-                allowing(mockFacetHolder).containsDoOpFacet(PromptStyleFacet.class);
-                will(returnValue(false));
-            }});
-
-            PromptStyleFacet facet = PromptStyleFacetForPropertyLayoutAnnotation
-                    .create(mockPropertyLayout, mockConfiguration, mockFacetHolder);
-
-            Assert.assertThat(facet, is((Matcher) IsisMatchers.anInstanceOf(PromptStyleFacetAsConfigured.class)));
-            Assert.assertThat(facet.value(), is(PromptStyle.INLINE));
-        }
-
-        @Test
-        public void when_annotated_with_as_configured_but_already_has_doop_facet() throws Exception {
-
-            context.checking(new Expectations() {{
-                allowing(mockPropertyLayout).promptStyle();
-                will(returnValue(PromptStyle.AS_CONFIGURED));
-
-                oneOf(mockFacetHolder).containsDoOpFacet(PromptStyleFacet.class);
-                will(returnValue(true));
-
-                never(mockConfiguration);
-            }});
-
-            PromptStyleFacet facet = PromptStyleFacetForPropertyLayoutAnnotation
-                    .create(mockPropertyLayout, mockConfiguration, mockFacetHolder);
-
-            Assert.assertThat(facet, is(nullValue()));
-        }
-
-        @Test
-        public void when_not_annotated() throws Exception {
-
-            context.checking(new Expectations() {{
-                allowing(mockPropertyLayout).promptStyle();
-                will(returnValue(null));
-
-                allowing(mockFacetHolder).containsDoOpFacet(PromptStyleFacet.class);
-                will(returnValue(false));
-
-                never(mockConfiguration);
-            }});
-
-            PromptStyleFacet facet = PromptStyleFacetForPropertyLayoutAnnotation
-                    .create(mockPropertyLayout, mockConfiguration, mockFacetHolder);
-
-            Assert.assertThat(facet.value(), is(PromptStyle.DIALOG));
-            Assert.assertThat(facet, is((Matcher) IsisMatchers.anInstanceOf(PromptStyleFacetFallBack.class)));
-        }
-
-        @Test
-        public void when_not_annotated_but_already_has_doop_facet() throws Exception {
-
-            context.checking(new Expectations() {{
-                allowing(mockPropertyLayout).promptStyle();
-                will(returnValue(null));
-
-                allowing(mockFacetHolder).containsDoOpFacet(PromptStyleFacet.class);
-                will(returnValue(true));
-
-                never(mockConfiguration);
-            }});
-
-            PromptStyleFacet facet = PromptStyleFacetForPropertyLayoutAnnotation
-                    .create(mockPropertyLayout, mockConfiguration, mockFacetHolder);
-
-            Assert.assertThat(facet, is(nullValue()));
-        }
-
-
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/96813fab/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/promptstyle/PromptStyleConfiguration_Test.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/promptstyle/PromptStyleConfiguration_Test.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/promptstyle/PromptStyleConfiguration_Test.java
new file mode 100644
index 0000000..b74d156
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/promptstyle/PromptStyleConfiguration_Test.java
@@ -0,0 +1,74 @@
+package org.apache.isis.core.metamodel.facets.properties.promptstyle;
+
+import org.jmock.Expectations;
+import org.jmock.auto.Mock;
+import org.junit.Assert;
+import org.junit.Rule;
+import org.junit.Test;
+
+import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleConfiguration;
+import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
+
+import static org.hamcrest.CoreMatchers.is;
+
+public class PromptStyleConfiguration_Test {
+
+    @Rule
+    public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(JUnitRuleMockery2.Mode.INTERFACES_AND_CLASSES);
+
+    @Mock
+    IsisConfiguration mockIsisConfiguration;
+
+    @Test
+    public void when_none() throws Exception {
+        context.checking(new Expectations() {{
+            oneOf(mockIsisConfiguration).getString("isis.viewer.wicket.promptStyle");
+            will(returnValue(null));
+        }});
+        PromptStyle editStyle = PromptStyleConfiguration.parse(mockIsisConfiguration);
+        Assert.assertThat(editStyle, is(PromptStyle.INLINE));
+    }
+
+    @Test
+    public void when_inline() throws Exception {
+        context.checking(new Expectations() {{
+            oneOf(mockIsisConfiguration).getString("isis.viewer.wicket.promptStyle");
+            will(returnValue("inline"));
+        }});
+        PromptStyle editStyle = PromptStyleConfiguration.parse(mockIsisConfiguration);
+        Assert.assertThat(editStyle, is(PromptStyle.INLINE));
+    }
+
+    @Test
+    public void when_inline_mixed_case_and_superfluous_characters() throws Exception {
+        context.checking(new Expectations() {{
+            oneOf(mockIsisConfiguration).getString("isis.viewer.wicket.promptStyle");
+            will(returnValue(" inLIne "));
+        }});
+        PromptStyle editStyle = PromptStyleConfiguration.parse(mockIsisConfiguration);
+        Assert.assertThat(editStyle, is(PromptStyle.INLINE));
+    }
+
+    @Test
+    public void when_dialog() throws Exception {
+        context.checking(new Expectations() {{
+            oneOf(mockIsisConfiguration).getString("isis.viewer.wicket.promptStyle");
+            will(returnValue("dialog"));
+        }});
+        PromptStyle editStyle = PromptStyleConfiguration.parse(mockIsisConfiguration);
+        Assert.assertThat(editStyle, is(PromptStyle.DIALOG));
+    }
+
+    @Test
+    public void when_invalid() throws Exception {
+        context.checking(new Expectations() {{
+            oneOf(mockIsisConfiguration).getString("isis.viewer.wicket.promptStyle");
+            will(returnValue("garbage"));
+        }});
+        PromptStyle editStyle = PromptStyleConfiguration.parse(mockIsisConfiguration);
+        Assert.assertThat(editStyle, is(PromptStyle.INLINE));
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/96813fab/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/promptstyle/PromptStyleFacetFromPropertyAnnotation_Test.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/promptstyle/PromptStyleFacetFromPropertyAnnotation_Test.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/promptstyle/PromptStyleFacetFromPropertyAnnotation_Test.java
new file mode 100644
index 0000000..5deea3f
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/promptstyle/PromptStyleFacetFromPropertyAnnotation_Test.java
@@ -0,0 +1,158 @@
+package org.apache.isis.core.metamodel.facets.properties.promptstyle;
+
+import org.hamcrest.Matcher;
+import org.jmock.Expectations;
+import org.jmock.auto.Mock;
+import org.junit.Assert;
+import org.junit.Rule;
+import org.junit.Test;
+
+import org.apache.isis.applib.annotation.PromptStyle;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.matchers.IsisMatchers;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacet;
+import org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetAsConfigured;
+import org.apache.isis.core.metamodel.facets.object.promptStyle.PromptStyleFacetFallBack;
+import org.apache.isis.core.metamodel.facets.properties.propertylayout.PromptStyleFacetForPropertyLayoutAnnotation;
+import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.nullValue;
+
+public class PromptStyleFacetFromPropertyAnnotation_Test {
+
+    @Rule
+    public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(JUnitRuleMockery2.Mode.INTERFACES_AND_CLASSES);
+
+    @Mock
+    IsisConfiguration mockConfiguration;
+
+    @Mock
+    FacetHolder mockFacetHolder;
+
+    @Mock
+    PropertyLayout mockPropertyLayout;
+
+
+    public static class Create_Test extends PromptStyleFacetFromPropertyAnnotation_Test {
+
+        @Test
+        public void when_annotated_with_dialog() throws Exception {
+
+            context.checking(new Expectations() {{
+                allowing(mockPropertyLayout).promptStyle();
+                will(returnValue(PromptStyle.DIALOG));
+
+                never(mockConfiguration);
+            }});
+
+            PromptStyleFacet facet = PromptStyleFacetForPropertyLayoutAnnotation
+                    .create(mockPropertyLayout, mockConfiguration, mockFacetHolder);
+
+            Assert.assertThat(facet, is((Matcher) IsisMatchers.anInstanceOf(PromptStyleFacetForPropertyLayoutAnnotation.class)));
+            Assert.assertThat(facet.value(), is(PromptStyle.DIALOG));
+        }
+
+        @Test
+        public void when_annotated_with_inline() throws Exception {
+
+            context.checking(new Expectations() {{
+                allowing(mockPropertyLayout).promptStyle();
+                will(returnValue(PromptStyle.INLINE));
+
+                never(mockConfiguration);
+            }});
+
+
+            PromptStyleFacet facet = PromptStyleFacetForPropertyLayoutAnnotation
+                    .create(mockPropertyLayout, mockConfiguration, mockFacetHolder);
+
+            Assert.assertThat(facet, is((Matcher) IsisMatchers.anInstanceOf(PromptStyleFacetForPropertyLayoutAnnotation.class)));
+            Assert.assertThat(facet.value(), is(PromptStyle.INLINE));
+        }
+
+        @Test
+        public void when_annotated_with_as_configured() throws Exception {
+
+            context.checking(new Expectations() {{
+                allowing(mockPropertyLayout).promptStyle();
+                will(returnValue(PromptStyle.AS_CONFIGURED));
+
+                oneOf(mockConfiguration).getString("isis.viewer.wicket.promptStyle");
+                will(returnValue(PromptStyle.INLINE.name()));
+
+                allowing(mockFacetHolder).containsDoOpFacet(PromptStyleFacet.class);
+                will(returnValue(false));
+            }});
+
+            PromptStyleFacet facet = PromptStyleFacetForPropertyLayoutAnnotation
+                    .create(mockPropertyLayout, mockConfiguration, mockFacetHolder);
+
+            Assert.assertThat(facet, is((Matcher) IsisMatchers.anInstanceOf(PromptStyleFacetAsConfigured.class)));
+            Assert.assertThat(facet.value(), is(PromptStyle.INLINE));
+        }
+
+        @Test
+        public void when_annotated_with_as_configured_but_already_has_doop_facet() throws Exception {
+
+            context.checking(new Expectations() {{
+                allowing(mockPropertyLayout).promptStyle();
+                will(returnValue(PromptStyle.AS_CONFIGURED));
+
+                oneOf(mockFacetHolder).containsDoOpFacet(PromptStyleFacet.class);
+                will(returnValue(true));
+
+                never(mockConfiguration);
+            }});
+
+            PromptStyleFacet facet = PromptStyleFacetForPropertyLayoutAnnotation
+                    .create(mockPropertyLayout, mockConfiguration, mockFacetHolder);
+
+            Assert.assertThat(facet, is(nullValue()));
+        }
+
+        @Test
+        public void when_not_annotated() throws Exception {
+
+            context.checking(new Expectations() {{
+                allowing(mockPropertyLayout).promptStyle();
+                will(returnValue(null));
+
+                allowing(mockFacetHolder).containsDoOpFacet(PromptStyleFacet.class);
+                will(returnValue(false));
+
+                never(mockConfiguration);
+            }});
+
+            PromptStyleFacet facet = PromptStyleFacetForPropertyLayoutAnnotation
+                    .create(mockPropertyLayout, mockConfiguration, mockFacetHolder);
+
+            Assert.assertThat(facet.value(), is(PromptStyle.INLINE));
+            Assert.assertThat(facet, is((Matcher) IsisMatchers.anInstanceOf(PromptStyleFacetFallBack.class)));
+        }
+
+        @Test
+        public void when_not_annotated_but_already_has_doop_facet() throws Exception {
+
+            context.checking(new Expectations() {{
+                allowing(mockPropertyLayout).promptStyle();
+                will(returnValue(null));
+
+                allowing(mockFacetHolder).containsDoOpFacet(PromptStyleFacet.class);
+                will(returnValue(true));
+
+                never(mockConfiguration);
+            }});
+
+            PromptStyleFacet facet = PromptStyleFacetForPropertyLayoutAnnotation
+                    .create(mockPropertyLayout, mockConfiguration, mockFacetHolder);
+
+            Assert.assertThat(facet, is(nullValue()));
+        }
+
+
+    }
+
+}


[5/7] isis git commit: ISIS-1613: fixes fallback for prompt style.

Posted by da...@apache.org.
ISIS-1613: fixes fallback for prompt style.

was not defaulting to INLINE, and also was not possible to replace the fallback if explicitly specified.


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

Branch: refs/heads/master
Commit: 756a4600219f27be2878eb1249fd86abe291d8e4
Parents: 1926179
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed May 17 09:48:39 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed May 17 09:48:39 2017 +0100

----------------------------------------------------------------------
 .../org/apache/isis/core/metamodel/facetapi/FacetHolder.java | 5 +++++
 .../apache/isis/core/metamodel/facetapi/FacetHolderImpl.java | 6 ++++++
 .../layout/PromptStyleFacetForActionLayoutAnnotation.java    | 2 +-
 .../facets/object/promptStyle/PromptStyleFacetAbstract.java  | 8 ++++++--
 .../facets/object/promptStyle/PromptStyleFacetFallBack.java  | 4 ++--
 .../specloader/specimpl/ObjectActionParameterAbstract.java   | 7 +++++++
 .../metamodel/specloader/specimpl/ObjectMemberAbstract.java  | 5 +++++
 7 files changed, 32 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/756a4600/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetHolder.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetHolder.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetHolder.java
index 60b1461..c448e8c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetHolder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetHolder.java
@@ -56,6 +56,11 @@ public interface FacetHolder {
      */
     boolean containsDoOpFacet(Class<? extends Facet> facetType);
 
+    /**
+     * As {@link #containsDoOpFacet(Class)}, which additional requirement that the
+     * facet is not {@link Facet#isDerived()}.
+     */
+    boolean containsDoOpNotDerivedFacet(Class<? extends Facet> facetType);
 
     /**
      * Returns all {@link Facet}s matching the specified {@link Filter}.

http://git-wip-us.apache.org/repos/asf/isis/blob/756a4600/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetHolderImpl.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetHolderImpl.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetHolderImpl.java
index 4a0cf5f..03f46e9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetHolderImpl.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetHolderImpl.java
@@ -44,6 +44,12 @@ public class FacetHolderImpl implements FacetHolder {
     }
 
     @Override
+    public boolean containsDoOpNotDerivedFacet(final Class<? extends Facet> facetType) {
+        final Facet facet = getFacet(facetType);
+        return facet != null && !facet.isNoop() && !facet.isDerived();
+    }
+
+    @Override
     public void addFacet(final Facet facet) {
         addFacet(facet.facetType(), facet);
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/756a4600/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/PromptStyleFacetForActionLayoutAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/PromptStyleFacetForActionLayoutAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/PromptStyleFacetForActionLayoutAnnotation.java
index 1361aa0..0656db8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/PromptStyleFacetForActionLayoutAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/layout/PromptStyleFacetForActionLayoutAnnotation.java
@@ -46,7 +46,7 @@ public class PromptStyleFacetForActionLayoutAnnotation extends PromptStyleFacetA
         PromptStyle promptStyle = actionLayout != null? actionLayout.promptStyle() : null;
 
         if(promptStyle == null) {
-            if (holder.containsDoOpFacet(PromptStyleFacet.class)) {
+            if (holder.containsDoOpNotDerivedFacet(PromptStyleFacet.class)) {
                 // do not replace
                 return null;
             }

http://git-wip-us.apache.org/repos/asf/isis/blob/756a4600/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleFacetAbstract.java
index 9d1e3b7..0084f7f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleFacetAbstract.java
@@ -31,8 +31,12 @@ public abstract class PromptStyleFacetAbstract extends FacetAbstract
         return PromptStyleFacet.class;
     }
 
-    public PromptStyleFacetAbstract(final FacetHolder holder) {
-        super( type(), holder, Derivation.NOT_DERIVED);
+    protected PromptStyleFacetAbstract(final FacetHolder holder) {
+        this( holder, Derivation.NOT_DERIVED);
+    }
+
+    protected PromptStyleFacetAbstract(final FacetHolder holder, final Derivation derivation) {
+        super( type(), holder, derivation);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/756a4600/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleFacetFallBack.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleFacetFallBack.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleFacetFallBack.java
index 29f6074..7cb0e69 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleFacetFallBack.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/promptStyle/PromptStyleFacetFallBack.java
@@ -25,11 +25,11 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 public class PromptStyleFacetFallBack extends PromptStyleFacetAbstract {
 
     public PromptStyleFacetFallBack(final FacetHolder holder) {
-        super(holder);
+        super(holder, Derivation.DERIVED);
     }
 
     @Override
     public PromptStyle value() {
-        return PromptStyle.DIALOG;
+        return PromptStyle.INLINE;
     }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/756a4600/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
index 89e48e6..f6cc3b1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
@@ -221,6 +221,13 @@ public abstract class ObjectActionParameterAbstract implements ObjectActionParam
     }
 
     @Override
+    public boolean containsDoOpNotDerivedFacet(final Class<? extends Facet> facetType) {
+        final FacetHolder facetHolder = getFacetHolder();
+        return facetHolder != null && facetHolder.containsDoOpNotDerivedFacet(facetType);
+    }
+
+
+    @Override
     public <T extends Facet> T getFacet(final Class<T> cls) {
         final FacetHolder facetHolder = getFacetHolder();
         return facetHolder != null ? facetHolder.getFacet(cls) : null;

http://git-wip-us.apache.org/repos/asf/isis/blob/756a4600/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
index 3d7dab1..b059bf9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
@@ -136,6 +136,11 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
     }
 
     @Override
+    public boolean containsDoOpNotDerivedFacet(final Class<? extends Facet> facetType) {
+        return getFacetHolder().containsDoOpNotDerivedFacet(facetType);
+    }
+
+    @Override
     public <T extends Facet> T getFacet(final Class<T> cls) {
         return getFacetHolder().getFacet(cls);
     }


[6/7] isis git commit: ISIS-1613: fix rendering of inline prompt for multiline string panel (ie notes)

Posted by da...@apache.org.
ISIS-1613: fix rendering of inline prompt for multiline string panel (ie notes)

should use a textarea, not a span


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

Branch: refs/heads/master
Commit: 281f25c31b619ed0ba87b442fed802fe32cbdd5b
Parents: 756a460
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed May 17 10:46:44 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed May 17 10:46:44 2017 +0100

----------------------------------------------------------------------
 .../scalars/ScalarPanelAbstract2.java           | 19 +++++++---
 .../scalars/ScalarPanelTextFieldAbstract.html   | 13 ++++++-
 .../scalars/ScalarPanelTextFieldAbstract.java   | 24 ++++++++++--
 .../ScalarPanelTextFieldDatePickerAbstract.java |  8 ++--
 .../scalars/ScalarPanelTextFieldNumeric.java    |  2 +-
 .../scalars/primitive/BooleanPanel.java         |  2 +-
 .../scalars/reference/ReferencePanel.java       |  2 +-
 .../scalars/string/MultiLineStringPanel.java    | 39 ++++++++++----------
 .../valuechoices/ValueChoicesSelect2Panel.java  |  2 +-
 9 files changed, 71 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/281f25c3/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
index d74b644..5e93b65 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
@@ -267,7 +267,7 @@ public abstract class ScalarPanelAbstract2 extends PanelAbstract<ScalarModel> im
         }
         if(scalarModel.getKind() == ScalarModel.Kind.PROPERTY &&
            scalarModel.getMode() == EntityModel.Mode.VIEW     &&
-           scalarModel.getPromptStyle() != PromptStyle.INLINE) {
+                (scalarModel.getPromptStyle() != PromptStyle.INLINE || !scalarModel.canEnterEditMode())) {
             getScalarValueComponent().add(new AttributeAppender("tabindex", "-1"));
         }
 
@@ -493,26 +493,33 @@ public abstract class ScalarPanelAbstract2 extends PanelAbstract<ScalarModel> im
     }
 
     private WebMarkupContainer createInlinePromptLink() {
-        final IModel<?> inlineLinkModel = obtainPromptInlineLinkModel();
-        if(inlineLinkModel == null) {
-            throw new IllegalStateException(this.getClass().getName() + ": obtainPromptInlineLinkModel() returning null is not compatible with supportsInlinePrompt() returning true ");
+        final IModel<String> inlinePromptModel = obtainInlinePromptModel();
+        if(inlinePromptModel == null) {
+            throw new IllegalStateException(this.getClass().getName() + ": obtainInlinePromptModel() returning null is not compatible with supportsInlinePrompt() returning true ");
         }
 
         final WebMarkupContainer inlinePromptLink = new WebMarkupContainer(ID_SCALAR_VALUE_INLINE_PROMPT_LINK);
         inlinePromptLink.setOutputMarkupId(true);
 
-        final Label editInlineLinkLabel = new Label(ID_SCALAR_VALUE_INLINE_PROMPT_LABEL, inlineLinkModel);
+        final Component editInlineLinkLabel = createInlinePromptComponent(ID_SCALAR_VALUE_INLINE_PROMPT_LABEL,
+                inlinePromptModel
+        );
         inlinePromptLink.add(editInlineLinkLabel);
 
         return inlinePromptLink;
     }
 
+    protected Component createInlinePromptComponent(
+            final String id, final IModel<String> inlinePromptModel) {
+        return new Label(id, inlinePromptModel);
+    }
+
     // ///////////////////////////////////////////////////////////////////
 
     /**
      * Components returning true for {@link #getInlinePromptConfig()} are required to override and return a non-null value.
      */
-    protected IModel<String> obtainPromptInlineLinkModel() {
+    protected IModel<String> obtainInlinePromptModel() {
         return null;
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/281f25c3/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.html
index c827e7f..912809e 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.html
@@ -42,9 +42,9 @@
 
                                 <a href="#"
                                    name="scalarValueInlinePromptLink"
-                                   class="form-control input-sm scalarValueInlinePromptLink"
+                                   class="scalarValueInlinePromptLink"
                                    wicket:id="scalarValueInlinePromptLink">
-                                    <span wicket:id="scalarValueInlinePromptLabel"></span>
+                                    <wicket:container wicket:id="scalarValueInlinePromptLabel"/>
                                 </a>
 
                                 <wicket:container wicket:id="scalarValueContainer"/>
@@ -81,6 +81,15 @@
                 wicket:id="scalarValue" />
     </wicket:fragment>
 
+    <wicket:fragment wicket:id="textInlinePrompt">
+        <span class="form-control input-sm" wicket:id="scalarValue"></span>
+    </wicket:fragment>
+
+    <wicket:fragment wicket:id="textareaInlinePrompt">
+        <textarea rows="10" maxlength="4000" class="form-control input-sm" wicket:id="scalarValue"></textarea>
+    </wicket:fragment>
+
+
     <wicket:fragment wicket:id="textarea">
                 <textarea
                         name="scalarValue"

http://git-wip-us.apache.org/repos/asf/isis/blob/281f25c3/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
index 3e37b4a..c92a5e4 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
@@ -185,8 +185,25 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
         return formGroup;
     }
 
-    protected Fragment createTextFieldFragment(String id) {
-        return new Fragment(id, "text", ScalarPanelTextFieldAbstract.this);
+    private Fragment createTextFieldFragment(String id) {
+        return new Fragment(id, createTextFieldFragmentId(), this);
+    }
+
+    protected String createTextFieldFragmentId() {
+        return "text";
+    }
+
+    /**
+     * Overrides default to use a fragment, allowing the inner rendering to switch between a simple span
+     * or a textarea
+     */
+    protected Component createInlinePromptComponent(
+            final String id,
+            final IModel<String> inlinePromptModel) {
+        final Fragment fragment = new Fragment(id, "textInlinePrompt", this);
+        final Label label = new Label("scalarValue", inlinePromptModel);
+        fragment.add(label);
+        return fragment;
     }
 
     protected void addStandardSemantics() {
@@ -196,7 +213,6 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
         addValidatorForIsisValidation();
     }
 
-
     private void addValidatorForIsisValidation() {
         final ScalarModel scalarModel = getModel();
 
@@ -284,7 +300,7 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
     }
 
     @Override
-    protected IModel<String> obtainPromptInlineLinkModel() {
+    protected IModel<String> obtainInlinePromptModel() {
         IModel<T> model = textField.getModel();
         // must be "live", for ajax updates.
         return (IModel<String>) model;

http://git-wip-us.apache.org/repos/asf/isis/blob/281f25c3/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java
index 1b10b83..24d7db0 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldDatePickerAbstract.java
@@ -70,12 +70,12 @@ public abstract class ScalarPanelTextFieldDatePickerAbstract<T extends Serializa
         return new TextFieldWithDateTimePicker<>(id, newTextFieldValueModel(), cls, converter);
     }
 
+
     @Override
-    protected Fragment createTextFieldFragment(String id) {
-        return new Fragment(id, "date", ScalarPanelTextFieldDatePickerAbstract.this);
+    protected String createTextFieldFragmentId() {
+        return "date";
     }
 
-
     protected Component createComponentForCompact() {
         Fragment compactFragment = getCompactFragment(CompactType.SPAN);
         final Label label = new Label(ID_SCALAR_IF_COMPACT, newTextFieldValueModel()) {
@@ -98,7 +98,7 @@ public abstract class ScalarPanelTextFieldDatePickerAbstract<T extends Serializa
         return label;
     }
 
-    protected IModel<String> obtainPromptInlineLinkModel() {
+    protected IModel<String> obtainInlinePromptModel() {
         return new Model<String>() {
             @Override public String getObject() {
                 ObjectAdapter object = scalarModel.getObject();

http://git-wip-us.apache.org/repos/asf/isis/blob/281f25c3/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
index 318fced..8701607 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
@@ -68,7 +68,7 @@ public abstract class ScalarPanelTextFieldNumeric<T extends Serializable> extend
         return label;
     }
 
-    protected IModel<String> obtainPromptInlineLinkModel() {
+    protected IModel<String> obtainInlinePromptModel() {
         ObjectAdapter object = scalarModel.getObject();
         final T value = object != null ? (T) object.getObject() : null;
         final String str =

http://git-wip-us.apache.org/repos/asf/isis/blob/281f25c3/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
index a54a294..af136f4 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
@@ -109,7 +109,7 @@ public class BooleanPanel extends ScalarPanelAbstract2 {
     }
 
     @Override
-    protected IModel<String> obtainPromptInlineLinkModel() {
+    protected IModel<String> obtainInlinePromptModel() {
         return new Model<String>() {
 
             private static final long serialVersionUID = 1L;

http://git-wip-us.apache.org/repos/asf/isis/blob/281f25c3/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
index c5804c3..a8b2c62 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
@@ -204,7 +204,7 @@ public class ReferencePanel extends ScalarPanelSelect2Abstract implements PanelW
     }
 
     @Override
-    protected IModel<String> obtainPromptInlineLinkModel() {
+    protected IModel<String> obtainInlinePromptModel() {
         final IModel<ObjectAdapterMemento> model = select2.getModel();
         return new IModel<String>() {
             @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/281f25c3/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
index e6f06b3..b98793e 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
@@ -24,6 +24,7 @@ import org.apache.wicket.Component;
 import org.apache.wicket.markup.html.form.AbstractTextComponent;
 import org.apache.wicket.markup.html.form.TextArea;
 import org.apache.wicket.markup.html.panel.Fragment;
+import org.apache.wicket.model.IModel;
 
 import org.apache.isis.core.metamodel.facets.SingleIntValueFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet;
@@ -46,26 +47,36 @@ public class MultiLineStringPanel extends ScalarPanelTextFieldParseableAbstract
     @Override
     protected AbstractTextComponent<String> createTextFieldForRegular(final String id) {
         TextFieldStringModel model = new TextFieldStringModel(this);
-        final TextArea<String> textField = new TextArea<String>(id, model);
+        final TextArea<String> textArea = new TextArea<String>(id, model);
+        setRowsAndMaxLengthAttributesOn(textArea);
+        return textArea;
+    }
 
+    private void setRowsAndMaxLengthAttributesOn(final TextArea<String> textField) {
         final MultiLineFacet multiLineFacet = getModel().getFacet(MultiLineFacet.class);
         setAttribute(textField, "rows", multiLineFacet.numberOfLines());
-        
-        
+
         final Integer maxLength = getValueOf(getModel(), MaxLengthFacet.class);
         if(maxLength != null) {
             // in conjunction with javascript in jquery.isis.wicket.viewer.js
             // see http://stackoverflow.com/questions/4459610/set-maxlength-in-html-textarea
             setAttribute(textField, "maxlength", maxLength);
         }
-
-        return textField;
     }
 
-
     @Override
-    protected Fragment createTextFieldFragment(String id) {
-        return new Fragment(id, "textarea", MultiLineStringPanel.this);
+    protected String createTextFieldFragmentId() {
+        return "textarea";
+    }
+
+    protected Component createInlinePromptComponent(
+            final String id,
+            final IModel<String> inlinePromptModel) {
+        final Fragment fragment = new Fragment(id, "textareaInlinePrompt", this);
+        final TextArea<String> inlinePromptTextArea = new TextArea<>("scalarValue", inlinePromptModel);
+        setRowsAndMaxLengthAttributesOn(inlinePromptTextArea);
+        fragment.add(inlinePromptTextArea);
+        return fragment;
     }
 
     @Override
@@ -82,16 +93,4 @@ public class MultiLineStringPanel extends ScalarPanelTextFieldParseableAbstract
         return facet != null ? facet.value() : null;
     }
 
-
-    public int getNumberOfLines(final ScalarModel scalarModel) {
-        final MultiLineFacet multiLineFacet = scalarModel.getFacet(MultiLineFacet.class);
-        int numberOfLines = 1;
-        
-        if (multiLineFacet != null) {
-            numberOfLines = multiLineFacet.numberOfLines();
-        }
-        
-        return numberOfLines;
-    }
-
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/281f25c3/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
index 756b5f7..f082954 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
@@ -103,7 +103,7 @@ public class ValueChoicesSelect2Panel extends ScalarPanelSelect2Abstract impleme
     }
 
     @Override
-    protected IModel<String> obtainPromptInlineLinkModel() {
+    protected IModel<String> obtainInlinePromptModel() {
         ObjectAdapterMemento modelObject = select2.getModelObject();
         String str = modelObject != null ? modelObject.asString(): null;
         return Model.of(str);


[2/7] isis git commit: ISIS-1621: updates applib's pom.xml to add in optional dependency on hsqldb

Posted by da...@apache.org.
ISIS-1621: updates applib's pom.xml to add in optional dependency on hsqldb


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

Branch: refs/heads/master
Commit: 503ce7b35ad0495a005ccfc5790a2ad05c2d1200
Parents: 9853fc6
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed May 17 06:53:22 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed May 17 06:53:22 2017 +0100

----------------------------------------------------------------------
 core/applib/pom.xml | 6 ++++++
 1 file changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/503ce7b3/core/applib/pom.xml
----------------------------------------------------------------------
diff --git a/core/applib/pom.xml b/core/applib/pom.xml
index 24833ad..d36a7ad 100644
--- a/core/applib/pom.xml
+++ b/core/applib/pom.xml
@@ -120,6 +120,12 @@
             <optional>true</optional>
         </dependency>
 
+        <dependency>
+            <groupId>org.hsqldb</groupId>
+            <artifactId>hsqldb</artifactId>
+            <optional>true</optional>
+        </dependency>
+
         <!-- DataNucleus' standard JDO support -->
         <dependency>
             <groupId>javax.jdo</groupId>


[4/7] isis git commit: ISIS-1617: removes inspector from the wicket debug bar

Posted by da...@apache.org.
ISIS-1617: removes inspector from the wicket debug bar

also some minor tweaks in the CSS


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

Branch: refs/heads/master
Commit: 19261797dc52b66627f0a1f27c68a3b117d36381
Parents: 7c6d97b
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed May 17 09:33:08 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed May 17 09:33:08 2017 +0100

----------------------------------------------------------------------
 .../isis/viewer/wicket/ui/pages/PageAbstract.html   |  2 +-
 .../isis/viewer/wicket/ui/pages/PageAbstract.java   | 16 +++++++++++++++-
 .../viewer/wicket/ui/pages/bootstrap-overrides.css  | 12 ++++++------
 3 files changed, 22 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/19261797/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
index 3a67bc1..9785ed1 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
@@ -31,8 +31,8 @@
         <wicket:header-items/>
     </head>
     <body>
-        <div wicket:id="debugBar"></div>
         <div id="container" class="page container-fluid">
+            <div wicket:id="debugBar"></div>
             <div wicket:id="theme">
 
                 <wicket:container wicket:id="header"></wicket:container>

http://git-wip-us.apache.org/repos/asf/isis/blob/19261797/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
index 3acf763..3318340 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
@@ -21,6 +21,7 @@ package org.apache.isis.viewer.wicket.ui.pages;
 
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 
@@ -32,6 +33,8 @@ import org.apache.wicket.Page;
 import org.apache.wicket.RestartResponseAtInterceptPageException;
 import org.apache.wicket.behavior.Behavior;
 import org.apache.wicket.devutils.debugbar.DebugBar;
+import org.apache.wicket.devutils.debugbar.IDebugBarContributor;
+import org.apache.wicket.devutils.debugbar.InspectorDebugPanel;
 import org.apache.wicket.event.Broadcast;
 import org.apache.wicket.markup.head.CssHeaderItem;
 import org.apache.wicket.markup.head.CssReferenceHeaderItem;
@@ -234,7 +237,18 @@ public abstract class PageAbstract extends WebPage implements ActionPromptProvid
     }
 
     protected DebugBar newDebugBar(final String id) {
-        return new DebugBar(id);
+        final DebugBar debugBar = new DebugBar(id);
+        final List<IDebugBarContributor> contributors = DebugBar.getContributors(getApplication());
+        for (Iterator<IDebugBarContributor> iterator = contributors.iterator(); iterator.hasNext(); ) {
+            final IDebugBarContributor contributor = iterator.next();
+            // the InspectorDebug invokes load on every model found.
+            // for ActionModels this has the rather unfortunate effect of invoking them!
+            // https://issues.apache.org/jira/browse/ISIS-1622 raised to refactor and then reinstate this
+            if(contributor == InspectorDebugPanel.DEBUG_BAR_CONTRIB) {
+                iterator.remove();
+            }
+        }
+        return debugBar;
     }
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/19261797/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css
index 7cd3221..4e1d63b 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css
@@ -925,23 +925,23 @@ tr.headers th form input {
 }
 */
 
-#wicketDebugBar {
+#container.page #wicketDebugBar {
     padding-top: 60px;
     padding-bottom: 30px;
 }
-#wicketDebugBar a#wicketDebugBarCollapse img {
+#container.page #wicketDebugBar a#wicketDebugBarCollapse img {
     margin-top: 2px;
     margin-right: 20px;
 }
-#wicketDebugBar span#wicketDebugBarContents > span {
+#container.page #wicketDebugBar span#wicketDebugBarContents > span {
     vertical-align: sub;
 }
-#wicketDebugBar span.wicketversioncontrib {
+#container.page #wicketDebugBar span.wicketversioncontrib {
     display: none;
 }
-#wicketDebugBar span#wicketDebugBarContents a img {
+#container.page #wicketDebugBar span#wicketDebugBarContents a img {
     margin-top: -5px;
 }
-#wicketDebugBar span#wicketDebugBarContents a#wicketDebugBarRemove img {
+#container.page #wicketDebugBar span#wicketDebugBarContents a#wicketDebugBarRemove img {
     margin-top: 2px;
 }