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/26 06:36:00 UTC
[1/4] isis git commit: ISIS-1603: simplifies the ScalarPanelAbstract
hierarchy,
removing responsibilities from ScalarPanelTextAbstract (both up and down)
Repository: isis
Updated Branches:
refs/heads/ISIS-1603-no-xeditable 2007e2cfa -> 3dccc4c17
ISIS-1603: simplifies the ScalarPanelAbstract hierarchy, removing responsibilities from ScalarPanelTextAbstract (both up and down)
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/a3b01cc2
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/a3b01cc2
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/a3b01cc2
Branch: refs/heads/ISIS-1603-no-xeditable
Commit: a3b01cc2ea9b1f8ef82a222b265282ab181c9345
Parents: 2007e2c
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Apr 25 23:32:36 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Apr 25 23:32:36 2017 +0100
----------------------------------------------------------------------
.../components/scalars/ScalarPanelAbstract.java | 45 +++++++++++++
.../scalars/ScalarPanelTextAbstract.java | 70 --------------------
.../scalars/ScalarPanelTextFieldAbstract.java | 22 +++++-
3 files changed, 66 insertions(+), 71 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/a3b01cc2/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index bb25019..52fb5a8 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -49,6 +49,7 @@ import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.viewer.wicket.ui.ComponentType;
import org.apache.isis.viewer.wicket.ui.components.actionmenu.entityactions.AdditionalLinksPanel;
+import org.apache.isis.viewer.wicket.ui.components.property.PropertyEditFormExecutor;
import org.apache.isis.viewer.wicket.ui.components.property.PropertyEditFormPanel;
import org.apache.isis.viewer.wicket.ui.components.property.PropertyEditPanel;
import org.apache.isis.viewer.wicket.ui.components.property.PropertyEditPromptHeaderPanel;
@@ -267,6 +268,50 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
// ///////////////////////////////////////////////////////////////////
/**
+ * For convenience of subclasses that support inline prompts ({@link ScalarPanelTextAbstract}, {@link ReferencePanel}, {@link ValueChoicesSelect2Panel}).
+ */
+ protected void configureInlinePromptCallback() {
+
+ final PromptStyle promptStyle = this.scalarModel.getPromptStyle();
+ if(promptStyle == PromptStyle.INLINE) {
+
+ if(editInlineLink != null) {
+ editInlineLink.add(new AjaxEventBehavior("click") {
+ @Override
+ protected void onEvent(final AjaxRequestTarget target) {
+
+ scalarModel.toEditMode();
+
+ // dynamically update the edit form.
+ final PropertyEditFormExecutor formExecutor =
+ new PropertyEditFormExecutor(ScalarPanelAbstract.this, scalarModel);
+ scalarModel.setFormExecutor(formExecutor);
+ scalarModel.setInlinePromptContext(
+ new ScalarModel.InlinePromptContext(
+ getComponentForRegular(),
+ scalarIfRegularInlinePromptForm));
+
+ switchFormForInlinePrompt();
+
+ getComponentForRegular().setVisible(false);
+ scalarIfRegularInlinePromptForm.setVisible(true);
+
+ target.add(ScalarPanelAbstract.this);
+ }
+
+ @Override
+ public boolean isEnabled(final Component component) {
+ return true;
+ }
+ });
+ }
+ }
+ }
+
+
+ // ///////////////////////////////////////////////////////////////////
+
+ /**
* Mandatory hook.
*/
protected abstract void addFormComponentBehavior(Behavior behavior);
http://git-wip-us.apache.org/repos/asf/isis/blob/a3b01cc2/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java
index 9245a28..198eb9e 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java
@@ -19,16 +19,7 @@
package org.apache.isis.viewer.wicket.ui.components.scalars;
-import org.apache.wicket.Component;
-import org.apache.wicket.ajax.AjaxEventBehavior;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.markup.html.panel.Fragment;
-
-import org.apache.isis.applib.annotation.PromptStyle;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-import org.apache.isis.viewer.wicket.ui.ComponentType;
-import org.apache.isis.viewer.wicket.ui.components.property.PropertyEditFormExecutor;
-import org.apache.isis.viewer.wicket.ui.components.property.PropertyEditFormPanel;
import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
/**
@@ -43,72 +34,11 @@ public abstract class ScalarPanelTextAbstract extends ScalarPanelAbstract {
private static final long serialVersionUID = 1L;
- public enum CompactType {
- INPUT_CHECKBOX,
- SPAN
- }
-
-
public ScalarPanelTextAbstract(final String id, final ScalarModel scalarModel) {
super(id, scalarModel);
}
- protected Fragment getCompactFragment(CompactType type) {
- Fragment compactFragment;
- switch (type) {
- case INPUT_CHECKBOX:
- compactFragment = new Fragment("scalarIfCompact", "compactAsInputCheckbox", ScalarPanelTextAbstract.this);
- break;
- case SPAN:
- default:
- compactFragment = new Fragment("scalarIfCompact", "compactAsSpan", ScalarPanelTextAbstract.this);
- break;
- }
- return compactFragment;
- }
-
-
-
-
- protected void configureInlineEditCallback() {
-
- final PromptStyle editStyle = this.scalarModel.getPromptStyle();
- if(editStyle == PromptStyle.INLINE) {
-
- if(editInlineLink != null) {
- editInlineLink.add(new AjaxEventBehavior("click") {
- @Override
- protected void onEvent(final AjaxRequestTarget target) {
-
- scalarModel.toEditMode();
-
- // dynamically update the edit form.
- final PropertyEditFormExecutor formExecutor =
- new PropertyEditFormExecutor(ScalarPanelTextAbstract.this, scalarModel);
- scalarModel.setFormExecutor(formExecutor);
- scalarModel.setInlinePromptContext(
- new ScalarModel.InlinePromptContext(
- getComponentForRegular(),
- scalarIfRegularInlinePromptForm));
-
- switchFormForInlinePrompt();
-
- getComponentForRegular().setVisible(false);
- scalarIfRegularInlinePromptForm.setVisible(true);
-
- target.add(ScalarPanelTextAbstract.this);
- }
-
- @Override
- public boolean isEnabled(final Component component) {
- return true;
- }
- });
- }
- }
- }
-
}
http://git-wip-us.apache.org/repos/asf/isis/blob/a3b01cc2/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 adde04e..332e2e8 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
@@ -165,7 +165,7 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
//
addEditPropertyTo(scalarIfRegularFormGroup);
- configureInlineEditCallback();
+ configureInlinePromptCallback();
if (scalarModel.canEnterEditMode() && scalarModel.getPromptStyle() == PromptStyle.INLINE) {
textField.setVisibilityAllowed(false);
@@ -301,6 +301,26 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
return labelIfCompact;
}
+ public enum CompactType {
+ INPUT_CHECKBOX,
+ SPAN
+ }
+
+
+ protected Fragment getCompactFragment(CompactType type) {
+ Fragment compactFragment;
+ switch (type) {
+ case INPUT_CHECKBOX:
+ compactFragment = new Fragment(ID_SCALAR_IF_COMPACT, "compactAsInputCheckbox", ScalarPanelTextFieldAbstract.this);
+ break;
+ case SPAN:
+ default:
+ compactFragment = new Fragment(ID_SCALAR_IF_COMPACT, "compactAsSpan", ScalarPanelTextFieldAbstract.this);
+ break;
+ }
+ return compactFragment;
+ }
+
@Override
protected void onBeforeRenderWhenViewMode() {
[3/4] isis git commit: ISIS-1603: deletes ScalarPanelTextAbstract,
since no longer has any use.
Posted by da...@apache.org.
ISIS-1603: deletes ScalarPanelTextAbstract, since no longer has any use.
Instead, ScalarPanelTextFieldAbstract inherits directly from ScalarPanelAbstract.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/cc056eae
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/cc056eae
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/cc056eae
Branch: refs/heads/ISIS-1603-no-xeditable
Commit: cc056eaed637759069e9a27584e28898a4516af2
Parents: f6641fd
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Apr 25 23:40:43 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Apr 25 23:40:43 2017 +0100
----------------------------------------------------------------------
.../components/scalars/ScalarPanelAbstract.java | 4 +--
.../scalars/ScalarPanelTextAbstract.html | 0
.../scalars/ScalarPanelTextAbstract.java | 35 --------------------
.../scalars/ScalarPanelTextFieldAbstract.java | 2 +-
4 files changed, 3 insertions(+), 38 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/cc056eae/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index 089c1d1..89eb391 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -104,7 +104,7 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
private WebMarkupContainer scalarTypeContainer;
/**
- * Used by most subclasses ({@link ScalarPanelTextAbstract}, {@link ReferencePanel}, {@link ValueChoicesSelect2Panel}) but not all ({@link IsisBlobOrClobPanelAbstract}, {@link BooleanPanel})
+ * Used by most subclasses ({@link ScalarPanelAbstract}, {@link ReferencePanel}, {@link ValueChoicesSelect2Panel}) but not all ({@link IsisBlobOrClobPanelAbstract}, {@link BooleanPanel})
*/
protected WebMarkupContainer scalarIfRegularInlinePromptForm;
@@ -268,7 +268,7 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
// ///////////////////////////////////////////////////////////////////
/**
- * For convenience of subclasses that support inline prompts ({@link ScalarPanelTextAbstract}, {@link ReferencePanel}, {@link ValueChoicesSelect2Panel}).
+ * For convenience of subclasses that support inline prompts ({@link ScalarPanelAbstract}, {@link ReferencePanel}, {@link ValueChoicesSelect2Panel}).
*/
protected void configureInlinePromptCallback() {
http://git-wip-us.apache.org/repos/asf/isis/blob/cc056eae/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.html
deleted file mode 100644
index e69de29..0000000
http://git-wip-us.apache.org/repos/asf/isis/blob/cc056eae/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java
deleted file mode 100644
index 7bfaf33..0000000
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java
+++ /dev/null
@@ -1,35 +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 org.apache.isis.viewer.wicket.ui.components.scalars;
-
-import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-
-public abstract class ScalarPanelTextAbstract extends ScalarPanelAbstract {
-
- private static final long serialVersionUID = 1L;
-
-
- public ScalarPanelTextAbstract(final String id, final ScalarModel scalarModel) {
- super(id, scalarModel);
- }
-
-
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/cc056eae/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 8e28819..3e72251 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
@@ -67,7 +67,7 @@ import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
* This implementation is for panels that use a textfield/text area.
* </p>
*/
-public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> extends ScalarPanelTextAbstract {
+public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> extends ScalarPanelAbstract {
private static final long serialVersionUID = 1L;
[2/4] isis git commit: ISIS-1603: moves the markup from
ScalarPanelTextAbstract.html down to its subclass,
SclarPanelTextFieldAbstract.html
Posted by da...@apache.org.
ISIS-1603: moves the markup from ScalarPanelTextAbstract.html down to its subclass, SclarPanelTextFieldAbstract.html
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/f6641fd0
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/f6641fd0
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/f6641fd0
Branch: refs/heads/ISIS-1603-no-xeditable
Commit: f6641fd037c8161945599b79edbec6c1a8c3b3d1
Parents: a3b01cc
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Apr 25 23:39:10 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Apr 25 23:39:10 2017 +0100
----------------------------------------------------------------------
.../components/scalars/ScalarPanelAbstract.java | 2 +-
.../scalars/ScalarPanelTextAbstract.html | 87 ---------------
.../scalars/ScalarPanelTextAbstract.java | 11 +-
.../scalars/ScalarPanelTextFieldAbstract.html | 110 ++++++++++++++-----
.../scalars/ScalarPanelTextFieldAbstract.java | 14 ++-
5 files changed, 99 insertions(+), 125 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/f6641fd0/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index 52fb5a8..089c1d1 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -296,7 +296,7 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
getComponentForRegular().setVisible(false);
scalarIfRegularInlinePromptForm.setVisible(true);
- target.add(ScalarPanelAbstract.this);
+ target.add(scalarTypeContainer);
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/f6641fd0/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.html
index 9fd6bda..e69de29 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.html
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml"
- xmlns:wicket="http://wicket.apache.org"
- xml:lang="en"
- lang="en">
- <body>
- <wicket:panel>
- <div class="scalarNameAndValueComponentType"
- wicket:id="scalarTypeContainer">
-
- <div class="form-group"
- wicket:id="scalarIfRegular">
-
- <label class="scalarName control-label"
- wicket:id="scalarName"
- >[Label text]</label>
-
- <span class="scalarValueWrapper">
- <div class="scalarPlaceholder">
-
- <span class="scalarValueInput">
- <span class="editing">
-
- <a href="#"
- name="scalarValueEditInline"
- class="form-control input-sm scalarValueEditInline"
- wicket:id="scalarValueEditInline">
- <span wicket:id="scalarValueEditInlineLabel"></span>
- </a>
-
- <wicket:child/>
-
- <a href="#"
- class="edit fa fa-pencil-square-o"
- wicket:id="editProperty"></a>
- </span>
- </span>
-
- <span class="associatedActionLinksRight"
- wicket:id="associatedActionLinksRight"
- >[drop down]</span>
- </div>
- <span wicket:id="feedback" class="help-block"></span>
- <span wicket:id="associatedActionLinksBelow"></span>
- </span>
- <div class="clearfix"></div>
- </div>
-
- <div class="inlineEditForm"
- wicket:id="scalarIfRegularInlineEditForm" >
- <div><span>property edit form</span></div>
- </div>
-
- <wicket:container wicket:id="scalarIfCompact"></wicket:container>
- </div>
-
- <wicket:fragment wicket:id="compactAsInputCheckbox">
- <input wicket:id="scalarIfCompact"
- type="checkbox"
- class="form-control" />
- </wicket:fragment>
-
- <wicket:fragment wicket:id="compactAsSpan">
- <span wicket:id="scalarIfCompact"></span>
- </wicket:fragment>
- </wicket:panel>
- </body>
-</html>
http://git-wip-us.apache.org/repos/asf/isis/blob/f6641fd0/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java
index 198eb9e..7bfaf33 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextAbstract.java
@@ -20,16 +20,7 @@
package org.apache.isis.viewer.wicket.ui.components.scalars;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
-
-/**
- * Adapter for {@link PanelAbstract panel}s that use a {@link ScalarModel} as
- * their backing model.
- *
- * <p>
- * Supports the concept of being {@link Rendering#COMPACT} (eg within a table) or
- * {@link Rendering#REGULAR regular} (eg within a form).
- */
+
public abstract class ScalarPanelTextAbstract extends ScalarPanelAbstract {
private static final long serialVersionUID = 1L;
http://git-wip-us.apache.org/repos/asf/isis/blob/f6641fd0/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 673e6e1..31538a6 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
@@ -22,36 +22,96 @@
xmlns:wicket="http://wicket.apache.org"
xml:lang="en"
lang="en">
- <body>
- <wicket:extend>
- <wicket:container wicket:id="scalarValueContainer"/>
+<body>
+<wicket:panel>
+ <div class="scalarNameAndValueComponentType"
+ wicket:id="scalarTypeContainer">
- <wicket:fragment wicket:id="text">
- <input
- type="text"
- name="scalarValue"
- class="form-control input-sm scalarValue"
- wicket:id="scalarValue" />
- </wicket:fragment>
+ <div class="form-group"
+ wicket:id="scalarIfRegular">
+
+ <label class="scalarName control-label"
+ wicket:id="scalarName"
+ >[Label text]</label>
+
+ <span class="scalarValueWrapper">
+ <div class="scalarPlaceholder">
+
+ <span class="scalarValueInput">
+ <span class="editing">
+
+ <a href="#"
+ name="scalarValueEditInline"
+ class="form-control input-sm scalarValueEditInline"
+ wicket:id="scalarValueEditInline">
+ <span wicket:id="scalarValueEditInlineLabel"></span>
+ </a>
+
+ <wicket:container wicket:id="scalarValueContainer"/>
+
+
+
+ <a href="#"
+ class="edit fa fa-pencil-square-o"
+ wicket:id="editProperty"></a>
+ </span>
+ </span>
- <wicket:fragment wicket:id="textarea">
+ <span class="associatedActionLinksRight"
+ wicket:id="associatedActionLinksRight"
+ >[drop down]</span>
+ </div>
+ <span wicket:id="feedback" class="help-block"></span>
+ <span wicket:id="associatedActionLinksBelow"></span>
+ </span>
+ <div class="clearfix"></div>
+ </div>
+
+ <div class="inlineEditForm"
+ wicket:id="scalarIfRegularInlineEditForm" >
+ <div><span>property edit form</span></div>
+ </div>
+
+ <wicket:container wicket:id="scalarIfCompact"></wicket:container>
+ </div>
+
+ <wicket:fragment wicket:id="text">
+ <input
+ type="text"
+ name="scalarValue"
+ class="form-control input-sm scalarValue"
+ wicket:id="scalarValue" />
+ </wicket:fragment>
+
+ <wicket:fragment wicket:id="textarea">
<textarea
name="scalarValue"
class="form-control scalarValue"
wicket:id="scalarValue">
</textarea>
- </wicket:fragment>
-
- <wicket:fragment wicket:id="date">
- <div class="date">
- <input
- type="text"
- name="scalarValue"
- class="form-control input-sm scalarValue"
- wicket:id="scalarValue"/>
- </div>
- </wicket:fragment>
-
- </wicket:extend>
- </body>
+ </wicket:fragment>
+
+ <wicket:fragment wicket:id="date">
+ <div class="date">
+ <input
+ type="text"
+ name="scalarValue"
+ class="form-control input-sm scalarValue"
+ wicket:id="scalarValue"/>
+ </div>
+ </wicket:fragment>
+
+ <wicket:fragment wicket:id="compactAsInputCheckbox">
+ <input wicket:id="scalarIfCompact"
+ type="checkbox"
+ class="form-control" />
+ </wicket:fragment>
+
+ <wicket:fragment wicket:id="compactAsSpan">
+ <span wicket:id="scalarIfCompact"></span>
+ </wicket:fragment>
+
+</wicket:panel>
+</body>
</html>
+
http://git-wip-us.apache.org/repos/asf/isis/blob/f6641fd0/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 332e2e8..8e28819 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
@@ -51,11 +51,21 @@ import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.viewer.wicket.ui.components.actionmenu.entityactions.EntityActionUtil;
import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
+import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
/**
- * Adapter for {@link ScalarPanelAbstract scalar panel}s that are implemented
- * using a simple {@link TextField}.
+ * Adapter for {@link PanelAbstract panel}s that use a {@link ScalarModel} as
+ * their backing model.
+ *
+ * <p>
+ * Supports the concept of being {@link Rendering#COMPACT} (eg within a table) or
+ * {@link Rendering#REGULAR regular} (eg within a form).
+ * </p>
+ *
+ * <p>
+ * This implementation is for panels that use a textfield/text area.
+ * </p>
*/
public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> extends ScalarPanelTextAbstract {
[4/4] isis git commit: ISIS-1603: reference panel and value choices
now have the iniine prompt link and inline prompt form, getting there...
Posted by da...@apache.org.
ISIS-1603: reference panel and value choices now have the iniine prompt link and inline prompt form, getting there...
need to:
- fix visiblity for value and reference panel
- fix callbacks for reference panel
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/3dccc4c1
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/3dccc4c1
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/3dccc4c1
Branch: refs/heads/ISIS-1603-no-xeditable
Commit: 3dccc4c17ffdf2a79b07e27d9e3f182a8979494e
Parents: cc056ea
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Apr 26 07:35:49 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Apr 26 07:35:49 2017 +0100
----------------------------------------------------------------------
.../components/scalars/ScalarPanelAbstract.java | 173 ++++++++++++-------
.../scalars/ScalarPanelTextFieldAbstract.html | 14 +-
.../scalars/ScalarPanelTextFieldAbstract.java | 58 ++-----
.../components/scalars/TextFieldValueModel.java | 6 -
.../isisapplib/IsisBlobOrClobPanelAbstract.java | 9 +
.../scalars/primitive/BooleanPanel.java | 9 +
.../scalars/reference/ReferencePanel.html | 18 +-
.../scalars/reference/ReferencePanel.java | 14 +-
.../valuechoices/ValueChoicesSelect2Panel.html | 21 +--
.../valuechoices/ValueChoicesSelect2Panel.java | 16 +-
.../wicket/ui/pages/bootstrap-overrides.css | 4 +-
11 files changed, 197 insertions(+), 145 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/3dccc4c1/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index 89eb391..f948384 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -32,7 +32,9 @@ import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.behavior.Behavior;
import org.apache.wicket.feedback.ComponentFeedbackMessageFilter;
import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.LabeledWebMarkupContainer;
+import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.isis.applib.annotation.ActionLayout;
@@ -77,16 +79,15 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
/**
- * as per {@link #editInlineLink}
+ * as per {@link #inlinePromptLink}
*/
- protected static final String ID_SCALAR_VALUE_EDIT_INLINE = "scalarValueEditInline";
- protected static final String ID_SCALAR_VALUE_EDIT_INLINE_LABEL = "scalarValueEditInlineLabel";
+ protected static final String ID_SCALAR_VALUE_INLINE_PROMPT_LINK = "scalarValueInlinePromptLink";
+ protected static final String ID_SCALAR_VALUE_INLINE_PROMPT_LABEL = "scalarValueInlinePromptLabel";
/**
* as per {@link #scalarIfRegularInlinePromptForm}.
*/
- protected static final String ID_SCALAR_IF_REGULAR_INLINE_EDIT_FORM = "scalarIfRegularInlineEditForm";
-
+ protected static final String ID_SCALAR_IF_REGULAR_INLINE_PROMPT_FORM = "scalarIfRegularInlinePromptForm";
private static final String ID_EDIT_PROPERTY = "editProperty";
@@ -99,16 +100,16 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
protected final ScalarModel scalarModel;
private Component scalarIfCompact;
- private Component scalarIfRegular;
+ private MarkupContainer scalarIfRegular;
private WebMarkupContainer scalarTypeContainer;
/**
* Used by most subclasses ({@link ScalarPanelAbstract}, {@link ReferencePanel}, {@link ValueChoicesSelect2Panel}) but not all ({@link IsisBlobOrClobPanelAbstract}, {@link BooleanPanel})
*/
- protected WebMarkupContainer scalarIfRegularInlinePromptForm;
+ private WebMarkupContainer scalarIfRegularInlinePromptForm;
- protected WebMarkupContainer editInlineLink;
+ WebMarkupContainer inlinePromptLink;
public ScalarPanelAbstract(final String id, final ScalarModel scalarModel) {
super(id, scalarModel);
@@ -179,13 +180,21 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
this.scalarIfCompact = createComponentForCompact();
this.scalarIfRegular = createComponentForRegular();
- this.scalarIfRegularInlinePromptForm = createFormForInlinePromptIfRequired();
+ this.scalarIfRegularInlinePromptForm = createInlinePromptFormIfRequired();
scalarTypeContainer.addOrReplace(scalarIfCompact, scalarIfRegular);
if(scalarIfRegularInlinePromptForm != null) {
scalarTypeContainer.addOrReplace(scalarIfRegularInlinePromptForm);
}
+ inlinePromptLink = createInlinePromptLinkIfRequired();
+ if(this.inlinePromptLink != null) {
+ scalarIfRegular.add(inlinePromptLink);
+ configureInlinePromptLinkCallback();
+ configureEditVisibility(scalarIfRegular, inlinePromptLink);
+ }
+
+
getRendering().buildGui(this);
addCssForMetaModel();
@@ -267,49 +276,6 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
// ///////////////////////////////////////////////////////////////////
- /**
- * For convenience of subclasses that support inline prompts ({@link ScalarPanelAbstract}, {@link ReferencePanel}, {@link ValueChoicesSelect2Panel}).
- */
- protected void configureInlinePromptCallback() {
-
- final PromptStyle promptStyle = this.scalarModel.getPromptStyle();
- if(promptStyle == PromptStyle.INLINE) {
-
- if(editInlineLink != null) {
- editInlineLink.add(new AjaxEventBehavior("click") {
- @Override
- protected void onEvent(final AjaxRequestTarget target) {
-
- scalarModel.toEditMode();
-
- // dynamically update the edit form.
- final PropertyEditFormExecutor formExecutor =
- new PropertyEditFormExecutor(ScalarPanelAbstract.this, scalarModel);
- scalarModel.setFormExecutor(formExecutor);
- scalarModel.setInlinePromptContext(
- new ScalarModel.InlinePromptContext(
- getComponentForRegular(),
- scalarIfRegularInlinePromptForm));
-
- switchFormForInlinePrompt();
-
- getComponentForRegular().setVisible(false);
- scalarIfRegularInlinePromptForm.setVisible(true);
-
- target.add(scalarTypeContainer);
- }
-
- @Override
- public boolean isEnabled(final Component component) {
- return true;
- }
- });
- }
- }
- }
-
-
- // ///////////////////////////////////////////////////////////////////
/**
* Mandatory hook.
@@ -376,6 +342,10 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
// ///////////////////////////////////////////////////////////////////
+ protected Component getComponentForRegular() {
+ return scalarIfRegular;
+ }
+
/**
* Mandatory hook method to build the component to render the model when in
* {@link Rendering#REGULAR regular} format.
@@ -396,26 +366,109 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
*/
protected abstract Component createComponentForCompact();
+
/**
- * Optional hook method.
+ * Optional hook method to return a container holding an empty form. This can be switched out using {@link #switchFormForInlinePrompt()}.
*
* <p>
+ * Implementations that don't support inline prompts can override and return <tt>null</tt>.
+ * </p>
+ * <p>
* If non-null, is added to {@link #scalarTypeContainer}.
* </p>
*/
- protected WebMarkupContainer createFormForInlinePromptIfRequired() {
+ protected WebMarkupContainer createInlinePromptFormIfRequired() {
+
+ // (placeholder initially, create dynamically when needed - otherwise infinite loop because form references regular)
+
+ WebMarkupContainer scalarIfRegularInlinePromptForm = new WebMarkupContainer(
+ ID_SCALAR_IF_REGULAR_INLINE_PROMPT_FORM);
+ scalarIfRegularInlinePromptForm.setOutputMarkupId(true);
+ scalarIfRegularInlinePromptForm.setVisible(false);
+
+ return scalarIfRegularInlinePromptForm;
+ }
+
+ private WebMarkupContainer createInlinePromptLinkIfRequired() {
+ final IModel<?> textFieldModel = obtainPromptInlineLinkModelIfAvailable();
+ if(textFieldModel == null) {
+ return null;
+ }
+
+ 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, textFieldModel);
+ inlinePromptLink.add(editInlineLinkLabel);
+
+ return inlinePromptLink;
+ }
+
+ /**
+ * Optional hook; if returns non null then the model will be used to set up a link representing the
+ * component for inline prompt.
+ */
+ protected IModel<?> obtainPromptInlineLinkModelIfAvailable() {
return null;
}
- protected void switchFormForInlinePrompt() {
- scalarIfRegularInlinePromptForm = (PropertyEditFormPanel) getComponentFactoryRegistry().addOrReplaceComponent(
- scalarTypeContainer, ID_SCALAR_IF_REGULAR_INLINE_EDIT_FORM, ComponentType.PROPERTY_EDIT_FORM, scalarModel);
+
+ /**
+ * Optional hook to set the visibility of subfields according to editability.
+ *
+ * <p>
+ * Only implementations that support inline prompts need override.
+ * </p>
+ */
+ protected void configureEditVisibility(
+ final MarkupContainer scalarIfRegularFormGroup,
+ final WebMarkupContainer inlinePromptLink) {
}
- protected Component getComponentForRegular() {
- return scalarIfRegular;
+ private void configureInlinePromptLinkCallback() {
+
+ final PromptStyle promptStyle = this.scalarModel.getPromptStyle();
+ if(promptStyle == PromptStyle.INLINE) {
+
+ if(inlinePromptLink != null) {
+ inlinePromptLink.add(new AjaxEventBehavior("click") {
+ @Override
+ protected void onEvent(final AjaxRequestTarget target) {
+
+ scalarModel.toEditMode();
+
+ // dynamically update the edit form.
+ final PropertyEditFormExecutor formExecutor =
+ new PropertyEditFormExecutor(ScalarPanelAbstract.this, scalarModel);
+ scalarModel.setFormExecutor(formExecutor);
+ scalarModel.setInlinePromptContext(
+ new ScalarModel.InlinePromptContext(
+ getComponentForRegular(),
+ scalarIfRegularInlinePromptForm));
+
+ switchFormForInlinePrompt();
+
+ getComponentForRegular().setVisible(false);
+ scalarIfRegularInlinePromptForm.setVisible(true);
+
+ target.add(scalarTypeContainer);
+ }
+
+ @Override
+ public boolean isEnabled(final Component component) {
+ return true;
+ }
+ });
+ }
+ }
}
+ private void switchFormForInlinePrompt() {
+ scalarIfRegularInlinePromptForm = (PropertyEditFormPanel) getComponentFactoryRegistry().addOrReplaceComponent(
+ scalarTypeContainer, ID_SCALAR_IF_REGULAR_INLINE_PROMPT_FORM, ComponentType.PROPERTY_EDIT_FORM, scalarModel);
+ }
+
+
// ///////////////////////////////////////////////////////////////////
protected void addEditPropertyTo(
@@ -513,8 +566,6 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
return false;
}
- // ///////////////////////////////////////////////////////////////////
-
// ///////////////////////////////////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/isis/blob/3dccc4c1/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 31538a6..77ce949 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
@@ -41,10 +41,10 @@
<span class="editing">
<a href="#"
- name="scalarValueEditInline"
- class="form-control input-sm scalarValueEditInline"
- wicket:id="scalarValueEditInline">
- <span wicket:id="scalarValueEditInlineLabel"></span>
+ name="scalarValueInlinePromptLink"
+ class="form-control input-sm scalarValueInlinePromptLink"
+ wicket:id="scalarValueInlinePromptLink">
+ <span wicket:id="scalarValueInlinePromptLabel"></span>
</a>
<wicket:container wicket:id="scalarValueContainer"/>
@@ -67,9 +67,9 @@
<div class="clearfix"></div>
</div>
- <div class="inlineEditForm"
- wicket:id="scalarIfRegularInlineEditForm" >
- <div><span>property edit form</span></div>
+ <div class="inlinePromptForm"
+ wicket:id="scalarIfRegularInlinePromptForm" >
+ <div><span>[property edit form]</span></div>
</div>
<wicket:container wicket:id="scalarIfCompact"></wicket:container>
http://git-wip-us.apache.org/repos/asf/isis/blob/3dccc4c1/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 3e72251..c3bdcc6 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
@@ -103,7 +103,7 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
return createTextField(id);
}
- protected TextFieldValueModel<T> newTextFieldValueModel() {
+ TextFieldValueModel<T> newTextFieldValueModel() {
return new TextFieldValueModel<>(this);
}
@@ -123,9 +123,6 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
addStandardSemantics();
- final IModel<T> textFieldModel = textField.getModel();
-
-
//
@@ -153,50 +150,31 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
addEntityActionLinksBelowAndRight(scalarIfRegularFormGroup, entityActions);
+ return scalarIfRegularFormGroup;
+ }
- //
- // inline edit
- //
-
- this.editInlineLink = new WebMarkupContainer(ID_SCALAR_VALUE_EDIT_INLINE);
- editInlineLink.setOutputMarkupId(true);
-
- final Label editInlineLinkLabel = new Label(ID_SCALAR_VALUE_EDIT_INLINE_LABEL, textFieldModel);
- editInlineLink.add(editInlineLinkLabel);
-
-
- scalarIfRegularFormGroup.add(editInlineLink);
-
-
-
-
- //
- // configure dialog edit vs inline edit
- //
+ @Override
+ protected void configureEditVisibility(
+ final MarkupContainer scalarIfRegularFormGroup,
+ final WebMarkupContainer inlinePromptLink) {
addEditPropertyTo(scalarIfRegularFormGroup);
- configureInlinePromptCallback();
if (scalarModel.canEnterEditMode() && scalarModel.getPromptStyle() == PromptStyle.INLINE) {
textField.setVisibilityAllowed(false);
} else {
- editInlineLink.setVisibilityAllowed(false);
+ inlinePromptLink.setVisibilityAllowed(false);
}
-
- return scalarIfRegularFormGroup;
}
@Override
- protected WebMarkupContainer createFormForInlinePromptIfRequired() {
-
- // (placeholder initially, create dynamically when needed - otherwise infinite loop because form references regular)
-
- WebMarkupContainer scalarIfRegularInlinePromptForm = new WebMarkupContainer(ID_SCALAR_IF_REGULAR_INLINE_EDIT_FORM);
- scalarIfRegularInlinePromptForm.setOutputMarkupId(true);
-
- scalarIfRegularInlinePromptForm.setVisible(false);
+ protected WebMarkupContainer createInlinePromptFormIfRequired() {
+ return super.createInlinePromptFormIfRequired();
+ }
- return scalarIfRegularInlinePromptForm;
+ @Override
+ protected IModel<T> obtainPromptInlineLinkModelIfAvailable() {
+ return textField.getModel();
}
private void addReplaceDisabledTagWithReadonlyTagBehaviourIfRequired(final Component component) {
@@ -317,7 +295,7 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
}
- protected Fragment getCompactFragment(CompactType type) {
+ Fragment getCompactFragment(CompactType type) {
Fragment compactFragment;
switch (type) {
case INPUT_CHECKBOX:
@@ -349,7 +327,7 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
textField.setEnabled(false);
addReplaceDisabledTagWithReadonlyTagBehaviourIfRequired(textField);
- editInlineLink.setEnabled(false);
+ inlinePromptLink.setEnabled(false);
setTitleAttribute(disableReason);
}
@@ -358,14 +336,14 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
protected void onBeforeRenderWhenEnabled() {
super.onBeforeRenderWhenEnabled();
textField.setEnabled(true);
- editInlineLink.setEnabled(true);
+ inlinePromptLink.setEnabled(true);
setTitleAttribute("");
}
private void setTitleAttribute(final String titleAttribute) {
AttributeModifier title = new AttributeModifier("title", Model.of(titleAttribute));
textField.add(title);
- editInlineLink.add(title);
+ inlinePromptLink.add(title);
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/3dccc4c1/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldValueModel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldValueModel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldValueModel.java
index b2a290a..cc71bf7 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldValueModel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/TextFieldValueModel.java
@@ -68,11 +68,5 @@ public class TextFieldValueModel<T extends Serializable> extends Model<T> {
}
}
- // FIXME: a bit of a hack to just use toString(), probably want to format somehow.
- public String getObjectAsString() {
- T object = getObject();
- return object != null ? object.toString() : null;
- }
-
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/3dccc4c1/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
index 6994722..becdc3b 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
@@ -123,6 +123,15 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
return scalarIfRegularFormGroup;
}
+ /**
+ * Inline prompts are <i>not</i> supported by this component.
+ */
+ @Override
+ protected WebMarkupContainer createInlinePromptFormIfRequired() {
+ return null;
+ }
+
+
private Image asWicketImage(String id) {
final ObjectAdapter adapter = getModel().getObject();
http://git-wip-us.apache.org/repos/asf/isis/blob/3dccc4c1/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 a36adc4..63348b1 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
@@ -25,6 +25,7 @@ import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.behavior.Behavior;
+import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.Model;
@@ -114,6 +115,14 @@ public class BooleanPanel extends ScalarPanelAbstract {
return createCheckBox(ID_SCALAR_IF_COMPACT);
}
+ /**
+ * Inline prompts are <i>not</i> supported by this component.
+ */
+ @Override
+ protected WebMarkupContainer createInlinePromptFormIfRequired() {
+ return null;
+ }
+
private CheckBoxX createCheckBox(final String id) {
final CheckBoxX checkBox = new CheckBoxX(id, new Model<Boolean>() {
private static final long serialVersionUID = 1L;
http://git-wip-us.apache.org/repos/asf/isis/blob/3dccc4c1/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
index 44757cf..675ffab 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.html
@@ -44,14 +44,12 @@
<span class="scalarValueInput">
<span class="editing">
- <wicket:remove>
<a href="#"
- name="scalarValueEditInline"
- class="form-control input-sm scalarValueEditInline"
- xwicket:id="scalarValueEditInline">
- <span xwicket:id="scalarValueEditInlineLabel"></span>
+ name="scalarValueInlinePromptLink"
+ class="form-control input-sm scalarValueInlinePromptLink"
+ wicket:id="scalarValueInlinePromptLink">
+ <span wicket:id="scalarValueInlinePromptLabel"></span>
</a>
- </wicket:remove>
<span class="autoCompletePlaceholder">
<span wicket:id="entityLink">link or drop down</span>
@@ -75,12 +73,10 @@
<div class="clearfix"></div>
</div>
- <wicket:remove>
- <div class="inlineEditForm"
- xwicket:id="scalarIfRegularInlineEditForm" >
- <div><span>property edit form</span></div>
+ <div class="inlinePromptForm"
+ wicket:id="scalarIfRegularInlinePromptForm" >
+ <div><span>[property edit form]</span></div>
</div>
- </wicket:remove>
<div class="scalarIfCompact"
wicket:id="scalarIfCompact" >
http://git-wip-us.apache.org/repos/asf/isis/blob/3dccc4c1/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 5b9fbe8..bc624ce 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
@@ -84,7 +84,6 @@ public class ReferencePanel extends ScalarPanelAbstract implements PanelWithChoi
private static final String KEY_DISABLE_DEPENDENT_CHOICE_AUTO_SELECTION = "isis.viewer.wicket.disableDependentChoiceAutoSelection";
private EntityLinkSelect2Panel entityLink;
-
Select2 select2;
@@ -96,8 +95,6 @@ public class ReferencePanel extends ScalarPanelAbstract implements PanelWithChoi
}
// //////////////////////////////////////
- // addComponentFor{Compact/Regular}
- // //////////////////////////////////////
// First called as a side-effect of {@link #beforeRender()}
@Override
@@ -228,6 +225,17 @@ public class ReferencePanel extends ScalarPanelAbstract implements PanelWithChoi
return select2;
}
+ @Override
+ protected WebMarkupContainer createInlinePromptFormIfRequired() {
+ return super.createInlinePromptFormIfRequired();
+ }
+
+ @Override
+ protected IModel<?> obtainPromptInlineLinkModelIfAvailable() {
+ return select2.getModel();
+// return new TextFieldValueModel<>(this);
+ }
+
// //////////////////////////////////////
// called from buildGui
http://git-wip-us.apache.org/repos/asf/isis/blob/3dccc4c1/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.html
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.html
index 3b61826..4f05345 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.html
@@ -40,14 +40,12 @@
<span class="scalarValueInput">
<span class="editing">
- <wicket:remove>
<a href="#"
- name="scalarValueEditInline"
- class="form-control input-sm scalarValueEditInline"
- xwicket:id="scalarValueEditInline">
- <span xwicket:id="scalarValueEditInlineLabel"></span>
+ name="scalarValueInlinePromptLink"
+ class="form-control input-sm scalarValueInlinePromptLink"
+ wicket:id="scalarValueInlinePromptLink">
+ <span wicket:id="scalarValueInlinePromptLabel"></span>
</a>
- </wicket:remove>
<select class="choices input-sm select2-remote"
style="width: 99.8%;"
@@ -69,13 +67,10 @@
</div>
- <wicket:remove>
- <div class="inlineEditForm"
- xwicket:id="scalarIfRegularInlineEditForm" >
- <div><span>property edit form</span></div>
- </div>
- </wicket:remove>
-
+ <div class="inlinePromptForm"
+ wicket:id="scalarIfRegularInlinePromptForm" >
+ <div><span>[property edit form]</span></div>
+ </div>
<span class="scalarIfCompact"
wicket:id="scalarIfCompact"></span>
http://git-wip-us.apache.org/repos/asf/isis/blob/3dccc4c1/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 c00d172..0e7bc20 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
@@ -27,6 +27,7 @@ import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.behavior.Behavior;
+import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
@@ -154,8 +155,19 @@ public class ValueChoicesSelect2Panel extends ScalarPanelAbstract implements Sca
return new Label(ID_SCALAR_IF_COMPACT, getModel().getObjectAsString());
}
-
- protected ChoiceProvider<ObjectAdapterMemento> newChoiceProvider(final List<ObjectAdapterMemento> choicesMementos) {
+ @Override
+ protected WebMarkupContainer createInlinePromptFormIfRequired() {
+ return super.createInlinePromptFormIfRequired();
+ }
+
+ @Override
+ protected IModel<?> obtainPromptInlineLinkModelIfAvailable() {
+ return select2.getModel();
+// return new TextFieldValueModel<>(this);
+ }
+
+
+ private ChoiceProvider<ObjectAdapterMemento> newChoiceProvider(final List<ObjectAdapterMemento> choicesMementos) {
return new ObjectAdapterMementoProviderForValueChoices(scalarModel, choicesMementos, wicketViewerSettings);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/3dccc4c1/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 3e0544c..6552b04 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
@@ -871,13 +871,13 @@ tr.headers th form input {
height: inherit;
}
-.scalarNameAndValueComponentType .inlineEditForm {
+.scalarNameAndValueComponentType .inlinePromptForm {
border: 2px solid;
padding: 10px;
margin-bottom: 20px
}
-.scalarNameAndValueComponentType .inlineEditForm .form-group {
+.scalarNameAndValueComponentType .inlinePromptForm .form-group {
padding-left: 5px;
padding-right: 15px;
}