--- a/ObjectView.st Wed Aug 23 16:06:07 2006 +0200
+++ b/ObjectView.st Wed Aug 23 16:14:04 2006 +0200
@@ -2610,6 +2610,52 @@
self fileInContentsFrom:aStream redraw:redraw new:new binary:false
!
+fileInContentsFrom:aStream redraw:redraw new:new binary:binary
+ "if the new argument is true, remove all objects.
+ Then load objects from aStream. If redraw is false, no redraw
+ is done
+ (allows fileIn of multiple files doing a single redraw at the end)."
+
+ binary ifTrue:[
+ aStream binary
+ ].
+ self topView withReadCursorDo:[
+ |newObject chunk individualRedraw|
+
+ self unselect.
+ individualRedraw := redraw.
+ new ifTrue:[
+ self removeAll.
+ individualRedraw := false.
+ ].
+ [aStream atEnd] whileFalse:[
+ binary ifTrue:[
+ newObject := Object readBinaryFrom:aStream
+ ] ifFalse:[
+ chunk := aStream nextChunk.
+ (chunk size > 0) ifTrue:[
+ newObject := Compiler evaluate:chunk compile:false.
+ ] ifFalse:[
+ newObject := nil
+ ]
+ ].
+ newObject notNil ifTrue:[
+ self initializeFileInObject:newObject.
+ individualRedraw ifFalse:[
+ self addObjectWithoutRedraw:newObject
+ ] ifTrue:[
+ self addObject:newObject
+ ]
+ ]
+ ].
+ (new and:[redraw]) ifTrue:[
+ self invalidate
+ ]
+ ]
+
+ "Modified: / 30.1.1998 / 01:02:16 / cg"
+!
+
initializeFileInObject:anObject
"each object may be processed here after its being filed-in
- subclasses may do whatever they want here ...
@@ -3361,5 +3407,5 @@
!ObjectView class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libwidg/ObjectView.st,v 1.120 2006-08-23 14:06:07 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg/ObjectView.st,v 1.121 2006-08-23 14:14:04 cg Exp $'
! !