#DOCUMENTATION by cg draft
authorClaus Gittinger <cg@exept.de>
Tue, 28 May 2019 08:28:02 +0200
changeset 3669 650468354956
parent 3668 d86e171efa4c
child 3670 3b90ebd379e9
#DOCUMENTATION by cg class: DirectoryView comment/format in: #readMonitoringDirectory
DirectoryView.st
--- a/DirectoryView.st	Tue May 28 03:26:41 2019 +0000
+++ b/DirectoryView.st	Tue May 28 08:28:02 2019 +0200
@@ -497,6 +497,7 @@
 
 readMonitoringDirectory
     <resource: #obsolete>
+
     "this is a very ugly piece of code - 
      left in as a bad example of how to make ST look slow...
      DO NOT USE IT, but read to learn"
@@ -524,6 +525,8 @@
             listOfFiles := self listOfFiles.
             
             oldListOfFiles := listOfFiles copy.
+            "/ why sort, if you make a set anyway ?
+            "/ why make it a set - its the filenames of a folder anyway (no duplicates possible)
             (currentFilenames asSortedCollection: [:f1 :f2| f1 baseName < f2 baseName]) asSet 
                 do: [:fileName| 
                     (oldListOfFiles contains:[:fileRow | fileRow fileName = fileName ])
@@ -531,16 +534,20 @@
                         |nearestFileRow newRow r|
                         
                         newRow := FileRow new fileName: fileName asFilename.
-                        "/ cg: how stupid is that?
+                        "/ how stupid is that?
                         nearestFileRow := listOfFiles indexOf: (listOfFiles detect: [:fileRow| fileRow baseName > fileName baseName] ifNone: nil).
                         "/ nearestFileRow := listOfFiles findFirst:[:fileRow | fileRow baseName > fileName baseName].
                         nearestFileRow = 0
                             ifTrue: [listOfFiles add: newRow]
                             ifFalse: [listOfFiles add: newRow beforeIndex: nearestFileRow].
+                        "/ r is uninitialized - therefore selection is lost
                         monitoring ifTrue: [self selectionOfFile value: r].
                     ]
                 ].
                 
+            "/ modifying while iterating;
+            "/ programmer found that it makes trouble and therefore did it in reverse order
+            "/ (which works, but only by chance)
             listOfFiles 
                 reverseDo: [:fileRow|
                     (currentFilenames includes: fileRow fileName)
@@ -556,6 +563,7 @@
     ]
 
     "Modified: / 19-11-2016 / 20:34:14 / cg"
+    "Modified (format): / 28-05-2019 / 07:26:43 / Claus Gittinger"
 ! !
 
 !DirectoryView methodsFor:'selection'!