AbstractFileBrowser.st
changeset 4367 ec4531103e69
parent 4366 97a0311a9539
child 4368 ec625478fad7
equal deleted inserted replaced
4366:97a0311a9539 4367:ec4531103e69
  1496 
  1496 
  1497     "Do not manually edit this!! If it is corrupted,
  1497     "Do not manually edit this!! If it is corrupted,
  1498      the MenuEditor may not be able to read the specification."
  1498      the MenuEditor may not be able to read the specification."
  1499 
  1499 
  1500     "
  1500     "
  1501      MenuEditor new openOnClass:FileBrowserV2 andSelector:#toolsMenuSpec
  1501      MenuEditor new openOnClass:AbstractFileBrowser andSelector:#toolsMenuSpec
  1502      (Menu new fromLiteralArrayEncoding:(FileBrowserV2 toolsMenuSpec)) startUp
  1502      (Menu new fromLiteralArrayEncoding:(AbstractFileBrowser toolsMenuSpec)) startUp
  1503     "
  1503     "
  1504 
  1504 
  1505     <resource: #menu>
  1505     <resource: #menu>
  1506 
  1506 
  1507     ^ 
  1507     ^ 
  1508      #(#Menu
  1508      #(#Menu
  1509         #(
  1509         #(
  1510          #(#MenuItem
  1510          #(#MenuItem
  1511             #label: 'Execute Command...'
  1511             #label: 'Execute Command...'
       
  1512             #itemValue: #doExecuteCommand
  1512             #translateLabel: true
  1513             #translateLabel: true
  1513             #value: #doExecuteCommand
       
  1514           )
  1514           )
  1515          #(#MenuItem
  1515          #(#MenuItem
       
  1516             #enabled: #canDoTerminal
  1516             #label: 'Shell Terminal'
  1517             #label: 'Shell Terminal'
       
  1518             #itemValue: #openTerminal
  1517             #translateLabel: true
  1519             #translateLabel: true
  1518             #isVisible: #canDoTerminalAndSystemIsUnix
  1520             #isVisible: #canDoTerminalAndSystemIsUnix
  1519             #value: #openTerminal
       
  1520             #enabled: #canDoTerminal
       
  1521           )
  1521           )
  1522          #(#MenuItem
  1522          #(#MenuItem
       
  1523             #enabled: #canDoTerminal
  1523             #label: 'DOS Terminal'
  1524             #label: 'DOS Terminal'
       
  1525             #itemValue: #openTerminal
  1524             #translateLabel: true
  1526             #translateLabel: true
  1525             #isVisible: #canDoTerminalAndSystemIsDOS
  1527             #isVisible: #canDoTerminalAndSystemIsDOS
  1526             #value: #openTerminal
       
  1527             #enabled: #canDoTerminal
       
  1528           )
  1528           )
  1529          #(#MenuItem
  1529          #(#MenuItem
  1530             #label: '-'
  1530             #label: '-'
  1531           )
  1531           )
  1532          #(#MenuItem
  1532          #(#MenuItem
       
  1533             #enabled: #hasSelection
  1533             #label: 'Changes Browser'
  1534             #label: 'Changes Browser'
       
  1535             #itemValue: #openChangesBrowser
  1534             #translateLabel: true
  1536             #translateLabel: true
  1535             #value: #openChangesBrowser
       
  1536             #enabled: #hasSelection
       
  1537           )
  1537           )
  1538          #(#MenuItem
  1538          #(#MenuItem
       
  1539             #enabled: #hasSelection
  1539             #label: 'ChangeSet Browser'
  1540             #label: 'ChangeSet Browser'
       
  1541             #itemValue: #openChangeSetBrowser
  1540             #translateLabel: true
  1542             #translateLabel: true
  1541             #value: #openChangeSetBrowser
       
  1542             #enabled: #hasSelection
       
  1543           )
  1543           )
  1544          #(#MenuItem
  1544          #(#MenuItem
       
  1545             #enabled: #hasSnapshotSelection
  1545             #label: 'Snapshot Image Browser'
  1546             #label: 'Snapshot Image Browser'
       
  1547             #itemValue: #openSnapshotImageBrowser
  1546             #translateLabel: true
  1548             #translateLabel: true
  1547             #value: #openSnapshotImageBrowser
       
  1548             #enabled: #hasSnapshotSelection
       
  1549           )
  1549           )
  1550          #(#MenuItem
  1550          #(#MenuItem
       
  1551             #enabled: #canCreateNewProject
  1551             #label: 'Create Smalltalk Project'
  1552             #label: 'Create Smalltalk Project'
       
  1553             #itemValue: #createProjectAndOpenProjectBrowser
  1552             #translateLabel: true
  1554             #translateLabel: true
  1553             #value: #createProjectAndOpenProjectBrowser
       
  1554             #enabled: #canCreateNewProject
       
  1555           )
  1555           )
  1556          #(#MenuItem
  1556          #(#MenuItem
       
  1557             #enabled: #canReadAbbrevFile
  1557             #label: 'Install Autoloaded'
  1558             #label: 'Install Autoloaded'
       
  1559             #itemValue: #readAbbrevFile
  1558             #translateLabel: true
  1560             #translateLabel: true
  1559             #value: #readAbbrevFile
       
  1560             #enabled: #canReadAbbrevFile
       
  1561           )
  1561           )
  1562          #(#MenuItem
  1562          #(#MenuItem
       
  1563             #enabled: #anySTFilesPresent
  1563             #label: 'Install all as Autoloaded'
  1564             #label: 'Install all as Autoloaded'
       
  1565             #itemValue: #installAllAsAutoloaded
  1564             #translateLabel: true
  1566             #translateLabel: true
  1565             #value: #installAllAsAutoloaded
       
  1566             #enabled: #anySTFilesPresent
       
  1567           )
  1567           )
  1568          #(#MenuItem
  1568          #(#MenuItem
       
  1569             #enabled: #hasSelection
  1569             #label: 'Editor'
  1570             #label: 'Editor'
       
  1571             #itemValue: #openEditor
  1570             #translateLabel: true
  1572             #translateLabel: true
  1571             #value: #openEditor
       
  1572             #enabled: #hasSelection
       
  1573           )
  1573           )
  1574          #(#MenuItem
  1574          #(#MenuItem
       
  1575             #enabled: #hasSelection
  1575             #label: 'HTML Reader'
  1576             #label: 'HTML Reader'
       
  1577             #itemValue: #openHTMLReader
  1576             #translateLabel: true
  1578             #translateLabel: true
  1577             #value: #openHTMLReader
       
  1578             #enabled: #hasSelection
       
  1579           )
  1579           )
  1580          #(#MenuItem
  1580          #(#MenuItem
       
  1581             #enabled: #hasASN1AndSelection
  1581             #label: 'ASN1 Browser'
  1582             #label: 'ASN1 Browser'
       
  1583             #itemValue: #openASN1Browser
  1582             #translateLabel: true
  1584             #translateLabel: true
  1583             #isVisible: #hasASN1
  1585             #isVisible: #hasASN1
  1584             #value: #openASN1Browser
       
  1585             #enabled: #hasASN1AndSelection
       
  1586           )
  1586           )
  1587          #(#MenuItem
  1587          #(#MenuItem
       
  1588             #enabled: #hasCBrowser
  1588             #label: 'C Browser'
  1589             #label: 'C Browser'
       
  1590             #itemValue: #openCBrowser
  1589             #translateLabel: true
  1591             #translateLabel: true
  1590             #isVisible: #hasCBrowser
  1592             #isVisible: #hasCBrowser
  1591             #value: #openCBrowser
       
  1592             #enabled: #hasCBrowser
       
  1593           )
  1593           )
  1594          #(#MenuItem
  1594          #(#MenuItem
       
  1595             #enabled: #hasJavaAndSelection
  1595             #label: 'Applet Viewer'
  1596             #label: 'Applet Viewer'
       
  1597             #itemValue: #openAppletViewer
  1596             #translateLabel: true
  1598             #translateLabel: true
  1597             #isVisible: #hasJava
  1599             #isVisible: #hasJava
  1598             #value: #openAppletViewer
       
  1599             #enabled: #hasJavaAndSelection
       
  1600           )
  1600           )
  1601          #(#MenuItem
  1601          #(#MenuItem
  1602             #label: 'Image Inspector'
  1602             #enabled: #hasSelection
       
  1603             #label: 'STX Image Inspector'
       
  1604             #itemValue: #openImageInspector
  1603             #translateLabel: true
  1605             #translateLabel: true
  1604             #value: #openImageInspector
       
  1605             #enabled: #hasSelection
       
  1606           )
  1606           )
  1607          #(#MenuItem
  1607          #(#MenuItem
  1608             #label: 'Image Preview'
  1608             #label: 'Image'
  1609             #translateLabel: true
  1609             #translateLabel: true
  1610             #value: #openImagePreview
  1610             #submenu: 
  1611             #enabled: #hasSelection
  1611            #(#Menu
       
  1612               #(
       
  1613                #(#MenuItem
       
  1614                   #enabled: #hasSelection
       
  1615                   #label: 'Image Editor'
       
  1616                   #itemValue: #openImageEditor
       
  1617                   #translateLabel: true
       
  1618                 )
       
  1619                #(#MenuItem
       
  1620                   #enabled: #hasSelection
       
  1621                   #label: 'Image Preview'
       
  1622                   #itemValue: #openImagePreview
       
  1623                   #translateLabel: true
       
  1624                 )
       
  1625                #(#MenuItem
       
  1626                   #label: '-'
       
  1627                 )
       
  1628                #(#MenuItem
       
  1629                   #enabled: #hasSelection
       
  1630                   #label: 'Convert to GIF'
       
  1631                   #itemValue: #convertImageToGIF
       
  1632                   #translateLabel: true
       
  1633                 )
       
  1634                )
       
  1635               nil
       
  1636               nil
       
  1637             )
  1612           )
  1638           )
  1613          #(#MenuItem
  1639          #(#MenuItem
  1614             #label: 'Image Editor'
  1640             #enabled: #hasMP3PlayerAndSelection
       
  1641             #label: 'MP3 Player'
       
  1642             #itemValue: #openMP3Player
  1615             #translateLabel: true
  1643             #translateLabel: true
  1616             #value: #openImageEditor
  1644             #isVisible: #hasMP3Player
  1617             #enabled: #hasSelection
       
  1618           )
  1645           )
  1619          #(#MenuItem
  1646          #(#MenuItem
  1620             #label: 'MP3 Player'
  1647             #enabled: #hasZipFileSelected
       
  1648             #label: 'ZipFile Tool'
       
  1649             #itemValue: #openZipTool
  1621             #translateLabel: true
  1650             #translateLabel: true
  1622             #isVisible: #hasMP3Player
       
  1623             #value: #openMP3Player
       
  1624             #enabled: #hasMP3PlayerAndSelection
       
  1625           )
  1651           )
  1626          #(#MenuItem
  1652          #(#MenuItem
  1627             #label: 'ZipFile Tool'
  1653             #enabled: #currentFilesAreInSameDirectory
       
  1654             #label: 'Slide Show'
       
  1655             #itemValue: #openSlideShow
  1628             #translateLabel: true
  1656             #translateLabel: true
  1629             #value: #openZipTool
  1657             #isVisible: #hasSlideShow
  1630             #enabled: #hasZipFileSelected
       
  1631           )
  1658           )
  1632          #(#MenuItem
  1659          #(#MenuItem
  1633             #label: 'Slide Show'
  1660             #label: 'Find'
  1634             #translateLabel: true
  1661             #translateLabel: true
  1635             #isVisible: #hasSlideShow
  1662             #submenu: 
  1636             #value: #openSlideShow
  1663            #(#Menu
  1637             #enabled: #currentFilesAreInSameDirectory
  1664               #(
       
  1665                #(#MenuItem
       
  1666                   #label: 'Find a File...'
       
  1667                   #itemValue: #fileFindFile
       
  1668                   #translateLabel: true
       
  1669                 )
       
  1670                #(#MenuItem
       
  1671                   #enabled: #hasSelection
       
  1672                   #label: 'Find All Duplicate Files (Recursive)'
       
  1673                   #itemValue: #fileFindAllDuplicates
       
  1674                   #translateLabel: true
       
  1675                 )
       
  1676                #(#MenuItem
       
  1677                   #label: 'Find Duplicate Files'
       
  1678                   #itemValue: #fileFindDuplicates
       
  1679                   #translateLabel: true
       
  1680                 )
       
  1681                )
       
  1682               nil
       
  1683               nil
       
  1684             )
  1638           )
  1685           )
  1639          #(#MenuItem
  1686          #(#MenuItem
       
  1687             #enabled: #hasSelection
  1640             #label: 'File Differences...'
  1688             #label: 'File Differences...'
       
  1689             #itemValue: #openDiffView
  1641             #translateLabel: true
  1690             #translateLabel: true
  1642             #value: #openDiffView
       
  1643             #enabled: #hasSelection
       
  1644           )
  1691           )
  1645          #(#MenuItem
  1692          #(#MenuItem
  1646             #label: 'Find Duplicate Files'
  1693             #enabled: #hasSelection
       
  1694             #label: 'Hex Dump'
       
  1695             #itemValue: #fileHexDump
  1647             #translateLabel: true
  1696             #translateLabel: true
  1648             #value: #fileFindDuplicates
       
  1649           )
       
  1650          #(#MenuItem
       
  1651             #label: 'Find All Duplicate Files (Recursive)'
       
  1652             #translateLabel: true
       
  1653             #value: #fileFindAllDuplicates
       
  1654             #enabled: #hasSelection
       
  1655           )
       
  1656          #(#MenuItem
       
  1657             #label: 'Find a File...'
       
  1658             #translateLabel: true
       
  1659             #value: #fileFindFile
       
  1660           )
       
  1661          #(#MenuItem
       
  1662             #label: 'Hex Dump'
       
  1663             #translateLabel: true
       
  1664             #value: #fileHexDump
       
  1665             #enabled: #hasSelection
       
  1666           )
  1697           )
  1667          )
  1698          )
  1668         nil
  1699         nil
  1669         nil
  1700         nil
  1670       )
  1701       )
  3405 
  3436 
  3406     ^ self application:#DirectoryContentsBrowser do:#doDelete.
  3437     ^ self application:#DirectoryContentsBrowser do:#doDelete.
  3407 ! !
  3438 ! !
  3408 
  3439 
  3409 !AbstractFileBrowser methodsFor:'menu actions tools'!
  3440 !AbstractFileBrowser methodsFor:'menu actions tools'!
       
  3441 
       
  3442 convertImageToGIF
       
  3443     |img tempFileXPM tempFilePPM tempFileGIF|
       
  3444 
       
  3445     [
       
  3446         self withActivityIndicationDo:[
       
  3447             self currentFileNameHolder value do:[:fileName |
       
  3448                 fileName isDirectory ifFalse:[
       
  3449                     self notifyChannel value:('Convert to GIF:',  fileName baseName).
       
  3450                     img := Image fromFile:(fileName pathName).
       
  3451                     img notNil ifTrue:[
       
  3452                         tempFileXPM  := Filename newTemporary withSuffix:'xpm'.
       
  3453                         tempFilePPM := tempFileXPM withSuffix:'ppm'.
       
  3454                         tempFileGIF := tempFileXPM withSuffix:'gif'.
       
  3455                         [
       
  3456                             img saveOn:tempFileXPM using:XPMReader.
       
  3457 
       
  3458 
       
  3459                             (OperatingSystem 
       
  3460                                     executeCommand:('xpmtoppm %1 > %2' 
       
  3461                                                         bindWith:tempFileXPM pathName
       
  3462                                                         with:tempFilePPM pathName))
       
  3463                             ifFalse:[
       
  3464                                 self warn:'Cannot convert to ppm format'.
       
  3465                             ] ifTrue:[
       
  3466                                 (OperatingSystem 
       
  3467                                         executeCommand:('ppmtogif %1 > %2' 
       
  3468                                                             bindWith:tempFilePPM pathName
       
  3469                                                             with:tempFileGIF pathName))
       
  3470                                 ifFalse:[
       
  3471                                     self warn:'Cannot convert to gif format'.
       
  3472                                 ] ifTrue:[
       
  3473                                     tempFileGIF moveTo:(fileName withSuffix:'gif').
       
  3474                                     self updateAndSelect:nil.
       
  3475                                 ].
       
  3476                             ].
       
  3477                         ] ensure:[
       
  3478                             tempFileXPM delete.
       
  3479                             tempFilePPM delete.
       
  3480                             tempFileGIF delete.
       
  3481                         ]
       
  3482                     ] ifFalse:[
       
  3483                         self warn:'Unknown format/not an image: ' , fileName asString
       
  3484                     ]
       
  3485                 ]
       
  3486             ].
       
  3487             self notifyChannel value:''.
       
  3488         ]
       
  3489     ] fork.
       
  3490 !
  3410 
  3491 
  3411 createProjectAndOpenProjectBrowser
  3492 createProjectAndOpenProjectBrowser
  3412     |nm f s directory|
  3493     |nm f s directory|
  3413 
  3494 
  3414     self currentFilesAreInSameDirectory ifFalse:[^ self].
  3495     self currentFilesAreInSameDirectory ifFalse:[^ self].
  5307 ! !
  5388 ! !
  5308 
  5389 
  5309 !AbstractFileBrowser class methodsFor:'documentation'!
  5390 !AbstractFileBrowser class methodsFor:'documentation'!
  5310 
  5391 
  5311 version
  5392 version
  5312     ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.70 2002-12-11 15:29:46 penk Exp $'
  5393     ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.71 2002-12-11 16:15:21 penk Exp $'
  5313 ! !
  5394 ! !