Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 349302 - [FileUpload] JavaScript error when FileUpload is created invisible or its parent is invisible
Summary: [FileUpload] JavaScript error when FileUpload is created invisible or its par...
Status: RESOLVED FIXED
Alias: None
Product: RAP
Classification: RT
Component: RWT (show other bugs)
Version: 1.4   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: 1.5 M1   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard: sr141
Keywords:
Depends on:
Blocks:
 
Reported: 2011-06-14 06:46 EDT by Ivan Furnadjiev CLA
Modified: 2011-08-01 03:35 EDT (History)
3 users (show)

See Also:


Attachments
patch for 1.4.1 (22.30 KB, patch)
2011-07-28 07:13 EDT, Tim Buschtoens CLA
tbuschto: review?
rsternberg: review+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Ivan Furnadjiev CLA 2011-06-14 06:46:15 EDT
FileUpload upload = new FileUpload( this, SWT.NONE );
upload.setVisible( false );
The code above produce JavaScript error in all browsers:
------------
Error: Error: Failed to force input-element width.

  Script: var req = org.eclipse.swt.Request.getInstance();req.setRequestCounter( "2" );var wm = org.eclipse.swt.WidgetManager.getInstance();var w = new org.eclipse.swt.widgets.Shell();wm.add( w, "w11", true );w.addToDocument();w.addState( "rwt_APPLICATION_MODAL" );w.addState( "rwt_TITLE" );w.setShowMinimize( false );w.setAllowMinimize( false );w.setShowMaximize( true );w.setAllowMaximize( true );w.setShowClose( true );w.setAllowClose( true );w.setResizable( true, true, true, true );w.setParentShell( wm.findWidgetById( "w2" ) );w.initialize();w.setCaption( "Upload Multiple Files" );w.open();w.setActive( true );w.setHasShellListener( true );w.setMinWidth( 574 );w.setMinHeight( 230 );w.setSpace( 486, 574, 196, 230 );w.setTabIndex( -1 );w.setVisibility( true );var w = new org.eclipse.swt.widgets.Composite();wm.add( w, "w12", true );wm.setParent( w, "w11" );w.setSpace( 15, 540, 37, 144 );w.setZIndex( 300 );w.setTabIndex( -1 );var w = new org.eclipse.swt.widgets.Group();wm.add( w, "w13", true );wm.setParent( w, "w12" );w.setSpace( 0, 540, 0, 120 );w.setZIndex( 300 );w.setTabIndex( -1 );w.setLegend( "Selected Files" );var w = new org.eclipse.swt.custom.ScrolledComposite();wm.add( w, "w14", true );wm.setParent( w, "w13" );w.setSpace( 8, 524, 22, 90 );w.setZIndex( 300 );w.setTabIndex( 3 );w.setClipWidth( 524 );w.setClipHeight( 90 );w.setScrollBarsVisible( false, false );var w = new org.eclipse.swt.widgets.Composite();wm.add( w, "w15", true );wm.setParent( w, "w14" );w.setWidth( 524 );w.setHeight( 90 );w.setZIndex( 300 );w.setTabIndex( -1 );var w = new org.eclipse.swt.widgets.Composite();wm.add( w, "w16", true );wm.setParent( w, "w15" );w.setSpace( 5, 514, 5, 23 );w.setZIndex( 300 );w.setTabIndex( -1 );var w = new org.eclipse.swt.widgets.Composite();wm.add( w, "w17", true );wm.setParent( w, "w16" );w.setSpace( 0, 514, 1, 22 );w.setZIndex( 300 );w.setTabIndex( 6 );var w = new org.eclipse.rwt.widgets.FileUpload();wm.add( w, "w18", true );wm.setParent( w, "w17" );w.setSpace( 0, 57, 0, 22 );w.setZIndex( 300 );w.setTabIndex( 7 );wm.setToolTip( w, "Browse to select a single file" );w.setVisibility( false );w.setText( "Browse" );var w = new org.eclipse.rwt.widgets.Text( false );wm.add( w, "w19", true );wm.setParent( w, "w17" );w.addState( "rwt_SINGLE" );org.eclipse.swt.TextUtil.initialize( w );w.addState( "rwt_BORDER" );w.setSpace( 62, 237, 0, 22 );w.setZIndex( 299 );w.setTabIndex( 8 );wm.setToolTip( w, "Selected file" );w.setReadOnly( true );org.eclipse.swt.TextUtil.setHasSelectionListener( w, false );var w = new org.eclipse.swt.widgets.ProgressBar();wm.add( w, "w20", true );wm.setParent( w, "w17" );w.setFlag( 34144512 );w.setSpace( 304, 130, 0, 22 );w.setZIndex( 298 );w.setTabIndex( -1 );wm.setToolTip( w, "Upload progress" );var w = new qx.ui.basic.Atom();wm.add( w, "w21", true );wm.setParent( w, "w17" );org.eclipse.swt.LabelUtil.initialize( w );org.eclipse.swt.LabelUtil.setWrap( w, false );w.setSpace( 439, 42, 0, 22 );w.setZIndex( 297 );w.setTabIndex( -1 );org.eclipse.swt.LabelUtil.setText( w, "0%" );var w = new org.eclipse.rwt.widgets.Button( "push" );wm.add( w, "w22", true );wm.setParent( w, "w17" );w.addState( "rwt_PUSH" );w.setSpace( 486, 28, 0, 22 );w.setZIndex( 296 );w.setTabIndex( 9 );wm.setToolTip( w, "Remove item" );w.setText( null );w.setImage( "rwt-resources/generated/62785342", 16, 16 );w.setHasSelectionListener( true );var w = new org.eclipse.rwt.widgets.Button( "push" );wm.add( w, "w23", true );wm.setParent( w, "w15" );w.addState( "rwt_PUSH" );w.setSpace( 5, 28, 33, 22 );w.setZIndex( 299 );w.setTabIndex( 10 );wm.setToolTip( w, "Add more files" );w.setText( null );w.setImage( "rwt-resources/generated/daed0938", 16, 16 );w.setHasSelectionListener( true );var w = new org.eclipse.swt.widgets.Composite();wm.add( w, "w24", true );wm.setParent( w, "w12" );w.setSpace( 0, 540, 125, 19 );w.setZIndex( 299 );w.setTabIndex( -1 );var w = new org.eclipse.swt.widgets.Combo();wm.add( w, "w25", true );wm.setParent( w, "w24" );w.setSpace( 0, 163, 0, 19 );w.setZIndex( 300 );w.setTabIndex( 12 );wm.setToolTip( w, "Selected filename filter" );w.setListItemHeight( 17 );w.setItems( [ "Text Files (*.txt)", "Word Document (*.doc)", "Rich Text Format (*.rtf)", "All Files (*.*)" ] );w.setHasSelectionListener( true );w.select( 0 );w.setMaxListHeight( 85 );w.setEditable( false );var w = new org.eclipse.swt.widgets.ProgressBar();wm.add( w, "w26", true );wm.setParent( w, "w24" );w.setFlag( 34144512 );w.setSpace( 168, 372, 0, 19 );w.setZIndex( 299 );w.setTabIndex( -1 );wm.setToolTip( w, "Total upload progress" );var w = new org.eclipse.swt.widgets.Composite();wm.add( w, "w27", true );wm.setParent( w, "w11" );w.setSpace( 318, 237, 191, 20 );w.setZIndex( 299 );w.setTabIndex( -1 );var w = new org.eclipse.rwt.widgets.Button( "push" );wm.add( w, "w28", true );wm.setParent( w, "w27" );w.addState( "rwt_PUSH" );w.setSpace( 0, 116, 0, 20 );w.setZIndex( 300 );w.setTabIndex( 14 );wm.setToolTip( w, "Specify files in all empty selectors to continue." );w.setEnabled( false );w.setText( "OK" );w.setHasSelectionListener( true );var w = wm.findWidgetById( "w11" );w.setDefaultButton( wm.findWidgetById( "w28" ) );var w = new org.eclipse.rwt.widgets.Button( "push" );wm.add( w, "w29", true );wm.setParent( w, "w27" );w.addState( "rwt_PUSH" );w.setSpace( 121, 116, 0, 20 );w.setZIndex( 299 );w.setTabIndex( 15 );w.setText( "Cancel" );w.setHasSelectionListener( true );var w = wm.findWidgetById( "w11" );w.setActiveControl( wm.findWidgetById( "w12" ) );org.eclipse.swt.WidgetManager.getInstance().focus( "w12" );org.eclipse.swt.Request.getInstance().enableUICallBack();org.eclipse.swt.FontSizeCalculation.probe( [ [ -785380229, "!#$%&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy", [ "Verdana", "Lucida Sans", "Arial", "Helvetica", "sans-serif" ], 11, false, false ] ] );org.eclipse.swt.FontSizeCalculation.measureStrings( [ [ -1315745873, "Browse", [ "Verdana", "Lucida Sans", "Arial", "Helvetica", "sans-serif" ], 12, false, false, -1 ], [ -916470337, "Cancel", [ "Verdana", "Lucida Sans", "Arial", "Helvetica", "sans-serif" ], 12, false, false, -1 ], [ -1490758544, "Text Files (*.txt)", [ "Verdana", "Lucida Sans", "Arial", "Helvetica", "sans-serif" ], 11, false, false, -1 ], [ -845638078, "Rich Text Format (*.rtf)", [ "Verdana", "Lucida Sans", "Arial", "Helvetica", "sans-serif" ], 11, false, false, -1 ], [ -1623251289, "Selected Files", [ "Verdana", "Lucida Sans", "Arial", "Helvetica", "sans-serif" ], 12, false, false, -1 ], [ -1078446037, "Word Document (*.doc)", [ "Verdana", "Lucida Sans", "Arial", "Helvetica", "sans-serif" ], 11, false, false, -1 ], [ -706923530, "All Files (*.*)", [ "Verdana", "Lucida Sans", "Arial", "Helvetica", "sans-serif" ], 11, false, false, -1 ], [ 1163675077, "0%", [ "Verdana", "Lucida Sans", "Arial", "Helvetica", "sans-serif" ], 12, false, false, 0 ], [ 1163706045, "OK", [ "Verdana", "Lucida Sans", "Arial", "Helvetica", "sans-serif" ], 12, false, false, -1 ] ] );
  message: Failed to force input-element width.
------------
Current workaround is to set enable property to false together with visible property.
Comment 1 Sebastien Arod CLA 2011-07-26 06:30:58 EDT
Using the FileUpload widget in a wizard page that is not the first page gives the same error.

I guess it's because this page is hidden by default but I was not able to use the setEnabled(false) workaround in this case.
Comment 2 Tim Buschtoens CLA 2011-07-28 07:12:32 EDT
Fixed in CVS HEAD by checking visibility before layout.
Comment 3 Tim Buschtoens CLA 2011-07-28 07:13:44 EDT
Created attachment 200518 [details]
patch for 1.4.1

Patch for 1.4 branch.
Comment 4 Ralf Sternberg CLA 2011-07-29 15:47:10 EDT
Comment on attachment 200518 [details]
patch for 1.4.1

As far as I can judge it, the patch looks safe to go into 1.4.1
Comment 5 Ivan Furnadjiev CLA 2011-07-30 10:58:52 EDT
+1
Comment 6 Ivan Furnadjiev CLA 2011-08-01 03:35:43 EDT
Applied patch to v14_Maintenance branch.