Skip to content

Commit

Permalink
added StyledTextModel>>#fromFileNamed:
Browse files Browse the repository at this point in the history
added StyledTextModelTest
  • Loading branch information
bpieber committed Apr 22, 2012
1 parent 674bb3b commit 9399013
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 21 deletions.
68 changes: 55 additions & 13 deletions StyledText.pck
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
'From Cuis 4.0 of 21 April 2012 [latest update: #1260] on 22 April 2012 at 10:52:19 am'!
'From Cuis 4.0 of 21 April 2012 [latest update: #1260] on 22 April 2012 at 1:41:17 pm'!
'Description Please enter a description for this package.'!
!classDefinition: #CharacterStyle category: #StyledText!
Object subclass: #CharacterStyle
Expand Down Expand Up @@ -210,6 +210,16 @@ TextModel subclass: #StyledTextModel
StyledTextModel class
instanceVariableNames: ''!

!classDefinition: #StyledTextModelTest category: #'StyledText-Tests'!
TestCase subclass: #StyledTextModelTest
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'StyledText-Tests'!
!classDefinition: 'StyledTextModelTest class' category: #'StyledText-Tests'!
StyledTextModelTest class
instanceVariableNames: ''!

!classDefinition: #StyledTextTest category: #'StyledText-Tests'!
TestCase subclass: #StyledTextTest
instanceVariableNames: ''
Expand Down Expand Up @@ -3544,30 +3554,26 @@ replaceReferencesToStyle: oldParagraphOrCharacterStyle with: newParagraphOrChara

actualContents replaceReferencesToStyle: oldParagraphOrCharacterStyle with: newParagraphOrCharacterStyle! !

!StyledTextModel methodsFor: 'file save' stamp: 'bp 4/21/2012 14:47'!
!StyledTextModel methodsFor: 'file save' stamp: 'bp 4/22/2012 13:38'!
save
"Answer wether save was successful."
"Note: to enable the use of StyledText in applications, where 'accept' or 'save' have other meanings than 'save to file', we need to merge this class with PluggableTextModel, and have the textProvider be the application."
| refStream |
fileName ifNil: [
fileName _ FillInTheBlank
request: 'File name?'
initialAnswer: ''.
fileName isEmpty ifTrue: [ ^false ]].

self flushUndoRedoCommands.
refStream _ SmartRefStream forceNewFileNamed: fileName.
[ refStream nextPut: self ] ensure: [ refStream close ].
self saveAs: fileName.
^true! !

!StyledTextModel methodsFor: 'file save' stamp: 'jmv 1/6/2012 14:15'!
!StyledTextModel methodsFor: 'file save' stamp: 'bp 4/22/2012 13:38'!
saveAs: aName
| dot |
dot _ FileDirectory extensionDelimiter.
fileName _ (aName includes: dot)
ifTrue: [ aName ]
ifFalse: [ aName, '.object' ].
self save! !
| refStream |
fileName _ self class withExtension: aName.
self flushUndoRedoCommands.
refStream _ SmartRefStream forceNewFileNamed: fileName.
[ refStream nextPut: self ] ensure: [ refStream close ]! !

!StyledTextModel methodsFor: 'Shout Styling' stamp: 'jmv 12/21/2010 23:48'!
shoutAboutToStyle: aSHTextStyler
Expand All @@ -3594,6 +3600,14 @@ styleSetChanged
actualContents beStyledTextWith: styleSet.
self triggerEvent: #stylesChanged! !

!StyledTextModel class methodsFor: 'as yet unclassified' stamp: 'bp 4/22/2012 13:21'!
fromFileNamed: fileName
| file model |
file _ FileStream oldFileNamed: (self withExtension: fileName).
[model _ (SmartRefStream on: file) next] ensure: [file close].
^model
! !

!StyledTextModel class methodsFor: 'as yet unclassified' stamp: 'bp 12/21/2011 10:20'!
new
^self styleSet: StyleSet sample! !
Expand All @@ -3604,6 +3618,34 @@ styleSet: aStyleSet
styleSet: aStyleSet;
yourself! !

!StyledTextModel class methodsFor: 'as yet unclassified' stamp: 'bp 4/22/2012 13:21'!
withExtension: aName
^(aName includes: FileDirectory extensionDelimiter)
ifTrue: [aName]
ifFalse: [aName , '.object']! !

!StyledTextModelTest methodsFor: 'as yet unclassified' stamp: 'bp 4/22/2012 12:14'!
tearDown
FileDirectory default deleteFileNamed: 'StyledTextModelTest.object'! !

!StyledTextModelTest methodsFor: 'as yet unclassified' stamp: 'bp 4/22/2012 13:15'!
testFromFileNamed
| model1 model2 model3 |
model1 _ StyledTextModel new contents: 'Some text' asText.
model1 saveAs: 'StyledTextModelTest'.
model2 _ StyledTextModel fromFileNamed: 'StyledTextModelTest.object'.
self assert: model1 actualContents equals: model2 actualContents.
model3 _ StyledTextModel fromFileNamed: 'StyledTextModelTest'.
self assert: model1 actualContents equals: model3 actualContents! !

!StyledTextModelTest methodsFor: 'as yet unclassified' stamp: 'bp 4/22/2012 12:19'!
testSave
| model |
model _ StyledTextModel new.
self deny: (FileDirectory default fileExists: 'StyledTextModelTest.object').
model saveAs: 'StyledTextModelTest'.
self assert: (FileDirectory default fileExists: 'StyledTextModelTest.object')! !

!StyledTextTest methodsFor: 'tests' stamp: 'jmv 12/20/2011 12:41'!
testAsStyledAsNonStyledSample5
"
Expand Down
15 changes: 7 additions & 8 deletions StyledTextInstaller.pck
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
'From Cuis 4.0 of 3 April 2012 [latest update: #1260] on 21 April 2012 at 3:35:32 pm'!
'From Cuis 4.0 of 21 April 2012 [latest update: #1260] on 22 April 2012 at 1:41:19 pm'!
'Description A small package whose purpose is to install the rest of the packages that comprise the StyledTextEditor project.'!
!classDefinition: #StyledTextInstaller category: #StyledTextInstaller!
Object subclass: #StyledTextInstaller
Expand Down Expand Up @@ -52,12 +52,11 @@ installPackage: packageName
installPackages: packages
packages do: [:each | self installPackage: each]! !

!StyledTextInstaller methodsFor: 'private' stamp: 'bp 4/5/2012 23:22'!
!StyledTextInstaller methodsFor: 'private' stamp: 'bp 4/22/2012 13:23'!
open: name
| file model |
file _ self documentsDirectory oldFileNamed: name, '.object'.
file ifNil: [^nil].
[model _ (SmartRefStream on: file) next] ensure: [file close].
| fileName model |
fileName _ self documentsDirectory fullNameFor: name.
model _ StyledTextModel fromFileNamed: fileName.
^SystemWindow editFancierStyledText: model label: name! !

!StyledTextInstaller methodsFor: 'public' stamp: 'bp 12/4/2011 10:10'!
Expand Down Expand Up @@ -135,9 +134,9 @@ styledTextModelNamed: name
styledTextPackages
^#('RTFImporting' 'RTFExporting' 'RTFTests' 'FFI' 'ExtendedClipboard' 'CrappyOSProcess' 'StyledText' 'StyledTextNotebook' 'StyledTextWiki')! !

!StyledTextInstaller methodsFor: 'public' stamp: 'bp 4/20/2012 21:34'!
!StyledTextInstaller methodsFor: 'public' stamp: 'bp 4/22/2012 11:23'!
update
"
StyledTextInstaller new update
"
self installPackages: (self styledTextPackages add: self class name; yourself)! !
self installPackages: (self styledTextPackages asOrderedCollection add: self class name; yourself)! !

0 comments on commit 9399013

Please sign in to comment.