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) {