hexDump from tools menu implemented
authorpenk
Thu, 27 Feb 2003 11:48:46 +0100
changeset 4620 59601a37cc0b
parent 4619 b59e2d45bc19
child 4621 d033f85c8cc3
hexDump from tools menu implemented
FileApplicationNoteBook.st
--- a/FileApplicationNoteBook.st	Thu Feb 27 11:46:56 2003 +0100
+++ b/FileApplicationNoteBook.st	Thu Feb 27 11:48:46 2003 +0100
@@ -1,77 +1,77 @@
 "{ Package: 'stx:libtool' }"
 
 AbstractFileBrowser subclass:#FileApplicationNoteBook
-	instanceVariableNames:'canvasHolder selectedEditorPage listOfApplications tabMenuIndex
-		tabList selectionHistoryList privateTabList'
-	classVariableNames:''
-	poolDictionaries:''
-	category:'Interface-Tools-File'
+        instanceVariableNames:'canvasHolder selectedEditorPage listOfApplications tabMenuIndex
+                tabList selectionHistoryList privateTabList'
+        classVariableNames:''
+        poolDictionaries:''
+        category:'Interface-Tools-File'
 !
 
 AbstractFileApplicationNoteBookComponent subclass:#ArchiveViewApplication
-	instanceVariableNames:'archiveFileList enableStopButton fileTable currentSortOrder
-		selectionHolder tableColumns commandProcess errorListHolder
-		viewErrorList temporaryDirectory enableRemoveErrorOutput
-		errorListVisibilityHolder hasListEntriesHolder archiver process
-		terminateByMe columnDescriptors inDropMode'
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:FileApplicationNoteBook
+        instanceVariableNames:'archiveFileList enableStopButton fileTable currentSortOrder
+                selectionHolder tableColumns commandProcess errorListHolder
+                viewErrorList temporaryDirectory enableRemoveErrorOutput
+                errorListVisibilityHolder hasListEntriesHolder archiver process
+                terminateByMe columnDescriptors inDropMode'
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:FileApplicationNoteBook
 !
 
 Object subclass:#ArchivItem
-	instanceVariableNames:'fileName size dateAndTime permissions icon ownerGroup method crc
-		compressSize ratio version type isDirectory'
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:FileApplicationNoteBook::ArchiveViewApplication
+        instanceVariableNames:'fileName size dateAndTime permissions icon ownerGroup method crc
+                compressSize ratio version type isDirectory'
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:FileApplicationNoteBook::ArchiveViewApplication
 !
 
 AbstractFileApplicationNoteBookComponent subclass:#CommandResult
-	instanceVariableNames:'resultStream enableStopButton process labelHolder'
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:FileApplicationNoteBook
+        instanceVariableNames:'resultStream enableStopButton process labelHolder'
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:FileApplicationNoteBook
 !
 
 AbstractFileApplicationNoteBookComponent subclass:#HtmlViewApplication
-	instanceVariableNames:'htmlView labelHolder infoLabelHolder'
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:FileApplicationNoteBook
+        instanceVariableNames:'htmlView labelHolder infoLabelHolder'
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:FileApplicationNoteBook
 !
 
 AbstractFileApplicationNoteBookComponent subclass:#ImageViewApplication
-	instanceVariableNames:'imageFile imageView image fitSize fitMode'
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:FileApplicationNoteBook
+        instanceVariableNames:'imageFile imageView image fitSize fitMode'
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:FileApplicationNoteBook
 !
 
 AbstractFileApplicationNoteBookComponent subclass:#Terminal
-	instanceVariableNames:'terminalView'
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:FileApplicationNoteBook
+        instanceVariableNames:'terminalView'
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:FileApplicationNoteBook
 !
 
 AbstractFileApplicationNoteBookComponent subclass:#TextEditor
-	instanceVariableNames:'fileContentsModel doSaveFile modifiedChannel editView enableSave
-		enableReload presentation changeItemProcess closeApplication
-		semaChangeItem printAsHexDump itemChanged itemRemoved
-		enableHexToggle textEditorChangeModificationTime md5CheckSum
-		md5HashValueComputationProcess viewModifiedChannel'
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:FileApplicationNoteBook
+        instanceVariableNames:'fileContentsModel doSaveFile modifiedChannel editView enableSave
+                enableReload presentation changeItemProcess closeApplication
+                semaChangeItem printAsHexDump itemChanged itemRemoved
+                enableHexToggle textEditorChangeModificationTime md5CheckSum
+                md5HashValueComputationProcess viewModifiedChannel'
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:FileApplicationNoteBook
 !
 
 AbstractFileApplicationNoteBookComponent subclass:#XViewApplication
-	instanceVariableNames:'xView xFile vncServerPID vncPortNr vncConnection viewerPID
-		vncLock vncServerIsTerminated xItem ext'
-	classVariableNames:''
-	poolDictionaries:''
-	privateIn:FileApplicationNoteBook
+        instanceVariableNames:'xView xFile vncServerPID vncPortNr vncConnection viewerPID
+                vncLock vncServerIsTerminated xItem ext'
+        classVariableNames:''
+        poolDictionaries:''
+        privateIn:FileApplicationNoteBook
 !
 
 
@@ -440,6 +440,15 @@
 
 openApplicationClass:aClass withItem:aItem withType:aType checkExisting:checkExisting
 
+    ^ self  openApplicationClass:aClass 
+            withItem:aItem 
+            withType:aType 
+            checkExisting:checkExisting 
+            preSetItem:nil
+!
+
+openApplicationClass:aClass withItem:aItem withType:aType checkExisting:checkExisting preSetItem:aBlock
+
     | existingAppl newAppl|
 
     " do not open not readable items "
@@ -448,13 +457,16 @@
             Dialog warn:'Can not open unreadable file ', aItem fileName baseName.
             AbortSignal raise.
         ].
-        existingAppl := self tryToGetExistingApplFor:aClass withItem:aItem withType:aType.
+        existingAppl := self tryToGetExistingApplFor:aClass withItem:aItem withType:aType preSetItem:aBlock.
         existingAppl notNil ifTrue:[
             self doSelect:existingAppl.
             ^ existingAppl
         ].
     ].
     newAppl := aClass new.
+    aBlock notNil ifTrue:[
+        aBlock value:newAppl.    
+    ].
     newAppl type:aType.
     (newAppl item:aItem) ifFalse:[ ^ nil ].
     (aItem notNil and:[(aItem isDirectory not) and:[aType ~= #directoryDescription]]) ifTrue:[
@@ -556,7 +568,7 @@
     ].
 !
 
-tryToGetExistingApplFor:aClass withItem:aItem withType:aType
+tryToGetExistingApplFor:aClass withItem:aItem withType:aType preSetItem:aBlock
 
 
     | sameAppls changeAppl selAppl|
@@ -598,6 +610,9 @@
         ] ifFalse:[
             changeAppl := sameAppls first.
         ].
+        aBlock notNil ifTrue:[
+            aBlock value:changeAppl.
+        ].
         self changeItem:aItem for:changeAppl.
         selAppl := changeAppl.
     ].
@@ -684,6 +699,15 @@
 openTextEditorOn:aItem type:aDirDescrOrFile
 
     ^ self openApplicationClass:TextEditor withItem:aItem withType:aDirDescrOrFile
+!
+
+openTextEditorWithHexPresentationOn:aItem 
+
+    ^ self  openApplicationClass:TextEditor 
+            withItem:aItem 
+            withType:#file 
+            checkExisting:true 
+            preSetItem:[:aTextEditor | aTextEditor presentation:#hexDump].
 ! !
 
 !FileApplicationNoteBook methodsFor:'applicationlist access'!
@@ -3775,7 +3799,8 @@
 
 item:aDirContentsItem
 
-    self item = aDirContentsItem ifTrue:[^ true].
+    (self item = aDirContentsItem and:[(self presentation == #hexDump) == self printAsHexDump value]) ifTrue:[^ true].
+    self printAsHexDump value:(self presentation == #hexDump).
     self stopChangeItemProcess.
     super item:aDirContentsItem.
     (self askForChange) isNil ifTrue:[ ^ false].
@@ -3905,7 +3930,7 @@
 
 getContents
 
-    |file contents present text string|
+    |file contents present|
 
     file := self fileName.
     RecursionInterruptSignal handle:[ : ex |
@@ -4968,5 +4993,5 @@
 !FileApplicationNoteBook class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/FileApplicationNoteBook.st,v 1.64 2003-02-26 16:23:22 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/FileApplicationNoteBook.st,v 1.65 2003-02-27 10:48:46 penk Exp $'
 ! !