441 #old - confirm if the file does not exist |
441 #old - confirm if the file does not exist |
442 #any (other) - no validation |
442 #any (other) - no validation |
443 " |
443 " |
444 |
444 |
445 |
445 |
446 | defaultDir defaultNm instance defaultFile locFilename| |
446 |defaultDir defaultNm instance defaultFile locFilename| |
447 |
447 |
448 locFilename := aFileName. |
448 locFilename := aFileName. |
449 defaultNm := locFilename. |
449 defaultNm := locFilename. |
450 defaultDir := aDirectoryPath. |
450 defaultDir := aDirectoryPath. |
451 defaultDir isNil ifTrue:[ |
451 defaultDir isNil ifTrue:[ |
456 defaultDir isNil ifTrue:[ |
456 defaultDir isNil ifTrue:[ |
457 defaultDir := Filename currentDirectory asAbsoluteFilename. |
457 defaultDir := Filename currentDirectory asAbsoluteFilename. |
458 ]. |
458 ]. |
459 ] |
459 ] |
460 ]. |
460 ]. |
461 locFilename isEmptyOrNil ifTrue:[ |
|
462 locFilename := defaultDir. |
|
463 ]. |
|
464 defaultDir := defaultDir asFilename asAbsoluteFilename. |
461 defaultDir := defaultDir asFilename asAbsoluteFilename. |
465 [defaultDir exists not] whileTrue:[ |
462 [defaultDir exists] whileFalse:[ |
466 defaultDir := defaultDir directory. |
463 defaultDir := defaultDir directory. |
467 ]. |
464 ]. |
468 forDirectory not ifTrue:[ |
465 |
|
466 forDirectory ifTrue:[ |
|
467 defaultFile := (locFilename ? defaultDir) asFilename asAbsoluteFilename. |
|
468 ] ifFalse:[ |
469 (locFilename notNil and:[locFilename asFilename withoutSuffix baseName ~= '*']) ifTrue:[ |
469 (locFilename notNil and:[locFilename asFilename withoutSuffix baseName ~= '*']) ifTrue:[ |
470 defaultFile := defaultDir construct:(locFilename asFilename baseName). |
470 defaultFile := defaultDir construct:locFilename asFilename baseName. |
471 ]. |
471 ]. |
472 ] ifFalse:[ |
|
473 defaultFile := locFilename asFilename asAbsoluteFilename. |
|
474 ]. |
472 ]. |
475 defaultFile isNil ifTrue:[ |
473 defaultFile isNil ifTrue:[ |
476 defaultFile := defaultDir. |
474 defaultFile := defaultDir. |
477 ]. |
475 ]. |
478 |
476 |
479 instance := self new. |
477 instance := self new. |
480 defaultDir notNil ifTrue:[instance directory:(defaultDir asFilename)]. |
478 defaultDir notNil ifTrue:[instance directory:defaultDir]. |
481 instance multipleSelect:multipleSelect ? false. |
479 instance multipleSelect:multipleSelect ? false. |
482 instance startFilename:defaultFile. |
480 instance startFilename:defaultFile. |
483 instance pattern:((pattern isNil or:[pattern isEmpty]) ifTrue:['*'] ifFalse:[pattern]). |
481 instance pattern:((pattern isNil or:[pattern isEmpty]) ifTrue:['*'] ifFalse:[pattern]). |
484 instance initialText:titleString. |
482 instance initialText:titleString. |
485 instance okLabelHolder value:okText. |
483 instance okLabelHolder value:okText. |