[squeak-dev] The Trunk: Tools-cmm.409.mcz
Chris Muller
asqueaker at gmail.com
Mon May 28 21:54:53 UTC 2012
I accidently left an unsent method in here -- I'll remove it soon.
On Sun, May 27, 2012 at 10:01 PM, <commits at source.squeak.org> wrote:
> Chris Muller uploaded a new version of Tools to project The Trunk:
> http://source.squeak.org/trunk/Tools-cmm.409.mcz
>
> ==================== Summary ====================
>
> Name: Tools-cmm.409
> Author: cmm
> Time: 27 May 2012, 10:01:04.714 pm
> UUID: a45e1538-f3ab-4ca2-954a-13cb6caeff7c
> Ancestors: Tools-cmm.408
>
> - Recover FileList's drag-and-drop capabilities.
> - Recover HierarchyBrowser's drag-and-drop capabilities.
>
> =============== Diff against Tools-cmm.408 ===============
>
> Item was changed:
> ----- Method: Browser>>dragFromClassList: (in category 'drag and drop') -----
> + dragFromClassList: index
> - dragFromClassList: index
> "Drag a class from the browser"
> | name envt |
> + (name := self classList at: index) ifNil: [ ^ nil ].
> + (envt := self selectedEnvironment) ifNil: [ ^ nil ].
> + ^ envt
> + at: name withBlanksTrimmed asSymbol
> + ifAbsent: [ ]!
> - (name := self classList at: index) ifNil: [^ nil].
> - (envt := self selectedEnvironment) ifNil: [^ nil].
> - ^ envt at: name ifAbsent:[nil]!
>
> Item was changed:
> ----- Method: FileList class>>windowColorSpecification (in category 'window color') -----
> windowColorSpecification
> "Answer a WindowColorSpec object that declares my preference"
> + ^ WindowColorSpec
> + classSymbol: self name
> + wording: 'File List'
> + brightColor: #lightGray
> + pastelColor: #lightGray
> + helpMessage: 'A tool for looking at files'!
> -
> - ^ WindowColorSpec classSymbol: self name wording: 'File List' brightColor: #lightMagenta pastelColor: #paleMagenta helpMessage: 'A tool for looking at files'!
>
> Item was changed:
> ----- Method: FileList>>buildDirectoryTreeWith: (in category 'toolbuilder') -----
> + buildDirectoryTreeWith: builder
> - buildDirectoryTreeWith: builder
> | treeSpec |
> treeSpec := builder pluggableTreeSpec new.
> + treeSpec
> + model: self ;
> + roots: #rootDirectoryList ;
> + hasChildren: #hasMoreDirectories: ;
> + getChildren: #subDirectoriesOf: ;
> + getSelectedPath: #selectedPath ;
> + setSelected: #setDirectoryTo: ;
> + label: #directoryNameOf: ;
> + menu: #volumeMenu: ;
> + autoDeselect: false.
> + Preferences browseWithDragNDrop ifTrue:
> + [ treeSpec
> + dragItem: #dragFromDirectoryList: ;
> + dropItem: #drop:ontoDirectory:shouldCopy: ].
> + ^ treeSpec!
> - treeSpec
> - model: self;
> - roots: #rootDirectoryList;
> - hasChildren: #hasMoreDirectories:;
> - getChildren: #subDirectoriesOf:;
> - getSelectedPath: #selectedPath;
> - setSelected: #setDirectoryTo:;
> - label: #directoryNameOf:;
> - menu: #volumeMenu:;
> - autoDeselect: false.
> - ^treeSpec
> - !
>
> Item was changed:
> ----- Method: FileList>>buildFileListWith: (in category 'toolbuilder') -----
> + buildFileListWith: builder
> - buildFileListWith: builder
> | buttons listSpec top |
> top := builder pluggablePanelSpec new.
> top children: OrderedCollection new.
> -
> buttons := self buildButtonPaneWith: builder.
> + buttons frame:
> + (self
> + topConstantHeightFrame: self buttonHeight
> + fromLeft: 0
> + width: 1).
> - buttons frame: (self topConstantHeightFrame: self buttonHeight fromLeft: 0 width: 1).
> top children add: buttons.
> -
> listSpec := builder pluggableListSpec new.
> + listSpec
> + model: self ;
> + list: #fileList ;
> + getIndex: #fileListIndex ;
> + setIndex: #fileListIndex: ;
> + menu: #fileListMenu: ;
> + keyPress: nil ;
> + frame:
> + (self
> + frameOffsetFromTop: self buttonHeight + 4
> + fromLeft: 0
> + width: 1
> + bottomFraction: 1) ;
> + color: Color white.
> + Preferences browseWithDragNDrop ifTrue: [ listSpec dragItem: #dragFromFileList: ].
> - listSpec
> - model: self;
> - list: #fileList;
> - getIndex: #fileListIndex;
> - setIndex: #fileListIndex:;
> - menu: #fileListMenu:;
> - keyPress: nil;
> - frame: (self frameOffsetFromTop: self buttonHeight + 4 fromLeft: 0 width: 1 bottomFraction: 1);
> - color: Color white.
> top children add: listSpec.
> + ^ top!
> - ^top.
> - !
>
> Item was changed:
> ----- Method: FileList>>directory: (in category 'initialization') -----
> + directory: aFileDirectory
> - directory: dir
> "Set the path of the volume to be displayed."
> + self okToChange ifFalse: [ ^ self ].
> -
> - self okToChange ifFalse: [^ self].
> -
> self modelSleep.
> + directory := aFileDirectory.
> - directory := dir.
> self modelWakeUp.
> + sortMode == nil ifTrue: [ sortMode := #date ].
> + volList := (Array with: '[]') , directory pathParts withIndexCollect:
> + [ : each : i | (String
> + new: i - 1
> + withAll: Character space) , each ].
> -
> - sortMode == nil ifTrue: [sortMode := #date].
> - volList := ((Array with: '[]'), directory pathParts) "Nesting suggestion from RvL"
> - withIndexCollect: [:each :i | ( String new: i-1 withAll: $ ), each].
> volListIndex := volList size.
> self changed: #relabel.
> self changed: #volumeList.
> + self pattern: pattern!
> - self pattern: pattern.!
>
> Item was added:
> + ----- Method: FileList>>dragFromDirectoryList: (in category 'file list') -----
> + dragFromDirectoryList: anIndex
> + ^ self directory!
>
> Item was added:
> + ----- Method: FileList>>dragFromFileList: (in category 'file list') -----
> + dragFromFileList: anIndex
> + ^ self directory entryAt: (self fileNameFromFormattedItem: (self fileList at: self fileListIndex))!
>
> Item was added:
> + ----- Method: FileList>>dragPassengerFor:inMorph: (in category 'drag''n''drop') -----
> + dragPassengerFor: item inMorph: dragSource
> + ^self directory fullNameFor: ((self fileNameFromFormattedItem: item contents copy)
> + copyReplaceAll: self folderString with: '').
> + !
>
> Item was added:
> + ----- Method: FileList>>drop:ontoDirectory: (in category 'toolbuilder') -----
> + drop: aDirectoryEntryFile ontoDirectory: aFileDirectory
> + | oldName oldEntry newName newEntry baseName response |
> + self halt.
> + oldName := aDirectoryEntryFile fullName.
> + baseName := FileDirectory localNameFor: oldName.
> + newName := aFileDirectory fullNameFor: baseName.
> + newName = oldName ifTrue: [ "Transcript nextPutAll: 'same as old name'; cr."
> + ^ true ].
> + oldEntry := FileDirectory directoryEntryFor: oldName.
> + newEntry := FileDirectory directoryEntryFor: newName.
> + newEntry ifNotNil:
> + [ | msg |
> + msg := String streamContents:
> + [ : s | s
> + nextPutAll: 'destination file ' ;
> + nextPutAll: newName ;
> + nextPutAll: ' exists already,' ;
> + cr ;
> + nextPutAll: 'and is ' ;
> + nextPutAll:
> + (oldEntry modificationTime < newEntry modificationTime
> + ifTrue: [ 'newer' ]
> + ifFalse: [ 'not newer' ]) ;
> + nextPutAll: ' than source file ' ;
> + nextPutAll: oldName ;
> + nextPut: $. ;
> + cr ;
> + nextPutAll: 'Overwrite file ' ;
> + nextPutAll: newName ;
> + nextPut: $? ].
> + response := self confirm: msg.
> + response ifFalse: [ ^ false ] ].
> + " aTransferMorph shouldCopy
> + ifTrue:
> + [ self
> + primitiveCopyFileNamed: oldName
> + to: newName ]
> + " false ifFalse:
> + [ directory
> + rename: oldName
> + toBe: newName ].
> + self
> + updateFileList ;
> + fileListIndex: 0.
> + ^ true!
>
> Item was added:
> + ----- Method: FileList>>drop:ontoDirectory:shouldCopy: (in category 'toolbuilder') -----
> + drop: aDirectoryEntryFile ontoDirectory: aFileDirectory shouldCopy: aBoolean
> + aDirectoryEntryFile containingDirectory = aFileDirectory ifTrue: [ ^ self ].
> + aBoolean
> + ifTrue: [ aFileDirectory copyHere: aDirectoryEntryFile ]
> + ifFalse:
> + [ directory
> + rename: aDirectoryEntryFile fullName
> + toBe: (aFileDirectory fullNameFor: aDirectoryEntryFile name).
> + self setDirectoryTo: directory ]!
>
> Item was changed:
> ----- 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!
>
>
More information about the Squeak-dev
mailing list
|