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 2013/01/15 23:48:04 UTC
git commit: ISIS-282: blob upload now ok, of a fashion
Updated Branches:
refs/heads/master 8565bf04a -> a8bb063ba
ISIS-282: blob upload now ok, of a fashion
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/a8bb063b
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/a8bb063b
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/a8bb063b
Branch: refs/heads/master
Commit: a8bb063ba254e1ea82ad8e3c878f0c73438e9451
Parents: 8565bf0
Author: Dan Haywood <da...@apache.org>
Authored: Tue Jan 15 22:42:56 2013 +0000
Committer: Dan Haywood <da...@apache.org>
Committed: Tue Jan 15 22:42:56 2013 +0000
----------------------------------------------------------------------
.../scalars/isisapplib/IsisBlobPanel.css | 52 +++++++++++++++
.../scalars/isisapplib/IsisBlobPanel.html | 11 ++-
.../scalars/isisapplib/IsisBlobPanel.java | 37 ++++++++--
.../scalars/isisapplib/IsisBlobPanelFactory.java | 5 +-
.../viewer/wicket/ui/panels/PanelAbstract.java | 1 -
.../dom/src/main/java/dom/todo/ToDoItem.java | 21 ++++++
.../quickstart_wicket_restful_jdo/pom.xml | 8 +-
7 files changed, 117 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/a8bb063b/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 eaeea17..ccd08cc 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
@@ -16,3 +16,55 @@
* specific language governing permissions and limitations
* under the License.
*/
+
+.isisBlobPanel .scalarValue span.downloadTitle,
+.isisBlobPanel .scalarValue span.uploadTitle,
+.isisBlobPanel .scalarValue span.clearTitle {
+ margin-right: 10px;
+ margin-bottom:10px;
+ float:left;
+ display:block;
+ border: 0px;
+ padding:5px 10px;
+ border-radius:4px;
+ -moz-border-radius:4px;
+ -webkit-border-radius:4px;
+ background-color:#FFFFFF;
+ color:#46413B;
+ font-style:normal !important;
+ text-transform: uppercase;
+ font-size: 0.9em;
+}
+
+.isisBlobPanel .scalarValue span.uploadFile input {
+ display: none;
+}
+
+.isisBlobPanel .scalarValue a span.downloadTitle,
+.isisBlobPanel .scalarValue span.uploadTitle,
+.isisBlobPanel .scalarValue a span.clearTitle {
+ background-color:#F0EFEA;
+}
+
+.isisBlobPanel .scalarValue a:hover span.downloadTitle,
+.isisBlobPanel .scalarValue span.uploadTitle:hover,
+.isisBlobPanel .scalarValue a:hover span.clearTitle {
+ background-color:#20B5C2;
+ color:#FFFFFF;
+ text-decoration:none;
+ cursor: pointer;
+}
+
+.yourBtn{
+ position: relative;
+ top: 150px;
+ font-family: calibri;
+ width: 150px;
+ padding: 10px;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border: 1px dashed #BBB;
+ text-align: center;
+ background-color: #DDD;
+ cursor:pointer;
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/a8bb063b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobPanel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobPanel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobPanel.html
index 3c6603d..a0e43ec 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobPanel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobPanel.html
@@ -18,16 +18,21 @@
under the License.
-->
<html>
+ <wicket:head>
+ </wicket:head>
<body>
<wicket:panel>
<div class="isisBlobPanel scalarNameAndValueComponentType">
<label for="scalarValue" wicket:id="scalarIfRegular">
<span wicket:id="scalarName" class="scalarName">[Label text]</span>
<span class="scalarValue">
- <input type="file" name="scalarValue" id="scalarValue" wicket:id="scalarValue"/>
+ <span class="uploadFile">
+ <span wicket:id="scalarIfRegularUpload" class="uploadTitle">Upload</span>
+ <input type="file" name="scalarValue" id="scalarValue" wicket:id="scalarValue"/>
+ </span>
+ <a class="download" wicket:id="scalarIfRegularDownload"><span class="downloadTitle">Download</span></a>
+ <a class="clear" wicket:id="scalarIfRegularClear"><span class="clearTitle">Clear</span></a>
</span>
- <a wicket:id="scalarIfRegularDownload">Download</a>
- <a wicket:id="scalarIfRegularClear">Clear</a>
<span wicket:id="feedback"></span>
</label>
http://git-wip-us.apache.org/repos/asf/isis/blob/a8bb063b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobPanel.java
index 2799eed..46b0823 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobPanel.java
@@ -24,14 +24,16 @@ import java.util.List;
import org.apache.isis.applib.value.Blob;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-import org.apache.isis.viewer.wicket.ui.components.bookmarkedpages.BookmarkedPagesPanel;
import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
import org.apache.isis.viewer.wicket.ui.util.Components;
import org.apache.log4j.Logger;
+import org.apache.wicket.Application;
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.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.FormComponentLabel;
@@ -54,6 +56,7 @@ public class IsisBlobPanel extends ScalarPanelAbstract {
private static final Logger LOG = Logger.getLogger(IsisBlobPanel.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_SCALAR_IF_REGULAR_CLEAR = "scalarIfRegularClear";
private static final String ID_SCALAR_NAME = "scalarName";
@@ -74,7 +77,10 @@ public class IsisBlobPanel extends ScalarPanelAbstract {
final FormComponentLabel scalarIfRegular = new FormComponentLabel(ID_SCALAR_IF_REGULAR, fileUploadField);
scalarIfRegular.add(fileUploadField);
-
+
+ final Label scalarUploadLabel = new Label(ID_SCALAR_IF_REGULAR_UPLOAD, "Upload");
+ scalarIfRegular.add(scalarUploadLabel);
+
final Label scalarName = new Label(ID_SCALAR_NAME, getModel().getName());
scalarIfRegular.add(scalarName);
@@ -87,6 +93,14 @@ public class IsisBlobPanel extends ScalarPanelAbstract {
}
@Override
+ protected void renderHead(IHeaderResponse response, Class<?> cls) {
+ super.renderHead(response, cls);
+ // also include JQuery
+ response.render(JavaScriptHeaderItem.forReference(Application.get().getJavaScriptLibrarySettings()
+ .getJQueryReference()));
+ }
+
+ @Override
protected Component addComponentForCompact() {
final MarkupContainer scalarIfCompact = new WebMarkupContainer(ID_SCALAR_IF_COMPACT);
updateDownloadLink(ID_SCALAR_IF_COMPACT_DOWNLOAD, scalarIfCompact);
@@ -155,10 +169,18 @@ public class IsisBlobPanel extends ScalarPanelAbstract {
}
private void updateRegularFormComponents(InputFieldVisibility visibility) {
- MarkupContainer formComponentLabel = (MarkupContainer) getComponentForRegular();
- formComponentLabel.get(ID_SCALAR_VALUE).setVisible(visibility == InputFieldVisibility.VISIBLE);
+ 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);
- updateDownloadLink(ID_SCALAR_IF_REGULAR_DOWNLOAD, formComponentLabel);
+
+ final MarkupContainer downloadLink = updateDownloadLink(ID_SCALAR_IF_REGULAR_DOWNLOAD, formComponent);
+ if (downloadLink != null) {
+ // the visibility of download link is intentionally 'backwards';
+ // if in edit mode then do NOT show
+ downloadLink.setVisible(visibility == InputFieldVisibility.NOT_VISIBLE);
+ }
}
private void updateClearLink(InputFieldVisibility visibility) {
@@ -171,7 +193,8 @@ public class IsisBlobPanel extends ScalarPanelAbstract {
@Override
public void onClick(AjaxRequestTarget target) {
setEnabled(false);
- getModel().setObject(null);
+ ScalarModel model = IsisBlobPanel.this.getModel();
+ model.setObject(null);
target.add(formComponent);
}
};
@@ -182,7 +205,7 @@ public class IsisBlobPanel extends ScalarPanelAbstract {
formComponent.get(ID_SCALAR_IF_REGULAR_CLEAR).setVisible(blob != null && visibility == InputFieldVisibility.VISIBLE);
}
- private ResourceLink<?> updateDownloadLink(String downloadId, MarkupContainer container) {
+ private MarkupContainer updateDownloadLink(String downloadId, MarkupContainer container) {
final ResourceLink<?> resourceLink = createResourceLink(downloadId);
if(resourceLink != null) {
container.addOrReplace(resourceLink);
http://git-wip-us.apache.org/repos/asf/isis/blob/a8bb063b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobPanelFactory.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobPanelFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobPanelFactory.java
index 633708c..170d75a 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobPanelFactory.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobPanelFactory.java
@@ -19,14 +19,13 @@
package org.apache.isis.viewer.wicket.ui.components.scalars.isisapplib;
-import org.apache.wicket.Component;
-
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.viewer.wicket.ui.ComponentFactory;
import org.apache.isis.viewer.wicket.ui.components.scalars.ComponentFactoryScalarAbstract;
+import org.apache.wicket.Component;
/**
- * {@link ComponentFactory} for {@link IsisColorPanel}.
+ * {@link ComponentFactory} for {@link IsisBlobPanel}.
*/
public class IsisBlobPanelFactory extends ComponentFactoryScalarAbstract {
http://git-wip-us.apache.org/repos/asf/isis/blob/a8bb063b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java
index 576e501..d2fc109 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelAbstract.java
@@ -132,7 +132,6 @@ public abstract class PanelAbstract<T extends IModel<?>> extends Panel implement
*/
protected void renderHead(final IHeaderResponse response, final Class<?> cls) {
final String url = cls.getSimpleName() + ".css";
- //response.renderCSSReference(new ResourceReference(cls, url));
response.render(CssHeaderItem.forReference(new CssResourceReference(cls, url)));
}
http://git-wip-us.apache.org/repos/asf/isis/blob/a8bb063b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
index 8d8dfb0..e249f84 100644
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
+++ b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
@@ -23,6 +23,7 @@ import java.util.List;
import javax.jdo.JDOHelper;
import javax.jdo.annotations.IdentityType;
+import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.VersionStrategy;
import javax.jdo.spi.PersistenceCapable;
@@ -46,6 +47,7 @@ import org.apache.isis.applib.clock.Clock;
import org.apache.isis.applib.filter.Filter;
import org.apache.isis.applib.filter.Filters;
import org.apache.isis.applib.util.TitleBuffer;
+import org.apache.isis.applib.value.Blob;
import org.apache.isis.core.objectstore.jdo.applib.annotations.Auditable;
import org.joda.time.LocalDate;
@@ -194,6 +196,25 @@ public class ToDoItem implements Comparable<ToDoItem> {
}
// }}
+
+
+ // {{ Attachment (property)
+ private Blob attachment;
+
+ @Persistent
+ @Optional
+ @MemberOrder(name="Detail", sequence = "7")
+ public Blob getAttachment() {
+ return attachment;
+ }
+
+ public void setAttachment(final Blob attachment) {
+ this.attachment = attachment;
+ }
+ // }}
+
+
+
// {{ Version (derived property)
@Hidden(where=Where.ALL_TABLES)
http://git-wip-us.apache.org/repos/asf/isis/blob/a8bb063b/example/application/quickstart_wicket_restful_jdo/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/pom.xml b/example/application/quickstart_wicket_restful_jdo/pom.xml
index c7f505f..321ed5e 100644
--- a/example/application/quickstart_wicket_restful_jdo/pom.xml
+++ b/example/application/quickstart_wicket_restful_jdo/pom.xml
@@ -30,10 +30,10 @@
<packaging>pom</packaging>
<properties>
- <isis.version>1.0.0</isis.version>
- <isis-objectstore-jdo.version>1.0.0</isis-objectstore-jdo.version>
- <isis-viewer-wicket.version>1.0.0</isis-viewer-wicket.version>
- <isis-viewer-restfulobjects.version>1.0.0</isis-viewer-restfulobjects.version>
+ <isis.version>1.0.1-SNAPSHOT</isis.version>
+ <isis-objectstore-jdo.version>1.0.1-SNAPSHOT</isis-objectstore-jdo.version>
+ <isis-viewer-wicket.version>1.0.1-SNAPSHOT</isis-viewer-wicket.version>
+ <isis-viewer-restfulobjects.version>1.0.1-SNAPSHOT</isis-viewer-restfulobjects.version>
<isis-security-shiro.version>1.0.1-SNAPSHOT</isis-security-shiro.version>
</properties>