FileBrowser.st
changeset 2102 da9a9deccee0
parent 2101 54dd9ce332bf
child 2104 4cdfa467fb7c
equal deleted inserted replaced
2101:54dd9ce332bf 2102:da9a9deccee0
   660      (Menu new fromLiteralArrayEncoding:(FileBrowser menuSpec)) startUp
   660      (Menu new fromLiteralArrayEncoding:(FileBrowser menuSpec)) startUp
   661     "
   661     "
   662 
   662 
   663     <resource: #menu>
   663     <resource: #menu>
   664 
   664 
   665     ^
   665     ^ 
   666      
   666      #(#Menu
   667        #(#Menu
   667         #(
   668           
   668          #(#MenuItem
   669            #(
   669             #label: 'About'
   670              #(#MenuItem
   670             #translateLabel: true
   671                 #label: 'About'
   671             #labelImage: #(#ResourceRetriever #ToolApplicationModel #menuIcon)
   672                 #translateLabel: true
   672             #submenu: 
   673                 #labelImage: #(#ResourceRetriever #ToolApplicationModel #menuIcon)
   673            #(#Menu
   674                 #submenu: 
   674               #(
       
   675                #(#MenuItem
       
   676                   #label: 'About Smalltalk/X...'
       
   677                   #translateLabel: true
       
   678                   #value: #showAboutSTX
       
   679                 )
       
   680                #(#MenuItem
       
   681                   #label: '-'
       
   682                 )
       
   683                #(#MenuItem
       
   684                   #label: 'About FileBrowser...'
       
   685                   #translateLabel: true
       
   686                   #value: #openAboutThisApplication
       
   687                 )
       
   688                )
       
   689               nil
       
   690               nil
       
   691             )
       
   692           )
       
   693          #(#MenuItem
       
   694             #label: 'File'
       
   695             #translateLabel: true
       
   696             #submenu: 
       
   697            #(#Menu
       
   698               #(
       
   699                #(#MenuItem
       
   700                   #label: 'Open'
       
   701                   #translateLabel: true
       
   702                   #value: #menuOpen
       
   703                   #enabled: #hasSelection
       
   704                 )
       
   705                #(#MenuItem
       
   706                   #label: 'Open selected Filename'
       
   707                   #translateLabel: true
       
   708                   #isVisible: #hasFilenameSelectionInCodeView
       
   709                   #value: #openSelectedFilename
       
   710                   #enabled: #hasFilenameSelectionInCodeView
       
   711                 )
       
   712                #(#MenuItem
       
   713                   #label: 'FileIn'
       
   714                   #translateLabel: true
       
   715                   #value: #fileFileIn
       
   716                   #enabled: #hasSelection
       
   717                 )
       
   718                #(#MenuItem
       
   719                   #label: '-'
       
   720                 )
       
   721                #(#MenuItem
       
   722                   #label: 'New'
       
   723                   #translateLabel: true
       
   724                   #submenu: 
   675                  #(#Menu
   725                  #(#Menu
   676                     
   726                     #(
   677                      #(
   727                      #(#MenuItem
   678                        #(#MenuItem
   728                         #label: 'Directory...'
   679                           #label: 'About Smalltalk/X...'
   729                         #translateLabel: true
   680                           #translateLabel: true
   730                         #value: #newDirectory
   681                           #value: #showAboutSTX
       
   682                       )
   731                       )
   683                        #(#MenuItem
   732                      #(#MenuItem
   684                           #label: '-'
   733                         #label: 'File...'
       
   734                         #translateLabel: true
       
   735                         #value: #newFile
   685                       )
   736                       )
   686                        #(#MenuItem
   737                      #(#MenuItem
   687                           #label: 'About FileBrowser...'
   738                         #label: 'Hard Link...'
   688                           #translateLabel: true
   739                         #translateLabel: true
   689                           #value: #openAboutThisApplication
   740                         #isVisible: #systemIsUnix
       
   741                         #value: #newHardLink
   690                       )
   742                       )
   691                     ) nil
   743                      #(#MenuItem
       
   744                         #label: 'Symbolic Link...'
       
   745                         #translateLabel: true
       
   746                         #isVisible: #systemIsUnix
       
   747                         #value: #newSoftLink
       
   748                       )
       
   749                      )
   692                     nil
   750                     nil
   693                 )
   751                     nil
       
   752                   )
       
   753                 )
       
   754                #(#MenuItem
       
   755                   #label: 'Remove'
       
   756                   #translateLabel: true
       
   757                   #value: #fileRemove
       
   758                   #enabled: #hasSelection
       
   759                 )
       
   760                #(#MenuItem
       
   761                   #label: 'Rename'
       
   762                   #translateLabel: true
       
   763                   #value: #fileRename
       
   764                   #enabled: #hasSelection
       
   765                 )
       
   766                #(#MenuItem
       
   767                   #label: 'Properties...'
       
   768                   #translateLabel: true
       
   769                   #value: #fileGetLongInfo
       
   770                   #enabled: #hasSelection
       
   771                 )
       
   772                #(#MenuItem
       
   773                   #label: '-'
       
   774                   #isVisible: #javaSupportLoaded
       
   775                 )
       
   776                #(#MenuItem
       
   777                   #label: 'Add to Java ClassPath'
       
   778                   #translateLabel: true
       
   779                   #isVisible: #javaSupportLoaded
       
   780                   #value: #fileAddToJavaClassPath
       
   781                   #enabled: #canAddToClassPath
       
   782                 )
       
   783                #(#MenuItem
       
   784                   #label: 'Remove from Java ClassPath'
       
   785                   #translateLabel: true
       
   786                   #isVisible: #javaSupportLoaded
       
   787                   #value: #fileRemoveFromJavaClassPath
       
   788                   #enabled: #canRemoveToClassPath
       
   789                 )
       
   790                #(#MenuItem
       
   791                   #label: '-'
       
   792                 )
       
   793                #(#MenuItem
       
   794                   #label: 'Spawn'
       
   795                   #translateLabel: true
       
   796                   #value: #fileSpawn
       
   797                 )
       
   798                #(#MenuItem
       
   799                   #label: '-'
       
   800                 )
       
   801                #(#MenuItem
       
   802                   #label: 'Exit'
       
   803                   #translateLabel: true
       
   804                   #value: #menuExit
       
   805                 )
       
   806                )
       
   807               nil
       
   808               nil
   694             )
   809             )
   695              #(#MenuItem
   810           )
   696                 #label: 'File'
   811          #(#MenuItem
   697                 #translateLabel: true
   812             #label: 'Directory'
   698                 #submenu: 
   813             #translateLabel: true
   699                  #(#Menu
   814             #submenuChannel: #directoryMenuSpec
   700                     
   815           )
   701                      #(
   816          #(#MenuItem
   702                        #(#MenuItem
   817             #label: 'Edit'
   703                           #label: 'Open'
   818             #translateLabel: true
   704                           #translateLabel: true
   819             #submenu: 
   705                           #value: #menuOpen
   820            #(#Menu
   706                           #enabled: #hasSelection
   821               #(
   707                       )
   822                #(#MenuItem
   708                        #(#MenuItem
   823                   #label: 'Get Contents'
   709                           #label: 'Open selected Filename'
   824                   #translateLabel: true
   710                           #translateLabel: true
   825                   #value: #fileGet
   711                           #value: #openSelectedFilename
   826                   #enabled: #hasSelection
   712                           #isVisible: #hasFilenameSelectionInCodeView
   827                 )
   713                           #enabled: #hasFilenameSelectionInCodeView
   828                #(#MenuItem
   714                       )
   829                   #label: 'Insert Contents'
   715                        #(#MenuItem
   830                   #translateLabel: true
   716                           #label: 'FileIn'
   831                   #value: #fileInsert
   717                           #translateLabel: true
   832                   #enabled: #hasSelection
   718                           #value: #fileFileIn
   833                 )
   719                           #enabled: #hasSelection
   834                #(#MenuItem
   720                       )
   835                   #label: '-'
   721                        #(#MenuItem
   836                 )
   722                           #label: '-'
   837                #(#MenuItem
   723                       )
   838                   #label: 'Copy File List'
   724                        #(#MenuItem
   839                   #translateLabel: true
   725                           #label: 'New'
   840                   #value: #copyFileList
   726                           #translateLabel: true
   841                 )
   727                           #submenu: 
   842                #(#MenuItem
   728                            #(#Menu
   843                   #label: 'Copy Selected Filename'
   729                               
   844                   #translateLabel: true
   730                                #(
   845                   #value: #copySelectedFileName
   731                                  #(#MenuItem
   846                 )
   732                                     #label: 'Directory...'
   847                #(#MenuItem
   733                                     #translateLabel: true
   848                   #label: 'Copy Command History'
   734                                     #value: #newDirectory
   849                   #translateLabel: true
   735                                 )
   850                   #value: #copyCommandHistory
   736                                  #(#MenuItem
   851                 )
   737                                     #label: 'File...'
   852                )
   738                                     #translateLabel: true
   853               nil
   739                                     #value: #newFile
   854               nil
   740                                 )
       
   741                                  #(#MenuItem
       
   742                                     #label: 'Hard Link...'
       
   743                                     #translateLabel: true
       
   744                                     #isVisible: #systemIsUnix
       
   745                                     #value: #newHardLink
       
   746                                 )
       
   747                                  #(#MenuItem
       
   748                                     #label: 'Symbolic Link...'
       
   749                                     #translateLabel: true
       
   750                                     #isVisible: #systemIsUnix
       
   751                                     #value: #newSoftLink
       
   752                                 )
       
   753                               ) nil
       
   754                               nil
       
   755                           )
       
   756                       )
       
   757                        #(#MenuItem
       
   758                           #label: 'Remove'
       
   759                           #translateLabel: true
       
   760                           #value: #fileRemove
       
   761                           #enabled: #hasSelection
       
   762                       )
       
   763                        #(#MenuItem
       
   764                           #label: 'Rename'
       
   765                           #translateLabel: true
       
   766                           #value: #fileRename
       
   767                           #enabled: #hasSelection
       
   768                       )
       
   769                        #(#MenuItem
       
   770                           #label: 'Properties...'
       
   771                           #translateLabel: true
       
   772                           #value: #fileGetLongInfo
       
   773                           #enabled: #hasSelection
       
   774                       )
       
   775                        #(#MenuItem
       
   776                           #label: '-'
       
   777                           #isVisible: #javaSupportLoaded
       
   778                       )
       
   779                        #(#MenuItem
       
   780                           #label: 'Add to Java ClassPath'
       
   781                           #translateLabel: true
       
   782                           #isVisible: #javaSupportLoaded
       
   783                           #value: #fileAddToJavaClassPath
       
   784                           #enabled: #canAddToClassPath
       
   785                       )
       
   786                        #(#MenuItem
       
   787                           #label: 'Remove from Java ClassPath'
       
   788                           #translateLabel: true
       
   789                           #isVisible: #javaSupportLoaded
       
   790                           #value: #fileRemoveFromJavaClassPath
       
   791                           #enabled: #canRemoveToClassPath
       
   792                       )
       
   793                        #(#MenuItem
       
   794                           #label: '-'
       
   795                       )
       
   796                        #(#MenuItem
       
   797                           #label: 'Spawn'
       
   798                           #translateLabel: true
       
   799                           #value: #fileSpawn
       
   800                       )
       
   801                        #(#MenuItem
       
   802                           #label: '-'
       
   803                       )
       
   804                        #(#MenuItem
       
   805                           #label: 'Exit'
       
   806                           #translateLabel: true
       
   807                           #value: #menuExit
       
   808                       )
       
   809                     ) nil
       
   810                     nil
       
   811                 )
       
   812             )
   855             )
   813              #(#MenuItem
   856           )
   814                 #label: 'Directory'
   857          #(#MenuItem
   815                 #translateLabel: true
   858             #label: 'View'
   816                 #submenuChannel: #directoryMenuSpec
   859             #translateLabel: true
       
   860             #submenu: 
       
   861            #(#Menu
       
   862               #(
       
   863                #(#MenuItem
       
   864                   #label: 'Details'
       
   865                   #translateLabel: true
       
   866                   #indication: #showingDetails
       
   867                 )
       
   868                #(#MenuItem
       
   869                   #label: 'Show Hidden Files'
       
   870                   #translateLabel: true
       
   871                   #indication: #showingHiddenFiles
       
   872                 )
       
   873                #(#MenuItem
       
   874                   #label: 'Big Image Preview'
       
   875                   #translateLabel: true
       
   876                   #indication: #showingBigImagePreview
       
   877                 )
       
   878                #(#MenuItem
       
   879                   #label: '-'
       
   880                 )
       
   881                #(#MenuItem
       
   882                   #label: 'Sort By Name'
       
   883                   #translateLabel: true
       
   884                   #choice: #sortByWhat
       
   885                   #choiceValue: #name
       
   886                 )
       
   887                #(#MenuItem
       
   888                   #label: 'Sort By Type'
       
   889                   #translateLabel: true
       
   890                   #choice: #sortByWhat
       
   891                   #choiceValue: #type
       
   892                 )
       
   893                #(#MenuItem
       
   894                   #label: 'Sort By Time'
       
   895                   #translateLabel: true
       
   896                   #choice: #sortByWhat
       
   897                   #choiceValue: #time
       
   898                 )
       
   899                #(#MenuItem
       
   900                   #label: 'Ignore Case'
       
   901                   #translateLabel: true
       
   902                   #enabled: #sortByName
       
   903                   #indication: #sortCaseless
       
   904                 )
       
   905                #(#MenuItem
       
   906                   #label: '-'
       
   907                 )
       
   908                #(#MenuItem
       
   909                   #label: 'Encoding...'
       
   910                   #translateLabel: true
       
   911                   #value: #fileEncoding
       
   912                 )
       
   913                #(#MenuItem
       
   914                   #label: '-'
       
   915                 )
       
   916                #(#MenuItem
       
   917                   #label: 'Update'
       
   918                   #translateLabel: true
       
   919                   #value: #updateCurrentDirectory
       
   920                 )
       
   921                )
       
   922               nil
       
   923               nil
   817             )
   924             )
   818              #(#MenuItem
   925           )
   819                 #label: 'CVS'
   926          #(#MenuItem
   820                 #translateLabel: true
   927             #label: 'Tools'
   821                 #submenu: 
   928             #translateLabel: true
   822                  #(#Menu
   929             #submenu: 
   823 
   930            #(#Menu
   824                      #(
   931               #(
   825                        #(#MenuItem
   932                #(#MenuItem
   826                           #label: 'Remove file && CVS Container'
   933                   #label: 'Unix Command'
   827                           #translateLabel: true
   934                   #translateLabel: true
   828                           #value: #fileRemoveAndRemoveContainerFromCVS
   935                   #isVisible: #systemIsUnix
   829                           #enabled: #canRemoveCVSContainer
   936                   #value: #menuOSCommand
   830                       )
   937                 )
   831                     ) nil
   938                #(#MenuItem
   832                     nil
   939                   #label: 'DOS Command'
   833                 )
   940                   #translateLabel: true
       
   941                   #isVisible: #systemIsDOS
       
   942                   #value: #menuOSCommand
       
   943                 )
       
   944                #(#MenuItem
       
   945                   #label: 'VMS Command'
       
   946                   #translateLabel: true
       
   947                   #isVisible: #systemIsVMS
       
   948                   #value: #menuOSCommand
       
   949                 )
       
   950                #(#MenuItem
       
   951                   #label: '-'
       
   952                 )
       
   953                #(#MenuItem
       
   954                   #label: 'Changes Browser'
       
   955                   #translateLabel: true
       
   956                   #value: #openChangesBrowser
       
   957                   #enabled: #hasSelection
       
   958                 )
       
   959                #(#MenuItem
       
   960                   #label: 'Editor'
       
   961                   #translateLabel: true
       
   962                   #value: #openEditor
       
   963                   #enabled: #hasSelection
       
   964                 )
       
   965                #(#MenuItem
       
   966                   #label: 'HTML Reader'
       
   967                   #translateLabel: true
       
   968                   #value: #openHTMLReader
       
   969                   #enabled: #hasSelection
       
   970                 )
       
   971                #(#MenuItem
       
   972                   #label: 'Applet Viewer'
       
   973                   #translateLabel: true
       
   974                   #isVisible: #hasJava
       
   975                   #value: #openAppletViewer
       
   976                   #enabled: #hasJavaAndSelection
       
   977                 )
       
   978                #(#MenuItem
       
   979                   #label: 'Image Inspector'
       
   980                   #translateLabel: true
       
   981                   #value: #openImageInspector
       
   982                   #enabled: #hasSelection
       
   983                 )
       
   984                #(#MenuItem
       
   985                   #label: 'Image Preview'
       
   986                   #translateLabel: true
       
   987                   #value: #openImagePreview
       
   988                   #enabled: #hasSelection
       
   989                 )
       
   990                #(#MenuItem
       
   991                   #label: 'Image Editor'
       
   992                   #translateLabel: true
       
   993                   #value: #openImageEditor
       
   994                   #enabled: #hasSelection
       
   995                 )
       
   996                #(#MenuItem
       
   997                   #label: 'ZipFile Tool'
       
   998                   #translateLabel: true
       
   999                   #value: #openZipTool
       
  1000                   #enabled: #hasZipFileSelected
       
  1001                 )
       
  1002                #(#MenuItem
       
  1003                   #label: 'File Differences...'
       
  1004                   #translateLabel: true
       
  1005                   #value: #openDiffView
       
  1006                 )
       
  1007                #(#MenuItem
       
  1008                   #label: 'Find Duplicate Files'
       
  1009                   #translateLabel: true
       
  1010                   #value: #fileFindDuplicates
       
  1011                 )
       
  1012                #(#MenuItem
       
  1013                   #label: 'Find All Duplicate Files (recursive)'
       
  1014                   #translateLabel: true
       
  1015                   #value: #fileFindAllDuplicates
       
  1016                 )
       
  1017                #(#MenuItem
       
  1018                   #label: 'Find a File...'
       
  1019                   #translateLabel: true
       
  1020                   #value: #fileFindFile
       
  1021                 )
       
  1022                #(#MenuItem
       
  1023                   #label: 'Hex Dump'
       
  1024                   #translateLabel: true
       
  1025                   #value: #fileHexDump
       
  1026                 )
       
  1027                #(#MenuItem
       
  1028                   #label: 'Shell Terminal'
       
  1029                   #translateLabel: true
       
  1030                   #isVisible: #systemIsUnix
       
  1031                   #value: #openTerminal
       
  1032                   #enabled: #systemIsUnix
       
  1033                 )
       
  1034                )
       
  1035               nil
       
  1036               nil
   834             )
  1037             )
   835              #(#MenuItem
  1038           )
   836                 #label: 'Edit'
  1039          #(#MenuItem
   837                 #translateLabel: true
  1040             #label: 'CVS'
   838                 #submenu: 
  1041             #translateLabel: true
   839                  #(#Menu
  1042             #submenu: 
   840                     
  1043            #(#Menu
   841                      #(
  1044               #(
   842                        #(#MenuItem
  1045                #(#MenuItem
   843                           #label: 'Get Contents'
  1046                   #label: 'Update selected files/directories'
   844                           #translateLabel: true
  1047                   #translateLabel: true
   845                           #value: #fileGet
  1048                   #value: #cvsUpdateSelection
   846                           #enabled: #hasSelection
  1049                   #enabled: #hasSelection
   847                       )
  1050                 )
   848                        #(#MenuItem
  1051                #(#MenuItem
   849                           #label: 'Insert Contents'
  1052                   #label: 'Update directory local'
   850                           #translateLabel: true
  1053                   #translateLabel: true
   851                           #value: #fileInsert
  1054                   #value: #cvsUpdateDirectoryLocal
   852                           #enabled: #hasSelection
  1055                 )
   853                       )
  1056                #(#MenuItem
   854                        #(#MenuItem
  1057                   #label: 'Update directory recursive'
   855                           #label: '-'
  1058                   #translateLabel: true
   856                       )
  1059                   #value: #cvsUpdateDirectoryRecursive
   857                        #(#MenuItem
  1060                 )
   858                           #label: 'Copy File List'
  1061                #(#MenuItem
   859                           #translateLabel: true
  1062                   #label: '-'
   860                           #value: #copyFileList
  1063                 )
   861                       )
  1064                #(#MenuItem
   862                        #(#MenuItem
  1065                   #label: 'Remove file && CVS Container'
   863                           #label: 'Copy Selected Filename'
  1066                   #translateLabel: true
   864                           #translateLabel: true
  1067                   #value: #cvsRemoveFileAndContainer
   865                           #value: #copySelectedFileName
  1068                   #enabled: #canRemoveCVSContainer
   866                       )
  1069                 )
   867                        #(#MenuItem
  1070                )
   868                           #label: 'Copy Command History'
  1071               nil
   869                           #translateLabel: true
  1072               nil
   870                           #value: #copyCommandHistory
       
   871                       )
       
   872                     ) nil
       
   873                     nil
       
   874                 )
       
   875             )
  1073             )
   876              #(#MenuItem
  1074           )
   877                 #label: 'View'
  1075          #(#MenuItem
   878                 #translateLabel: true
  1076             #label: 'Help'
   879                 #submenu: 
  1077             #translateLabel: true
   880                  #(#Menu
  1078             #startGroup: #right
   881                     
  1079             #submenu: 
   882                      #(
  1080            #(#Menu
   883                        #(#MenuItem
  1081               #(
   884                           #label: 'Details'
  1082                #(#MenuItem
   885                           #translateLabel: true
  1083                   #label: 'FileBrowser Documentation'
   886                           #indication: #showingDetails
  1084                   #translateLabel: true
   887                       )
  1085                   #value: #openHTMLDocument:
   888                        #(#MenuItem
  1086                   #argument: 'tools/fbrowser/TOP.html'
   889                           #label: 'Show Hidden Files'
  1087                 )
   890                           #translateLabel: true
  1088                )
   891                           #indication: #showingHiddenFiles
  1089               nil
   892                       )
  1090               nil
   893                        #(#MenuItem
       
   894                           #label: 'Big Image Preview'
       
   895                           #translateLabel: true
       
   896                           #indication: #showingBigImagePreview
       
   897                       )
       
   898                        #(#MenuItem
       
   899                           #label: '-'
       
   900                       )
       
   901                        #(#MenuItem
       
   902                           #label: 'Sort By Name'
       
   903                           #translateLabel: true
       
   904                           #choice: #sortByWhat
       
   905                           #choiceValue: #name
       
   906                       )
       
   907                        #(#MenuItem
       
   908                           #label: 'Sort By Type'
       
   909                           #translateLabel: true
       
   910                           #choice: #sortByWhat
       
   911                           #choiceValue: #type
       
   912                       )
       
   913                        #(#MenuItem
       
   914                           #label: 'Sort By Time'
       
   915                           #translateLabel: true
       
   916                           #choice: #sortByWhat
       
   917                           #choiceValue: #time
       
   918                       )
       
   919                        #(#MenuItem
       
   920                           #label: 'Ignore Case'
       
   921                           #translateLabel: true
       
   922                           #enabled: #sortByName
       
   923                           #indication: #sortCaseless
       
   924                       )
       
   925                        #(#MenuItem
       
   926                           #label: '-'
       
   927                       )
       
   928                        #(#MenuItem
       
   929                           #label: 'Encoding...'
       
   930                           #translateLabel: true
       
   931                           #value: #fileEncoding
       
   932                       )
       
   933                        #(#MenuItem
       
   934                           #label: '-'
       
   935                       )
       
   936                        #(#MenuItem
       
   937                           #label: 'Update'
       
   938                           #translateLabel: true
       
   939                           #value: #updateCurrentDirectory
       
   940                       )
       
   941                     ) nil
       
   942                     nil
       
   943                 )
       
   944             )
  1091             )
   945              #(#MenuItem
  1092           )
   946                 #label: 'Tools'
  1093          )
   947                 #translateLabel: true
  1094         nil
   948                 #submenu: 
  1095         nil
   949                  #(#Menu
       
   950                     
       
   951                      #(
       
   952                        #(#MenuItem
       
   953                           #label: 'Unix Command'
       
   954                           #translateLabel: true
       
   955                           #isVisible: #systemIsUnix
       
   956                           #value: #menuOSCommand
       
   957                       )
       
   958                        #(#MenuItem
       
   959                           #label: 'DOS Command'
       
   960                           #translateLabel: true
       
   961                           #isVisible: #systemIsDOS
       
   962                           #value: #menuOSCommand
       
   963                       )
       
   964                        #(#MenuItem
       
   965                           #label: 'VMS Command'
       
   966                           #translateLabel: true
       
   967                           #isVisible: #systemIsVMS
       
   968                           #value: #menuOSCommand
       
   969                       )
       
   970                        #(#MenuItem
       
   971                           #label: '-'
       
   972                       )
       
   973                        #(#MenuItem
       
   974                           #label: 'Changes Browser'
       
   975                           #translateLabel: true
       
   976                           #value: #openChangesBrowser
       
   977                           #enabled: #hasSelection
       
   978                       )
       
   979                        #(#MenuItem
       
   980                           #label: 'Editor'
       
   981                           #translateLabel: true
       
   982                           #value: #openEditor
       
   983                           #enabled: #hasSelection
       
   984                       )
       
   985                        #(#MenuItem
       
   986                           #label: 'HTML Reader'
       
   987                           #translateLabel: true
       
   988                           #value: #openHTMLReader
       
   989                           #enabled: #hasSelection
       
   990                       )
       
   991                        #(#MenuItem
       
   992                           #label: 'Applet Viewer'
       
   993                           #translateLabel: true
       
   994                           #isVisible: #hasJava
       
   995                           #value: #openAppletViewer
       
   996                           #enabled: #hasJavaAndSelection
       
   997                       )
       
   998                        #(#MenuItem
       
   999                           #label: 'Image Inspector'
       
  1000                           #translateLabel: true
       
  1001                           #value: #openImageInspector
       
  1002                           #enabled: #hasSelection
       
  1003                       )
       
  1004                        #(#MenuItem
       
  1005                           #label: 'Image Preview'
       
  1006                           #translateLabel: true
       
  1007                           #value: #openImagePreview
       
  1008                           #enabled: #hasSelection
       
  1009                       )
       
  1010                        #(#MenuItem
       
  1011                           #label: 'Image Editor'
       
  1012                           #translateLabel: true
       
  1013                           #value: #openImageEditor
       
  1014                           #enabled: #hasSelection
       
  1015                       )
       
  1016                        #(#MenuItem
       
  1017                           #label: 'ZipFile Tool'
       
  1018                           #translateLabel: true
       
  1019                           #value: #openZipTool
       
  1020                           #enabled: #hasZipFileSelected
       
  1021                       )
       
  1022                        #(#MenuItem
       
  1023                           #label: 'File Differences...'
       
  1024                           #translateLabel: true
       
  1025                           #value: #openDiffView
       
  1026                       )
       
  1027                        #(#MenuItem
       
  1028                           #label: 'Find Duplicate Files'
       
  1029                           #translateLabel: true
       
  1030                           #value: #fileFindDuplicates
       
  1031                       )
       
  1032                        #(#MenuItem
       
  1033                           #label: 'Find All Duplicate Files (recursive)'
       
  1034                           #translateLabel: true
       
  1035                           #value: #fileFindAllDuplicates
       
  1036                       )
       
  1037                        #(#MenuItem
       
  1038                           #label: 'Find a File...'
       
  1039                           #translateLabel: true
       
  1040                           #value: #fileFindFile
       
  1041                       )
       
  1042                        #(#MenuItem
       
  1043                           #label: 'Hex Dump'
       
  1044                           #translateLabel: true
       
  1045                           #value: #fileHexDump
       
  1046                       )
       
  1047                        #(#MenuItem
       
  1048                           #label: 'Shell Terminal'
       
  1049                           #translateLabel: true
       
  1050                           #isVisible: #systemIsUnix
       
  1051                           #value: #openTerminal
       
  1052                           #enabled: #systemIsUnix
       
  1053                       )
       
  1054                     ) nil
       
  1055                     nil
       
  1056                 )
       
  1057             )
       
  1058              #(#MenuItem
       
  1059                 #label: 'Help'
       
  1060                 #translateLabel: true
       
  1061                 #startGroup: #right
       
  1062                 #submenu: 
       
  1063                  #(#Menu
       
  1064                     
       
  1065                      #(
       
  1066                        #(#MenuItem
       
  1067                           #label: 'FileBrowser Documentation'
       
  1068                           #translateLabel: true
       
  1069                           #value: #openHTMLDocument:
       
  1070                           #argument: 'tools/fbrowser/TOP.html'
       
  1071                       )
       
  1072                     ) nil
       
  1073                     nil
       
  1074                 )
       
  1075             )
       
  1076           ) nil
       
  1077           nil
       
  1078       )
  1096       )
  1079 ! !
  1097 ! !
  1080 
  1098 
  1081 !FileBrowser class methodsFor:'queries'!
  1099 !FileBrowser class methodsFor:'queries'!
  1082 
  1100 
  2368     ]
  2386     ]
  2369 
  2387 
  2370     "Modified: / 16.12.1998 / 17:30:31 / cg"
  2388     "Modified: / 16.12.1998 / 17:30:31 / cg"
  2371 !
  2389 !
  2372 
  2390 
  2373 fileRemoveAndRemoveContainerFromCVS
       
  2374     "remove the selected file(s) and their CVS containers.
       
  2375      Query if user really wants to really remove them."
       
  2376 
       
  2377     |sel q|
       
  2378 
       
  2379     sel := fileListView selection.
       
  2380     sel size > 0 ifTrue:[
       
  2381         sel := sel collect:[:rawIndex | fileList at:rawIndex].
       
  2382         sel size > 1 ifTrue:[
       
  2383             q := resources string:'remove %1 selected files and CVS containers ?' with:(sel size)
       
  2384         ] ifFalse:[
       
  2385             q := resources string:'remove ''%1'' and CVS container ?' with:(sel first asText allBold)
       
  2386         ].
       
  2387         (self sensor shiftDown
       
  2388         or:[self ask:q yesButton:'remove']) ifTrue:[
       
  2389             self withCursor:(Cursor wait) do:[
       
  2390                 self doRemoveAndRemoveFromCVS:sel
       
  2391             ]
       
  2392         ]
       
  2393     ]
       
  2394 
       
  2395     "Modified: / 16.12.1998 / 17:30:31 / cg"
       
  2396 !
       
  2397 
       
  2398 fileRename
  2391 fileRename
  2399     "rename the selected file(s)"
  2392     "rename the selected file(s)"
  2400 
  2393 
  2401     |queryBox|
  2394     |queryBox|
  2402 
  2395 
  3496 "/ Transcript show:'fBrowser:'; showCR:sortByWhat value.
  3489 "/ Transcript show:'fBrowser:'; showCR:sortByWhat value.
  3497     self updateCurrentDirectory
  3490     self updateCurrentDirectory
  3498 
  3491 
  3499     "Created: / 14.8.1998 / 16:17:20 / cg"
  3492     "Created: / 14.8.1998 / 16:17:20 / cg"
  3500     "Modified: / 14.8.1998 / 16:44:00 / cg"
  3493     "Modified: / 14.8.1998 / 16:44:00 / cg"
       
  3494 ! !
       
  3495 
       
  3496 !FileBrowser methodsFor:'menu actions - cvs'!
       
  3497 
       
  3498 cvsRemoveFileAndContainer
       
  3499     "remove the selected file(s) and their CVS containers.
       
  3500      Query if user really wants to really remove them."
       
  3501 
       
  3502     |sel q|
       
  3503 
       
  3504     sel := fileListView selection.
       
  3505     sel size > 0 ifTrue:[
       
  3506         sel := sel collect:[:rawIndex | fileList at:rawIndex].
       
  3507         sel size > 1 ifTrue:[
       
  3508             q := resources string:'remove %1 selected files and CVS containers ?' with:(sel size)
       
  3509         ] ifFalse:[
       
  3510             q := resources string:'remove ''%1'' and CVS container ?' with:(sel first asText allBold)
       
  3511         ].
       
  3512         (self sensor shiftDown
       
  3513         or:[self ask:q yesButton:'remove']) ifTrue:[
       
  3514             self withCursor:(Cursor wait) do:[
       
  3515                 self doRemoveAndRemoveFromCVS:sel
       
  3516             ]
       
  3517         ]
       
  3518     ]
       
  3519 
       
  3520     "Modified: / 16.12.1998 / 17:30:31 / cg"
       
  3521 !
       
  3522 
       
  3523 cvsUpdateDirectoryLocal
       
  3524     "update this directory"
       
  3525 
       
  3526     self
       
  3527         doExecuteCommand:'cvs upd -l' replace:false
       
  3528 
       
  3529     "Modified: / 16.12.1998 / 17:30:31 / cg"
       
  3530 !
       
  3531 
       
  3532 cvsUpdateDirectoryRecursive
       
  3533     "update this directory"
       
  3534 
       
  3535     self
       
  3536         doExecuteCommand:'cvs upd -d' replace:false
       
  3537 
       
  3538     "Modified: / 16.12.1998 / 17:30:31 / cg"
       
  3539 !
       
  3540 
       
  3541 cvsUpdateSelection
       
  3542     "update selected files"
       
  3543 
       
  3544     |sel|
       
  3545 
       
  3546     sel := fileListView selection.
       
  3547     sel size > 0 ifTrue:[
       
  3548         sel := sel collect:[:rawIndex | fileList at:rawIndex].
       
  3549         sel do:[:fn |
       
  3550             self
       
  3551                 doExecuteCommand:('cvs upd ' , fn) replace:false
       
  3552         ]
       
  3553     ].
       
  3554 !
       
  3555 
       
  3556 doRemoveAndRemoveFromCVS:filesToRemove
       
  3557     "remove the selected file(s) and their CVS containers - no questions asked"
       
  3558 
       
  3559     |msg idx needUpdate toRemove updateRunning yesToAll|
       
  3560 
       
  3561     updateRunning := listUpdateProcess notNil.
       
  3562     self stopUpdateProcess.
       
  3563     toRemove := OrderedCollection new.
       
  3564 
       
  3565     "/
       
  3566     "/ did the directory change in the meanwhile ?
       
  3567     "/
       
  3568     needUpdate := (currentDirectory modificationTime > timeOfLastCheck).
       
  3569 
       
  3570     yesToAll := false.
       
  3571     lockUpdate := true.
       
  3572     [
       
  3573         filesToRemove do:[:fileName |
       
  3574             |f|
       
  3575 
       
  3576             f := currentDirectory construct:fileName.
       
  3577             OperatingSystem accessDeniedErrorSignal handle:[:ex|
       
  3578                 "was not able to remove it"
       
  3579                 msg := (resources string:'cannot remove ''%1'' !!' with:fileName).
       
  3580                 self showAlert:msg with:(OperatingSystem lastErrorString)
       
  3581             ] do:[
       
  3582                 |answer contents|
       
  3583 
       
  3584                 (f isSymbolicLink not) ifTrue:[
       
  3585                     self
       
  3586                         doExecuteCommand:('cvs remove -f ' , f baseName)
       
  3587                         replace:false.
       
  3588 
       
  3589 "
       
  3590                 self show:nil
       
  3591 "
       
  3592                     idx := fileList indexOf:fileName.
       
  3593                     idx ~~ 0 ifTrue:[
       
  3594                         toRemove add:idx.
       
  3595                     ]
       
  3596                 ]
       
  3597             ].
       
  3598         ].
       
  3599     ] valueNowOrOnUnwindDo:[
       
  3600         lockUpdate := false.
       
  3601         fileListView setSelection:nil.
       
  3602 
       
  3603         "/
       
  3604         "/ remove reverse - otherwise indices are wrong
       
  3605         "/
       
  3606         toRemove sort.
       
  3607         toRemove reverseDo:[:idx |
       
  3608             fileList removeIndex:idx.
       
  3609             fileListView removeIndex:idx.
       
  3610         ].
       
  3611 
       
  3612         updateRunning ifTrue:[
       
  3613             self updateCurrentDirectory
       
  3614         ] ifFalse:[
       
  3615             "
       
  3616              install a new check after some time
       
  3617             "
       
  3618             needUpdate ifFalse:[timeOfLastCheck := AbsoluteTime now].
       
  3619             Processor removeTimedBlock:checkBlock.
       
  3620             Processor addTimedBlock:checkBlock afterSeconds:checkDelta.
       
  3621         ]
       
  3622     ].
       
  3623 
       
  3624     self
       
  3625         doExecuteCommand:('cvs commit -m ''removed via FileBrowser''')
       
  3626         replace:false.
       
  3627 
       
  3628     "Modified: / 21.10.1998 / 17:02:11 / cg"
  3501 ! !
  3629 ! !
  3502 
  3630 
  3503 !FileBrowser methodsFor:'misc user interaction'!
  3631 !FileBrowser methodsFor:'misc user interaction'!
  3504 
  3632 
  3505 closeRequest
  3633 closeRequest
  5248 
  5376 
  5249     "Modified: / 20.11.1997 / 17:39:14 / stefan"
  5377     "Modified: / 20.11.1997 / 17:39:14 / stefan"
  5250     "Modified: / 21.10.1998 / 17:02:11 / cg"
  5378     "Modified: / 21.10.1998 / 17:02:11 / cg"
  5251 !
  5379 !
  5252 
  5380 
  5253 doRemoveAndRemoveFromCVS:filesToRemove
       
  5254     "remove the selected file(s) and their CVS containers - no questions asked"
       
  5255 
       
  5256     |msg idx needUpdate toRemove updateRunning yesToAll|
       
  5257 
       
  5258     updateRunning := listUpdateProcess notNil.
       
  5259     self stopUpdateProcess.
       
  5260     toRemove := OrderedCollection new.
       
  5261 
       
  5262     "/
       
  5263     "/ did the directory change in the meanwhile ?
       
  5264     "/
       
  5265     needUpdate := (currentDirectory modificationTime > timeOfLastCheck).
       
  5266 
       
  5267     yesToAll := false.
       
  5268     lockUpdate := true.
       
  5269     [
       
  5270         filesToRemove do:[:fileName |
       
  5271             |f|
       
  5272 
       
  5273             f := currentDirectory construct:fileName.
       
  5274             OperatingSystem accessDeniedErrorSignal handle:[:ex|
       
  5275                 "was not able to remove it"
       
  5276                 msg := (resources string:'cannot remove ''%1'' !!' with:fileName).
       
  5277                 self showAlert:msg with:(OperatingSystem lastErrorString)
       
  5278             ] do:[
       
  5279                 |answer contents|
       
  5280 
       
  5281                 (f isSymbolicLink not) ifTrue:[
       
  5282                     OperatingSystem 
       
  5283                         executeCommand:'cvs remove -f ' , f baseName
       
  5284                         inDirectory:currentDirectory pathName.
       
  5285 
       
  5286 "
       
  5287                 self show:nil
       
  5288 "
       
  5289                     idx := fileList indexOf:fileName.
       
  5290                     idx ~~ 0 ifTrue:[
       
  5291                         toRemove add:idx.
       
  5292                     ]
       
  5293                 ]
       
  5294             ].
       
  5295         ].
       
  5296     ] valueNowOrOnUnwindDo:[
       
  5297         lockUpdate := false.
       
  5298         fileListView setSelection:nil.
       
  5299 
       
  5300         "/
       
  5301         "/ remove reverse - otherwise indices are wrong
       
  5302         "/
       
  5303         toRemove sort.
       
  5304         toRemove reverseDo:[:idx |
       
  5305             fileList removeIndex:idx.
       
  5306             fileListView removeIndex:idx.
       
  5307         ].
       
  5308 
       
  5309         updateRunning ifTrue:[
       
  5310             self updateCurrentDirectory
       
  5311         ] ifFalse:[
       
  5312             "
       
  5313              install a new check after some time
       
  5314             "
       
  5315             needUpdate ifFalse:[timeOfLastCheck := AbsoluteTime now].
       
  5316             Processor removeTimedBlock:checkBlock.
       
  5317             Processor addTimedBlock:checkBlock afterSeconds:checkDelta.
       
  5318         ]
       
  5319     ].
       
  5320 
       
  5321     OperatingSystem 
       
  5322         executeCommand:'cvs commit -m ''removed via FileBrowser'''
       
  5323         inDirectory:currentDirectory pathName.
       
  5324 
       
  5325 
       
  5326     "Modified: / 20.11.1997 / 17:39:14 / stefan"
       
  5327     "Modified: / 21.10.1998 / 17:02:11 / cg"
       
  5328 !
       
  5329 
       
  5330 doRename:oldName to:newName
  5381 doRename:oldName to:newName
  5331     "rename a file (or directory)"
  5382     "rename a file (or directory)"
  5332 
  5383 
  5333     |old new|
  5384     |old new|
  5334 
  5385 
  6516 ! !
  6567 ! !
  6517 
  6568 
  6518 !FileBrowser class methodsFor:'documentation'!
  6569 !FileBrowser class methodsFor:'documentation'!
  6519 
  6570 
  6520 version
  6571 version
  6521     ^ '$Header: /cvs/stx/stx/libtool/FileBrowser.st,v 1.306 1999-04-16 17:46:37 cg Exp $'
  6572     ^ '$Header: /cvs/stx/stx/libtool/FileBrowser.st,v 1.307 1999-04-16 18:18:38 cg Exp $'
  6522 ! !
  6573 ! !