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/02/06 18:28:19 UTC

git commit: ISIS-677: blob/clob panel fixes.

Updated Branches:
  refs/heads/master 325fc45c7 -> 60e89ea52


ISIS-677: blob/clob panel fixes.

* display the filename
* stop using the CSS/javascript hack and rely on native <input type="file">
  - seemed to be the cause of the double input thing.


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/60e89ea5
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/60e89ea5
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/60e89ea5

Branch: refs/heads/master
Commit: 60e89ea5243e4188088a694403d26e8b46bfadc6
Parents: 325fc45
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Feb 6 17:27:54 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Feb 6 17:27:54 2014 +0000

----------------------------------------------------------------------
 .../isisapplib/IsisBlobOrClobPanelAbstract.html | 17 ++-------
 .../isisapplib/IsisBlobOrClobPanelAbstract.java | 39 ++++++++++++++------
 .../scalars/isisapplib/IsisBlobPanel.css        | 24 ++++++++----
 3 files changed, 47 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/60e89ea5/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 cf3302e..2de4ff2 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
@@ -26,22 +26,13 @@
                     <img class="scalarImage" width="200px" wicket:id="scalarImage"></img>
 	      			<span class="scalarValue">
                     
-                        <a class="clear" wicket:id="scalarIfRegularClear"><span class="clearTitle">Clear</span></a>
-
                         <span class="uploadFile">
-
-                            <!-- from: http://stackoverflow.com/questions/3226167/how-to-style-input-file-with-css3-javascript -->
-                            <span wicket:id="scalarIfRegularUpload" class="uploadTitle"
-                            onclick="$('#file-upload').removeClass('hidden').click().addClass('hidden')">Upload</span>
-                            <!-- 
-			      			<input type="file" name="scalarValue" id="scalarValue" xxxwicket:id="scalarValue" 
-                                   onchange="$('#file').text($(this).val());"   />
-                             -->
-                            <input type="file" name="scalarValue" id="file-upload" wicket:id="scalarValue" 
-                                   class="hidden"  />
+                            <input type="file" name="scalarValue" id="file-upload" wicket:id="scalarValue" />
                         </span>
-                        
+                        <a wicket:id="scalarIfRegularClear"><span class="clearTitle">Clear</span></a>
+
 	                    <a class="download" wicket:id="scalarIfRegularDownload"><span class="downloadTitle">Download</span></a>
+                        <span class="fileName" wicket:id="fileName"></span>                        
 	      			</span>
 	                <span wicket:id="feedback"></span>
                     <span wicket:id="additionalLinks"/>

http://git-wip-us.apache.org/repos/asf/isis/blob/60e89ea5/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 251e461..70a1db7 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
@@ -59,14 +59,15 @@ import org.apache.isis.viewer.wicket.ui.util.Components;
 
 public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> extends ScalarPanelAbstract {
 
+
     private static final long serialVersionUID = 1L;
     
     @SuppressWarnings("unused")
     private static final Logger LOG = LoggerFactory.getLogger(IsisBlobOrClobPanelAbstract.class);
     
     private static final String ID_SCALAR_IF_REGULAR = "scalarIfRegular";
-    private static final String ID_SCALAR_IF_REGULAR_UPLOAD = "scalarIfRegularUpload";
     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";
@@ -90,9 +91,6 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
         final FormComponentLabel labelIfRegular = new FormComponentLabel(ID_SCALAR_IF_REGULAR, fileUploadField);
         labelIfRegular.add(fileUploadField);
     
-        final Label scalarUploadLabel = new Label(ID_SCALAR_IF_REGULAR_UPLOAD, "Upload");
-        labelIfRegular.add(scalarUploadLabel);
-    
         final Label scalarName = new Label(ID_SCALAR_NAME, getModel().getName());
         labelIfRegular.add(scalarName);
 
@@ -104,6 +102,7 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
             Components.permanentlyHide(labelIfRegular, ID_IMAGE);
         }
         
+        updateFileNameLabel(ID_FILE_NAME, labelIfRegular);
         updateDownloadLink(ID_SCALAR_IF_REGULAR_DOWNLOAD, labelIfRegular);
         
         addOrReplace(labelIfRegular);
@@ -164,6 +163,7 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
     protected Component addComponentForCompact() {
         final MarkupContainer scalarIfCompact = new WebMarkupContainer(ID_SCALAR_IF_COMPACT);
         updateDownloadLink(ID_SCALAR_IF_COMPACT_DOWNLOAD, scalarIfCompact);
+        updateFileNameLabel(ID_FILE_NAME, scalarIfCompact);
         addOrReplace(scalarIfCompact);
         return scalarIfCompact;
     }
@@ -213,7 +213,7 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
     protected abstract T getBlobOrClobFrom(final List<FileUpload> fileUploads);
 
     @SuppressWarnings("unchecked")
-    private T getBlob(final ScalarModel model) {
+    private T getBlobOrClob(final ScalarModel model) {
         ObjectAdapter adapter = model.getObject();
         return adapter != null? (T) adapter.getObject(): null;
     }
@@ -222,17 +222,20 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
         super(id, scalarModel);
     }
 
-    private void updateRegularFormComponents(InputFieldVisibility visibility) {
+    private void updateRegularFormComponents(final InputFieldVisibility visibility) {
         MarkupContainer formComponent = (MarkupContainer) getComponentForRegular();
         formComponent.get(ID_SCALAR_VALUE).setVisible(visibility == InputFieldVisibility.VISIBLE);
-        formComponent.get(ID_SCALAR_IF_REGULAR_UPLOAD).setVisible(visibility == InputFieldVisibility.VISIBLE);
         
         updateClearLink(visibility);
     
-        final MarkupContainer downloadLink = updateDownloadLink(ID_SCALAR_IF_REGULAR_DOWNLOAD, formComponent);
-        
+        Label fileNameLabel = updateFileNameLabel(ID_FILE_NAME, formComponent);
+
         // the visibility of download link is intentionally 'backwards';
         // if in edit mode then do NOT show
+        fileNameLabel.setVisible(visibility != InputFieldVisibility.VISIBLE);
+
+        final MarkupContainer downloadLink = updateDownloadLink(ID_SCALAR_IF_REGULAR_DOWNLOAD, formComponent);
+        // ditto the download link
         if (downloadLink != null) {
             downloadLink.setVisible(visibility == InputFieldVisibility.NOT_VISIBLE);
         }
@@ -242,6 +245,14 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
         }
     }
 
+    private Label updateFileNameLabel(String idFileName, MarkupContainer formComponent) {
+        T blobOrClob = getBlobOrClobFromModel();
+        String fileName = blobOrClob != null? blobOrClob.getName(): "";
+        Label fileNameLabel = new Label(idFileName, Model.of(fileName));
+        formComponent.addOrReplace(fileNameLabel);
+        return fileNameLabel;
+    }
+
     private void updateClearLink(InputFieldVisibility visibility) {
         final MarkupContainer formComponent = (MarkupContainer) getComponentForRegular();
         formComponent.setOutputMarkupId(true); // enable ajax link
@@ -260,8 +271,8 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
         ajaxLink.setOutputMarkupId(true);
         formComponent.addOrReplace(ajaxLink);
     
-        final T blob = getBlob(getModel());
-        formComponent.get(ID_SCALAR_IF_REGULAR_CLEAR).setVisible(blob != null && visibility == InputFieldVisibility.VISIBLE);
+        final T blobOrClob = getBlobOrClobFromModel();
+        formComponent.get(ID_SCALAR_IF_REGULAR_CLEAR).setVisible(blobOrClob != null && visibility == InputFieldVisibility.VISIBLE);
     }
 
     private MarkupContainer updateDownloadLink(String downloadId, MarkupContainer container) {
@@ -275,7 +286,7 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
     }
 
     private ResourceLink<?> createResourceLink(String id) {
-        final T blob = getBlob(getModel());
+        final T blob = getBlobOrClobFromModel();
         if(blob == null) {
             return null;
         }
@@ -283,6 +294,10 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
         return new ResourceLink<Object>(id, bar);
     }
 
+    private T getBlobOrClobFromModel() {
+        return getBlobOrClob(getModel());
+    }
+
     @Override
     protected void addFormComponentBehavior(Behavior behavior) {
         fileUploadField.add(behavior);

http://git-wip-us.apache.org/repos/asf/isis/blob/60e89ea5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobPanel.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobPanel.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobPanel.css
index 687919b..eaa432f 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobPanel.css
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobPanel.css
@@ -22,8 +22,6 @@
 .isisBlobPanel .scalarValue span.clearTitle {
     margin-right: 10px;
     margin-bottom:10px;
-    float:left;
-    display:block;
     border: 0px;
     padding:5px 10px;
     border-radius:4px;
@@ -34,6 +32,20 @@
     font-style:normal !important;
     text-transform: uppercase;
     font-size: 0.9em;
+    font-weight: bold;
+}
+
+.isisBlobPanel .scalarValue span.uploadTitle,
+.isisBlobPanel .scalarValue span.downloadTitle {
+    padding-top: 0px;
+    padding-bottom: 0px;
+    float:left;
+    display:block;
+}
+
+.isisBlobPanel .scalarValue span.clearTitle {
+    padding-top: 5px;
+    padding-bottom: 5px;
 }
 
 .isisBlobPanel .scalarValue a span.downloadTitle,
@@ -59,12 +71,8 @@
 	line-height: 30px;
 }
 
-.isisBlobPanel .scalarValue span.uploadTitle,
-.isisBlobPanel .scalarValue span.downloadTitle,
-.isisBlobPanel .scalarValue span.clearTitle {
-    padding-top: 0px;
-    padding-bottom: 0px;
-    font-weight: bold;
+.isisBlobPanel .fileName {
+    /*display: block;*/
 }