FileDialog.st
changeset 19511 54b119c1dda6
parent 19482 e8e782b89265
equal deleted inserted replaced
19510:148064ba350a 19511:54b119c1dda6
  1669     self pattern:(patternArg isEmptyOrNil ifTrue:['*'] ifFalse:[patternArg]).
  1669     self pattern:(patternArg isEmptyOrNil ifTrue:['*'] ifFalse:[patternArg]).
  1670     self initialText:titleString.
  1670     self initialText:titleString.
  1671     self beLoadDialog:asLoadDialog ? false.
  1671     self beLoadDialog:asLoadDialog ? false.
  1672     self viewFiles:(viewFilesArg ? true).
  1672     self viewFiles:(viewFilesArg ? true).
  1673 
  1673 
  1674     self okLabelHolder value:okText.
  1674     okLabelHolder value:okText.
  1675     self cancelLabelHolder value:abortText.
  1675     cancelLabelHolder value:abortText.
  1676 
  1676 
  1677     self doubleClickAction:[:anIndex|
  1677     self doubleClickAction:[:anIndex|
  1678         | item |
  1678         | item |
  1679         item := self treeBrowser fileList at:anIndex ifAbsent:nil.
  1679         item := self treeBrowser fileList at:anIndex ifAbsent:nil.
  1680         item notNil ifTrue:[
  1680         item notNil ifTrue:[
  1860 ! !
  1860 ! !
  1861 
  1861 
  1862 !FileDialog methodsFor:'accessing-look'!
  1862 !FileDialog methodsFor:'accessing-look'!
  1863 
  1863 
  1864 hideButtonPanel
  1864 hideButtonPanel
  1865     self buttonPanelVisibleHolder value:false
  1865     buttonPanelVisibleHolder value:false
  1866 !
  1866 !
  1867 
  1867 
  1868 newDirectoryVisibilityHolder
  1868 newDirectoryVisibilityHolder
  1869     newDirectoryVisibilityHolder isNil ifTrue:[
  1869     newDirectoryVisibilityHolder isNil ifTrue:[
  1870         newDirectoryVisibilityHolder := true asValue.
  1870         newDirectoryVisibilityHolder := true asValue.
  1871     ].
  1871     ].
  1872     ^ newDirectoryVisibilityHolder
  1872     ^ newDirectoryVisibilityHolder
  1873 !
  1873 !
  1874 
  1874 
  1875 showButtonPanel
  1875 showButtonPanel
  1876     self buttonPanelVisibleHolder value:true
  1876     buttonPanelVisibleHolder value:true
  1877 !
  1877 !
  1878 
  1878 
  1879 viewFiles
  1879 viewFiles
  1880     "if true, files can be selected; if false, only directories"
  1880     "if true, files can be selected; if false, only directories"
  1881 
  1881 
  1894 
  1894 
  1895 appendButtonVisibleHolder
  1895 appendButtonVisibleHolder
  1896     "if set, an additional 'append' button is shown
  1896     "if set, an additional 'append' button is shown
  1897      (to let user append to a file, instead of overwriting the file)"
  1897      (to let user append to a file, instead of overwriting the file)"
  1898 
  1898 
  1899     appendButtonVisibleHolder isNil ifTrue:[
       
  1900         appendButtonVisibleHolder := false asValue.
       
  1901     ].
       
  1902     ^ appendButtonVisibleHolder
  1899     ^ appendButtonVisibleHolder
  1903 !
  1900 !
  1904 
  1901 
  1905 appendLabelHolder
  1902 appendLabelHolder
  1906     appendLabelHolder isNil ifTrue:[
       
  1907         appendLabelHolder := 'Append' asValue.
       
  1908     ].
       
  1909     ^ appendLabelHolder
  1903     ^ appendLabelHolder
  1910 !
  1904 !
  1911 
  1905 
  1912 aspectOrNil:aKey forSubApplication:aSubApp
  1906 aspectOrNil:aKey forSubApplication:aSubApp
  1913     "this hook provides an aspect for a subApp"
  1907     "this hook provides an aspect for a subApp"
  1921 !
  1915 !
  1922 
  1916 
  1923 browseMenuItemVisible:aBoolean
  1917 browseMenuItemVisible:aBoolean
  1924     "controls if an 'open filebrowser' menu item is to be shown in the toolbar"
  1918     "controls if an 'open filebrowser' menu item is to be shown in the toolbar"
  1925 
  1919 
  1926     self browseMenuItemVisibleHolder value:aBoolean
  1920     browseMenuItemVisibleHolder value:aBoolean
  1927 !
  1921 !
  1928 
  1922 
  1929 browseMenuItemVisibleHolder
  1923 browseMenuItemVisibleHolder
  1930     "controls if an 'open filebrowser' menu item is to be shown in the toolbar"
  1924     "controls if an 'open filebrowser' menu item is to be shown in the toolbar"
  1931 
  1925 
  1932     browseMenuItemVisibleHolder isNil ifTrue:[
       
  1933         browseMenuItemVisibleHolder := true "false" asValue.
       
  1934     ].
       
  1935     ^ browseMenuItemVisibleHolder.
  1926     ^ browseMenuItemVisibleHolder.
  1936 !
  1927 !
  1937 
  1928 
  1938 buttonPanelVisibleHolder
  1929 buttonPanelVisibleHolder
  1939     buttonPanelVisibleHolder isNil ifTrue:[
       
  1940         buttonPanelVisibleHolder := true asValue.
       
  1941         buttonPanelVisibleHolder onChangeSend:#buttonPanelVisibilityChanged to:self.
       
  1942     ].
       
  1943     ^ buttonPanelVisibleHolder.
  1930     ^ buttonPanelVisibleHolder.
  1944 !
  1931 !
  1945 
  1932 
  1946 cancelLabelHolder
  1933 cancelLabelHolder
  1947 
       
  1948     cancelLabelHolder isNil ifTrue:[
       
  1949         cancelLabelHolder := 'Cancel' asValue.
       
  1950     ].
       
  1951     ^ cancelLabelHolder.
  1934     ^ cancelLabelHolder.
  1952 !
  1935 !
  1953 
  1936 
  1954 enableBack
  1937 enableBack
  1955     ^ treeBrowser enableBack.
  1938     ^ treeBrowser enableBack.
  2021 !
  2004 !
  2022 
  2005 
  2023 filenameLabelHolder
  2006 filenameLabelHolder
  2024     "Return a value holder for the input string.
  2007     "Return a value holder for the input string.
  2025     "
  2008     "
  2026     filenameLabelHolder isNil ifTrue:[
       
  2027         filenameLabelHolder := 'Filename:' asValue.
       
  2028     ].
       
  2029     ^ filenameLabelHolder
  2009     ^ filenameLabelHolder
  2030 !
  2010 !
  2031 
  2011 
  2032 filterHolder
  2012 filterHolder
  2033     "Return a value holder for filter"
  2013     "Return a value holder for filter"
  2034 
  2014 
  2035     filterHolder isNil ifTrue:[
       
  2036         filterHolder := (self pattern ? '*') asValue.
       
  2037     ].
       
  2038     ^ filterHolder
  2015     ^ filterHolder
  2039 !
  2016 !
  2040 
  2017 
  2041 filterHolder:aHolder
  2018 filterHolder:aHolder
  2042     "needed when used as subcanvas"
  2019     "needed when used as subcanvas"
  2120 
  2097 
  2121     "Modified: / 14-02-2017 / 13:00:40 / cg"
  2098     "Modified: / 14-02-2017 / 13:00:40 / cg"
  2122 !
  2099 !
  2123 
  2100 
  2124 okLabelHolder
  2101 okLabelHolder
  2125     <resource: #uiAspect>
       
  2126 
       
  2127     okLabelHolder isNil ifTrue:[
       
  2128         okLabelHolder := 'OK' asValue.
       
  2129     ].
       
  2130     ^ okLabelHolder.
  2102     ^ okLabelHolder.
  2131 !
  2103 !
  2132 
  2104 
  2133 rootDirectoryHolder
  2105 rootDirectoryHolder
  2134     "Return a value holder for filter"
  2106     "Return a value holder for filter"
  2146 !
  2118 !
  2147 
  2119 
  2148 searchInfoBoxVisibleHolder
  2120 searchInfoBoxVisibleHolder
  2149     "set during search-file operation"
  2121     "set during search-file operation"
  2150 
  2122 
  2151     searchInfoBoxVisibleHolder isNil ifTrue:[
       
  2152         searchInfoBoxVisibleHolder := false asValue.
       
  2153     ].
       
  2154     ^ searchInfoBoxVisibleHolder
  2123     ^ searchInfoBoxVisibleHolder
  2155 !
  2124 !
  2156 
  2125 
  2157 searchedDirectoryInfoHolder
  2126 searchedDirectoryInfoHolder
  2158     "updated during search-file operation"
  2127     "updated during search-file operation"
  2159 
  2128 
  2160     searchedDirectoryInfoHolder isNil ifTrue:[
       
  2161         searchedDirectoryInfoHolder := nil asValue.
       
  2162     ].
       
  2163     ^ searchedDirectoryInfoHolder
  2129     ^ searchedDirectoryInfoHolder
  2164 !
  2130 !
  2165 
  2131 
  2166 selectedDeviceDrive
  2132 selectedDeviceDrive
  2167 
  2133 
  2352         changedObject value ifTrue:[
  2318         changedObject value ifTrue:[
  2353             newLabel := 'Filename:'.
  2319             newLabel := 'Filename:'.
  2354         ] ifFalse:[
  2320         ] ifFalse:[
  2355             newLabel := 'Directory:'.
  2321             newLabel := 'Directory:'.
  2356         ].
  2322         ].
  2357         self filenameLabelHolder value:(resources string:newLabel)
  2323         filenameLabelHolder value:(resources string:newLabel)
  2358     ].
  2324     ].
  2359     changedObject == self filenameHolder ifTrue:[
  2325     changedObject == self filenameHolder ifTrue:[
  2360         fn := changedObject value asFilename.
  2326         fn := changedObject value asFilename.
  2361         (fn exists) ifFalse:[^ self].
  2327         (fn exists) ifFalse:[^ self].
  2362         treeBrowser currentFileNameHolder value:(OrderedCollection with:fn) withoutNotifying:self.
  2328         treeBrowser currentFileNameHolder value:(OrderedCollection with:fn) withoutNotifying:self.
  2474     "Modified: / 27-12-2010 / 09:56:30 / cg"
  2440     "Modified: / 27-12-2010 / 09:56:30 / cg"
  2475 !
  2441 !
  2476 
  2442 
  2477 initialize
  2443 initialize
  2478     super initialize.
  2444     super initialize.
       
  2445 
  2479     isLoadDialog := false.
  2446     isLoadDialog := false.
  2480     viewFiles := true.
  2447     viewFiles := true.
  2481     multipleSelect := false.
  2448     multipleSelect := false.
       
  2449 
       
  2450     appendButtonVisibleHolder := false asValue.
       
  2451     appendLabelHolder := 'Append' asValue.
       
  2452     okLabelHolder := 'OK' asValue.
       
  2453     browseMenuItemVisibleHolder := true "false" asValue.
       
  2454 
       
  2455     buttonPanelVisibleHolder := true asValue.
       
  2456     buttonPanelVisibleHolder onChangeSend:#buttonPanelVisibilityChanged to:self.
       
  2457 
       
  2458     cancelLabelHolder := 'Cancel' asValue.
       
  2459     filenameLabelHolder := 'Filename:' asValue.
       
  2460     filterHolder := (self pattern ? '*') asValue.
       
  2461     searchInfoBoxVisibleHolder := false asValue.
       
  2462 
       
  2463     searchedDirectoryInfoHolder := nil asValue.
  2482 
  2464 
  2483     "Modified: / 10-09-2019 / 18:40:07 / Stefan Vogel"
  2465     "Modified: / 10-09-2019 / 18:40:07 / Stefan Vogel"
  2484 !
  2466 !
  2485 
  2467 
  2486 postBuildFileNameField:aWidget
  2468 postBuildFileNameField:aWidget
  2776 
  2758 
  2777     self withWaitCursorDo:[
  2759     self withWaitCursorDo:[
  2778         [
  2760         [
  2779             |dirHolder|
  2761             |dirHolder|
  2780 
  2762 
  2781             dirHolder := self searchedDirectoryInfoHolder.
  2763             dirHolder := searchedDirectoryInfoHolder.
  2782             self searchInfoBoxVisibleHolder value:true.
  2764             searchInfoBoxVisibleHolder value:true.
  2783             self windowGroup processExposeEvents.
  2765             self windowGroup processExposeEvents.
  2784 
  2766 
  2785             treeBrowser 
  2767             treeBrowser 
  2786                 findAndSelectNextFileMatching:searchPattern 
  2768                 findAndSelectNextFileMatching:searchPattern 
  2787                 under:searchRoot
  2769                 under:searchRoot
  2788                 searchInfoInto:[:path | dirHolder value:path. self windowGroup processExposeEvents].
  2770                 searchInfoInto:[:path | dirHolder value:path. self windowGroup processExposeEvents].
  2789         ] ensure:[
  2771         ] ensure:[
  2790             self searchInfoBoxVisibleHolder value:false
  2772             searchInfoBoxVisibleHolder value:false
  2791         ]
  2773         ]
  2792     ].
  2774     ].
  2793 
  2775 
  2794     "Created: / 17-07-2018 / 12:44:20 / Claus Gittinger"
  2776     "Created: / 17-07-2018 / 12:44:20 / Claus Gittinger"
  2795     "Modified (format): / 02-05-2019 / 20:44:14 / Claus Gittinger"
  2777     "Modified (format): / 02-05-2019 / 20:44:14 / Claus Gittinger"