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/04/22 18:06:41 UTC
isis git commit: ISIS-1603: event behaviour to replace with property
a link for dummy panel
Repository: isis
Updated Branches:
refs/heads/ISIS-1603-no-xeditable 636f8f467 -> a4b5c53bf
ISIS-1603: event behaviour to replace with property a link for dummy panel
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/a4b5c53b
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/a4b5c53b
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/a4b5c53b
Branch: refs/heads/ISIS-1603-no-xeditable
Commit: a4b5c53bf174501dd90949b5ae2e11a678bd8ecf
Parents: 636f8f4
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Sat Apr 22 19:06:35 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Sat Apr 22 19:06:35 2017 +0100
----------------------------------------------------------------------
core/pom.xml | 13 --
core/viewer-wicket-ui/pom.xml | 5 -
.../scalars/ScalarPanelTextFieldAbstract.html | 8 +-
.../scalars/ScalarPanelTextFieldAbstract.java | 132 ++-----------------
4 files changed, 19 insertions(+), 139 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/a4b5c53b/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index 6fb09a7..150c5f1 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -149,7 +149,6 @@
<select2.version>4.0.3</select2.version>
<jquery-ui.version>1.11.4</jquery-ui.version>
- <x-editable.version>1.5.1</x-editable.version>
<guice.version>4.1.0</guice.version>
<picocontainer.version>2.15</picocontainer.version>
@@ -1627,18 +1626,6 @@ ${license.additional-notes}
<dependency>
<groupId>org.webjars</groupId>
- <artifactId>x-editable-bootstrap</artifactId>
- <version>${x-editable.version}</version>
- <exclusions>
- <exclusion>
- <groupId>org.webjars</groupId>
- <artifactId>bootstrap</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>org.webjars</groupId>
<artifactId>select2</artifactId>
<version>${select2.version}</version>
</dependency>
http://git-wip-us.apache.org/repos/asf/isis/blob/a4b5c53b/core/viewer-wicket-ui/pom.xml
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/pom.xml b/core/viewer-wicket-ui/pom.xml
index 43a9353..22df597 100644
--- a/core/viewer-wicket-ui/pom.xml
+++ b/core/viewer-wicket-ui/pom.xml
@@ -94,11 +94,6 @@
</dependency>
<dependency>
- <groupId>org.webjars</groupId>
- <artifactId>x-editable-bootstrap</artifactId>
- </dependency>
-
- <dependency>
<groupId>org.webjars</groupId>
<artifactId>select2</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/isis/blob/a4b5c53b/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 098988a..8f4cc42 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
@@ -26,7 +26,7 @@
<wicket:extend>
<wicket:container wicket:id="scalarValueContainer"/>
- <wicket:container wicket:id="scalarValueEditInlineContainer">
+ <div wicket:id="scalarValueEditInlineContainer">
<a
href="#"
name="scalarValueEditInline"
@@ -35,9 +35,11 @@
<span wicket:id="scalarValueEditInlineLabel"></span>
</a>
- <wicket:container wicket:id="propertyEditForm"/>
+ <div wicket:id="propertyEditForm">
+ <div><span>property edit form</span></div>
+ </div>
- </wicket:container>
+ </div>
<wicket:fragment wicket:id="text">
<input
http://git-wip-us.apache.org/repos/asf/isis/blob/a4b5c53b/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 d74909c..e00a34b 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
@@ -29,8 +29,6 @@ import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.attributes.AjaxCallListener;
-import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
import org.apache.wicket.behavior.Behavior;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.WebMarkupContainer;
@@ -40,15 +38,12 @@ import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.markup.html.panel.Fragment;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
-import org.apache.wicket.request.cycle.RequestCycle;
-import org.apache.wicket.util.string.StringValue;
import org.apache.wicket.validation.IValidatable;
import org.apache.wicket.validation.IValidator;
import org.apache.wicket.validation.ValidationError;
import org.apache.isis.applib.annotation.PropertyEditStyle;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.facets.SingleIntValueFacet;
import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet;
@@ -60,11 +55,6 @@ import org.apache.isis.viewer.wicket.ui.components.actionmenu.entityactions.Enti
import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
-import de.agilecoders.wicket.extensions.markup.html.bootstrap.xeditable.XEditableBehavior;
-import de.agilecoders.wicket.extensions.markup.html.bootstrap.xeditable.XEditableOptions;
-import de.agilecoders.wicket.jquery.Key;
-import de.agilecoders.wicket.jquery.util.Json;
-
/**
* Adapter for {@link ScalarPanelAbstract scalar panel}s that are implemented
* using a simple {@link TextField}.
@@ -156,7 +146,8 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
this.scalarValueEditInlineContainer = new WebMarkupContainer("scalarValueEditInlineContainer");
- editInlineLink = new WebMarkupContainer(ID_SCALAR_VALUE_EDIT_INLINE);
+ scalarValueEditInlineContainer.setOutputMarkupId(true);
+ this.editInlineLink = new WebMarkupContainer(ID_SCALAR_VALUE_EDIT_INLINE);
editInlineLink.setOutputMarkupId(true);
scalarValueEditInlineContainer.add(editInlineLink);
@@ -166,115 +157,20 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
final Label editInlineLinkLabel = new Label(ID_SCALAR_VALUE_EDIT_INLINE_LABEL, textFieldModel);
editInlineLink.add(editInlineLinkLabel);
- if(scalarModel.getEditStyle() == PropertyEditStyle.INLINE) {
-
- final XEditableOptions options = new XEditableOptions() {
- {
- put(new Key<String>("toggle"), "click");
- if(scalarModel.isRequired()) {
- put(new Key<Json.RawValue>("validate"), new Json.RawValue(
- "function (value) { if (value == '') { return 'Required field'; } }"));
- }
- // put(new Key<Json.RawValue>("error"), new Json.RawValue(
- // "function(response, newValue) {\n"
- // + " if(response.status === 500) {\n"
- // + " return 'Service unavailable. Please try later.';\n"
- // + " } else {\n"
- // + " return response.responseText;\n"
- // + " }\n"
- // + "}"));
-
- }
- }.withMode("inline");
-
- options.withDefaultValue(asString(textFieldModel));
-
- XEditableBehavior xEditable = new XEditableBehavior(options) {
- @Override
- protected void onSave(final AjaxRequestTarget target, final String value) {
-
- scalarModel.setObjectAsString(value);
-
- ObjectAdapter adapter = scalarModel.getParentObjectAdapterMemento()
- .getObjectAdapter(AdapterManager.ConcurrencyChecking.NO_CHECK, getPersistenceSession(),
- getSpecificationLoader());
-
- scalarModel.applyValue(adapter);
-
- target.add(editInlineLink);
-
- options.withDefaultValue(asString(textFieldModel));
- }
-
- protected AjaxEventBehavior newSaveListener() {
- return new AjaxEventBehavior("save") {
- @Override
- protected void onEvent(AjaxRequestTarget target) {
-
- final ObjectAdapter currentValue = scalarModel.getObject();
- StringValue newValue = RequestCycle.get().getRequest().getRequestParameters().getParameterValue("newValue");
-
- try {
- onSave(target, newValue.toString());
- } catch (Exception ex) {
- scalarModel.setObject(currentValue);
-
- final String value = asString(textFieldModel);
- options.withDefaultValue(value);
-
- //
- // hmmm... thought had this working, but turns out that can't rely on the .control-group to exist
- //
- // also: even if get going, still need to reset the value of the inline edit, and also
- // to handle updates to the title (eg Wicket event bus, I think)
- //
- final String message = ex.getMessage();
- target.appendJavaScript(
- "( function() { "
- + "var component = $(\"#" + editInlineLink.getMarkupId() + "\"); "
- + "var parent = $(component).parent(); "
-
- + "var controlGroup = $(parent).find(\".control-group\"); "
- + "var errorBlock = $(parent).find(\".editable-error-block\"); "
-
- + "$(component).editable(\"show\"); "
- + "$(controlGroup).addClass(\"has-error\"); "
- + "$(errorBlock).css(\"display\", \"block\"); "
- + "$(errorBlock).text(\"" + message + "\"); "
-
- + "} )();");
- }
-
- }
-
- @Override
- protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
- super.updateAjaxAttributes(attributes);
- attributes.getDynamicExtraParameters().add("return [{'name':'newValue', 'value': attrs.event.extraData.newValue}]");
-
- AjaxCallListener myAjaxCallListener = new AjaxCallListener() {
-
- @Override
- public CharSequence getBeforeHandler(Component component) {
- return ""; // "var myEl = $(\"#" + component.getMarkupId() + "\"); console.log(myEl);";
- }
-
- @Override public CharSequence getFailureHandler(final Component component) {
- return "alert(\"failure!!!\")";
- }
- };
- attributes.getAjaxCallListeners().add(myAjaxCallListener);
-
- }
- };
- }
-
- };
-
+ editInlineLink.add(new AjaxEventBehavior("click") {
+ @Override
+ protected void onEvent(final AjaxRequestTarget target) {
+ editInlineLink.setVisible(false);
+ propertyEditForm.setVisible(true);
+ target.add(scalarValueEditInlineContainer);
+ }
- editInlineLink.add(xEditable);
- }
+ @Override public boolean isEnabled(final Component component) {
+ return true;
+ }
+ });
+ propertyEditForm.setVisible(false);
final MarkupContainer scalarIfRegularFormGroup = createScalarIfRegularFormGroup();