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 2014/11/07 04:50:53 UTC
[07/18] isis git commit: Revert "ISIS-537,
ISIS-911 - Remove the extra "Clear" button for Blob/Clob scalars in
edit mode"
Revert "ISIS-537, ISIS-911 - Remove the extra "Clear" button for Blob/Clob scalars in edit mode"
This reverts commit f605fba1ec596fa79ad9bf63a209114775bf858f.
https://trello.com/c/3ar0leq2/103-my-mistake-we-now-don-t-have-any-way-to-clear-an-attachment-or-blob-if-optional-eg-in-the-todoapp
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/c195fa7c
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/c195fa7c
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/c195fa7c
Branch: refs/heads/master
Commit: c195fa7ccc3d407c14b85aba8eb91d13a0bae479
Parents: 21bc20b
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Wed Nov 5 22:29:38 2014 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Wed Nov 5 22:29:38 2014 +0200
----------------------------------------------------------------------
.../additionallinks/AdditionalLinksPanel.java | 11 +++----
.../additionallinks/EntityActionUtil.java | 3 +-
.../isisapplib/IsisBlobOrClobPanelAbstract.html | 1 +
.../isisapplib/IsisBlobOrClobPanelAbstract.java | 31 +++++++++++++++++++-
4 files changed, 39 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/c195fa7c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.java
index b94beb1..50b9a1b 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.java
@@ -40,8 +40,7 @@ import org.apache.isis.viewer.wicket.ui.util.Components;
import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
/**
- * Panel for rendering additional links like <em>update</em> and <em>clear</em>
- * next to a scalar.
+ * Panel for rendering scalars of type {@link String}.
*/
public class AdditionalLinksPanel extends PanelAbstract<ListOfLinksModel> {
@@ -51,11 +50,13 @@ public class AdditionalLinksPanel extends PanelAbstract<ListOfLinksModel> {
private static final String ID_ADDITIONAL_LINK_ITEM = "additionalLinkItem";
private static final String ID_ADDITIONAL_LINK_FONT_AWESOME = "additionalLinkFontAwesome";
private static final String ID_ADDITIONAL_LINK_TITLE = "additionalLinkTitle";
-
+
+ private List<LinkAndLabel> linkAndLabels;
+
public AdditionalLinksPanel(final String id, final List<LinkAndLabel> links) {
super(id, new ListOfLinksModel(links));
- List<LinkAndLabel> linkAndLabels = getModel().getObject();
+ this.linkAndLabels = getModel().getObject();
final WebMarkupContainer container = new WebMarkupContainer(ID_ADDITIONAL_LINK_LIST);
addOrReplace(container);
@@ -64,7 +65,7 @@ public class AdditionalLinksPanel extends PanelAbstract<ListOfLinksModel> {
setOutputMarkupId(true);
- final ListView<LinkAndLabel> listView = new ListView<LinkAndLabel>(ID_ADDITIONAL_LINK_ITEM, linkAndLabels) {
+ final ListView<LinkAndLabel> listView = new ListView<LinkAndLabel>(ID_ADDITIONAL_LINK_ITEM, this.linkAndLabels) {
private static final long serialVersionUID = 1L;
http://git-wip-us.apache.org/repos/asf/isis/blob/c195fa7c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/EntityActionUtil.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/EntityActionUtil.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/EntityActionUtil.java
index 4e0bd4c..5c2d62c 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/EntityActionUtil.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/EntityActionUtil.java
@@ -92,6 +92,7 @@ public final class EntityActionUtil {
final EntityModel entityModel,
final ObjectAssociation association,
final List<ObjectAction> associatedActions) {
+ final ObjectSpecification adapterSpec = entityModel.getTypeOfSpecification();
final ObjectAdapter adapter = entityModel.load(ConcurrencyChecking.NO_CHECK);
final AuthenticationSessionProvider asa = (AuthenticationSessionProvider) Session.get();
@@ -105,7 +106,7 @@ public final class EntityActionUtil {
ObjectAction.Filters.notBulkOnly(),
ObjectAction.Filters.excludeWizardActions(objectSpecification));
- final List<ObjectAction> userActions = objectSpecification.getObjectActions(type, Contributed.INCLUDED, filter);
+ final List<ObjectAction> userActions = adapterSpec.getObjectActions(type, Contributed.INCLUDED, filter);
associatedActions.addAll(userActions);
return userActions;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c195fa7c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.html
index 2857d9a..0320af1 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.html
@@ -30,6 +30,7 @@
<span class="uploadFile help-block">
<input type="file" name="scalarValue" wicket:id="scalarValue" />
</span>
+ <a wicket:id="scalarIfRegularClear" class="btn btn-primary btn-sm"><span class="clearTitle">Clear</span></a>
<a class="download btn btn-sm btn-primary" wicket:id="scalarIfRegularDownload"><span class="downloadTitle">Download</span></a>
<span class="fileName" wicket:id="fileName"></span>
http://git-wip-us.apache.org/repos/asf/isis/blob/c195fa7c/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
index 6cacd86..c122780 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
@@ -28,6 +28,8 @@ import javax.activation.MimeType;
import javax.imageio.ImageIO;
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.behavior.Behavior;
import org.apache.wicket.extensions.markup.html.image.resource.ThumbnailImageResource;
import org.apache.wicket.markup.html.WebMarkupContainer;
@@ -63,6 +65,7 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
private static final String ID_SCALAR_IF_REGULAR = "scalarIfRegular";
private static final String ID_SCALAR_IF_REGULAR_DOWNLOAD = "scalarIfRegularDownload";
private static final String ID_FILE_NAME = "fileName";
+ private static final String ID_SCALAR_IF_REGULAR_CLEAR = "scalarIfRegularClear";
private static final String ID_SCALAR_NAME = "scalarName";
private static final String ID_SCALAR_VALUE = "scalarValue";
private static final String ID_IMAGE = "scalarImage";
@@ -72,6 +75,7 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
private Image wicketImage;
private FileUploadField fileUploadField;
+ private Label fileNameLabel;
protected enum InputFieldVisibility {
VISIBLE, NOT_VISIBLE
@@ -225,7 +229,9 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
MarkupContainer formComponent = (MarkupContainer) getComponentForRegular();
formComponent.get(ID_SCALAR_VALUE).setVisible(visibility == InputFieldVisibility.VISIBLE);
- updateFileNameLabel(ID_FILE_NAME, formComponent);
+ fileNameLabel = updateFileNameLabel(ID_FILE_NAME, formComponent);
+
+ updateClearLink(visibility);
// the visibility of download link is intentionally 'backwards';
// if in edit mode then do NOT show
@@ -255,6 +261,29 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
return fileNameLabel;
}
+ private void updateClearLink(InputFieldVisibility visibility) {
+ final MarkupContainer formComponent = (MarkupContainer) getComponentForRegular();
+ formComponent.setOutputMarkupId(true); // enable ajax link
+
+ final AjaxLink<Void> ajaxLink = new AjaxLink<Void>(ID_SCALAR_IF_REGULAR_CLEAR){
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void onClick(AjaxRequestTarget target) {
+ setEnabled(false);
+ ScalarModel model = IsisBlobOrClobPanelAbstract.this.getModel();
+ model.setObject(null);
+ target.add(formComponent);
+ target.add(fileNameLabel);
+ }
+ };
+ ajaxLink.setOutputMarkupId(true);
+ formComponent.addOrReplace(ajaxLink);
+
+ final T blobOrClob = getBlobOrClobFromModel();
+ formComponent.get(ID_SCALAR_IF_REGULAR_CLEAR).setVisible(blobOrClob != null && visibility == InputFieldVisibility.VISIBLE);
+ }
+
private MarkupContainer updateDownloadLink(String downloadId, MarkupContainer container) {
final ResourceLink<?> resourceLink = createResourceLink(downloadId);
if(resourceLink != null) {