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 (+39 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
17
  public String FileDialog_AllFilesExtension;
18
  public String FileDialog_AllFilesPattern;
19
  public String FileDialog_FileSelectorTooltip;
20
  public String FileDialog_FiterComboTooltip;
21
  public String FileDialog_OkButtonTooltip;
22
  public String FileDialog_OkButtonTooltipDisable;
23
  public String FileDialog_OkButtonUploadingText;
24
  public String FileDialog_ProgressBarTooltip;
25
  
26
  public String UploadPanel_BrowseButtonText;
27
  public String UploadPanel_BrowseButtonTooltip;
28
  public String UploadPanel_FileTextTooltip;
29
  public String UploadPanel_FileTextWarnNotMatchTooltip;
30
  public String UploadPanel_ProgressBarProgressTooltip;
31
  public String UploadPanel_ProgressBarTooltip;
32
  public String UploadPanel_RemoveButtonTooltip;
33
34
  public static FileDialogMessages get() {
35
    Object result = RWT.NLS.getISO8859_1Encoded(
36
        "org.eclipse.swt.internal.widgets.messages", FileDialogMessages.class);
37
    return (FileDialogMessages) result;
38
  }
39
}
(-)src/org/eclipse/swt/internal/widgets/UploadPanel.java (-13 / +15 lines)
Lines 35-40 Link Here
35
import org.eclipse.swt.widgets.Text;
35
import org.eclipse.swt.widgets.Text;
36
36
37
public class UploadPanel extends Composite implements IFileUploadListener {
37
public class UploadPanel extends Composite implements IFileUploadListener {
38
  private static final String PERCENT = "%";
39
38
  private static final long serialVersionUID = 1L;
40
  private static final long serialVersionUID = 1L;
39
41
40
  public static final int COMPACT = 1;
42
  public static final int COMPACT = 1;
Lines 138-145 Link Here
138
    layout.marginHeight = 0;
140
    layout.marginHeight = 0;
139
    setLayout( layout );
141
    setLayout( layout );
140
    browseButton = new FileUpload( this, SWT.NONE );
142
    browseButton = new FileUpload( this, SWT.NONE );
141
    browseButton.setText( "Browse" );
143
    browseButton.setText( FileDialogMessages.get().UploadPanel_BrowseButtonText); 
142
    browseButton.setToolTipText( "Select a file" );
144
    browseButton.setToolTipText( FileDialogMessages.get().UploadPanel_BrowseButtonTooltip ); 
143
    browseButton.addSelectionListener( new SelectionAdapter() {
145
    browseButton.addSelectionListener( new SelectionAdapter() {
144
      @Override
146
      @Override
145
      public void widgetSelected( SelectionEvent event ) {
147
      public void widgetSelected( SelectionEvent event ) {
Lines 152-176 Link Here
152
      }
154
      }
153
    } );
155
    } );
154
    fileText = new Text( this, SWT.BORDER );
156
    fileText = new Text( this, SWT.BORDER );
155
    fileText.setToolTipText( "Selected file" );
157
    fileText.setToolTipText( FileDialogMessages.get().UploadPanel_FileTextTooltip); 
156
    fileText.setEditable( false );
158
    fileText.setEditable( false );
157
    if( hasStyle( PROGRESS ) ) {
159
    if( hasStyle( PROGRESS ) ) {
158
      progressBar = new ProgressBar( this, SWT.HORIZONTAL | SWT.SMOOTH );
160
      progressBar = new ProgressBar( this, SWT.HORIZONTAL | SWT.SMOOTH );
159
      progressBar.setToolTipText( "Upload progress" );
161
      progressBar.setToolTipText( FileDialogMessages.get().UploadPanel_ProgressBarTooltip );
160
      progressBar.setMinimum( 0 );
162
      progressBar.setMinimum( 0 );
161
      progressBar.setMaximum( 100 );
163
      progressBar.setMaximum( 100 );
162
      progressLabel = new Label( this, SWT.NONE );
164
      progressLabel = new Label( this, SWT.NONE );
163
      progressLabel.setText( progressBar.getSelection() + "%" );
165
      progressLabel.setText( progressBar.getSelection() + PERCENT ); 
164
    }
166
    }
165
    if( hasStyle( REMOVEABLE ) ) {
167
    if( hasStyle( REMOVEABLE ) ) {
166
      removeButton = new Button( this, SWT.PUSH );
168
      removeButton = new Button( this, SWT.PUSH );
167
      Image removeIcon = Display.getCurrent().getSystemImage( SWT.ICON_CANCEL );
169
      Image removeIcon = Display.getCurrent().getSystemImage( SWT.ICON_CANCEL );
168
      removeButton.setImage( removeIcon );
170
      removeButton.setImage( removeIcon );
169
      if( deleteImage == null ) {
171
      if( deleteImage == null ) {
170
        deleteImage = Graphics.getImage( "resources/delete_obj.gif", getClass().getClassLoader() );
172
        deleteImage = Graphics.getImage( "resources/delete_obj.gif", getClass().getClassLoader() ); 
171
      }
173
      }
172
      removeButton.setImage( deleteImage );
174
      removeButton.setImage( deleteImage );
173
      removeButton.setToolTipText( "Remove file" );
175
      removeButton.setToolTipText( FileDialogMessages.get().UploadPanel_RemoveButtonTooltip );
174
      removeButton.addSelectionListener( new SelectionAdapter() {
176
      removeButton.addSelectionListener( new SelectionAdapter() {
175
        @Override
177
        @Override
176
        public void widgetSelected( SelectionEvent e ) {
178
        public void widgetSelected( SelectionEvent e ) {
Lines 229-239 Link Here
229
231
230
  public void validate() {
232
  public void validate() {
231
    if( validationHandler == null || validationHandler.validate( fileText.getText() ) ) {
233
    if( validationHandler == null || validationHandler.validate( fileText.getText() ) ) {
232
      fileText.setToolTipText( "Selected file" );
234
      fileText.setToolTipText( FileDialogMessages.get().UploadPanel_FileTextTooltip);
233
      // TODO replace this with something from theming
235
      // TODO replace this with something from theming
234
      fileText.setBackground( null );
236
      fileText.setBackground( null );
235
    } else {
237
    } else {
236
      fileText.setToolTipText( "Warning: Selected file does not match filter" );
238
      fileText.setToolTipText( FileDialogMessages.get().UploadPanel_FileTextWarnNotMatchTooltip);
237
      // TODO replace this with something from theming
239
      // TODO replace this with something from theming
238
      fileText.setBackground( Display.getCurrent().getSystemColor( SWT.COLOR_YELLOW ) );
240
      fileText.setBackground( Display.getCurrent().getSystemColor( SWT.COLOR_YELLOW ) );
239
      validationHandler.updateEnablement();
241
      validationHandler.updateEnablement();
Lines 248-255 Link Here
248
        int percent = ( int )Math.floor( fraction * 100 );
250
        int percent = ( int )Math.floor( fraction * 100 );
249
        if( progressBar != null && !progressBar.isDisposed() ) {
251
        if( progressBar != null && !progressBar.isDisposed() ) {
250
          progressBar.setSelection( percent );
252
          progressBar.setSelection( percent );
251
          progressBar.setToolTipText( "Upload progress: " + percent + "%" );
253
          progressBar.setToolTipText( FileDialogMessages.get().UploadPanel_ProgressBarProgressTooltip + percent + PERCENT );
252
          progressLabel.setText( percent + "%" );
254
          progressLabel.setText( percent + PERCENT ); 
253
        }
255
        }
254
        // allow the uploadFinished call to notify collector of 100% progress since
256
        // allow the uploadFinished call to notify collector of 100% progress since
255
        //the file is actually written then
257
        //the file is actually written then
Lines 269-276 Link Here
269
        int percent = 100;
271
        int percent = 100;
270
        if( progressBar != null && !progressBar.isDisposed() ) {
272
        if( progressBar != null && !progressBar.isDisposed() ) {
271
          progressBar.setSelection( percent );
273
          progressBar.setSelection( percent );
272
          progressBar.setToolTipText( "Upload progress: " + percent + "%" );
274
          progressBar.setToolTipText(FileDialogMessages.get().UploadPanel_ProgressBarProgressTooltip + percent + PERCENT ); 
273
          progressLabel.setText( percent + "%" );
275
          progressLabel.setText( percent + PERCENT ); //$NON-NLS-1$
274
        }
276
        }
275
        if( progressCollector != null ) {
277
        if( progressCollector != null ) {
276
          progressCollector.updateProgress( handler, percent );
278
          progressCollector.updateProgress( handler, percent );
(-)src/org/eclipse/swt/internal/widgets/messages.properties (+16 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
UploadPanel_BrowseButtonText=Browse
11
UploadPanel_BrowseButtonTooltip=Select a file
12
UploadPanel_FileTextTooltip=Selected file
13
UploadPanel_FileTextWarnNotMatchTooltip=Warning: Selected file does not match filter
14
UploadPanel_ProgressBarProgressTooltip=Upload progress: 
15
UploadPanel_ProgressBarTooltip=Upload progress
16
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 452-458 Link Here
452
    filterSelector.setLayoutData( new GridData( SWT.FILL, SWT.FILL, false, false ) );
453
    filterSelector.setLayoutData( new GridData( SWT.FILL, SWT.FILL, false, false ) );
453
    totalProgressBar = new ProgressBar( footerComp, SWT.HORIZONTAL | SWT.SMOOTH );
454
    totalProgressBar = new ProgressBar( footerComp, SWT.HORIZONTAL | SWT.SMOOTH );
454
    totalProgressBar.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, false ) );
455
    totalProgressBar.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, false ) );
455
    totalProgressBar.setToolTipText( "Total upload progress" );
456
    totalProgressBar.setToolTipText( FileDialogMessages.get().FileDialog_ProgressBarTooltip );
456
    totalProgressBar.setMaximum( 100 );
457
    totalProgressBar.setMaximum( 100 );
457
    progressCollector.setProgressBar( totalProgressBar );
458
    progressCollector.setProgressBar( totalProgressBar );
458
    return main;
459
    return main;
Lines 493-502 Link Here
493
  private void createAddSelectorButton( Composite parent ) {
494
  private void createAddSelectorButton( Composite parent ) {
494
    addFileSelectorButton = new Button( parent, SWT.PUSH );
495
    addFileSelectorButton = new Button( parent, SWT.PUSH );
495
    if( addImage == null ) {
496
    if( addImage == null ) {
496
      addImage = Graphics.getImage( "resources/add_obj.gif", getClass().getClassLoader() );
497
      addImage = Graphics.getImage( "resources/add_obj.gif", getClass().getClassLoader() ); //$NON-NLS-1$
497
    }
498
    }
498
    addFileSelectorButton.setImage( addImage );
499
    addFileSelectorButton.setImage( addImage );
499
    addFileSelectorButton.setToolTipText( "Add file" );
500
    addFileSelectorButton.setToolTipText( FileDialogMessages.get().FileDialog_FileSelectorTooltip );
500
    addFileSelectorButton.addSelectionListener( new SelectionAdapter() {
501
    addFileSelectorButton.addSelectionListener( new SelectionAdapter() {
501
      @Override
502
      @Override
502
      public void widgetSelected( SelectionEvent e ) {
503
      public void widgetSelected( SelectionEvent e ) {
Lines 550-574 Link Here
550
551
551
  private Combo createFilterSelector( Composite headerComp ) {
552
  private Combo createFilterSelector( Composite headerComp ) {
552
    final Combo filterCombo = new Combo( headerComp, SWT.DROP_DOWN | SWT.READ_ONLY );
553
    final Combo filterCombo = new Combo( headerComp, SWT.DROP_DOWN | SWT.READ_ONLY );
553
    filterCombo.setToolTipText( "Selected filename filter" );
554
    filterCombo.setToolTipText( FileDialogMessages.get().FileDialog_FiterComboTooltip); 
554
    String[] names = getFilterNames();
555
    String[] names = getFilterNames();
555
    String[] exts = getFilterExtensions();
556
    String[] exts = getFilterExtensions();
556
    if( ( names == null || names.length == 0 ) && ( exts == null || exts.length == 0 ) ) {
557
    if( ( names == null || names.length == 0 ) && ( exts == null || exts.length == 0 ) ) {
557
      names = new String[]{
558
      names = new String[]{
558
        "All Files"
559
        FileDialogMessages.get().FileDialog_AllFilesExtension
559
      };
560
      };
560
      exts = new String[]{
561
      exts = new String[]{
561
        "*.*"
562
        FileDialogMessages.get().FileDialog_AllFilesPattern
562
      };
563
      };
563
    }
564
    }
564
    for( int i = 0; i < exts.length; i++ ) {
565
    for( int i = 0; i < exts.length; i++ ) {
565
      StringBuffer sb = new StringBuffer();
566
      StringBuffer sb = new StringBuffer();
566
      if( names != null && i < names.length ) {
567
      if( names != null && i < names.length ) {
567
        sb.append( names[ i ] ).append( " " );
568
        sb.append( names[ i ] ).append( " " ); //$NON-NLS-1$
568
      }
569
      }
569
      sb.append( "(" );
570
      sb.append( "(" ); //$NON-NLS-1$
570
      sb.append( exts[ i ] );
571
      sb.append( exts[ i ] );
571
      sb.append( ")" );
572
      sb.append( ")" ); //$NON-NLS-1$
572
      filterCombo.add( sb.toString() );
573
      filterCombo.add( sb.toString() );
573
    }
574
    }
574
    filterCombo.select( getFilterIndex() );
575
    filterCombo.select( getFilterIndex() );
Lines 594-604 Link Here
594
    buttonCompLayout.marginWidth = 0;
595
    buttonCompLayout.marginWidth = 0;
595
    buttonCompLayout.marginHeight = 0;
596
    buttonCompLayout.marginHeight = 0;
596
    buttonComposite.setLayout( buttonCompLayout );
597
    buttonComposite.setLayout( buttonCompLayout );
597
    String okText = SWT.getMessage( "SWT_OK" );
598
    String okText = SWT.getMessage( "SWT_OK" ); //$NON-NLS-1$
598
    okButton = createButton( buttonComposite, okText );
599
    okButton = createButton( buttonComposite, okText );
599
    parent.getShell().setDefaultButton( okButton );
600
    parent.getShell().setDefaultButton( okButton );
600
    okButton.forceFocus();
601
    okButton.forceFocus();
601
    String cancelText = SWT.getMessage( "SWT_Cancel" );
602
    String cancelText = SWT.getMessage( "SWT_Cancel" ); //$NON-NLS-1$
602
    Button cancelButton = createButton( buttonComposite, cancelText );
603
    Button cancelButton = createButton( buttonComposite, cancelText );
603
    okButton.addSelectionListener( new SelectionAdapter() {
604
    okButton.addSelectionListener( new SelectionAdapter() {
604
      @Override
605
      @Override
Lines 645-652 Link Here
645
    }
646
    }
646
    uploadLocked = true;
647
    uploadLocked = true;
647
    if( needsProcessing.size() > 0 ) {
648
    if( needsProcessing.size() > 0 ) {
648
      okButton.setText( "Uploading..." );
649
      okButton.setText( FileDialogMessages.get().FileDialog_OkButtonUploadingText ); 
649
      okButton.setToolTipText( "Waiting for uploads to finish" );
650
      okButton.setToolTipText( FileDialogMessages.get().FileDialog_OkButtonTooltip); 
650
      okButton.setEnabled( false );
651
      okButton.setEnabled( false );
651
      if( addFileSelectorButton != null ) {
652
      if( addFileSelectorButton != null ) {
652
        addFileSelectorButton.setEnabled( false );
653
        addFileSelectorButton.setEnabled( false );
Lines 664-670 Link Here
664
665
665
  private void updateEnablement() {
666
  private void updateEnablement() {
666
    if( okButton != null && !okButton.isDisposed() ) {
667
    if( okButton != null && !okButton.isDisposed() ) {
667
      String okText = SWT.getMessage( "SWT_OK" );
668
      String okText = SWT.getMessage( "SWT_OK" ); //$NON-NLS-1$
668
      if( uploadPanels.size() == 0 ) {
669
      if( uploadPanels.size() == 0 ) {
669
        okButton.setText( okText );
670
        okButton.setText( okText );
670
        okButton.setEnabled( false );
671
        okButton.setEnabled( false );
Lines 688-695 Link Here
688
            }
689
            }
689
            shell.close();
690
            shell.close();
690
          } else {
691
          } else {
691
            okButton.setText( "Uploading..." );
692
            okButton.setText( FileDialogMessages.get().FileDialog_OkButtonUploadingText ); 
692
            okButton.setToolTipText( "Waiting for uploads to finish" );
693
            okButton.setToolTipText( FileDialogMessages.get().FileDialog_OkButtonTooltip ); 
693
            okButton.setEnabled( false );
694
            okButton.setEnabled( false );
694
          }
695
          }
695
        } else {
696
        } else {
Lines 701-709 Link Here
701
            }
702
            }
702
          }
703
          }
703
          if( !enabled ) {
704
          if( !enabled ) {
704
            okButton.setToolTipText( "Specify files in all empty selectors to continue." );
705
            okButton.setToolTipText( FileDialogMessages.get().FileDialog_OkButtonTooltipDisable );
705
          } else {
706
          } else {
706
            okButton.setToolTipText( "" );
707
            okButton.setToolTipText( "" ); //$NON-NLS-1$
707
          }
708
          }
708
          okButton.setEnabled( enabled );
709
          okButton.setEnabled( enabled );
709
        }
710
        }

Return to bug 359104