DirectoryView.st
changeset 3757 cc41088a39df
parent 3669 650468354956
child 3760 4f30e35f171b
equal deleted inserted replaced
3756:7fad458b3706 3757:cc41088a39df
       
     1 "{ Encoding: utf8 }"
       
     2 
     1 "
     3 "
     2  COPYRIGHT (c) 1997 by eXept Software AG
     4  COPYRIGHT (c) 1997 by eXept Software AG
     3               All Rights Reserved
     5               All Rights Reserved
     4 
     6 
     5  This software is furnished under a license and may be used
     7  This software is furnished under a license and may be used
   355 ! !
   357 ! !
   356 
   358 
   357 !DirectoryView methodsFor:'callbacks'!
   359 !DirectoryView methodsFor:'callbacks'!
   358 
   360 
   359 fileDoubleClicked
   361 fileDoubleClicked
   360       
   362     |numArgs selectedFile|
   361     (fileDoubleClickAction notNil and: [self selectionOfFile value notNil]) 
   363 
   362     ifTrue: 
   364     fileDoubleClickAction notNil ifTrue:[
   363     [
   365         (selectedFile := self selectionOfFile value) notNil ifTrue:[
   364         fileDoubleClickAction numArgs = 0
   366             numArgs := fileDoubleClickAction argumentCount.
   365         ifTrue:
   367             numArgs == 0 ifTrue:[
   366         [
   368                 fileDoubleClickAction value
   367             fileDoubleClickAction value
   369             ] ifFalse:[
   368         ].
   370                 numArgs = 1 ifTrue:[                
   369         fileDoubleClickAction numArgs = 1
   371                     fileDoubleClickAction value: (directory asFilename construct:selectedFile baseName) name
   370         ifTrue:
   372                 ]
   371         [                
   373             ]
   372             fileDoubleClickAction value: (directory asFilename construct: self selectionOfFile value baseName) name
       
   373         ]
   374         ]
   374     ]
   375     ]
   375 !
   376 !
   376 
   377 
   377 fileSelected
   378 fileSelected
   378       
   379     |numArgs selectedFile|
   379     (fileSelectAction notNil and: [self selectionOfFile value notNil]) 
   380 
   380     ifTrue: 
   381     fileSelectAction notNil ifTrue:[
   381     [
   382         (selectedFile := self selectionOfFile value) notNil ifTrue:[
   382         fileSelectAction numArgs = 0
   383             numArgs := fileSelectAction argumentCount.
   383         ifTrue:
   384             numArgs == 0 ifTrue:[
   384         [
   385                 fileSelectAction value
   385             fileSelectAction value
   386             ] ifFalse:[
   386         ].
   387                 numArgs == 1 ifTrue:[
   387         fileSelectAction numArgs = 1
   388                     fileSelectAction value: (directory asFilename construct:selectedFile baseName) name
   388         ifTrue:
   389                 ]
   389         [
   390             ]
   390             fileSelectAction value: (directory asFilename construct: self selectionOfFile value baseName) name
       
   391         ]
   391         ]
   392     ]
   392     ]
   393 ! !
   393 ! !
   394 
   394 
   395 !DirectoryView methodsFor:'initialization'!
   395 !DirectoryView methodsFor:'initialization'!
   535                         
   535                         
   536                         newRow := FileRow new fileName: fileName asFilename.
   536                         newRow := FileRow new fileName: fileName asFilename.
   537                         "/ how stupid is that?
   537                         "/ how stupid is that?
   538                         nearestFileRow := listOfFiles indexOf: (listOfFiles detect: [:fileRow| fileRow baseName > fileName baseName] ifNone: nil).
   538                         nearestFileRow := listOfFiles indexOf: (listOfFiles detect: [:fileRow| fileRow baseName > fileName baseName] ifNone: nil).
   539                         "/ nearestFileRow := listOfFiles findFirst:[:fileRow | fileRow baseName > fileName baseName].
   539                         "/ nearestFileRow := listOfFiles findFirst:[:fileRow | fileRow baseName > fileName baseName].
   540                         nearestFileRow = 0
   540                         nearestFileRow == 0
   541                             ifTrue: [listOfFiles add: newRow]
   541                             ifTrue: [listOfFiles add: newRow]
   542                             ifFalse: [listOfFiles add: newRow beforeIndex: nearestFileRow].
   542                             ifFalse: [listOfFiles add: newRow beforeIndex: nearestFileRow].
   543                         "/ r is uninitialized - therefore selection is lost
   543                         "/ r is uninitialized - therefore selection is lost
   544                         monitoring ifTrue: [self selectionOfFile value: r].
   544                         monitoring ifTrue: [self selectionOfFile value: r].
   545                     ]
   545                     ]
   588         listOfFileFilters remove: selectedFileFilter ifAbsent: nil
   588         listOfFileFilters remove: selectedFileFilter ifAbsent: nil
   589     ].
   589     ].
   590     selectedFileFilter := aString.
   590     selectedFileFilter := aString.
   591 
   591 
   592     ((listOfFileFilters includes: selectedFileFilter) not
   592     ((listOfFileFilters includes: selectedFileFilter) not
   593     and:[selectedFileFilter notEmpty])
   593       and:[selectedFileFilter notEmpty]
   594     ifTrue: [
   594     ) ifTrue: [
   595         listOfFileFilters addFirst: selectedFileFilter
   595         listOfFileFilters addFirst: selectedFileFilter
   596     ].
   596     ].
   597     ((listOfFileFilters includes: selectedFileFilter)
   597     ((listOfFileFilters includes: selectedFileFilter)
   598     and:[fileFilterSelectAction notNil]) 
   598       and:[fileFilterSelectAction notNil]
   599     ifTrue: [
   599     ) ifTrue: [
   600         (nArgs := fileFilterSelectAction numArgs) == 0
   600         (nArgs := fileFilterSelectAction argumentCount) == 0 ifTrue: [
   601         ifTrue: [
       
   602             fileFilterSelectAction value
   601             fileFilterSelectAction value
   603         ] ifFalse:[
   602         ] ifFalse:[
   604             nArgs == 1 ifTrue:[
   603             nArgs == 1 ifTrue:[
   605                 fileFilterSelectAction value: selectedFileFilter
   604                 fileFilterSelectAction value: selectedFileFilter
   606             ] ifFalse:[
   605             ] ifFalse:[