Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.servlet.annotation.WebServlet;
- import com.vaadin.annotations.Theme;
- import com.vaadin.annotations.VaadinServletConfiguration;
- import com.vaadin.annotations.Widgetset;
- import com.vaadin.server.VaadinRequest;
- import com.vaadin.server.VaadinServlet;
- import com.vaadin.ui.Button;
- import com.vaadin.ui.Button.ClickEvent;
- import com.vaadin.ui.JavaScript;
- import com.vaadin.ui.Label;
- import com.vaadin.ui.UI;
- import com.vaadin.ui.VerticalLayout;
- import com.vaadin.client.ui.*;
- @Theme("mytheme")
- @Widgetset("my.vaadin.apptest.MyAppWidgetset")
- @com.vaadin.annotations.JavaScript({"https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"
- })
- public class MyUI extends UI {
- @Override
- protected void init(VaadinRequest vaadinRequest) {
- final VerticalLayout layout = new VerticalLayout();
- layout.addStyleName("myLayout");//add class to main div
- Label label = new Label("Hello Vaadin user. Use this application to upload files.");
- ...
- //HERE IS THE JAVASCRIPT CREATING AND INSTANTIATING THE POPUP AND THE AJAX CALL
- //CREATING POPUP
- JavaScript.getCurrent().execute(""
- +"var $HTMLpopup = $('<div class=\"popupContainer\">"
- +"<span class=\"cancelBtn big\"></span>"
- +"<div class=\"wrapper\">"
- +"<form action=\"\" id=\"fileForm\">"
- +"<div class=\"mask\">"
- +"<input type=\"file\" title=\" \"name=\"uploadFile\" class=\"uploadFile\" accept=\".mol,.sdf\">/*filters files to upload*/"
- +"<span class=\"pseudoBtn\">Browse</span>"
- +"<input type=\"text\" name=\"displayFile\" class=\"displayFile\" placeholder=\"no file loaded\">"
- +"<span class=\"cancelBtn small\"></span>"
- +"</div>"
- +"<textarea class=\"fileResult\"></textarea>"
- +"<button type=\"submit\" class=\"submitBtn\">Upload</button>"
- +"<div class=\"clear\"></div>"
- +"</form>"
- +"</div>"
- +"</div>');"
- //INSTANTIATING THE POPUP
- +"$('.popupTriggerBtn').click(function(){"
- +"/*console.log('button clicked!');*/"
- +"var $body = $('body');"
- +"$HTMLpopup.appendTo($body);"
- +"});"
- //HERE IS THE AJAX BIT
- +"var $submitBtn = $HTMLpopup.find('.submitBtn');"
- +"$submitBtn.click(function(e){"
- +"e.preventDefault();/*prevent submission*/"
- +"if(isFileUploadEmpty()){/*IF EMPTY*/"
- +"/*alert('submit clicked');*/"
- +"removeError();"
- +"showError('empty');"
- + "}"
- +"else{/*IF NOT EMPTY*/"
- +"/*AJAX OPS*/"
- +"if (window.XMLHttpRequest){/*XMLHttpRequest SUPPORT?*/"
- +"console.log('XMLHttpRequest supported!');"
- +"var postData = returnFileAsString();/*returns the file as a string*/;"
- +"/*console.log('here is the file as a string ' + postData);*/"
- +"$.ajax({"
- +"type:'post',"
- +"url:'http://localhost:8080/apptest/',"
- +"data:postData,"
- +"contentType: 'application/x-www-form-urlencoded',"
- +"success: function(responseData, textStatus, jqXHR){"
- +"/*alert('data saved');*/"
- +"console.log('responseData is ' + responseData);"
- +"console.log('text status is ' + textStatus);"
- +"console.log('the data submitted is ' + postData );"
- +"},"
- +"error: function(jqXHR, textStatus, errorThrown){"
- +"console.log(errorThrown);"
- +"alert('an error has occurred!');"
- +"}"
- +"});"
- +"}"
- +"}"
- +"});"
- +"");
- //ADDING COMPONENTS
- layout.addComponents( label, button );
- layout.setMargin(true);
- layout.setSpacing(true);
- setContent(layout);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement