StartupLoader default executeAtomicItems: { StartupAction name: 'EpiceaSorterValidation' code: [ | button total shouldLoad | (Smalltalk isInteractive and: [ (Smalltalk globals includesKey: #EpVoter) not and: [ SystemVersion current major >= 3 ]]) ifTrue: [ "Give a change to cancel load..." total := 3. shouldLoad := true. button := ButtonModel new. (button label: 'Cancel'; extent: 500@100; action: [ shouldLoad := false. button window close ]; openWithSpec) centered. 0 to: total do: [ :n | [ button window title: 'Epicea Task Clustering: Load starting in ', ((total - n) asString, ' seconds') ] valueAfterWaiting: n seconds ]. [ button window isClosed ifFalse: [ button window close ]. "Finally, start load." shouldLoad ifTrue: [ | loadingTime | self inform: 'Epicea Task Clustering: Load started'. loadingTime := [ [ Gofer it smalltalkhubUser: 'MartinDias' project: 'Epicea'; configurationOf: 'EpiceaSorter'; load. #ConfigurationOfEpiceaSorter asClass loadStable. ] asJob title: 'Epicea Task Clustering: Load started'; run ] timeToRun. self inform: 'Epicea Task Clustering: Load finished (', loadingTime asSeconds asString, ' seconds)'. self inform: 'Epicea Task Clustering: Validation started'. ] ] valueAfterWaiting: total seconds ] ] runOnce: true. }.