Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    Rendering issues in Opera with SmartGWT 3.1

    Hello,

    I have some serious rendering issues with opera. I have a gwt uploader palced in a smartgwt layout + window. The uploader appears, but when move over the uploader with the mouse, the uploader disappears and is not visible anymore. Any ideas? The GWT uploader is needed, because I need a upload finished event, which is not provided by smartGWT 3.1.

    Code:
    package com.uds.webadmin.client;
    
    import java.util.Date;
    
    import com.google.gwt.core.client.GWT;
    import com.google.gwt.http.client.Request;
    import com.google.gwt.http.client.RequestBuilder;
    import com.google.gwt.http.client.RequestCallback;
    import com.google.gwt.http.client.RequestException;
    import com.google.gwt.http.client.Response;
    import com.google.gwt.i18n.client.DateTimeFormat;
    import com.google.gwt.user.client.ui.FileUpload;
    import com.google.gwt.user.client.ui.FormPanel;
    import com.google.gwt.user.client.ui.FormPanel.SubmitCompleteEvent;
    import com.google.gwt.user.client.ui.RootPanel;
    import com.google.gwt.user.client.ui.VerticalPanel;
    import com.smartgwt.client.util.SC;
    import com.smartgwt.client.widgets.Label;
    import com.smartgwt.client.widgets.Window;
    import com.smartgwt.client.widgets.form.DynamicForm;
    import com.smartgwt.client.widgets.layout.HLayout;
    import com.smartgwt.client.widgets.layout.VLayout;
    import com.smartgwt.client.widgets.toolbar.ToolStrip;
    import com.smartgwt.client.widgets.toolbar.ToolStripButton;
    import com.google.gwt.user.client.DOM;
    import com.google.gwt.user.client.Element;
    
    public class GPopUpUpload
    {
        private FormPanel form;
        private VerticalPanel panelVertical;
        private FileUpload uploader;
        private GEditEmailForm emailForm;
        private DynamicForm editorForm;
        private Window window;
        private String fileName;
        private String allowedMimeTypes;
        private ToolStripButton buttonImport;
        private ToolStripButton buttonCancel;
    
        public GPopUpUpload( GEditEmailForm emailForm, String allowedMimeTypes )
        {
            this.emailForm = emailForm;
            this.allowedMimeTypes = allowedMimeTypes;
        }
    
        // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        /**
         * Creates a pop up window
         */
        // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        public void initGUI()
        {
            window = new Window();
            window.setSize( "520px", "200px" );
            window.setTitle( "Import" );
            window.setShowMaximizeButton( false );
            window.setShowMinimizeButton( false );
            window.setModalMaskOpacity( 80 );
            window.setIsModal( true );
            window.setShowModalMask( true );
            window.centerInPage();
            window.addItem( getEditForm() );
            window.addItem( getToolBar() );
            window.draw();
        }
    
        // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        /**
         * Creates and returns the toolbar
         */
        // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        public ToolStrip getToolBar()
        {
            buttonImport = new ToolStripButton( "Importieren" );
            buttonImport.setIcon( "icons/32x32/import.png" );
            buttonImport.addClickHandler( new com.smartgwt.client.widgets.events.ClickHandler()
            {
    
                @Override
                public void onClick( com.smartgwt.client.widgets.events.ClickEvent event )
                {
                    uploadFile();
                }
            } );
    
            buttonCancel = new ToolStripButton( "Schließen" );
            buttonCancel.setIcon( "icons/32x32/cancel.png" );
            buttonCancel.addClickHandler( new com.smartgwt.client.widgets.events.ClickHandler()
            {
    
                @Override
                public void onClick( com.smartgwt.client.widgets.events.ClickEvent event )
                {
                    closeWindow();
                }
            } );
    
            ToolStrip toolBar = new ToolStrip();
            toolBar.setWidth( "100%" );
            toolBar.addFill();
            toolBar.addMember( buttonCancel );
            toolBar.addMember( buttonImport );
    
            return toolBar;
        }
    
        // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        /**
         * Creates and returns an editor form
         */
        // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        private VLayout getEditForm()
        {
            Label txtInstructions = new Label( "txtInstruction" );
            txtInstructions.setContents( "<b>Bitte w&auml;hlen Sie eine Datei aus(" + allowedMimeTypes + "):</b>" );
            txtInstructions.setHeight( 30 );
            txtInstructions.setWidth( "100%" );
    
            VLayout layout = new VLayout( 10 );
            layout.setMargin( 25 );
            layout.setHeight( "100%" );
            layout.setWidth( "100%" );
    
            layout.setMembers( txtInstructions, getUploadForm() );
    
            return layout;
        } // End of method
    
        // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        /**
         * Creates and returns an upload panel
         */
        // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        private HLayout getUploadForm()
        {
            // Create a FormPanel and point it at a service.
            form = new FormPanel();
            form.setAction( "/myFormHandler" );
    
            // Because we're going to add a FileUpload widget, we'll need to set the
            // form to use the POST method, and multipart MIME encoding.
            form.setEncoding( FormPanel.ENCODING_MULTIPART );
            form.setMethod( FormPanel.METHOD_POST );
            form.setWidth( "100%" );
    
            // Create a panel to hold all of the form widgets.
            panelVertical = new VerticalPanel();
            form.setWidget( panelVertical );
    
            // Create a FileUpload widget.
            uploader = new FileUpload();
            uploader.setWidth( "100%" );
    
            // determines uploader width... make Firefox 1.5.0.7 or higher happy
    //        com.google.gwt.user.client.Element ee = uploader.getElement();
    //        com.google.gwt.user.client.DOM.setAttribute( ee, "size", "50" );
    
            uploader.setName( "Uploader" );
            panelVertical.add( uploader );
    
            panelVertical.setSpacing( 12 );
    
            form.addSubmitCompleteHandler( new FormPanel.SubmitCompleteHandler()
            {
                public void onSubmitComplete( SubmitCompleteEvent event )
                {
                    if ( emailForm != null )
                    {
                        emailForm.setImportStatus( false );
                        emailForm.importFileName = fileName;
                        emailForm.txtImport_file.setValue( fileName );
                        closeWindow();
                        emailForm.txtHeadline.selectValue();
                        validateImportFile( fileName );
    
                    }
                }
            } );
    
            form.ensureDebugId( "getUploader" );
    
            HLayout layout = new HLayout();
            layout.addMember( form );
    
            return layout;
        }
    
        private void uploadFile()
        {
            String fileType = getMimeType( uploader.getFilename() );
    
            if ( uploader.getFilename().equals( "" ) == false )
            {
                if ( allowedMimeTypes.contains( fileType ) )
                {
    
                    StringBuilder url = new StringBuilder();
                    url.append( "upload?file=" + getFileName() + "&path=temp" );
                    form.setAction( GWT.getHostPageBaseURL() + ( url.toString() ) );
                    form.submit();
    
                    closeWindow();
                }
                else
                {
                    SC.say( "Der Dateityp '" + fileType + "' ist nicht zul&auml;ssig" );
                }
    
            }
            else
            {
                SC.say( "Bitte w&auml;hlen Sie eine Datei aus bevor Sie auf den Import Button klicken" );
            }
    
        }
    
        // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        /**
         * Creates and returns a file name
         */
        // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        private String getFileName()
        {
            Date date = new Date();
            DateTimeFormat fmt = DateTimeFormat.getFormat( "yyyy_MM_dd_H_m_s_" );
            String formatedDate = fmt.format( date );
    
            fileName = formatedDate + GWebAdmin.loginName + getMimeType( uploader.getFilename() );
    
            return fileName;
        }
    
        // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        /**
         * Returns the mimetype of a file
         */
        // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        private String getMimeType( String filePath )
        {
    
            int i = filePath.lastIndexOf( "." );
            String fileType = null;
    
            if ( i > -1 && i < filePath.length() - 1 )
            {
                fileType = filePath.substring( i );
            }
    
            return fileType;
    
        } // Ende der Methode
    
        // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        /**
         * Sends the email, stores email + email assignments in database
         */
        // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        public void validateImportFile( String fileName )
        {
    
            /* URL for calling the RestService */
            String dataUrl = GWT.getHostPageBaseURL() + "rest/emails/validate/import/";
            System.out.println( "DataUrl: " + dataUrl );
    
            RequestBuilder builder = new RequestBuilder( RequestBuilder.PUT, dataUrl );
            builder.setHeader( "content-type", "application/xml" );
    
            try
            {
                builder.sendRequest( fileName, /* data String wich will be send via restful */
                                     new RequestCallback()
                                     {
                                         @Override
                                         public void onResponseReceived( Request request, Response response )
                                         {
                                             int statusCode = response.getStatusCode();
    
                                             if ( statusCode == Response.SC_OK )
                                             {
                                                 // gets the email_id of the created dataset
                                                 String result = response.getText();
                                                 System.out.println( "ResponseBody: " + result );
    
                                                 if ( result.equals( "" ) == false )
                                                 {
                                                     SC.say( "Die folgenden E-Mail Adressen sind nicht korrekt. Bitte &auml;ndern oder l&ouml;schen Sie diese umgehend in SOS!!!<br>"
                                                         + result );
                                                     emailForm.buttonCancel.setDisabled( false );
                                                     emailForm.buttonImport.setDisabled( false );
                                                 }
                                             }
                                             else
                                             {
                                                 SC.say( "Ein unerwarter Fehler ist aufgetreten: " + statusCode );
                                                 emailForm.buttonCancel.setDisabled( false );
                                                 emailForm.buttonImport.setDisabled( false );
                                             }
                                         }
    
                                         @Override
                                         public void onError( Request request, Throwable exception )
                                         {
                                             SC.say( String.valueOf( exception ) );
                                             emailForm.buttonCancel.setDisabled( false );
                                             emailForm.buttonImport.setDisabled( false );
                                         }
                                     } );
    
            }
            catch ( RequestException e )
            {
    
                e.printStackTrace();
                SC.say( String.valueOf( e ) );
                emailForm.buttonCancel.setDisabled( false );
                emailForm.buttonImport.setDisabled( false );
            }
    
        }
    
         * Closes the opened window
         */
        // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        private void closeWindow()
        {
            // window.destroy() affects javaScript errors in Chrome
            window.hide();
        } // End of class
    
    }

    #2
    Why does nobody answers here to questions? The support is here is sometimes really bad!!!

    Comment


      #3
      Read the FAQ, there's several obvious things wrong with your post.

      Comment


        #4
        I am sorry... I did not want to be rude... I was just wondering... because I did not get any reply in maybe 10 or 12 posts here...
        So you say it is a mix problem between GWT and SMARTGWT. Meanwhile I also tried GWTUpload which is reportet to work with smartGWT. But here the same issue with Opera. Opera dragonfly shows many css error.

        Comment

        Working...
        X