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));
+ }
+
+
+
}