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 2015/11/03 21:24:40 UTC

[2/3] isis git commit: ISIS-1007: ensure that bootstrap.js is loaded first, prior to bootstrap-confirmation.js.

ISIS-1007: ensure that bootstrap.js is loaded first, prior to bootstrap-confirmation.js.

In addition:
- refactor to remove code duplication
- refactor to use fluent API for ConfirmationConfig
- place are you sure dialog to right hand side, rather on top.


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

Branch: refs/heads/master
Commit: 6d42562c8ba3212c10b477ae8f01b3771e720c79
Parents: 810a2b7
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Nov 3 20:17:38 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Nov 3 20:17:38 2015 +0000

----------------------------------------------------------------------
 .../entityactions/AdditionalLinksPanel.java     | 26 +------------
 .../actions/ActionParametersFormPanel.java      | 22 +----------
 .../viewer/wicket/ui/pages/PageAbstract.java    | 18 ++++++---
 .../accmngt/AccountManagementPageAbstract.java  |  9 ++++-
 .../wicket/ui/pages/mmverror/MmvErrorPage.java  |  5 ++-
 .../viewer/wicket/ui/panels/PanelAbstract.java  | 40 +++++++++++++++++++-
 6 files changed, 64 insertions(+), 56 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/6d42562c/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java
index 39e240a..6df911e 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java
@@ -32,10 +32,8 @@ import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.markup.html.list.ListView;
 
 import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.core.commons.lang.StringExtensions;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaPosition;
-import org.apache.isis.core.runtime.system.IsisSystem;
 import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
 import org.apache.isis.viewer.wicket.model.links.ListOfLinksModel;
 import org.apache.isis.viewer.wicket.ui.components.actionmenu.CssClassFaBehavior;
@@ -43,9 +41,6 @@ import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
 import org.apache.isis.viewer.wicket.ui.util.Components;
 import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
 
-import de.agilecoders.wicket.extensions.markup.html.bootstrap.confirmation.ConfirmationBehavior;
-import de.agilecoders.wicket.extensions.markup.html.bootstrap.confirmation.ConfirmationConfig;
-
 public class AdditionalLinksPanel extends PanelAbstract<ListOfLinksModel> {
 
     private static final long serialVersionUID = 1L;
@@ -125,25 +120,8 @@ public class AdditionalLinksPanel extends PanelAbstract<ListOfLinksModel> {
                 link.add(new CssClassAppender(linkAndLabel.getActionIdentifier()));
 
                 SemanticsOf semantics = linkAndLabel.getSemantics();
-                if (    semantics.isAreYouSure() && linkAndLabel.getParameters().isNoParameters() ) {
-                    ConfirmationConfig confirmationConfig = new ConfirmationConfig();
-
-                    final TranslationService translationService =
-                            getPersistenceSession().getServicesInjector().lookupService(TranslationService.class);
-
-                    final String context = IsisSystem.class.getName();
-                    final String areYouSure = translationService.translate(context, IsisSystem.MSG_ARE_YOU_SURE);
-                    final String confirm = translationService.translate(context, IsisSystem.MSG_CONFIRM);
-                    final String cancel = translationService.translate(context, IsisSystem.MSG_CANCEL);
-
-                    confirmationConfig.withTitle(areYouSure);
-                    confirmationConfig.withBtnOkLabel(confirm);
-                    confirmationConfig.withBtnCancelLabel(cancel);
-
-                    confirmationConfig.withBtnOkClass("btn btn-danger");
-                    confirmationConfig.withBtnCancelClass("btn btn-default");
-
-                    link.add(new ConfirmationBehavior(confirmationConfig));
+                if (linkAndLabel.getParameters().isNoParameters()) {
+                    addConfirmationDialogIfAreYouSureSemantics(link, semantics);
                 }
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/6d42562c/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
index 58282ac..d1d7020 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
@@ -33,12 +33,10 @@ import org.apache.wicket.markup.repeater.RepeatingView;
 import org.apache.wicket.model.ResourceModel;
 
 import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.core.commons.ensure.Ensure;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
-import org.apache.isis.core.runtime.system.IsisSystem;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.viewer.wicket.model.hints.IsisActionCompletedEvent;
 import org.apache.isis.viewer.wicket.model.mementos.ActionParameterMemento;
@@ -59,7 +57,6 @@ import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
 import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
 
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.confirmation.ConfirmationBehavior;
-import de.agilecoders.wicket.extensions.markup.html.bootstrap.confirmation.ConfirmationConfig;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.CoreMatchers.nullValue;
@@ -225,25 +222,8 @@ public class ActionParametersFormPanel extends PanelAbstract<ActionModel> {
             ActionModel actionModel = getActionModel();
             final ObjectAction action = actionModel.getActionMemento().getAction();
             SemanticsOf semanticsOf = SemanticsOf.from(action.getSemantics());
-            if (semanticsOf.isAreYouSure()) {
-                ConfirmationConfig confirmationConfig = new ConfirmationConfig();
 
-                final TranslationService translationService =
-                        getPersistenceSession().getServicesInjector().lookupService(TranslationService.class);
-
-                final String context = IsisSystem.class.getName();
-                final String areYouSure = translationService.translate(context, IsisSystem.MSG_ARE_YOU_SURE);
-                final String confirm = translationService.translate(context, IsisSystem.MSG_CONFIRM);
-                final String cancel = translationService.translate(context, IsisSystem.MSG_CANCEL);
-
-                confirmationConfig.withTitle(areYouSure);
-                confirmationConfig.withBtnOkLabel(confirm);
-                confirmationConfig.withBtnCancelLabel(cancel);
-
-                confirmationConfig.withBtnOkClass("btn btn-danger");
-                confirmationConfig.withBtnCancelClass("btn btn-default");
-                button.add(new ConfirmationBehavior(confirmationConfig));
-            }
+            addConfirmationDialogIfAreYouSureSemantics(button, semanticsOf);
         }
 
         @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/6d42562c/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 60e273d..c285004 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
@@ -19,18 +19,14 @@
 
 package org.apache.isis.viewer.wicket.ui.pages;
 
-import de.agilecoders.wicket.core.Bootstrap;
-import de.agilecoders.wicket.core.markup.html.references.BootlintHeaderItem;
-import de.agilecoders.wicket.core.settings.IBootstrapSettings;
-import de.agilecoders.wicket.core.settings.ITheme;
-import de.agilecoders.wicket.extensions.markup.html.bootstrap.icon.FontAwesomeCssReference;
-
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Locale;
+
 import com.google.inject.Inject;
 import com.google.inject.name.Named;
+
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.Page;
@@ -58,6 +54,7 @@ import org.apache.wicket.request.resource.PackageResource;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import org.apache.isis.applib.services.exceprecog.ExceptionRecognizer;
 import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerComposite;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
@@ -86,6 +83,13 @@ import org.apache.isis.viewer.wicket.ui.errors.ExceptionModel;
 import org.apache.isis.viewer.wicket.ui.errors.JGrowlBehaviour;
 import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
 
+import de.agilecoders.wicket.core.Bootstrap;
+import de.agilecoders.wicket.core.markup.html.references.BootlintHeaderItem;
+import de.agilecoders.wicket.core.markup.html.references.BootstrapJavaScriptReference;
+import de.agilecoders.wicket.core.settings.IBootstrapSettings;
+import de.agilecoders.wicket.core.settings.ITheme;
+import de.agilecoders.wicket.extensions.markup.html.bootstrap.icon.FontAwesomeCssReference;
+
 /**
  * Convenience adapter for {@link WebPage}s built up using {@link ComponentType}s.
  */
@@ -248,6 +252,8 @@ public abstract class PageAbstract extends WebPage implements ActionPromptProvid
         super.renderHead(response);
 
         response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(getApplication().getJavaScriptLibrarySettings().getJQueryReference())));
+        response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(BootstrapJavaScriptReference.instance())));
+
         response.render(CssHeaderItem.forReference(FontAwesomeCssReference.instance()));
         response.render(CssHeaderItem.forReference(new BootstrapOverridesCssResourceReference()));
         contributeThemeSpecificOverrides(response);

http://git-wip-us.apache.org/repos/asf/isis/blob/6d42562c/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/AccountManagementPageAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/AccountManagementPageAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/AccountManagementPageAbstract.java
index cb6ac31..73bbe80 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/AccountManagementPageAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/AccountManagementPageAbstract.java
@@ -19,10 +19,9 @@
 
 package org.apache.isis.viewer.wicket.ui.pages.accmngt;
 
-import de.agilecoders.wicket.core.markup.html.bootstrap.behavior.BootstrapJavascriptBehavior;
-
 import com.google.inject.Inject;
 import com.google.inject.name.Named;
+
 import org.apache.wicket.Application;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.Page;
@@ -37,6 +36,7 @@ import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.link.BookmarkablePageLink;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
+
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.viewer.wicket.model.models.PageType;
@@ -48,6 +48,9 @@ import org.apache.isis.viewer.wicket.ui.errors.ExceptionStackTracePanel;
 import org.apache.isis.viewer.wicket.ui.pages.PageAbstract;
 import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
 
+import de.agilecoders.wicket.core.markup.html.bootstrap.behavior.BootstrapJavascriptBehavior;
+import de.agilecoders.wicket.core.markup.html.references.BootstrapJavaScriptReference;
+
 /**
  * Boilerplate, pick up our HTML and CSS.
  */
@@ -133,6 +136,8 @@ public class AccountManagementPageAbstract extends WebPage {
     public void renderHead(IHeaderResponse response) {
         super.renderHead(response);
         response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(Application.get().getJavaScriptLibrarySettings().getJQueryReference())));
+        response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(
+                BootstrapJavaScriptReference.instance())));
 
         if(applicationCss != null) {
             response.render(CssReferenceHeaderItem.forUrl(applicationCss));

http://git-wip-us.apache.org/repos/asf/isis/blob/6d42562c/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/mmverror/MmvErrorPage.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/mmverror/MmvErrorPage.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/mmverror/MmvErrorPage.java
index 6c1d2ab..b65e72d 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/mmverror/MmvErrorPage.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/mmverror/MmvErrorPage.java
@@ -40,6 +40,8 @@ import org.apache.wicket.model.IModel;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 
+import de.agilecoders.wicket.core.markup.html.references.BootstrapJavaScriptReference;
+
 /**
  * A page being shown when the meta model validation has failed
  */
@@ -109,7 +111,8 @@ public class MmvErrorPage extends WebPage {
     public void renderHead(IHeaderResponse response) {
         super.renderHead(response);
         response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(Application.get().getJavaScriptLibrarySettings().getJQueryReference())));
-        
+        response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(BootstrapJavaScriptReference.instance())));
+
         if(applicationCss != null) {
             response.render(CssReferenceHeaderItem.forUrl(applicationCss));
         }

http://git-wip-us.apache.org/repos/asf/isis/blob/6d42562c/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java
index bffaa6b..92dcd2d 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java
@@ -25,13 +25,16 @@ import org.apache.wicket.markup.html.IHeaderContributor;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.IModel;
 
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProviderAware;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategoryAware;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
 import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
+import org.apache.isis.core.runtime.system.IsisSystem;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
 import org.apache.isis.viewer.wicket.model.hints.UiHintContainer;
@@ -41,6 +44,10 @@ 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.util.Components;
 
+import de.agilecoders.wicket.core.markup.html.bootstrap.components.TooltipConfig;
+import de.agilecoders.wicket.extensions.markup.html.bootstrap.confirmation.ConfirmationBehavior;
+import de.agilecoders.wicket.extensions.markup.html.bootstrap.confirmation.ConfirmationConfig;
+
 /**
  * Convenience adapter for {@link Panel}s built up using {@link ComponentType}s.
  */
@@ -189,5 +196,34 @@ public abstract class PanelAbstract<T extends IModel<?>> extends Panel implement
     protected <S> S lookupService(final Class<S> serviceClass) {
         return getPersistenceSession().getServicesInjector().lookupService(serviceClass);
     }
-    
+
+
+    protected void addConfirmationDialogIfAreYouSureSemantics(final Component component, final SemanticsOf semanticsOf) {
+        if (!semanticsOf.isAreYouSure()) {
+            return;
+        }
+
+        final TranslationService translationService =
+                getPersistenceSession().getServicesInjector().lookupService(TranslationService.class);
+
+        ConfirmationConfig confirmationConfig = new ConfirmationConfig();
+
+        final String context = IsisSystem.class.getName();
+        final String areYouSure = translationService.translate(context, IsisSystem.MSG_ARE_YOU_SURE);
+        final String confirm = translationService.translate(context, IsisSystem.MSG_CONFIRM);
+        final String cancel = translationService.translate(context, IsisSystem.MSG_CANCEL);
+
+        confirmationConfig
+                .withTitle(areYouSure)
+                .withBtnOkLabel(confirm)
+                .withBtnCancelLabel(cancel)
+                .withPlacement(TooltipConfig.Placement.right)
+                .withBtnOkClass("btn btn-danger")
+                .withBtnCancelClass("btn btn-default");
+
+        component.add(new ConfirmationBehavior(confirmationConfig));
+    }
+
+
+
 }