[squeak-dev] The Trunk: Tools-fbs.484.mcz
Chris Muller
asqueaker at gmail.com
Fri Jul 12 20:04:22 UTC 2013
Good riddance. :)
On Wed, Jul 10, 2013 at 6:45 AM, <commits at source.squeak.org> wrote:
> Frank Shearar uploaded a new version of Tools to project The Trunk:
> http://source.squeak.org/trunk/Tools-fbs.484.mcz
>
> ==================== Summary ====================
>
> Name: Tools-fbs.484
> Author: fbs
> Time: 10 July 2013, 12:44:59.096 pm
> UUID: 883de497-3a88-4049-8d6b-2104778300b9
> Ancestors: Tools-dtl.483
>
> Deprecate FileList2. It looks like cruft. It has one user vocal enough to say he used it (Stephane Rollandin), and he says it's fine to remove it.
>
> =============== Diff against Tools-dtl.483 ===============
>
> Item was removed:
> - FileList subclass: #FileList2
> - instanceVariableNames: 'showDirsInFileList currentDirectorySelected fileSelectionBlock dirSelectionBlock optionalButtonSpecs modalView directoryChangeBlock ok'
> - classVariableNames: ''
> - poolDictionaries: ''
> - category: 'Tools-FileList'!
> - FileList2 class
> - instanceVariableNames: 'lastSelDir'!
> -
> - !FileList2 commentStamp: 'BJP 11/19/2003 21:13' prior: 0!
> - Some variations on FileList that
> - - use a hierarchical pane to show folder structure
> - - use different pane combinations, button layouts and prefiltering for specific uses
> -
> - FileList2 morphicView openInWorld "an alternative to the standard FileList"
> - FileList2 morphicViewNoFile openInWorld "useful for selecting, but not viewing"
> - FileList2 morphicViewProjectLoader openInWorld "useful for finding and loading projects"
> - FileList2 modalFolderSelector "allows the user to select a folder"
> -
> -
> -
> - !
> - FileList2 class
> - instanceVariableNames: 'lastSelDir'!
>
> Item was removed:
> - ----- Method: FileList2 class>>addFullPanesTo:from: (in category 'utility') -----
> - addFullPanesTo: window from: aCollection
> -
> -
> -
> - aCollection do: [ :each | | frame |
> - frame := LayoutFrame
> - fractions: each second
> - offsets: each third.
> - window addMorph: each first fullFrame: frame.
> - ]!
>
> Item was removed:
> - ----- Method: FileList2 class>>blueButtonText:textColor:color:inWindow: (in category 'blue ui') -----
> - blueButtonText: aString textColor: textColor color: aColor inWindow: window
> - | result |
> - result := window
> - fancyText: aString translated
> - font: Preferences standardEToysFont
> - color: textColor.
> - result setProperty: #buttonText toValue: aString;
> - hResizing: #rigid;
> - extent: 100 @ 20;
> - layoutInset: 4;
> - borderWidth: ColorTheme current dialogButtonBorderWidth;
> - useRoundedCorners.
> - aColor isNil
> - ifFalse: [""result color: aColor. result borderColor: aColor muchDarker].
> - ^ result!
>
> Item was removed:
> - ----- Method: FileList2 class>>blueButtonText:textColor:color:inWindow:balloonText:selector:recipient: (in category 'blue ui') -----
> - blueButtonText: aString textColor: textColor color: aColor inWindow: window balloonText: balloonText selector: sel recipient: recip
> - | result |
> - result := window
> - fancyText: aString translated
> - font: Preferences standardEToysFont
> - color: textColor.
> - result setProperty: #buttonText toValue: aString;
> - hResizing: #rigid;
> - extent: 100 @ 20;
> - layoutInset: 4;
> - borderWidth: ColorTheme current dialogButtonBorderWidth;
> - useRoundedCorners;
> - setBalloonText: balloonText.
> - result
> - on: #mouseUp
> - send: sel
> - to: recip.
> - aColor isNil
> - ifFalse: [""
> - result color: aColor.
> - result borderColor: aColor muchDarker].
> - ^ result!
>
> Item was removed:
> - ----- Method: FileList2 class>>blueButtonText:textColor:inWindow: (in category 'blue ui') -----
> - blueButtonText: aString textColor: textColor inWindow: window
> - ^ self
> - blueButtonText: aString
> - textColor: textColor
> - color: nil
> - inWindow: window!
>
> Item was removed:
> - ----- Method: FileList2 class>>blueButtonText:textColor:inWindow:balloonText:selector:recipient: (in category 'blue ui') -----
> - blueButtonText: aString textColor: textColor inWindow: window balloonText: balloonText selector: sel recipient: recip
> - ^ self
> - blueButtonText: aString
> - textColor: textColor
> - color: nil
> - inWindow: window
> - balloonText: balloonText
> - selector: sel
> - recipient: recip !
>
> Item was removed:
> - ----- Method: FileList2 class>>enableTypeButtons:info:forDir: (in category 'blue ui') -----
> - enableTypeButtons: typeButtons info: fileTypeInfo forDir: aDirectory
> -
> - | foundSuffixes firstEnabled |
> -
> - firstEnabled := nil.
> - foundSuffixes := (aDirectory ifNil: [ #()] ifNotNil: [ aDirectory fileNames]) collect: [ :each | (each findTokens: '.') last asLowercase].
> - foundSuffixes := foundSuffixes asSet.
> - fileTypeInfo with: typeButtons do: [ :info :button | | enableIt fileSuffixes |
> - fileSuffixes := info second.
> - enableIt := fileSuffixes anySatisfy: [ :patt | foundSuffixes includes: patt].
> - button
> - setProperty: #enabled
> - toValue: enableIt.
> - enableIt ifTrue: [firstEnabled ifNil: [firstEnabled := button]].
> - ].
> - firstEnabled ifNotNil: [^firstEnabled mouseUp: nil].
> - typeButtons do: [ :each | each color: Color gray].
> -
> - !
>
> Item was removed:
> - ----- Method: FileList2 class>>endingSpecs (in category 'blue ui') -----
> - endingSpecs
> - "Answer a collection of specs to build the selective 'find anything' tool called by the Navigator. This version uses the services registry to do so."
> - "FileList2 morphicViewGeneralLoaderInWorld: World"
> - | categories specs rejects |
> - rejects := #(addFileToNewZip: compressFile: openInZipViewer: extractAllFrom: openOn:).
> - categories := #(
> - ('Art' ('bmp' 'gif' 'jpg' 'jpeg' 'form' 'png' 'pcx' 'xbm' 'xpm' 'ppm' 'pbm'))
> - ('Morphs' ('morph' 'morphs' 'sp'))
> - ('Projects' ('extseg' 'project' 'pr'))
> - ('MIDI' ('mid' 'midi'))
> - ('Music' ('mp3'))
> - ('Movies' ('movie' 'mpg' 'mpeg' 'qt' 'mov'))
> - ('Flash' ('swf'))
> - ).
> -
> - "('Books' ('bo'))"
> - "('Code' ('st' 'cs'))"
> - "('TrueType' ('ttf'))"
> - "('3ds' ('3ds'))"
> - "('Tape' ('tape'))"
> - "('Wonderland' ('wrl'))"
> - "('HTML' ('htm' 'html'))"
> -
> - categories first at: 2 put: ImageReadWriter allTypicalFileExtensions.
> - specs := OrderedCollection new.
> - categories do: [ :cat | | catSpecs catServices okExtensions services |
> - services := Dictionary new.
> - catSpecs := Array new: 3.
> - catServices := OrderedCollection new.
> - okExtensions := Set new.
> -
> - cat second do: [ :ext | (FileList itemsForFile: 'fred.',ext) do: [ :i |
> - (rejects includes: i selector) ifFalse: [
> - okExtensions add: ext.
> - services at: i label put: i ]]].
> - services do: [ :svc | catServices add: svc ].
> - services isEmpty ifFalse: [
> - catSpecs at: 1 put: cat first;
> - at: 2 put: okExtensions;
> - at: 3 put: catServices.
> - specs add: catSpecs ]
> - ].
> - ^specs
> - !
>
> Item was removed:
> - ----- Method: FileList2 class>>hideSqueakletDirectoryBlock (in category 'as yet unclassified') -----
> - hideSqueakletDirectoryBlock
> - ^[:dirName| (dirName sameAs: 'Squeaklets') not]!
>
> Item was removed:
> - ----- Method: FileList2 class>>lastSelDir (in category 'accessing') -----
> - lastSelDir
> - "Return the last selected directory or the default directory if no directory was selected so far."
> -
> - ^lastSelDir ifNil: [ lastSelDir := FileDirectory default ]!
>
> Item was removed:
> - ----- Method: FileList2 class>>lastSelDir: (in category 'accessing') -----
> - lastSelDir: aFileDirectory
> - "Store the last selected directory. This will be selected as default in newly opened file or folder selectors"
> -
> - ^lastSelDir := aFileDirectory!
>
> Item was removed:
> - ----- Method: FileList2 class>>modalFileSelector (in category 'modal dialogs') -----
> - modalFileSelector
> -
> - | window |
> -
> - window := self morphicViewFileSelector.
> - window openCenteredInWorld.
> - self modalLoopOn: window.
> - ^(window valueOfProperty: #fileListModel) getSelectedFile!
>
> Item was removed:
> - ----- Method: FileList2 class>>modalFileSelectorForSuffixes: (in category 'modal dialogs') -----
> - modalFileSelectorForSuffixes: aList
> -
> - | window aFileList |
> -
> - window := self morphicViewFileSelectorForSuffixes: aList.
> - aFileList := window valueOfProperty: #fileListModel.
> - window openCenteredInWorld.
> - self modalLoopOn: window.
> - ^aFileList getSelectedFile!
>
> Item was removed:
> - ----- Method: FileList2 class>>modalFileSelectorForSuffixes:directory: (in category 'modal dialogs') -----
> - modalFileSelectorForSuffixes: aList directory: aDirectory
> -
> - | window aFileList |
> -
> - window := self morphicViewFileSelectorForSuffixes: aList directory: aDirectory.
> - aFileList := window valueOfProperty: #fileListModel.
> - window openCenteredInWorld.
> - self modalLoopOn: window.
> - ^aFileList getSelectedFile!
>
> Item was removed:
> - ----- Method: FileList2 class>>modalFolderSelector (in category 'modal dialogs') -----
> - modalFolderSelector
> -
> - ^self modalFolderSelector: self lastSelDir
> - !
>
> Item was removed:
> - ----- Method: FileList2 class>>modalFolderSelector: (in category 'modal dialogs') -----
> - modalFolderSelector: aDir
> -
> - | window fileModel |
> - window := self morphicViewFolderSelector: aDir.
> - fileModel := window model.
> - window openInWorld: self currentWorld extent: 300 at 400.
> - self modalLoopOn: window.
> - ^fileModel getSelectedDirectory withoutListWrapper!
>
> Item was removed:
> - ----- Method: FileList2 class>>modalFolderSelectorForProject: (in category 'modal dialogs') -----
> - modalFolderSelectorForProject: aProject
> - "
> - FileList2 modalFolderSelectorForProject: Project current
> - "
> - | window fileModel w |
> -
> - window := FileList2 morphicViewProjectSaverFor: aProject.
> - fileModel := window valueOfProperty: #FileList.
> - w := self currentWorld.
> - window position: w topLeft + (w extent - window extent // 2).
> - w addMorphInLayer: window.
> - w startSteppingSubmorphsOf: window.
> - self modalLoopOn: window.
> - ^fileModel getSelectedDirectory withoutListWrapper!
>
> Item was removed:
> - ----- Method: FileList2 class>>modalFolderSelectorForProjectLoad (in category 'modal dialogs') -----
> - modalFolderSelectorForProjectLoad
> -
> - | window fileModel w |
> -
> - window := self morphicViewProjectLoader2InWorld: self currentWorld reallyLoad: false.
> - fileModel := window valueOfProperty: #FileList.
> - w := self currentWorld.
> - window position: w topLeft + (w extent - window extent // 2).
> - window openInWorld: w.
> - self modalLoopOn: window.
> - ^fileModel getSelectedDirectory withoutListWrapper!
>
> Item was removed:
> - ----- Method: FileList2 class>>modalLoopOn: (in category 'utility') -----
> - modalLoopOn: aMorph
> - [aMorph world notNil] whileTrue: [
> - aMorph outermostWorldMorph doOneCycle.
> - ].!
>
> Item was removed:
> - ----- Method: FileList2 class>>morphicViewFileSelector (in category 'morphic ui') -----
> - morphicViewFileSelector
> -
> - ^self morphicViewFileSelectorForSuffixes: nil
> - !
>
> Item was removed:
> - ----- Method: FileList2 class>>morphicViewFileSelectorForSuffixes: (in category 'morphic ui') -----
> - morphicViewFileSelectorForSuffixes: aList
> - "Answer a morphic file-selector tool for the given suffix list."
> -
> - ^self morphicViewFileSelectorForSuffixes: aList directory: self lastSelDir!
>
> Item was removed:
> - ----- Method: FileList2 class>>morphicViewFileSelectorForSuffixes:directory: (in category 'morphic ui') -----
> - morphicViewFileSelectorForSuffixes: aList directory: dir
> - "Answer a morphic file-selector tool for the given suffix list and the given directory."
> -
> - | aFileList window fixedSize midLine gap |
> - aFileList := self new directory: dir.
> - aFileList optionalButtonSpecs: aFileList okayAndCancelServices.
> - aList ifNotNil:
> - [aFileList fileSelectionBlock: [:entry :myPattern |
> - entry isDirectory
> - ifTrue:
> - [false]
> - ifFalse:
> - [aList includes: (FileDirectory extensionFor: entry name asLowercase)]]].
> - window := BorderedMorph new
> - layoutPolicy: ProportionalLayout new;
> - color: Color lightBlue;
> - borderColor: Color blue;
> - borderWidth: 4;
> - layoutInset: 4;
> - extent: 600 at 400;
> - useRoundedCorners.
> - window setProperty: #fileListModel toValue: aFileList.
> - aFileList modalView: window.
> - midLine := 0.4.
> - fixedSize := 25.
> - gap := 5.
> - self addFullPanesTo: window from: {
> - {self textRow: 'Please select a file'. 0 @ 0 corner: 1 @ 0. 0 at 0 corner: 0 at fixedSize}.
> - {aFileList optionalButtonRow. 0 @ 0 corner: 1 @ 0. 0 at fixedSize corner: 0@(fixedSize * 2)}.
> - {aFileList morphicDirectoryTreePane. 0 at 0 corner: midLine at 1.
> - gap @(fixedSize * 2) corner: gap negated at 0}.
> - {aFileList morphicFileListPane. midLine @ 0 corner: 1 at 1.
> - gap@(fixedSize * 2) corner: gap negated at 0}.
> - }.
> -
> - aFileList postOpen.
> -
> - ^ window !
>
> Item was removed:
> - ----- Method: FileList2 class>>morphicViewFolderSelector (in category 'morphic ui') -----
> - morphicViewFolderSelector
> -
> - ^self morphicViewFolderSelector: FileDirectory default!
>
> Item was removed:
> - ----- Method: FileList2 class>>morphicViewFolderSelector: (in category 'morphic ui') -----
> - morphicViewFolderSelector: aDir
> - "Answer a tool that allows the user to select a folder"
> -
> - | aFileList window fixedSize |
> - aFileList := self new directory: aDir.
> - aFileList optionalButtonSpecs: aFileList servicesForFolderSelector.
> - window := (SystemWindow labelled: aDir pathName) model: aFileList.
> - aFileList modalView: window.
> -
> - fixedSize := 25.
> - self addFullPanesTo: window from: {
> - {self textRow: 'Please select a folder'. 0 @ 0 corner: 1 @ 0.
> - 0 at 0 corner: 0 at fixedSize}.
> - {aFileList optionalButtonRow. 0 @ 0 corner: 1 @ 0.
> - 0 at fixedSize corner: 0@(fixedSize * 2)}.
> - {aFileList morphicDirectoryTreePane. 0 at 0 corner: 1 at 1.
> - 0@(fixedSize * 2) corner: 0 at 0}.
> - }.
> - aFileList postOpen.
> - ^ window !
>
> Item was removed:
> - ----- Method: FileList2 class>>morphicViewGeneralLoaderInWorld: (in category 'blue ui') -----
> - morphicViewGeneralLoaderInWorld: aWorld
> - "
> - FileList2 morphicViewGeneralLoaderInWorld: self currentWorld
> - "
> - | window aFileList buttons treePane textColor1 fileListPane pane2a pane2b fileTypeInfo fileTypeButtons fileTypeRow actionRow |
> -
> - fileTypeInfo := self endingSpecs.
> - window := AlignmentMorphBob1 newColumn.
> - window hResizing: #shrinkWrap; vResizing: #shrinkWrap.
> - textColor1 := Color r: 0.742 g: 0.839 b: 1.0.
> - aFileList := self new directory: FileDirectory default.
> - aFileList
> - fileSelectionBlock: self projectOnlySelectionBlock;
> - modalView: window.
> - window
> - setProperty: #FileList toValue: aFileList;
> - wrapCentering: #center; cellPositioning: #topCenter;
> - borderWidth: ColorTheme current dialogBorderWidth;
> - borderColor: ColorTheme current dialogBorderColor;
> - useRoundedCorners.
> -
> - fileTypeButtons := fileTypeInfo collect: [ :each |
> - (self blueButtonText: each first textColor: Color gray inWindow: window)
> - setProperty: #enabled toValue: true;
> - hResizing: #shrinkWrap;
> - useSquareCorners
> - ].
> - buttons := {{'OK'. ColorTheme current okColor}. {'Cancel'. ColorTheme current cancelColor}} collect: [ :each |
> - self blueButtonText: each first textColor: textColor1 color: each second inWindow: window
> - ].
> -
> - treePane := aFileList morphicDirectoryTreePane
> - extent: 250 at 300;
> - retractable: false;
> - borderWidth: 0.
> - fileListPane := aFileList morphicFileListPane
> - extent: 350 at 300;
> - retractable: false;
> - borderWidth: 0.
> - window addARow: {window fancyText: 'Find...' translated font: Preferences standardEToysTitleFont color: textColor1}.
> - fileTypeRow := window addARowCentered: fileTypeButtons cellInset: 2.
> - actionRow := window addARowCentered: {
> - buttons first.
> - (Morph new extent: 30 at 5) color: Color transparent.
> - buttons second
> - } cellInset: 2.
> - window
> - addARow: {
> - (window inAColumn: {(pane2a := window inARow: {window inAColumn: {treePane}})
> - useRoundedCorners;
> - layoutInset: 0;
> - borderWidth: ColorTheme current dialogPaneBorderWidth;
> - borderColor: ColorTheme current dialogPaneBorderColor
> - }) layoutInset: 10.
> - (window inAColumn: {(pane2b := window inARow: {window inAColumn: {fileListPane}})
> - useRoundedCorners;
> - layoutInset: 0;
> - borderWidth: ColorTheme current dialogPaneBorderWidth;
> - borderColor: ColorTheme current dialogPaneBorderColor
> - }) layoutInset: 10.
> - }.
> - window fullBounds.
> - window fillWithRamp: ColorTheme current dialogRampOrColor oriented: 0.65.
> - pane2a fillWithRamp: ColorTheme current dialogPaneRampOrColor oriented: (0.7 @ 0.35).
> - pane2b fillWithRamp: ColorTheme current dialogPaneRampOrColor oriented: (0.7 @ 0.35).
> - "
> - buttons do: [ :each |
> - each fillWithRamp: ColorTheme current dialogButtonsRampOrColor oriented: (0.75 @ 0).
> - ].
> - "
> - fileTypeButtons do: [ :each |
> - each
> - on: #mouseUp
> - send: #value:value:
> - to: [ :evt :morph |
> - self update: actionRow in: window fileTypeRow: fileTypeRow morphUp: morph.
> - ]
> - ].
> - buttons first on: #mouseUp send: #okHit to: aFileList.
> - buttons second on: #mouseUp send: #cancelHit to: aFileList.
> - aFileList postOpen.
> - window position: aWorld topLeft + (aWorld extent - window extent // 2).
> - aFileList directoryChangeBlock: [ :newDir |
> - self update: actionRow in: window fileTypeRow: fileTypeRow morphUp: nil.
> - self enableTypeButtons: fileTypeButtons info: fileTypeInfo forDir: newDir.
> - ].
> - aFileList directory: aFileList directory.
> - window adoptPaneColor: (Color r: 0.548 g: 0.677 b: 1.0).
> - window becomeModal.
> - ^ window openInWorld: aWorld.!
>
> Item was removed:
> - ----- Method: FileList2 class>>morphicViewImageViewer (in category 'morphic ui') -----
> - morphicViewImageViewer
> -
> - | dir aFileList window midLine fixedSize |
> -
> - dir := FileDirectory default.
> - aFileList := self new directory: dir.
> - aFileList optionalButtonSpecs: aFileList specsForImageViewer.
> - aFileList fileSelectionBlock: [ :entry :myPattern |
> - entry isDirectory ifTrue: [
> - false
> - ] ifFalse: [
> - #('bmp' 'gif' 'jpg' 'form' 'png') includes:
> - (FileDirectory extensionFor: entry name asLowercase)
> - ]
> - ].
> - window := (SystemWindow labelled: dir pathName) model: aFileList.
> -
> - fixedSize := 25.
> - midLine := 0.4.
> - self addFullPanesTo: window from: {
> - {aFileList optionalButtonRow. 0 @ 0 corner: 1 @ 0.
> - 0 at 0 corner: 0 at fixedSize}.
> - {aFileList morphicDirectoryTreePane. 0 at 0 corner: midLine at 1.
> - 0 at fixedSize corner: 0 at 0}.
> - {aFileList morphicFileListPane. midLine @ 0 corner: 1 at 1.
> - 0 at fixedSize corner: 0 at 0}.
> - }.
> - aFileList postOpen.
> - ^ window !
>
> Item was removed:
> - ----- Method: FileList2 class>>morphicViewNoFile (in category 'morphic ui') -----
> - morphicViewNoFile
> -
> - | dir aFileList window midLine fixedSize |
> -
> - dir := FileDirectory default.
> - aFileList := self new directory: dir.
> - window := (SystemWindow labelled: dir pathName) model: aFileList.
> -
> - fixedSize := 25.
> - midLine := 0.4.
> - self addFullPanesTo: window from: {
> - {aFileList morphicPatternPane. 0 at 0 corner: 0.3 at 0. 0 at 0 corner: 0 at fixedSize}.
> - {aFileList optionalButtonRow. 0.3 @ 0 corner: 1 at 0. 0 at 0 corner: 0 at fixedSize}.
> - {aFileList morphicDirectoryTreePane. 0 at 0 corner: midLine at 1. 0 at fixedSize corner: 0 at 0}.
> - {aFileList morphicFileListPane. midLine @ 0 corner: 1 at 1. 0 at fixedSize corner: 0 at 0}.
> - }.
> - aFileList postOpen.
> - ^ window !
>
> Item was removed:
> - ----- Method: FileList2 class>>morphicViewProjectLoader (in category 'morphic ui') -----
> - morphicViewProjectLoader
> -
> - | dir aFileList window midLine fixedSize |
> -
> - dir := FileDirectory default.
> - aFileList := self new directory: dir.
> - aFileList optionalButtonSpecs: aFileList servicesForProjectLoader.
> - aFileList fileSelectionBlock: self projectOnlySelectionBlock.
> - window := (SystemWindow labelled: dir pathName) model: aFileList.
> -
> - fixedSize := 25.
> - midLine := 0.4.
> - self addFullPanesTo: window from: {
> - {aFileList optionalButtonRow. 0 @ 0 corner: 1 @ 0. 0 at 0 corner: 0 at fixedSize}.
> - {aFileList morphicDirectoryTreePane. 0 at 0 corner: midLine at 1. 0 at fixedSize corner: 0 at 0}.
> - {aFileList morphicFileListPane. midLine @ 0 corner: 1 at 1. 0 at fixedSize corner: 0 at 0}.
> - }.
> - aFileList postOpen.
> - ^ window !
>
> Item was removed:
> - ----- Method: FileList2 class>>morphicViewProjectLoader2InWorld: (in category 'blue ui') -----
> - morphicViewProjectLoader2InWorld: aWorld
> -
> - ^self morphicViewProjectLoader2InWorld: aWorld reallyLoad: true!
>
> Item was removed:
> - ----- Method: FileList2 class>>morphicViewProjectLoader2InWorld:reallyLoad: (in category 'blue ui') -----
> - morphicViewProjectLoader2InWorld: aWorld reallyLoad: aBoolean
> -
> - ^self
> - morphicViewProjectLoader2InWorld: aWorld
> - reallyLoad: aBoolean
> - dirFilterType: #initialDirectoryList
> - !
>
> Item was removed:
> - ----- Method: FileList2 class>>morphicViewProjectLoader2InWorld:reallyLoad:dirFilterType: (in category 'blue ui') -----
> - morphicViewProjectLoader2InWorld: aWorld reallyLoad: aBoolean dirFilterType: aSymbol
> -
> - | window aFileList buttons treePane textColor1 fileListPane pane2a pane2b treeExtent filesExtent |
> -
> - window := AlignmentMorphBob1 newColumn.
> - window hResizing: #shrinkWrap; vResizing: #shrinkWrap.
> - textColor1 := Color r: 0.742 g: 0.839 b: 1.0.
> - aFileList := self new directory: FileDirectory default.
> - aFileList
> - optionalButtonSpecs: aFileList servicesForProjectLoader;
> - fileSelectionBlock: (
> - aSymbol == #limitedSuperSwikiDirectoryList ifTrue: [
> - MessageSend receiver: self selector: #projectOnlySelectionMethod:
> - ] ifFalse: [
> - self projectOnlySelectionBlock
> - ]
> - );
> - "dirSelectionBlock: self hideSqueakletDirectoryBlock;"
> - modalView: window.
> - window
> - setProperty: #FileList toValue: aFileList;
> - wrapCentering: #center; cellPositioning: #topCenter;
> - borderWidth: ColorTheme current dialogBorderWidth;
> - borderColor: ColorTheme current dialogBorderColor;
> - useRoundedCorners.
> - buttons := {{'OK'. ColorTheme current okColor}. {'Cancel'. ColorTheme current cancelColor}} collect: [ :each |
> - self blueButtonText: each first textColor: textColor1 color: each second inWindow: window
> - ].
> -
> - aWorld width < 800 ifTrue: [
> - treeExtent := 150 at 300.
> - filesExtent := 350 at 300.
> - ] ifFalse: [
> - treeExtent := 250 at 300.
> - filesExtent := 350 at 300.
> - ].
> - (treePane := aFileList morphicDirectoryTreePaneFiltered: aSymbol)
> - extent: treeExtent;
> - retractable: false;
> - borderWidth: 0.
> - fileListPane := aFileList morphicFileListPane
> - extent: filesExtent;
> - retractable: false;
> - borderWidth: 0.
> - window
> - addARow: {
> - window fancyText: 'Load A Project' translated font: Preferences standardEToysTitleFont color: textColor1
> - };
> - addARowCentered: {
> - buttons first.
> - (Morph new extent: 30 at 5) color: Color transparent.
> - buttons second
> - };
> - addARow: {
> - window fancyText: 'Please select a project' translated font: Preferences standardEToysFont color: textColor1
> - };
> - addARow: {
> - (window inAColumn: {(pane2a := window inARow: {window inAColumn: {treePane}})
> - useRoundedCorners;
> - layoutInset: 0;
> - borderWidth: ColorTheme current dialogPaneBorderWidth;
> - borderColor: ColorTheme current dialogPaneBorderColor
> - }) layoutInset: 10.
> - (window inAColumn: {(pane2b := window inARow: {window inAColumn: {fileListPane}})
> - useRoundedCorners;
> - layoutInset: 0;
> - borderWidth: ColorTheme current dialogPaneBorderWidth;
> - borderColor: ColorTheme current dialogPaneBorderColor
> - }) layoutInset: 10.
> - }.
> - window fullBounds.
> - window fillWithRamp: ColorTheme current dialogRampOrColor oriented: 0.65.
> - pane2a fillWithRamp: ColorTheme current dialogPaneRampOrColor oriented: (0.7 @ 0.35).
> - pane2b fillWithRamp: ColorTheme current dialogPaneRampOrColor oriented: (0.7 @ 0.35).
> - "
> - buttons do: [ :each |
> - each fillWithRamp: ColorTheme current dialogButtonsRampOrColor oriented: (0.75 @ 0).
> - ].
> - "
> - buttons first
> - on: #mouseUp
> - send: (aBoolean ifTrue: [#okHitForProjectLoader] ifFalse: [#okHit])
> - to: aFileList.
> - buttons second on: #mouseUp send: #cancelHit to: aFileList.
> - aFileList postOpen.
> - window position: aWorld topLeft + (aWorld extent - window extent // 2).
> - window adoptPaneColor: (Color r: 0.548 g: 0.677 b: 1.0).
> - window becomeModal.
> - ^ window openInWorld: aWorld.!
>
> Item was removed:
> - ----- Method: FileList2 class>>morphicViewProjectSaverFor: (in category 'blue ui') -----
> - morphicViewProjectSaverFor: aProject
> - "
> - (FileList2 morphicViewProjectSaverFor: Project current) openInWorld
> - "
> - | window aFileList buttons treePane pane2 textColor1 option treeExtent buttonData buttonRow |
> -
> - textColor1 := Color r: 0.742 g: 0.839 b: 1.0.
> - aFileList := self new directory: ServerDirectory projectDefaultDirectory.
> - aFileList dirSelectionBlock: self hideSqueakletDirectoryBlock.
> - window := AlignmentMorphBob1 newColumn.
> - window hResizing: #shrinkWrap; vResizing: #shrinkWrap.
> - aFileList modalView: window.
> - window
> - setProperty: #FileList toValue: aFileList;
> - wrapCentering: #center; cellPositioning: #topCenter;
> - borderWidth: ColorTheme current dialogBorderWidth;
> - borderColor: ColorTheme current dialogBorderColor;
> - useRoundedCorners.
> -
> - buttonData := Preferences enableLocalSave
> - ifTrue: [{
> - {'Save'. #okHit. 'Save in the place specified below, and in the Squeaklets folder on your local disk'. ColorTheme current okColor}.
> - {'Save on local disk only'. #saveLocalOnlyHit. 'saves in the Squeaklets folder'. ColorTheme current okColor}.
> - {'Cancel'. #cancelHit. 'return without saving'. ColorTheme current cancelColor}
> - }]
> - ifFalse: [{
> - {'Save'. #okHit. 'Save in the place specified below, and in the Squeaklets folder on your local disk'. ColorTheme current okColor}.
> - {'Cancel'. #cancelHit. 'return without saving'. ColorTheme current cancelColor}
> - }].
> - buttons := buttonData collect: [ :each |
> - (self blueButtonText: each first textColor: textColor1 color: each fourth inWindow: window)
> - setBalloonText: each third translated;
> - hResizing: #shrinkWrap;
> - on: #mouseUp send: each second to: aFileList
> - ].
> -
> - option := aProject world
> - valueOfProperty: #SuperSwikiPublishOptions
> - ifAbsent: [#initialDirectoryList].
> - aProject world removeProperty: #SuperSwikiPublishOptions.
> -
> - treeExtent := World height < 500
> - ifTrue: [ 350 at 150 ]
> - ifFalse: [ 350 at 300 ].
> -
> - (treePane := aFileList morphicDirectoryTreePaneFiltered: option)
> - extent: treeExtent;
> - retractable: false;
> - borderWidth: 0.
> - window
> - addARowCentered: {
> - window fancyText: 'Publish This Project' translated font: Preferences standardEToysTitleFont color: textColor1
> - }.
> - buttonRow := OrderedCollection new.
> - buttons do: [:button | buttonRow add: button] separatedBy: [buttonRow add: ((Morph new extent: 30 at 5) color: Color transparent)].
> -
> - " addARowCentered: {
> - buttons first.
> - (Morph new extent: 30 at 5) color: Color transparent.
> - buttons second.
> - (Morph new extent: 30 at 5) color: Color transparent.
> - buttons third
> - };"
> - window
> - addARowCentered: buttonRow;
> - addARowCentered: { (window inAColumn: {(ProjectViewMorph on: aProject) lock}) layoutInset: 4};
> - addARowCentered: {
> - window fancyText: 'Please select a folder' translated font: Preferences standardEToysFont color: textColor1
> - };
> - addARow: {
> - (
> - window inAColumn: {
> - (pane2 := window inARow: {window inAColumn: {treePane}})
> - useRoundedCorners;
> - layoutInset: 0;
> - borderWidth: ColorTheme current dialogPaneBorderWidth;
> - borderColor: ColorTheme current dialogPaneBorderColor
> - }
> - ) layoutInset: 10
> - }.
> - window fullBounds.
> - window fillWithRamp: ColorTheme current dialogRampOrColor oriented: 0.65.
> - pane2 fillWithRamp: ColorTheme current dialogPaneRampOrColor oriented: (0.7 @ 0.35).
> - "
> - buttons do: [ :each |
> - each fillWithRamp: ColorTheme current dialogButtonsRampOrColor oriented: (0.75 @ 0).
> - ].
> - "
> - window setProperty: #morphicLayerNumber toValue: 11.
> - aFileList postOpen.
> - window adoptPaneColor: (Color r: 0.548 g: 0.677 b: 1.0).
> - ^ window !
>
> Item was removed:
> - ----- Method: FileList2 class>>openMorphicViewInWorld (in category 'instance creation') -----
> - openMorphicViewInWorld
> - "FileList2 openMorphicViewInWorld"
> - ^self morphicView openInWorld!
>
> Item was removed:
> - ----- Method: FileList2 class>>projectOnlySelectionBlock (in category 'as yet unclassified') -----
> - projectOnlySelectionBlock
> -
> - ^[ :entry :myPattern |
> - entry isDirectory ifTrue: [
> - false
> - ] ifFalse: [
> - #('*.pr' '*.pr.gz' '*.project') anySatisfy: [ :each | each match: entry name]
> - ]
> - ]!
>
> Item was removed:
> - ----- Method: FileList2 class>>projectOnlySelectionMethod: (in category 'as yet unclassified') -----
> - projectOnlySelectionMethod: incomingEntries
> -
> - | versionsAccepted |
> -
> - "this shows only the latest version of each project"
> - versionsAccepted := Dictionary new.
> - incomingEntries do: [ :entry | | basicInfoTuple basicVersion basicName |
> - entry isDirectory ifFalse: [
> - (#('*.pr' '*.pr.gz' '*.project') anySatisfy: [ :each | each match: entry name]) ifTrue: [
> - basicInfoTuple := Project parseProjectFileName: entry name.
> - basicName := basicInfoTuple first.
> - basicVersion := basicInfoTuple second.
> - ((versionsAccepted includesKey: basicName) and:
> - [(versionsAccepted at: basicName) first > basicVersion]) ifFalse: [
> - versionsAccepted at: basicName put: {basicVersion. entry}
> - ].
> - ]
> - ]
> - ].
> - ^versionsAccepted asArray collect: [ :each | each second]!
>
> Item was removed:
> - ----- Method: FileList2 class>>prototypicalToolWindow (in category 'instance creation') -----
> - prototypicalToolWindow
> - "Answer an example of myself seen in a tool window, for the benefit of parts-launching tools"
> -
> - ^ self morphicView applyModelExtent!
>
> Item was removed:
> - ----- Method: FileList2 class>>selectionBlockForSuffixes: (in category 'as yet unclassified') -----
> - selectionBlockForSuffixes: anArray
> -
> - ^[ :entry :myPattern |
> - entry isDirectory ifTrue: [
> - false
> - ] ifFalse: [
> - anArray anySatisfy: [ :each | each match: entry name]
> - ]
> - ]!
>
> Item was removed:
> - ----- Method: FileList2 class>>textRow: (in category 'utility') -----
> - textRow: aString
> -
> - ^AlignmentMorph newRow
> - wrapCentering: #center; cellPositioning: #leftCenter;
> - color: Color transparent;
> - layoutInset: 0;
> - addMorph: (
> - AlignmentMorph newColumn
> - wrapCentering: #center; cellPositioning: #topCenter;
> - color: Color transparent;
> - vResizing: #shrinkWrap;
> - layoutInset: 0;
> - addMorph: (
> - AlignmentMorph newRow
> - wrapCentering: #center; cellPositioning: #leftCenter;
> - color: Color transparent;
> - hResizing: #shrinkWrap;
> - vResizing: #shrinkWrap;
> - layoutInset: 0;
> - addMorph: ((StringMorph contents: aString) color: Color blue; lock)
> - )
> - )!
>
> Item was removed:
> - ----- Method: FileList2 class>>update:in:fileTypeRow:morphUp: (in category 'morphic ui') -----
> - update: actionRow in: window fileTypeRow: fileTypeRow morphUp: morph
> -
> - | fileTypeInfo info2 buttons textColor1 fileSuffixes fileActions aFileList fileTypeString |
> -
> - (morph notNil and:[(morph valueOfProperty: #enabled) not]) ifTrue: [^self].
> - fileTypeRow submorphsDo: [ :sub |
> - sub color: (
> - sub == morph
> - ifTrue: [Color white]
> - ifFalse: [(sub valueOfProperty: #enabled)
> - ifTrue: [Color transparent] ifFalse: [Color gray]]
> - ).
> - ].
> - fileTypeString := morph isNil ifTrue:['xxxx'] ifFalse:[morph valueOfProperty: #buttonText].
> -
> - aFileList := window valueOfProperty: #FileList.
> - textColor1 := Color r: 0.742 g: 0.839 b: 1.0.
> - actionRow removeAllMorphs.
> - fileTypeInfo := self endingSpecs.
> - info2 := fileTypeInfo detect: [ :each | each first = fileTypeString] ifNone: [ nil ].
> - info2 isNil
> - ifTrue:[
> - buttons := OrderedCollection new
> - ]
> - ifFalse:[
> - fileSuffixes := info2 second.
> - fileActions := info2 third.
> - buttons := fileActions collect: [ :each | aFileList blueButtonForService: each textColor: textColor1 inWindow: window ].
> - buttons do: [ :each |
> - each fillWithRamp: ColorTheme current okColor oriented: (0.75 @ 0).
> - ].
> - ].
> - buttons addLast: (self
> - blueButtonText: 'Cancel'
> - textColor: textColor1
> - color: ColorTheme current cancelColor
> - inWindow: window
> - balloonText: 'Cancel this search' selector: #cancelHit recipient: aFileList).
> - buttons do: [ :each | actionRow addMorphBack: each].
> - window fullBounds.
> - fileSuffixes isNil ifFalse:[
> - aFileList fileSelectionBlock: (
> - self selectionBlockForSuffixes: (fileSuffixes collect: [ :each | '*.',each])
> - ).
> - ].
> - aFileList updateFileList.!
>
> Item was removed:
> - ----- Method: FileList2>>addNewDirectory (in category 'own services') -----
> - addNewDirectory
> - super addNewDirectory.
> - self updateDirectory.!
>
> Item was removed:
> - ----- Method: FileList2>>blueButtonForService:textColor:inWindow: (in category 'user interface') -----
> - blueButtonForService: aService textColor: textColor inWindow: window
> - | block result |
> - block := [self fullName isNil
> - ifTrue: [self inform: 'Please select a file' translated]
> - ifFalse: [aService performServiceFor: self]].
> - result := window
> - fancyText: aService buttonLabel capitalized translated
> - font: Preferences standardEToysFont
> - color: textColor.
> - result setProperty: #buttonText toValue: aService buttonLabel capitalized;
> - hResizing: #rigid;
> - extent: 100 @ 20;
> - layoutInset: 4;
> - borderWidth: ColorTheme current dialogButtonBorderWidth;
> - useRoundedCorners;
> - setBalloonText: aService label.
> - result
> - on: #mouseUp
> - send: #value
> - to: block.
> - ^ result!
>
> Item was removed:
> - ----- Method: FileList2>>cancelHit (in category 'private') -----
> - cancelHit
> -
> - modalView delete.
> - directory := fileName := currentDirectorySelected := nil.!
>
> Item was removed:
> - ----- Method: FileList2>>changeDirectoryTo: (in category 'volume list and pattern') -----
> - changeDirectoryTo: aFileDirectory
> - "Change directory as requested."
> -
> - self directory: aFileDirectory.
> - self updateDirectory!
>
> Item was removed:
> - ----- Method: FileList2>>currentDirectorySelected (in category 'private') -----
> - currentDirectorySelected
> - ^ currentDirectorySelected
> - !
>
> Item was removed:
> - ----- Method: FileList2>>deleteDirectory (in category 'own services') -----
> - deleteDirectory
> - super deleteDirectory.
> - self updateDirectory.!
>
> Item was removed:
> - ----- Method: FileList2>>dirSelectionBlock: (in category 'initialization') -----
> - dirSelectionBlock: aBlock
> - dirSelectionBlock := aBlock!
>
> Item was removed:
> - ----- Method: FileList2>>directory (in category 'volume list and pattern') -----
> - directory
> -
> - ^directory!
>
> Item was removed:
> - ----- Method: FileList2>>directory: (in category 'initialization') -----
> - directory: dir
> - "Set the path of the volume to be displayed."
> -
> - self okToChange ifFalse: [^ self].
> -
> - self modelSleep.
> - directory := dir.
> - self modelWakeUp.
> -
> - sortMode == nil ifTrue: [sortMode := #date].
> - volList := Array with: '[]'.
> - directory ifNotNil: [
> - volList := volList, directory pathParts. "Nesting suggestion from RvL"
> - ].
> - volList := volList withIndexCollect: [:each :i | ( String new: i-1 withAll: $ ), each].
> - self changed: #relabel.
> - self changed: #volumeList.
> - self pattern: pattern.
> - directoryChangeBlock ifNotNil: [directoryChangeBlock value: directory].!
>
> Item was removed:
> - ----- Method: FileList2>>directoryChangeBlock: (in category 'initialization') -----
> - directoryChangeBlock: aBlockOrNil
> -
> - directoryChangeBlock := aBlockOrNil.!
>
> Item was removed:
> - ----- Method: FileList2>>directoryNamesFor: (in category 'private') -----
> - directoryNamesFor: item
> - "item may be file directory or server directory"
> - | entries |
> - entries := item directoryNames.
> - dirSelectionBlock ifNotNil:[entries := entries select: dirSelectionBlock].
> - ^entries!
>
> Item was removed:
> - ----- Method: FileList2>>dropDestinationDirectory:event: (in category 'drag''n''drop') -----
> - dropDestinationDirectory: dest event: evt
> - "Answer a FileDirectory representing the drop destination in the directory hierarchy morph dest"
> - self isThisEverCalled.
> - ^ (dest itemFromPoint: evt position) withoutListWrapper!
>
> Item was removed:
> - ----- Method: FileList2>>fileSelectionBlock: (in category 'initialization') -----
> - fileSelectionBlock: aBlock
> -
> - fileSelectionBlock := aBlock!
>
> Item was removed:
> - ----- Method: FileList2>>getSelectedDirectory (in category 'private') -----
> - getSelectedDirectory
> - ok == true ifFalse: [^ nil].
> - ^ currentDirectorySelected
> - !
>
> Item was removed:
> - ----- Method: FileList2>>getSelectedFile (in category 'private') -----
> - getSelectedFile
> - "Answer a filestream on the selected file. If it cannot be opened for read/write, try read-only before giving up; answer nil if unsuccessful"
> -
> - ok == true ifFalse: [^ nil].
> - directory ifNil: [^ nil].
> - fileName ifNil: [^ nil].
> - ^ (directory oldFileNamed: fileName) ifNil:
> - [directory readOnlyFileNamed: fileName]!
>
> Item was removed:
> - ----- Method: FileList2>>importImage (in category 'own services') -----
> - importImage
> - "Import the given image file and store the resulting Form in the default Imports"
> -
> - | fname image |
> - fname := fileName sansPeriodSuffix.
> - image := Form fromFileNamed: self fullName.
> - Imports default importImage: image named: fname.
> - !
>
> Item was removed:
> - ----- Method: FileList2>>initialDirectoryList (in category 'initialization') -----
> - initialDirectoryList
> -
> - | dirList |
> - dirList := (FileDirectory on: '') directoryNames collect: [ :each |
> - FileDirectoryWrapper with: (FileDirectory on: each) name: each model: self].
> - dirList isEmpty ifTrue:[
> - dirList := Array with: (FileDirectoryWrapper
> - with: FileDirectory default
> - name: FileDirectory default localName
> - model: self)].
> - dirList := dirList,(
> - ServerDirectory serverNames collect: [ :n | | nameToShow dir |
> - dir := ServerDirectory serverNamed: n.
> - nameToShow := n.
> - (dir directoryWrapperClass with: dir name: nameToShow model: self)
> - balloonText: dir realUrl
> - ]
> - ).
> - ^dirList!
>
> Item was removed:
> - ----- Method: FileList2>>initialize (in category 'initialize-release') -----
> - initialize
> -
> - super initialize.
> - showDirsInFileList := false.
> - fileSelectionBlock := [ :entry :myPattern |
> - entry isDirectory ifTrue: [
> - showDirsInFileList
> - ] ifFalse: [
> - myPattern = '*' or: [myPattern match: entry name]
> - ]
> - ].
> - dirSelectionBlock := [ :dirName | true].!
>
> Item was removed:
> - ----- Method: FileList2>>isDirectoryList: (in category 'drag''n''drop') -----
> - isDirectoryList: aMorph
> - ^aMorph isKindOf: SimpleHierarchicalListMorph!
>
> Item was removed:
> - ----- Method: FileList2>>labelString (in category 'initialization') -----
> - labelString
> - ^ (directory ifNil: [^'[]']) pathName contractTo: 50!
>
> Item was removed:
> - ----- Method: FileList2>>limitedSuperSwikiDirectoryList (in category 'initialization') -----
> - limitedSuperSwikiDirectoryList
> -
> - | dirList localDirName localDir |
> -
> - dirList := OrderedCollection new.
> - ServerDirectory serverNames do: [ :n | | dir nameToShow |
> - dir := ServerDirectory serverNamed: n.
> - dir isProjectSwiki ifTrue: [
> - nameToShow := n.
> - dirList add: ((dir directoryWrapperClass with: dir name: nameToShow model: self)
> - balloonText: dir realUrl)
> - ].
> - ].
> - ServerDirectory localProjectDirectories do: [ :each |
> - dirList add: (FileDirectoryWrapper with: each name: each localName model: self)
> - ].
> - "Make sure the following are always shown, but not twice"
> - localDirName := SecurityManager default untrustedUserDirectory.
> - localDir := FileDirectory on: localDirName.
> - ((ServerDirectory localProjectDirectories collect: [:each | each pathName]) includes: localDirName)
> - ifFalse: [dirList add: (FileDirectoryWrapper with: localDir name: localDir localName model: self)].
> - FileDirectory default pathName = localDirName
> - ifFalse: [dirList add: (FileDirectoryWrapper with: FileDirectory default name: FileDirectory default localName model: self)].
> - (dirList anySatisfy: [:each | each withoutListWrapper acceptsUploads])
> - ifFalse: [dirList add: (FileDirectoryWrapper with: FileDirectory default name: FileDirectory default localName model: self)].
> - ^dirList!
>
> Item was removed:
> - ----- Method: FileList2>>limitedSuperSwikiPublishDirectoryList (in category 'initialization') -----
> - limitedSuperSwikiPublishDirectoryList
> -
> - | dirList localDirName localDir |
> -
> - dirList := self publishingServers.
> - ServerDirectory localProjectDirectories do: [ :each |
> - dirList add: (FileDirectoryWrapper with: each name: each localName model: self)].
> -
> - "Make sure the following are always shown, but not twice"
> - localDirName := SecurityManager default untrustedUserDirectory.
> - localDir := FileDirectory on: localDirName.
> - ((ServerDirectory localProjectDirectories collect: [:each | each pathName]) includes: localDirName)
> - ifFalse: [dirList add: (FileDirectoryWrapper with: localDir name: localDir localName model: self)].
> - FileDirectory default pathName = localDirName
> - ifFalse: [dirList add: (FileDirectoryWrapper with: FileDirectory default name: FileDirectory default localName model: self)].
> - ^dirList!
>
> Item was removed:
> - ----- Method: FileList2>>listForPattern: (in category 'volume list and pattern') -----
> - listForPattern: pat
> - "Make the list be those file names which match the pattern."
> -
> - | sizePad newList entries |
> - directory ifNil: [^#()].
> - entries := (Preferences eToyLoginEnabled
> - and: [Utilities authorNamePerSe notNil])
> - ifTrue: [directory matchingEntries: {'submittedBy: ' , Utilities authorName.} ]
> - ifFalse: [directory entries].
> - (fileSelectionBlock isKindOf: MessageSend) ifTrue: [
> - fileSelectionBlock arguments: {entries}.
> - newList := fileSelectionBlock value.
> - fileSelectionBlock arguments: #().
> - ] ifFalse: [
> - newList := entries select: [:entry | fileSelectionBlock value: entry value: pat].
> - ].
> - newList := newList asArray sort: self sortBlock.
> - sizePad := (newList inject: 0 into: [:mx :entry | mx max: entry fileSize])
> - asStringWithCommas size - 1.
> - ^newList collect: [ :e | self fileNameFormattedFrom: e sizePad: sizePad ]!
>
> Item was removed:
> - ----- Method: FileList2>>listForPatterns: (in category 'volume list and pattern') -----
> - listForPatterns: anArray
> - "Make the list be those file names which match the patterns."
> -
> - | sizePad newList |
> - directory ifNil: [^#()].
> - (fileSelectionBlock isKindOf: MessageSend) ifTrue: [
> - fileSelectionBlock arguments: {directory entries}.
> - newList := fileSelectionBlock value.
> - fileSelectionBlock arguments: #().
> - ] ifFalse: [
> - newList := Set new.
> - anArray do: [ :pat |
> - newList addAll: (directory entries select: [:entry | fileSelectionBlock value: entry value: pat]) ].
> - ].
> - newList := newList asArray sort: self sortBlock.
> - sizePad := (newList inject: 0 into: [:mx :entry | mx max: entry fileSize])
> - asStringWithCommas size.
> - ^newList collect: [ :e | self fileNameFormattedFrom: e sizePad: sizePad ]!
>
> Item was removed:
> - ----- Method: FileList2>>modalView: (in category 'private') -----
> - modalView: aSystemWindowOrSuch
> -
> - modalView := aSystemWindowOrSuch!
>
> Item was removed:
> - ----- Method: FileList2>>morphicDirectoryTreePane (in category 'user interface') -----
> - morphicDirectoryTreePane
> -
> - ^self morphicDirectoryTreePaneFiltered: #initialDirectoryList
> - !
>
> Item was removed:
> - ----- Method: FileList2>>morphicDirectoryTreePaneFiltered: (in category 'user interface') -----
> - morphicDirectoryTreePaneFiltered: aSymbol
> - ^(SimpleHierarchicalListMorph
> - on: self
> - list: aSymbol
> - selected: #currentDirectorySelected
> - changeSelected: #setSelectedDirectoryTo:
> - menu: #volumeMenu:
> - keystroke: nil)
> - autoDeselect: false;
> - enableDrag: false;
> - enableDrop: true;
> - yourself
> -
> - !
>
> Item was removed:
> - ----- Method: FileList2>>morphicFileContentsPane (in category 'user interface') -----
> - morphicFileContentsPane
> -
> - ^PluggableTextMorph
> - on: self
> - text: #contents
> - accept: #put:
> - readSelection: #contentsSelection
> - menu: #fileContentsMenu:shifted:
> - !
>
> Item was removed:
> - ----- Method: FileList2>>morphicFileListPane (in category 'user interface') -----
> - morphicFileListPane
> -
> - ^(PluggableListMorph
> - on: self
> - list: #fileList
> - selected: #fileListIndex
> - changeSelected: #fileListIndex:
> - menu: #fileListMenu:)
> - enableDrag: true;
> - enableDrop: false;
> - yourself
> -
> - !
>
> Item was removed:
> - ----- Method: FileList2>>morphicPatternPane (in category 'user interface') -----
> - morphicPatternPane
> - | pane |
> - pane := PluggableTextMorph
> - on: self
> - text: #pattern
> - accept: #pattern:.
> - pane acceptOnCR: true.
> - ^pane
> -
> - !
>
> Item was removed:
> - ----- Method: FileList2>>okHit (in category 'private') -----
> - okHit
> -
> - ok := true.
> - currentDirectorySelected
> - ifNil: [ Beeper beep ]
> - ifNotNil: [
> - self class lastSelDir: directory.
> - modalView delete ]!
>
> Item was removed:
> - ----- Method: FileList2>>okHitForProjectLoader (in category 'private') -----
> - okHitForProjectLoader
> -
> - | areaOfProgress |
> - fileName ifNil: [^ self].
> - ok := true.
> - areaOfProgress := modalView firstSubmorph.
> - [
> - areaOfProgress setProperty: #deleteOnProgressCompletion toValue: modalView.
> - self openProjectFromFile.
> - modalView delete. "probably won't get here"
> - ]
> - on: ProgressTargetRequestNotification
> - do: [ :ex | ex resume: areaOfProgress].
> -
> -
> - !
>
> Item was removed:
> - ----- Method: FileList2>>okayAndCancelServices (in category 'own services') -----
> - okayAndCancelServices
> - "Answer ok and cancel services"
> -
> - ^ {self serviceOkay. self serviceCancel}!
>
> Item was removed:
> - ----- Method: FileList2>>openImageInWindow (in category 'own services') -----
> - openImageInWindow
> - "Handle five file formats: GIF, JPG, PNG, Form stoteOn: (run coded), and BMP.
> - Fail if file format is not recognized."
> -
> - | image myStream |
> - myStream := (directory readOnlyFileNamed: fileName) binary.
> - [image := Form fromBinaryStream: myStream.
> - Project current openImage: image name: fileName saveResource: false]
> - ensure: [myStream close]
> - !
>
> Item was removed:
> - ----- Method: FileList2>>openProjectFromFile (in category 'own services') -----
> - openProjectFromFile
> - "Reconstitute a Morph from the selected file, presumed to be represent
> - a Morph saved via the SmartRefStream mechanism, and open it in an
> - appropriate Morphic world."
> -
> - Project canWeLoadAProjectNow ifFalse: [^ self].
> - ProjectViewMorph
> - openFromDirectory: directory
> - andFileName: fileName
> - !
>
> Item was removed:
> - ----- Method: FileList2>>optionalButtonRow (in category 'initialization') -----
> - optionalButtonRow
> - "Answer the button row associated with a file list"
> -
> - | aRow |
> - aRow := AlignmentMorph newRow beSticky.
> - aRow color: Color transparent.
> - aRow clipSubmorphs: true.
> - aRow layoutInset: 5 at 1; cellInset: 6.
> - self universalButtonServices do: "just the three sort-by items"
> - [:service |
> - aRow addMorphBack: (service buttonToTriggerIn: self).
> - (service selector == #sortBySize)
> - ifTrue:
> - [aRow addTransparentSpacerOfSize: (4 at 0)]].
> - aRow setNameTo: 'buttons'.
> - aRow setProperty: #buttonRow toValue: true. "Used for dynamic retrieval later on"
> - ^ aRow!
>
> Item was removed:
> - ----- Method: FileList2>>optionalButtonSpecs (in category 'initialization') -----
> - optionalButtonSpecs
> -
> - ^optionalButtonSpecs ifNil: [super optionalButtonSpecs]!
>
> Item was removed:
> - ----- Method: FileList2>>optionalButtonSpecs: (in category 'initialization') -----
> - optionalButtonSpecs: anArray
> -
> - optionalButtonSpecs := anArray!
>
> Item was removed:
> - ----- Method: FileList2>>postOpen (in category 'private') -----
> - postOpen
> -
> - directory ifNotNil: [
> - self changed: #(openPath) , directory pathParts.
> - ].
> - !
>
> Item was removed:
> - ----- Method: FileList2>>publishingServers (in category 'initialization') -----
> - publishingServers
> -
> - | dirList |
> -
> - dirList := OrderedCollection new.
> - ServerDirectory serverNames do: [ :n | | dir nameToShow |
> - dir := ServerDirectory serverNamed: n.
> - (dir isProjectSwiki and: [dir acceptsUploads])
> - ifTrue: [
> - nameToShow := n.
> - dirList add: ((dir directoryWrapperClass with: dir name: nameToShow model: self)
> - balloonText: dir realUrl)]].
> - ^dirList!
>
> Item was removed:
> - ----- Method: FileList2>>removeLinefeeds (in category 'own services') -----
> - removeLinefeeds
> - "Remove any line feeds by converting to CRs instead. This is a temporary implementation for 3.6 only... should be removed during 3.7alpha."
> - | fileContents |
> - fileContents := ((FileStream readOnlyFileNamed: self fullName) wantsLineEndConversion: true) contentsOfEntireFile.
> - (FileStream newFileNamed: self fullName)
> - nextPutAll: fileContents;
> - close.!
>
> Item was removed:
> - ----- Method: FileList2>>saveLocalOnlyHit (in category 'private') -----
> - saveLocalOnlyHit
> - ok := true.
> - modalView delete.
> - directory := fileName := nil.
> - currentDirectorySelected := #localOnly.!
>
> Item was removed:
> - ----- Method: FileList2>>serviceCancel (in category 'own services') -----
> - serviceCancel
> - "Answer a service for hitting the cancel button"
> -
> - ^ (SimpleServiceEntry new
> - provider: self label: 'cancel' selector: #cancelHit
> - description: 'hit here to cancel ')
> - buttonLabel: 'cancel'!
>
> Item was removed:
> - ----- Method: FileList2>>serviceOkay (in category 'own services') -----
> - serviceOkay
> - "Answer a service for hitting the okay button"
> -
> - ^ (SimpleServiceEntry new
> - provider: self label: 'okay' selector: #okHit
> - description: 'hit here to accept the current selection')
> - buttonLabel: 'ok'!
>
> Item was removed:
> - ----- Method: FileList2>>serviceOpenProjectFromFile (in category 'own services') -----
> - serviceOpenProjectFromFile
> - "Answer a service for opening a .pr project file"
> -
> - ^ SimpleServiceEntry
> - provider: self
> - label: 'load as project'
> - selector: #openProjectFromFile
> - description: 'open project from file'
> - buttonLabel: 'load'!
>
> Item was removed:
> - ----- Method: FileList2>>servicesForFolderSelector (in category 'own services') -----
> - servicesForFolderSelector
> - "Answer the ok and cancel servies for the folder selector"
> -
> - ^ self okayAndCancelServices!
>
> Item was removed:
> - ----- Method: FileList2>>servicesForProjectLoader (in category 'own services') -----
> - servicesForProjectLoader
> - "Answer the services to show in the button pane for the project loader"
> -
> - ^ {self serviceSortByName. self serviceSortByDate. self serviceSortBySize. self serviceOpenProjectFromFile}!
>
> Item was removed:
> - ----- Method: FileList2>>setSelectedDirectoryTo: (in category 'private') -----
> - setSelectedDirectoryTo: aFileDirectoryWrapper
> - currentDirectorySelected := aFileDirectoryWrapper.
> - self directory: aFileDirectoryWrapper withoutListWrapper.
> - brevityState := #FileList.
> - "self addPath: path."
> - self changed: #fileList.
> - self changed: #contents.
> - self changed: #currentDirectorySelected.!
>
> Item was removed:
> - ----- Method: FileList2>>specsForImageViewer (in category 'as yet unclassified') -----
> - specsForImageViewer
> -
> - ^{self serviceSortByName. self serviceSortByDate. self serviceSortBySize }!
>
> Item was removed:
> - ----- Method: FileList2>>universalButtonServices (in category 'initialization') -----
> - universalButtonServices
> - "Answer the services to be reflected in the receiver's buttons"
> -
> - ^ self optionalButtonSpecs!
>
> Item was removed:
> - ----- Method: FileList2>>updateDirectory (in category 'initialization') -----
> - updateDirectory
> - "directory has been changed externally, by calling directory:.
> - Now change the view to reflect the change."
> - self changed: #currentDirectorySelected.
> - self postOpen.!
>
>
More information about the Squeak-dev
mailing list
|