Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 359104 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/swt/internal/widgets/FileDialogMessages.java (+42 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2011 EclipseSource and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *    EclipseSource - initial API and implementation
10
 ******************************************************************************/
11
package org.eclipse.swt.internal.widgets;
12
13
import org.eclipse.rwt.RWT;
14
15
public class FileDialogMessages {
16
  public static final String PERCENT = "%";
17
18
  public String FileDialog_AllFilesExtension;
19
  public String FileDialog_AllFilesPattern;
20
  public String FileDialog_FileSelectorTooltip;
21
  public String FileDialog_FiterComboTooltip;
22
  public String FileDialog_OkButtonTooltip;
23
  public String FileDialog_OkButtonTooltipDisable;
24
  public String FileDialog_OkButtonUploadingText;
25
  public String FileDialog_ProgressBarTooltip;
26
  
27
  public String ProgressCollector_TotalUploadProgress;
28
  
29
  public String UploadPanel_BrowseButtonText;
30
  public String UploadPanel_BrowseButtonTooltip;
31
  public String UploadPanel_FileTextTooltip;
32
  public String UploadPanel_FileTextWarnNotMatchTooltip;
33
  public String UploadPanel_ProgressBarProgressTooltip;
34
  public String UploadPanel_ProgressBarTooltip;
35
  public String UploadPanel_RemoveButtonTooltip;
36
37
  public static FileDialogMessages get() {
38
    Object result = RWT.NLS.getISO8859_1Encoded(
39
        "org.eclipse.swt.internal.widgets.messages", FileDialogMessages.class);
40
    return (FileDialogMessages) result;
41
  }
42
}
(-)src/org/eclipse/swt/internal/widgets/ProgressCollector.java (-1 / +1 lines)
Lines 40-46 Link Here
40
      if( totalProgressBar != null && !totalProgressBar.isDisposed() ) {
40
      if( totalProgressBar != null && !totalProgressBar.isDisposed() ) {
41
        int percent = ( int )Math.floor( totalProgress / maxProgress * 100 );
41
        int percent = ( int )Math.floor( totalProgress / maxProgress * 100 );
42
        totalProgressBar.setSelection( percent );
42
        totalProgressBar.setSelection( percent );
43
        totalProgressBar.setToolTipText( "Total upload progress: " + percent + "%" );
43
        totalProgressBar.setToolTipText( FileDialogMessages.get().ProgressCollector_TotalUploadProgress + percent + FileDialogMessages.PERCENT );
44
      }
44
      }
45
      if( maxProgress == totalProgress ) {
45
      if( maxProgress == totalProgress ) {
46
        validationHandler.updateEnablement();
46
        validationHandler.updateEnablement();
(-)src/org/eclipse/swt/internal/widgets/UploadPanel.java (-13 / +14 lines)
Lines 41-46 Link Here
41
  public static final int FULL = 2;
41
  public static final int FULL = 2;
42
  public static final int REMOVEABLE = 4;
42
  public static final int REMOVEABLE = 4;
43
  public static final int PROGRESS = 8;
43
  public static final int PROGRESS = 8;
44
44
  private final int panelStyle;
45
  private final int panelStyle;
45
  private final FileUploadHandler handler;
46
  private final FileUploadHandler handler;
46
  private ValidationHandler validationHandler;
47
  private ValidationHandler validationHandler;
Lines 143-150 Link Here
143
    layout.marginHeight = 0;
144
    layout.marginHeight = 0;
144
    setLayout( layout );
145
    setLayout( layout );
145
    browseButton = new FileUpload( this, SWT.NONE );
146
    browseButton = new FileUpload( this, SWT.NONE );
146
    browseButton.setText( "Browse" );
147
    browseButton.setText( FileDialogMessages.get().UploadPanel_BrowseButtonText); 
147
    browseButton.setToolTipText( "Select a file" );
148
    browseButton.setToolTipText( FileDialogMessages.get().UploadPanel_BrowseButtonTooltip ); 
148
    browseButton.addSelectionListener( new SelectionAdapter() {
149
    browseButton.addSelectionListener( new SelectionAdapter() {
149
      @Override
150
      @Override
150
      public void widgetSelected( SelectionEvent event ) {
151
      public void widgetSelected( SelectionEvent event ) {
Lines 157-181 Link Here
157
      }
158
      }
158
    } );
159
    } );
159
    fileText = new Text( this, SWT.BORDER );
160
    fileText = new Text( this, SWT.BORDER );
160
    fileText.setToolTipText( "Selected file" );
161
    fileText.setToolTipText( FileDialogMessages.get().UploadPanel_FileTextTooltip); 
161
    fileText.setEditable( false );
162
    fileText.setEditable( false );
162
    if( hasStyle( PROGRESS ) ) {
163
    if( hasStyle( PROGRESS ) ) {
163
      progressBar = new ProgressBar( this, SWT.HORIZONTAL | SWT.SMOOTH );
164
      progressBar = new ProgressBar( this, SWT.HORIZONTAL | SWT.SMOOTH );
164
      progressBar.setToolTipText( "Upload progress" );
165
      progressBar.setToolTipText( FileDialogMessages.get().UploadPanel_ProgressBarTooltip );
165
      progressBar.setMinimum( 0 );
166
      progressBar.setMinimum( 0 );
166
      progressBar.setMaximum( 100 );
167
      progressBar.setMaximum( 100 );
167
      progressLabel = new Label( this, SWT.NONE );
168
      progressLabel = new Label( this, SWT.NONE );
168
      progressLabel.setText( progressBar.getSelection() + "%" );
169
      progressLabel.setText( progressBar.getSelection() + FileDialogMessages.PERCENT ); 
169
    }
170
    }
170
    if( hasStyle( REMOVEABLE ) ) {
171
    if( hasStyle( REMOVEABLE ) ) {
171
      removeButton = new Button( this, SWT.PUSH );
172
      removeButton = new Button( this, SWT.PUSH );
172
      Image removeIcon = Display.getCurrent().getSystemImage( SWT.ICON_CANCEL );
173
      Image removeIcon = Display.getCurrent().getSystemImage( SWT.ICON_CANCEL );
173
      removeButton.setImage( removeIcon );
174
      removeButton.setImage( removeIcon );
174
      if( deleteImage == null ) {
175
      if( deleteImage == null ) {
175
        deleteImage = Graphics.getImage( "resources/delete_obj.gif", getClass().getClassLoader() );
176
        deleteImage = Graphics.getImage( "resources/delete_obj.gif", getClass().getClassLoader() ); 
176
      }
177
      }
177
      removeButton.setImage( deleteImage );
178
      removeButton.setImage( deleteImage );
178
      removeButton.setToolTipText( "Remove file" );
179
      removeButton.setToolTipText( FileDialogMessages.get().UploadPanel_RemoveButtonTooltip );
179
      removeButton.addSelectionListener( new SelectionAdapter() {
180
      removeButton.addSelectionListener( new SelectionAdapter() {
180
        @Override
181
        @Override
181
        public void widgetSelected( SelectionEvent e ) {
182
        public void widgetSelected( SelectionEvent e ) {
Lines 234-244 Link Here
234
235
235
  public void validate() {
236
  public void validate() {
236
    if( validationHandler == null || validationHandler.validate( fileText.getText() ) ) {
237
    if( validationHandler == null || validationHandler.validate( fileText.getText() ) ) {
237
      fileText.setToolTipText( "Selected file" );
238
      fileText.setToolTipText( FileDialogMessages.get().UploadPanel_FileTextTooltip);
238
      // TODO replace this with something from theming
239
      // TODO replace this with something from theming
239
      fileText.setBackground( null );
240
      fileText.setBackground( null );
240
    } else {
241
    } else {
241
      fileText.setToolTipText( "Warning: Selected file does not match filter" );
242
      fileText.setToolTipText( FileDialogMessages.get().UploadPanel_FileTextWarnNotMatchTooltip);
242
      // TODO replace this with something from theming
243
      // TODO replace this with something from theming
243
      fileText.setBackground( Display.getCurrent().getSystemColor( SWT.COLOR_YELLOW ) );
244
      fileText.setBackground( Display.getCurrent().getSystemColor( SWT.COLOR_YELLOW ) );
244
      validationHandler.updateEnablement();
245
      validationHandler.updateEnablement();
Lines 253-260 Link Here
253
        int percent = ( int )Math.floor( fraction * 100 );
254
        int percent = ( int )Math.floor( fraction * 100 );
254
        if( progressBar != null && !progressBar.isDisposed() ) {
255
        if( progressBar != null && !progressBar.isDisposed() ) {
255
          progressBar.setSelection( percent );
256
          progressBar.setSelection( percent );
256
          progressBar.setToolTipText( "Upload progress: " + percent + "%" );
257
          progressBar.setToolTipText( FileDialogMessages.get().UploadPanel_ProgressBarProgressTooltip + percent + FileDialogMessages.PERCENT );
257
          progressLabel.setText( percent + "%" );
258
          progressLabel.setText( percent + FileDialogMessages.PERCENT );
258
        }
259
        }
259
        // allow the uploadFinished call to notify collector of 100% progress since
260
        // allow the uploadFinished call to notify collector of 100% progress since
260
        // the file is actually written then
261
        // the file is actually written then
Lines 275-282 Link Here
275
        int percent = 100;
276
        int percent = 100;
276
        if( progressBar != null && !progressBar.isDisposed() ) {
277
        if( progressBar != null && !progressBar.isDisposed() ) {
277
          progressBar.setSelection( percent );
278
          progressBar.setSelection( percent );
278
          progressBar.setToolTipText( "Upload progress: " + percent + "%" );
279
          progressBar.setToolTipText(FileDialogMessages.get().UploadPanel_ProgressBarProgressTooltip + percent + FileDialogMessages.PERCENT ); 
279
          progressLabel.setText( percent + "%" );
280
          progressLabel.setText( percent + FileDialogMessages.PERCENT ); //$NON-NLS-1$
280
        }
281
        }
281
        if( progressCollector != null ) {
282
        if( progressCollector != null ) {
282
          progressCollector.updateProgress( handler, percent );
283
          progressCollector.updateProgress( handler, percent );
(-)src/org/eclipse/swt/internal/widgets/messages.properties (+18 lines)
Added Link Here
1
FileDialog_AllFilesExtension=All Files
2
FileDialog_AllFilesPattern=*.*
3
FileDialog_FileSelectorTooltip=Add file
4
FileDialog_FiterComboTooltip=Selected filename filter
5
FileDialog_OkButtonTooltip=Waiting for uploads to finish
6
FileDialog_OkButtonTooltipDisable=Specify files in all empty selectors to continue.
7
FileDialog_OkButtonUploadingText=Uploading...
8
FileDialog_ProgressBarTooltip=Total upload progress
9
10
ProgressCollector_TotalUploadProgress=Total upload progress: 
11
12
UploadPanel_BrowseButtonText=Browse
13
UploadPanel_BrowseButtonTooltip=Select a file
14
UploadPanel_FileTextTooltip=Selected file
15
UploadPanel_FileTextWarnNotMatchTooltip=Warning: Selected file does not match filter
16
UploadPanel_ProgressBarProgressTooltip=Upload progress: 
17
UploadPanel_ProgressBarTooltip=Upload progress
18
UploadPanel_RemoveButtonTooltip=Remove file
(-)src/org/eclipse/swt/widgets/FileDialog.java (-19 / +20 lines)
Lines 31-36 Link Here
31
import org.eclipse.swt.graphics.Point;
31
import org.eclipse.swt.graphics.Point;
32
import org.eclipse.swt.graphics.Rectangle;
32
import org.eclipse.swt.graphics.Rectangle;
33
import org.eclipse.swt.internal.widgets.ExtensionValidationStrategy;
33
import org.eclipse.swt.internal.widgets.ExtensionValidationStrategy;
34
import org.eclipse.swt.internal.widgets.FileDialogMessages;
34
import org.eclipse.swt.internal.widgets.ProgressCollector;
35
import org.eclipse.swt.internal.widgets.ProgressCollector;
35
import org.eclipse.swt.internal.widgets.UploadPanel;
36
import org.eclipse.swt.internal.widgets.UploadPanel;
36
import org.eclipse.swt.internal.widgets.ValidationHandler;
37
import org.eclipse.swt.internal.widgets.ValidationHandler;
Lines 73-79 Link Here
73
  String[] filterNames = new String[ 0 ];
74
  String[] filterNames = new String[ 0 ];
74
  String[] filterExtensions = new String[ 0 ];
75
  String[] filterExtensions = new String[ 0 ];
75
  String[] fileNames = new String[ 0 ];
76
  String[] fileNames = new String[ 0 ];
76
  String filterPath = "";
77
  String filterPath = ""; //$NON-NLS-1$
77
  String fileName;
78
  String fileName;
78
  int filterIndex;
79
  int filterIndex;
79
  boolean overwrite = false;
80
  boolean overwrite = false;
Lines 462-468 Link Here
462
    filterSelector.setLayoutData( new GridData( SWT.FILL, SWT.FILL, false, false ) );
463
    filterSelector.setLayoutData( new GridData( SWT.FILL, SWT.FILL, false, false ) );
463
    totalProgressBar = new ProgressBar( footerComp, SWT.HORIZONTAL | SWT.SMOOTH );
464
    totalProgressBar = new ProgressBar( footerComp, SWT.HORIZONTAL | SWT.SMOOTH );
464
    totalProgressBar.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, false ) );
465
    totalProgressBar.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, false ) );
465
    totalProgressBar.setToolTipText( "Total upload progress" );
466
    totalProgressBar.setToolTipText( FileDialogMessages.get().FileDialog_ProgressBarTooltip );
466
    totalProgressBar.setMaximum( 100 );
467
    totalProgressBar.setMaximum( 100 );
467
    progressCollector.setProgressBar( totalProgressBar );
468
    progressCollector.setProgressBar( totalProgressBar );
468
    return main;
469
    return main;
Lines 503-512 Link Here
503
  private void createAddSelectorButton( Composite parent ) {
504
  private void createAddSelectorButton( Composite parent ) {
504
    addFileSelectorButton = new Button( parent, SWT.PUSH );
505
    addFileSelectorButton = new Button( parent, SWT.PUSH );
505
    if( addImage == null ) {
506
    if( addImage == null ) {
506
      addImage = Graphics.getImage( "resources/add_obj.gif", getClass().getClassLoader() );
507
      addImage = Graphics.getImage( "resources/add_obj.gif", getClass().getClassLoader() ); //$NON-NLS-1$
507
    }
508
    }
508
    addFileSelectorButton.setImage( addImage );
509
    addFileSelectorButton.setImage( addImage );
509
    addFileSelectorButton.setToolTipText( "Add file" );
510
    addFileSelectorButton.setToolTipText( FileDialogMessages.get().FileDialog_FileSelectorTooltip );
510
    addFileSelectorButton.addSelectionListener( new SelectionAdapter() {
511
    addFileSelectorButton.addSelectionListener( new SelectionAdapter() {
511
      @Override
512
      @Override
512
      public void widgetSelected( SelectionEvent e ) {
513
      public void widgetSelected( SelectionEvent e ) {
Lines 560-584 Link Here
560
561
561
  private Combo createFilterSelector( Composite headerComp ) {
562
  private Combo createFilterSelector( Composite headerComp ) {
562
    final Combo filterCombo = new Combo( headerComp, SWT.DROP_DOWN | SWT.READ_ONLY );
563
    final Combo filterCombo = new Combo( headerComp, SWT.DROP_DOWN | SWT.READ_ONLY );
563
    filterCombo.setToolTipText( "Selected filename filter" );
564
    filterCombo.setToolTipText( FileDialogMessages.get().FileDialog_FiterComboTooltip); 
564
    String[] names = getFilterNames();
565
    String[] names = getFilterNames();
565
    String[] exts = getFilterExtensions();
566
    String[] exts = getFilterExtensions();
566
    if( ( names == null || names.length == 0 ) && ( exts == null || exts.length == 0 ) ) {
567
    if( ( names == null || names.length == 0 ) && ( exts == null || exts.length == 0 ) ) {
567
      names = new String[]{
568
      names = new String[]{
568
        "All Files"
569
        FileDialogMessages.get().FileDialog_AllFilesExtension
569
      };
570
      };
570
      exts = new String[]{
571
      exts = new String[]{
571
        "*.*"
572
        FileDialogMessages.get().FileDialog_AllFilesPattern
572
      };
573
      };
573
    }
574
    }
574
    for( int i = 0; i < exts.length; i++ ) {
575
    for( int i = 0; i < exts.length; i++ ) {
575
      StringBuffer sb = new StringBuffer();
576
      StringBuffer sb = new StringBuffer();
576
      if( names != null && i < names.length ) {
577
      if( names != null && i < names.length ) {
577
        sb.append( names[ i ] ).append( " " );
578
        sb.append( names[ i ] ).append( " " ); //$NON-NLS-1$
578
      }
579
      }
579
      sb.append( "(" );
580
      sb.append( "(" ); //$NON-NLS-1$
580
      sb.append( exts[ i ] );
581
      sb.append( exts[ i ] );
581
      sb.append( ")" );
582
      sb.append( ")" ); //$NON-NLS-1$
582
      filterCombo.add( sb.toString() );
583
      filterCombo.add( sb.toString() );
583
    }
584
    }
584
    filterCombo.select( getFilterIndex() );
585
    filterCombo.select( getFilterIndex() );
Lines 604-614 Link Here
604
    buttonCompLayout.marginWidth = 0;
605
    buttonCompLayout.marginWidth = 0;
605
    buttonCompLayout.marginHeight = 0;
606
    buttonCompLayout.marginHeight = 0;
606
    buttonComposite.setLayout( buttonCompLayout );
607
    buttonComposite.setLayout( buttonCompLayout );
607
    String okText = SWT.getMessage( "SWT_OK" );
608
    String okText = SWT.getMessage( "SWT_OK" ); //$NON-NLS-1$
608
    okButton = createButton( buttonComposite, okText );
609
    okButton = createButton( buttonComposite, okText );
609
    parent.getShell().setDefaultButton( okButton );
610
    parent.getShell().setDefaultButton( okButton );
610
    okButton.forceFocus();
611
    okButton.forceFocus();
611
    String cancelText = SWT.getMessage( "SWT_Cancel" );
612
    String cancelText = SWT.getMessage( "SWT_Cancel" ); //$NON-NLS-1$
612
    Button cancelButton = createButton( buttonComposite, cancelText );
613
    Button cancelButton = createButton( buttonComposite, cancelText );
613
    okButton.addSelectionListener( new SelectionAdapter() {
614
    okButton.addSelectionListener( new SelectionAdapter() {
614
      @Override
615
      @Override
Lines 655-662 Link Here
655
    }
656
    }
656
    uploadLocked = true;
657
    uploadLocked = true;
657
    if( needsProcessing.size() > 0 ) {
658
    if( needsProcessing.size() > 0 ) {
658
      okButton.setText( "Uploading..." );
659
      okButton.setText( FileDialogMessages.get().FileDialog_OkButtonUploadingText ); 
659
      okButton.setToolTipText( "Waiting for uploads to finish" );
660
      okButton.setToolTipText( FileDialogMessages.get().FileDialog_OkButtonTooltip); 
660
      okButton.setEnabled( false );
661
      okButton.setEnabled( false );
661
      if( addFileSelectorButton != null ) {
662
      if( addFileSelectorButton != null ) {
662
        addFileSelectorButton.setEnabled( false );
663
        addFileSelectorButton.setEnabled( false );
Lines 674-680 Link Here
674
675
675
  private void updateEnablement() {
676
  private void updateEnablement() {
676
    if( okButton != null && !okButton.isDisposed() ) {
677
    if( okButton != null && !okButton.isDisposed() ) {
677
      String okText = SWT.getMessage( "SWT_OK" );
678
      String okText = SWT.getMessage( "SWT_OK" ); //$NON-NLS-1$
678
      if( uploadPanels.size() == 0 ) {
679
      if( uploadPanels.size() == 0 ) {
679
        okButton.setText( okText );
680
        okButton.setText( okText );
680
        okButton.setEnabled( false );
681
        okButton.setEnabled( false );
Lines 698-705 Link Here
698
            }
699
            }
699
            shell.close();
700
            shell.close();
700
          } else {
701
          } else {
701
            okButton.setText( "Uploading..." );
702
            okButton.setText( FileDialogMessages.get().FileDialog_OkButtonUploadingText ); 
702
            okButton.setToolTipText( "Waiting for uploads to finish" );
703
            okButton.setToolTipText( FileDialogMessages.get().FileDialog_OkButtonTooltip ); 
703
            okButton.setEnabled( false );
704
            okButton.setEnabled( false );
704
          }
705
          }
705
        } else {
706
        } else {
Lines 711-719 Link Here
711
            }
712
            }
712
          }
713
          }
713
          if( !enabled ) {
714
          if( !enabled ) {
714
            okButton.setToolTipText( "Specify files in all empty selectors to continue." );
715
            okButton.setToolTipText( FileDialogMessages.get().FileDialog_OkButtonTooltipDisable );
715
          } else {
716
          } else {
716
            okButton.setToolTipText( "" );
717
            okButton.setToolTipText( "" ); //$NON-NLS-1$
717
          }
718
          }
718
          okButton.setEnabled( enabled );
719
          okButton.setEnabled( enabled );
719
        }
720
        }

Return to bug 359104