class: Tools::MethodRewriter
class definition
changed:
#canDropClasses:
#classesSpec
#doDropClasses:
#rules
can now drop whole packages into the class list
--- a/Tools__MethodRewriter.st Thu Feb 05 00:15:15 2015 +0100
+++ b/Tools__MethodRewriter.st Thu Feb 05 00:17:31 2015 +0100
@@ -28,7 +28,7 @@
"{ NameSpace: Tools }"
ApplicationModel subclass:#MethodRewriter
- instanceVariableNames:'replaceTextView methods classes searchTextView
+ instanceVariableNames:'replaceTextView methods classes packages searchTextView
actionInProgresHolder infoHolder progressHolder
templateSearchPatternHolder templateReplacePatternHolder
selectedTemplateIndex templates selectedTabIndex
@@ -199,7 +199,7 @@
(SpecCollection
collection: (
(LabelSpec
- label: 'Hint: drag''n''drop classes from browser'
+ label: 'Hint: drag''n''drop classes, methods or packages from browser'
name: 'HintLabel'
layout: (LayoutFrame 0 0 0 0 0 1 30 0)
translateLabel: true
@@ -877,6 +877,10 @@
!
rules
+ RBTransformationRule isNil ifTrue:[
+ Smalltalk loadPackage:'stx:goodies/refactoryBrowser/lint'.
+ ].
+
rules isNil ifTrue:[
|knownRules separator1 separator2 separator3|
@@ -1290,24 +1294,44 @@
!MethodRewriter methodsFor:'drag & drop'!
canDropClasses: dropContext
+ "I accept classes, methods and packages"
- ^dropContext dropObjects allSatisfy: [:obj|obj isClassObject or:[obj isMethodObject]]
+ ^dropContext dropObjects
+ allSatisfy: [:obj|
+ obj isClassObject
+ or:[ obj isMethodObject
+ or:[ obj isProjectObject ]]]
"Created: / 20-07-2007 / 16:58:13 / janfrog"
!
doDropClasses: dropContext
+ "I accept classes, methods and packages"
- | newClasses |
- newClasses := dropContext dropObjects
- select:[:obj|obj isClassObject or:[obj isMethodObject]].
- newClasses := newClasses
- collect:[:obj| |clsOrMethod|
+ | droppedProjects droppedClasses newClasses |
+
+ droppedProjects := dropContext dropObjects
+ select:[:obj| obj isProjectObject]
+ thenCollect:[:obj | obj theObject].
+
+ droppedClasses := dropContext dropObjects
+ select:[:obj| obj isClassObject or:[obj isMethodObject]]
+ thenCollect:[:obj|
+ |clsOrMethod|
+
clsOrMethod := obj theObject.
- clsOrMethod isMethod ifTrue:[clsOrMethod containingClass] ifFalse:[clsOrMethod]
+ clsOrMethod isMethod ifTrue:[
+ clsOrMethod containingClass
+ ] ifFalse:[
+ clsOrMethod
+ ]
] as:IdentitySet.
- newClasses := newClasses reject:[:cls|self classes includes:cls].
+ droppedProjects do:[:eachPackage |
+ droppedClasses addAll:(Smalltalk allClassesInPackage:eachPackage)
+ ].
+
+ newClasses := droppedClasses reject:[:cls | self classes includes:cls].
self classes
addAll: newClasses;
changed:#content
@@ -1540,10 +1564,10 @@
!MethodRewriter class methodsFor:'documentation'!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools__MethodRewriter.st,v 1.20 2015-02-04 22:34:40 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__MethodRewriter.st,v 1.21 2015-02-04 23:17:31 cg Exp $'
!
version_SVN
- ^ '$Id: Tools__MethodRewriter.st,v 1.20 2015-02-04 22:34:40 cg Exp $'
+ ^ '$Id: Tools__MethodRewriter.st,v 1.21 2015-02-04 23:17:31 cg Exp $'
! !