--- a/FileApplicationNoteBook.st Fri Sep 19 14:57:17 2003 +0200
+++ b/FileApplicationNoteBook.st Fri Sep 19 16:16:04 2003 +0200
@@ -70,9 +70,10 @@
AbstractFileApplicationNoteBookComponent subclass:#TextEditor
instanceVariableNames:'fileContentsModel modifiedChannel editView enableSave
enableReload presentation changeItemProcess closeApplication
- semaChangeItem printAsHexDump itemChanged itemRemoved
- enableHexToggle md5CheckSum md5HashValueComputationProcess
- viewModifiedChannel textEditorModificationTime checkModifiedBlock'
+ semaChangeItem wantToPrintAsHexDump printAsHexDump itemChanged
+ itemRemoved enableHexToggle md5CheckSum
+ md5HashValueComputationProcess viewModifiedChannel
+ textEditorModificationTime checkModifiedBlock'
classVariableNames:''
poolDictionaries:''
privateIn:FileApplicationNoteBook
@@ -1011,7 +1012,7 @@
tryCloseApplications
self listOfApplications do:[:appl|
- appl doClose not ifTrue:[
+ appl doClose ifFalse:[
^ false.
].
].
@@ -3760,68 +3761,68 @@
<resource: #menu>
^
- #(#Menu
- #(
- #(#MenuItem
- #label: 'Save'
- #translateLabel: true
- #isButton: true
- #nameKey: #Save
- #value: #accept
- #enabled: #enableSave
- #labelImage: #(#ResourceRetriever #ToolbarIconLibrary #saveToFile28x22Icon)
+ #(Menu
+ (
+ (MenuItem
+ enabled: enableSave
+ label: 'Save'
+ itemValue: accept
+ nameKey: Save
+ translateLabel: true
+ isButton: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary saveToFile28x22Icon)
)
- #(#MenuItem
- #label: 'Reload'
- #translateLabel: true
- #isButton: true
- #nameKey: #Reload
- #value: #reload
- #enabled: #enableReload
- #labelImage: #(#ResourceRetriever #ToolbarIconLibrary #reloadFromFile28x22Icon)
+ (MenuItem
+ enabled: enableReload
+ label: 'Reload'
+ itemValue: reload
+ nameKey: Reload
+ translateLabel: true
+ isButton: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary reloadFromFile28x22Icon)
)
- #(#MenuItem
- #label: ''
+ (MenuItem
+ label: ''
)
- #(#MenuItem
- #label: 'Print'
- #translateLabel: true
- #isButton: true
- #nameKey: #Print
- #value: #doPrint
- #enabled: #enableHexToggle
- #labelImage: #(#ResourceRetriever #ToolbarIconLibrary #printer22x22Icon)
+ (MenuItem
+ enabled: enableHexToggle
+ label: 'Print'
+ itemValue: doPrint
+ nameKey: Print
+ translateLabel: true
+ isButton: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary printer22x22Icon)
)
- #(#MenuItem
- #label: ''
+ (MenuItem
+ label: ''
)
- #(#MenuItem
- #label: 'Hex'
- #translateLabel: true
- #isButton: true
- #enabled: #enableHexToggle
- #labelImage: #(#ResourceRetriever #AbstractFileBrowser #hexToggle22x22Icon)
- #indication: #printAsHexDump
+ (MenuItem
+ enabled: enableHexToggle
+ label: 'Hex'
+ translateLabel: true
+ isButton: true
+ indication: printAsHexDump
+ labelImage: (ResourceRetriever AbstractFileBrowser hexToggle22x22Icon)
)
- #(#MenuItem
- #label: ''
+ (MenuItem
+ label: ''
)
- #(#MenuItem
- #label: 'Diff to Current'
- #translateLabel: true
- #isButton: true
- #value: #openDiffView
- #labelImage: #(#ResourceRetriever #AbstractFileBrowser #diffIcon)
+ (MenuItem
+ label: 'Diff to Current'
+ itemValue: openDiffView
+ translateLabel: true
+ isButton: true
+ labelImage: (ResourceRetriever AbstractFileBrowser diffIcon)
)
- #(#MenuItem
- #label: 'Close'
- #translateLabel: true
- #isButton: true
- #hideMenuOnActivated: false
- #isVisible: #isEmbeddedApplication
- #startGroup: #right
- #value: #doClose
- #labelImage: #(#ResourceRetriever #AbstractFileBrowser #closeIcon)
+ (MenuItem
+ label: 'Close'
+ itemValue: doClose
+ translateLabel: true
+ isButton: true
+ startGroup: right
+ isVisible: isEmbeddedApplication
+ hideMenuOnActivated: false
+ labelImage: (ResourceRetriever AbstractFileBrowser closeIcon)
)
)
nil
@@ -3835,9 +3836,10 @@
self releaseCheckModify.
(self item = aDirContentsItem and:[(self presentation == #hexDump) == self printAsHexDump value]) ifTrue:[^ true].
+ self askForChange.
+
super item:aDirContentsItem.
self printAsHexDump value:(self presentation == #hexDump) withoutNotifying:self.
- (self askForChange) isNil ifTrue:[ ^ false].
self setContents ifFalse:[ ^ false].
checkModifiedBlock isNil ifTrue:[
checkModifiedBlock := [
@@ -3903,33 +3905,33 @@
!
askForChange
- "ask for save changes
+ "ask for save changes;
+ if modified and answered true, the current contents is written back (accepted)
"
|answer string arg|
- answer := false.
- self modifiedChannel value ifTrue:[
- arg := self fileName baseName allBold.
-
- self itemChanged value ifTrue:[
- string := '%1 was changed by someone else.\Save your changes (overwrite someones changes) ?'
- ].
+ self modifiedChannel value ifFalse:[ ^ false].
+
+ arg := self fileName baseName allBold.
+
+ self itemChanged value ifTrue:[
+ string := '%1 was changed by someone else.\Save your changes anyway (overwrite someones changes) ?'
+ ] ifFalse:[
self itemRemoved value ifTrue:[
string := '%1 was removed by someone else.\Save your changes anyway (recreate the removed file) ?'
- ].
- string isNil ifTrue:[
+ ] ifFalse:[
string := 'Save changed file %1 ?'.
- ].
+ ]
].
- string notNil ifTrue:[
- answer := (Dialog confirmWithCancel:(resources string:string with:arg) withCRs).
- answer isNil ifTrue:[^ nil].
- answer ifTrue:[
- self accept
- ] ifFalse:[
- self setContents.
- ]
+
+ answer := (Dialog confirmWithCancel:(resources string:string with:arg) withCRs).
+ answer isNil ifTrue:[^ AbortOperationRequest raise ].
+
+ answer ifTrue:[
+ self accept
+ ] ifFalse:[
+ self setContents.
].
^ answer
!
@@ -3959,7 +3961,7 @@
doClose
- (self askForChange) isNil ifTrue:[ ^ false].
+ self askForChange.
self masterApplication notNil ifTrue:[
^ super doClose
].
@@ -4317,24 +4319,19 @@
self itemModified.
^ self
].
+
changedObject == self printAsHexDump ifTrue:[
- (self askForChange) isNil ifTrue:[
- self printAsHexDump value:changedObject value not withoutNotifying:self.
- ^ self
+ AbortOperationRequest handle:[:ex |
+ self printAsHexDump value:false withoutNotifying:self.
+ ^ self.
+ ] do:[
+ self askForChange.
].
- changedObject value ifTrue:[
- self presentation:#hexDump.
- ] ifFalse:[
- self presentation:#asText.
- ].
+ self presentation:(changedObject value ifTrue:[#hexDump] ifFalse:[#asText]).
self changeInformation.
self setContents.
editView notNil ifTrue:[
- (self presentation == #hexDump) ifTrue:[
- editView readOnly:true.
- ] ifFalse:[
- editView readOnly:false.
- ].
+ editView readOnly:(self presentation == #hexDump).
].
^ self
].
@@ -4952,5 +4949,5 @@
!FileApplicationNoteBook class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/FileApplicationNoteBook.st,v 1.106 2003-09-17 08:43:17 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/FileApplicationNoteBook.st,v 1.107 2003-09-19 14:16:04 cg Exp $'
! !