Skip to content

Commit

Permalink
MID-2816
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Mar 2, 2016
1 parent 7555f73 commit a07ed4d
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 21 deletions.
Expand Up @@ -19,9 +19,6 @@
<div class="form-object-value-binary-box">
<input wicket:id="fileInput" type="file" class="form-object-value-binary-file-input"/>
<span class="btn-group">
<a class="btn btn-success btn-xs" wicket:id="upload" wicket:message="title:UploadPanel.upload.tooltip">
<i class="fa fa-upload"/>
</a>
<a class="btn btn-success btn-xs" wicket:id="download" wicket:message="title:UploadPanel.download.tooltip">
<i class="fa fa-download"/>
</a>
Expand Down
Expand Up @@ -26,6 +26,7 @@
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.FormComponent;
import org.apache.wicket.markup.html.form.upload.FileUpload;
Expand All @@ -40,7 +41,6 @@ public class UploadDownloadPanel extends InputPanel {

private static final Trace LOGGER = TraceManager.getTrace(UploadDownloadPanel.class);

private static final String ID_BUTTON_UPLOAD = "upload";
private static final String ID_BUTTON_DOWNLOAD = "download";
private static final String ID_BUTTON_DELETE = "remove";
private static final String ID_INPUT_FILE = "fileInput";
Expand All @@ -51,7 +51,27 @@ public UploadDownloadPanel(String id, boolean isReadOnly) {
}

private void initLayout(final boolean isReadOnly) {
FileUploadField fileUpload = new FileUploadField(ID_INPUT_FILE);
final FileUploadField fileUpload = new FileUploadField(ID_INPUT_FILE);
Form form = this.findParent(Form.class);
fileUpload.add(new AjaxFormSubmitBehavior(form, "change")
{
@Override
protected void onSubmit ( AjaxRequestTarget target )
{
super.onSubmit(target);
Component input = getInputFile();
try {
FileUpload uploadedFile = getFileUpload();
updateValue(uploadedFile.getBytes());
LOGGER.trace("Upload file success.");
input.success(getString("UploadPanel.message.uploadSuccess"));
} catch (Exception e) {
LOGGER.trace("Upload file error.", e);
input.error(getString("UploadPanel.message.uploadError") + " " + e.getMessage());
}
}
} );
fileUpload.setOutputMarkupId(true);
add(fileUpload);

final AjaxDownloadBehaviorFromStream downloadBehavior = new AjaxDownloadBehaviorFromStream() {
Expand All @@ -63,27 +83,12 @@ protected InputStream initStream() {
};
add(downloadBehavior);

add(new AjaxSubmitButton(ID_BUTTON_UPLOAD) {

@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
uploadFilePerformed(target);
}

@Override
protected void onError(AjaxRequestTarget target, Form<?> form) {
uploadFileFailed(target);
}
});

add(new AjaxSubmitButton(ID_BUTTON_DOWNLOAD) {

@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
downloadPerformed(downloadBehavior, target);
}


});

add(new AjaxSubmitButton(ID_BUTTON_DELETE) {
Expand Down Expand Up @@ -154,4 +159,8 @@ private void downloadPerformed(AjaxDownloadBehaviorFromStream downloadBehavior,
AjaxRequestTarget target) {
downloadBehavior.initiate(target);
}

private FileUploadField getInputFile(){
return (FileUploadField)get(ID_INPUT_FILE);
}
}
Expand Up @@ -500,7 +500,8 @@ public Iterator<String> getIterator(String input) {

@Override
public InputStream getStream() {
return new ByteArrayInputStream((byte[]) ((PrismPropertyValue) model.getObject().getValue()).getValue());
Object object = ((PrismPropertyValue) model.getObject().getValue()).getValue();
return object != null ? new ByteArrayInputStream((byte[]) object) : new ByteArrayInputStream(new byte[0]);
// return super.getStream();
}

Expand Down

0 comments on commit a07ed4d

Please sign in to comment.