How can we replace file upload dialog from GWT-EXT? What is the analogue
in SmartGWT?
Thanks,
--MG
in SmartGWT?
Thanks,
--MG
public void fileUpload(){
VLayout layout = new VLayout();
final DynamicForm uploadForm = new DynamicForm();
uploadForm.setEncoding(Encoding.MULTIPART);
UploadItem fileItem = new UploadItem("image");
TextItem nameItem = new TextItem("imageName");
TextItem descriptionItem = new TextItem("description");
HiddenItem spaceImageIdItem = new HiddenItem("spaceImageId");
HiddenItem propertyIdItem = new HiddenItem("propertyId");
propertyIdItem.setValue(23);
spaceImageIdItem.setValue(0);
uploadForm.setTarget("hidden_frame");
uploadForm.setAction("/company/imageUploadRest.do");
IButton uploadButton = new IButton("Upload...");
uploadButton.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler(){
public void onClick(ClickEvent e){
uploadForm.submitForm();
}
});
uploadForm.setItems(fileItem, nameItem, descriptionItem, spaceImageIdItem, propertyIdItem);
layout.setMembers(uploadForm, uploadButton);
RootPanel.get("tree1").add(layout);
}
@RequestMapping("/imageUploadRest.do")
@Transactional
public void processImageUploadRest(
@RequestParam("imageName") String imageName,
@RequestParam("description") String description,
@RequestParam("spaceImageId") String spaceImageId,
@RequestParam("image") MultipartFile image,
@RequestParam("propertyId") String propertyId,
HttpServletResponse response) throws IOException, Exception {
doImageSave(imageName, description, spaceImageId, image, propertyId);
PrintWriter out = response.getWriter();
out.println("<response>");
out.println("<data>");
out.println("<status>0</status>");
out.println("</data> ");
out.println("</response> ");
}
@Transactional
public void doImageSave(String imageName,
String description,
String spaceImageId,
MultipartFile image,
String propertyId ) throws IOException, Exception {
Long _spaceImageId = new Long(spaceImageId);
ImageBlob imageBlob = new ImageBlob(image.getContentType(), image.getInputStream());
imageBlobDAO.create(imageBlob);
}
<html> <head></head> <body bgcolor="#FFFFFF"> <iframe height="0" name="hidden_frame"> </iframe> ...
public class JavaScriptMethodHelper {
private static int requestCounter = 0;
public static String registerCallbackFunction(JavaScriptMethodCallback callback) {
String callbackName = "callback" + (requestCounter++);
createCallbackFunction(callback, callbackName);
return callbackName;
}
private native static void createCallbackFunction( JavaScriptMethodCallback obj, String callbackName )/*-{
tmpcallback = function( j ){
obj.@example.JavaScriptMethodCallback::execute(Lcom/google/gwt/core/client/JavaScriptObject;)( j );
};
$wnd[callbackName]=tmpcallback;
}-*/;
}
package example;
import com.google.gwt.core.client.JavaScriptObject;
public interface JavaScriptMethodCallback {
public void execute(JavaScriptObject obj);
}
....
final HiddenItem callbackItem = new HiddenItem("callbackName");
uploadButton.addClickHandler( new ClickHandler() {
public void onClick(ClickEvent event) {
String callbackName = JavaScriptMethodHelper.registerCallbackFunction(new JavaScriptMethodCallback() {
public void execute(JavaScriptObject obj) {
uploadFinished(obj);
}
});
callbackItem.setValue(callbackName); //set hidden item
form.submitForm();
}
});
<script type="text/javascript">
window.top.${callbackName}(...);
</script>
public class JavaScriptMethodHelper {
private static int requestCounter = 0;
public static String registerCallbackFunction(JavaScriptMethodCallback callback) {
String callbackName = "callback" + (requestCounter++);
createCallbackFunction(callback, callbackName);
return callbackName;
}
private native static void createCallbackFunction( JavaScriptMethodCallback obj, String callbackName )/*-{
tmpcallback = function( j ){
obj.@example.JavaScriptMethodCallback::execute(Lcom/google/gwt/core/client/JavaScriptObject;)( j );
};
$wnd[callbackName]=tmpcallback;
}-*/;
}
package example;
import com.google.gwt.core.client.JavaScriptObject;
public interface JavaScriptMethodCallback {
public void execute(JavaScriptObject obj);
}
....
final HiddenItem callbackItem = new HiddenItem("callbackName");
uploadButton.addClickHandler( new ClickHandler() {
public void onClick(ClickEvent event) {
String callbackName = JavaScriptMethodHelper.registerCallbackFunction(new JavaScriptMethodCallback() {
public void execute(JavaScriptObject obj) {
uploadFinished(obj);
}
});
callbackItem.setValue(callbackName); //set hidden item
form.submitForm();
}
});
<script type="text/javascript">
window.top.${callbackName}(...);
</script>
<script type="text/javascript"> _methodName(...); </script>
<script type="text/javascript">
_alert('Hi');
</script>
<button onClick="javascript:_methodeName(...);">test</button>
Comment