--- a/Tools__NewSystemBrowser.st Wed Mar 21 14:05:42 2012 +0000
+++ b/Tools__NewSystemBrowser.st Wed Mar 21 17:50:14 2012 +0000
@@ -22,13 +22,12 @@
classVariableNames:'LastNewProtocols LastProtocolRenames LastCategoryRenames
LastCategoryRenameOld LastCategoryRenameNew LastProjectMoves
LastNameSpaceMove LastMethodMoveOrCopyTargetClass
- LastSearchPatterns LastClassFilterBlockString
- LastMethodFilterBlockString LastBreakPointConditionString
- LastIndividualChecks LastAcceptPackage LastVariableRenames
- LastVisitorClassName LastTemporaryVariableName BookMarks
- FindHistory CheckForInstancesWhenRemovingClasses
- SynchronousUpdate DoubleClickIsOpenBrowser
- ShowMethodTemplateWhenProtocolIsSelected
+ LastClassFilterBlockString LastMethodFilterBlockString
+ LastBreakPointConditionString LastIndividualChecks
+ LastAcceptPackage LastVariableRenames LastVisitorClassName
+ LastTemporaryVariableName BookMarks FindHistory
+ CheckForInstancesWhenRemovingClasses SynchronousUpdate
+ DoubleClickIsOpenBrowser ShowMethodTemplateWhenProtocolIsSelected
DefaultShowMethodTemplate DefaultShowMethodInheritance
DefaultEmphasizeUnloadedClasses DefaultImmediateSyntaxColoring
DefaultImmediateExplaining DefaultSyntaxColoring
@@ -291,9 +290,7 @@
"Created: / 03-07-2011 / 13:21:53 / cg"
!
-lastSearchPatterns
- ^ LastSearchPatterns
-! !
+ !
!NewSystemBrowser class methodsFor:'defaults'!
@@ -405,7 +402,7 @@
'Search Class'
#gotoClassEntryField
-'Goto class (uppercase) or class which implements this method (lowercase)'
+'Goto class (uppercase) or method which implements this selector (lowercase)'
"/#gotoClassEntryField
"/'Goto Class'
@@ -440,7 +437,7 @@
].
^ spec.
- "Modified: / 08-11-2011 / 12:21:23 / cg"
+ "Modified: / 07-03-2012 / 11:57:59 / cg"
! !
!NewSystemBrowser class methodsFor:'image specs'!
@@ -5142,29 +5139,27 @@
)
handles: (Any 0.33 0.67 1.0)
)
- (SubCanvasSpec
- name: 'RuleDetails'
- layout: (LayoutFrame 0 0 -30 1 0 1 0 1)
- initiallyInvisible: true
- hasHorizontalScrollBar: false
- hasVerticalScrollBar: false
- majorKey: #'Tools::LintRuleDetail'
- subAspectHolders:
- (Array
-
- (SubChannelInfoSpec
- subAspect: ruleHolder
- aspect: theSingleSelectedLintRuleHolder
- )
- )
- createNewApplication: true
- createNewBuilder: true
- )
)
)
)
(SubCanvasSpec
+ name: 'RuleDesc'
+ hasHorizontalScrollBar: false
+ hasVerticalScrollBar: false
+ majorKey: #'Tools::LintRuleDetail'
+ subAspectHolders:
+ (Array
+
+ (SubChannelInfoSpec
+ subAspect: ruleHolder
+ aspect: theSingleSelectedLintRuleHolder
+ )
+ )
+ createNewApplication: true
+ createNewBuilder: true
+ )
+ (SubCanvasSpec
name: 'CodePane'
autoHideScrollBars: false
majorKey: NewSystemBrowser
@@ -5174,15 +5169,13 @@
)
)
- handles: (Any 0.5 1.0)
+ handles: (Any 0.333333333333333 0.455958549222798 1.0)
postBuildCallback: postBuildTabContentView:
)
)
)
)
-
- "Modified: / 31-12-2011 / 13:12:37 / cg"
!
visualProfilerSpec
@@ -7654,6 +7647,12 @@
translateLabel: true
)
(MenuItem
+ enabled: hasMultipleClassesSelectedHolder
+ label: 'Buffer with Common Superclass'
+ itemValue: classMenuSpawnBufferWithCommonSuperclass
+ translateLabel: true
+ )
+ (MenuItem
enabled: hasClassSelectedHolder
label: 'Buffer with Projects'
itemValue: classMenuSpawnBufferWithClassProjects
@@ -7695,6 +7694,12 @@
translateLabel: true
)
(MenuItem
+ enabled: hasMultipleClassesSelectedHolder
+ label: 'Browser on Common Superclass'
+ itemValue: classMenuSpawnWithCommonSuperclass
+ translateLabel: true
+ )
+ (MenuItem
enabled: hasClassSelectedHolder
label: 'Browser on Projects'
itemValue: classMenuSpawnClassProjects
@@ -7708,6 +7713,7 @@
translateLabel: true
isVisible: false
)
+
)
nil
nil
@@ -7868,7 +7874,9 @@
label: 'Remove...'
itemValue: classMenuRemove
translateLabel: true
+ shortcutKey: Delete
labelImage: (ResourceRetriever ToolbarIconLibrary erase16x16Icon 'Remove...')
+ ignoreShortcutKeys: true
)
(MenuItem
label: '-'
@@ -7913,7 +7921,7 @@
isVisible: smallTeamAvailable
)
(MenuItem
- label: 'With SmallTeam Version On Host'
+ label: 'With SmallTeam Version on Host'
translateLabel: true
isVisible: smallTeamAvailable
submenuChannel: compareClassWithSmallTeamVersionMenu
@@ -7968,7 +7976,7 @@
label: '-'
)
(MenuItem
- label: 'Search && Rewrite'
+ label: 'Search && Rewrite...'
itemValue: classMenuRewrite
translateLabel: true
)
@@ -7986,6 +7994,8 @@
nil
nil
)
+
+ "Modified: / 28-02-2012 / 08:57:35 / cg"
!
classNewGroovyClassSlice
@@ -8279,7 +8289,7 @@
#(Menu
(
(MenuItem
- label: 'Smalltalk class'
+ label: 'Smalltalk Class'
itemValue: classMenuNewSmalltalkClass
translateLabel: true
)
@@ -8362,7 +8372,7 @@
nil
)
- "Modified: / 08-08-2011 / 07:47:16 / cg"
+ "Modified: / 17-02-2012 / 22:03:09 / cg"
!
classSmallTeamMenu
@@ -9055,16 +9065,6 @@
(Menu
(
(MenuItem
- label: 'ST/X Documentation'
- itemValue: openSTXDocumentation
- translateLabel: true
- )
- (MenuItem
- label: 'Class Documentation'
- itemValue: openClassDocumentation
- translateLabel: true
- )
- (MenuItem
label: 'Browser Documentation'
itemValue: openDocumentation
translateLabel: true
@@ -9075,6 +9075,19 @@
translateLabel: true
)
(MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'Class Documentation'
+ itemValue: openClassDocumentation
+ translateLabel: true
+ )
+ (MenuItem
+ label: 'ST/X Documentation'
+ itemValue: openSTXDocumentation
+ translateLabel: true
+ )
+ (MenuItem
label: 'Keyword Index'
itemValue: openKeywordIndexDocumentation
translateLabel: true
@@ -9139,7 +9152,7 @@
)
(MenuItem
enabled: anyBreakOrTracePointsAreSetHolder
- label: 'Remove all Break && Tracepoints'
+ label: 'Remove all Break- && Tracepoints'
itemValue: debugMenuRemoveAllBreakpoints
translateLabel: true
)
@@ -9148,31 +9161,31 @@
)
(MenuItem
enabled: hasMethodSelectedHolder
- label: 'BreakPoint'
+ label: 'Breakpoint'
itemValue: debugMenuBreakPoint
translateLabel: true
)
(MenuItem
enabled: hasMethodSelectedHolder
- label: 'BreakPoint in Process...'
+ label: 'Breakpoint in Process...'
itemValue: debugMenuBreakPointIn
translateLabel: true
)
(MenuItem
enabled: hasMethodSelectedHolder
- label: 'BreakPoint for Instances Of...'
+ label: 'Breakpoint for Instances Of...'
itemValue: debugMenuBreakPointFor
translateLabel: true
)
(MenuItem
enabled: hasMethodSelectedHolder
- label: 'BreakPoint After...'
+ label: 'Breakpoint After...'
itemValue: debugMenuBreakPointAfter
translateLabel: true
)
(MenuItem
enabled: hasMethodSelectedHolder
- label: 'BreakPoint If...'
+ label: 'Breakpoint If...'
itemValue: debugMenuBreakPointIf
translateLabel: true
)
@@ -9311,6 +9324,8 @@
nil
nil
)
+
+ "Modified: / 28-02-2012 / 11:31:30 / cg"
!
methodListMenu
@@ -9428,7 +9443,7 @@
#label: '-'
)
#(#MenuItem
- #label: 'Inline All Self Sends'
+ #label: 'Inline all self-Sends'
#translateLabel: true
#value: #selectorMenuInlineSelfSends
#enabled: #hasSingleMethodSelectedAndCanUseRefactoringSupportHolder
@@ -10745,7 +10760,7 @@
)
(MenuItem
enabled: smallTeamAvailable
- label: 'With SmallTeam Version On Host'
+ label: 'With SmallTeam Version on Host'
translateLabel: true
submenuChannel: compareMethodWithSmallTeamVersionMenu
)
@@ -10947,6 +10962,8 @@
nil
nil
)
+
+ "Modified: / 17-02-2012 / 22:20:52 / cg"
!
selectorMenuCopyMoveRemoveSlice
@@ -11336,6 +11353,12 @@
translateLabel: true
)
(MenuItem
+ enabled: hasMultipleMethodsSelectedHolder
+ label: 'Buffer with Common Superclass'
+ itemValue: methodListMenuSpawnBufferWithCommonSuperclass
+ translateLabel: true
+ )
+ (MenuItem
enabled: hasMethodSelectedHolder
label: 'Buffer'
itemValue: selectorMenuSpawnMethodBuffer
@@ -11406,6 +11429,12 @@
translateLabel: true
)
(MenuItem
+ enabled: hasMultipleMethodsSelectedHolder
+ label: 'Browser on Common Superclass'
+ itemValue: methodListMenuSpawnCommonSuperclass
+ translateLabel: true
+ )
+ (MenuItem
enabled: hasMethodSelectedHolder
label: 'Browser'
itemValue: selectorMenuSpawnMethod
@@ -11462,7 +11491,7 @@
nil
)
- "Modified: / 24-11-2011 / 19:34:53 / cg"
+ "Modified: / 28-02-2012 / 09:06:15 / cg"
!
selectorSmallTeamMenu
@@ -11609,6 +11638,7 @@
"Do not manually edit this!! If it is corrupted,
the MenuEditor may not be able to read the specification."
+
"
MenuEditor new openOnClass:Tools::NewSystemBrowser andSelector:#variablesMenu
(Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser variablesMenu)) startUp
@@ -11694,14 +11724,14 @@
(MenuItem
enabled: hasInstanceVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
label: 'Pull Up'
- itemValue: codeMenuPullUpInstanceVariable
+ itemValue: variablesMenuPullUp
translateLabel: true
showBusyCursorWhilePerforming: true
)
(MenuItem
enabled: hasInstanceVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
label: 'Push Down'
- itemValue: codeMenuPushDownInstanceVariable
+ itemValue: variablesMenuPushDown
translateLabel: true
showBusyCursorWhilePerforming: true
)
@@ -11849,14 +11879,14 @@
(MenuItem
enabled: hasClassVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
label: 'Pull Up'
- itemValue: codeMenuPullUpClassVariable
+ itemValue: variablesMenuPullUp
translateLabel: true
showBusyCursorWhilePerforming: true
)
(MenuItem
enabled: hasClassVariableSelectedInCodeViewOrVariableListAndCanUseRefactoringSupportHolder
label: 'Push Down'
- itemValue: codeMenuPushDownClassVariable
+ itemValue: variablesMenuPushDown
translateLabel: true
showBusyCursorWhilePerforming: true
)
@@ -16048,7 +16078,6 @@
"Modified: / 29-09-2006 / 16:11:08 / cg"
! !
-
!NewSystemBrowser class methodsFor:'menu specs-popup'!
categoryPopUpMenu
@@ -16620,11 +16649,34 @@
label: '-'
)
(MenuItem
+ enabled: hasClassSelectedHolder
label: 'Run Static Analysis (Lint)'
itemValue: runLint
nameKey: RunLint
translateLabel: true
isButton: true
+ submenu:
+ (Menu
+ (
+ (MenuItem
+ label: 'Repeat Previously Selected Checks'
+ itemValue: runLintOnPreviousRules
+ translateLabel: true
+ )
+ (MenuItem
+ label: 'Run all Checks'
+ itemValue: runLintOnAllRules
+ translateLabel: true
+ )
+ (MenuItem
+ label: 'Select Checks...'
+ itemValue: runLintOnSelectedRules
+ translateLabel: true
+ )
+ )
+ nil
+ nil
+ )
labelImage: (ResourceRetriever ToolbarIconLibrary lint24x24Icon)
)
(MenuItem
@@ -16737,8 +16789,6 @@
nil
nil
)
-
- "Modified: / 31-12-2011 / 15:47:24 / cg"
! !
!NewSystemBrowser class methodsFor:'queries'!
@@ -16946,7 +16996,8 @@
!
openWithSelectedClasses:aCollectionOfClasses label:titleOrNil
- "launch a multi class browser."
+ "launch a full browser with multiple classes initially selected.
+ (also selects the corresponding categories)"
|browser|
@@ -17309,10 +17360,11 @@
categories:subjects;
label:(subjects size = 1
ifTrue:[ 'class category' , subjects anyOne ]
- ifFalse:[ subjects size printString , ' class categories' ])
+ ifFalse:[ subjects size printString , ' class categories' ]);
+ yourself
"Created: / 17-04-2010 / 10:29:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 04-08-2011 / 23:13:24 / cg"
+ "Modified: / 06-03-2012 / 18:54:41 / cg"
!
selectedClassesAsEnvironment
@@ -17323,8 +17375,11 @@
classes:subjects;
label:(subjects size = 1
ifTrue:[ 'class ' , subjects anyOne fullName ]
- ifFalse:[ subjects size printString , ' classes' ])
- "Created: / 24-02-2009 / 11:08:35 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ ifFalse:[ subjects size printString , ' classes' ]);
+ yourself
+
+ "Created: / 24-02-2009 / 11:08:35 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 06-03-2012 / 18:54:49 / cg"
!
selectedCodeComponentsAsEnvironment
@@ -17382,9 +17437,11 @@
protocols: protocols;
label:(protocols size = 1
ifTrue:[ 'protocol' , protocols anyOne , ' in ' , classes anyOne name ]
- ifFalse:[ protocols size printString , ' protocols in ' , classes anyOne name ])
+ ifFalse:[ protocols size printString , ' protocols in ' , classes anyOne name ]);
+ yourself
"Created: / 17-04-2010 / 10:57:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 06-03-2012 / 18:55:00 / cg"
!
selectedSelectorsAsEnvironment
@@ -17393,13 +17450,13 @@
"/ a q&d hack...
SelectorEnvironment isNil ifTrue:[ Smalltalk loadPackage:'stx:goodies/refactoryBrowser/browser' ].
- methods := self selectedMethods value.
+ methods := self selectedMethodsValue.
env := SelectorEnvironment onEnvironment: BrowserEnvironment new.
methods do:[:mthd|env addClass: mthd mclass selector: mthd selector].
^env
"Created: / 16-07-2010 / 09:25:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 03-08-2011 / 22:49:46 / cg"
+ "Modified: / 28-02-2012 / 16:28:38 / cg"
! !
!NewSystemBrowser methodsFor:'aspects-kludges'!
@@ -17724,11 +17781,17 @@
!
selectedMethodsClasses
- ^ (self selectedMethods value collect:[:m | m mclass]) asSet
+ ^ (self selectedMethodsValue collect:[:m | m mclass]) asSet
"Created: / 07-08-2006 / 12:13:37 / cg"
!
+selectedMethodsValue
+ ^ self selectedMethods value ? #()
+
+ "Created: / 28-02-2012 / 16:13:43 / cg"
+!
+
selectedNamespaces
^ self navigationState selectedNamespaces
@@ -17795,7 +17858,6 @@
"Created: / 24.2.2000 / 23:28:06 / cg"
! !
-
!NewSystemBrowser methodsFor:'aspects-organization'!
categoryMenuVisible
@@ -18818,8 +18880,10 @@
canInsertSuperclass
|selected|
- ^ (selected := self selectedClasses value) size > 0
+ ^ (selected := self selectedClassesValue) size > 0
and:[ (selected collect:[:each | each superclass ]) asSet size == 1].
+
+ "Modified: / 28-02-2012 / 16:45:12 / cg"
!
canInsertSuperclassHolder
@@ -18882,17 +18946,17 @@
^ prj
]
].
- projects := ((self selectedClasses value ? #()) collect:[:cls | cls package]) asSet.
+ projects := ((self selectedClassesValue) collect:[:cls | cls package]) asSet.
projects size == 1 ifTrue:[
^ projects first
].
- projects := ((self selectedMethods value ? #()) collect:[:m | m package]) asSet.
+ projects := (self selectedMethodsValue collect:[:m | m package]) asSet.
projects size == 1 ifTrue:[
^ projects first
].
^ nil
- "Modified: / 28-08-2006 / 23:33:08 / cg"
+ "Modified: / 28-02-2012 / 16:49:07 / cg"
!
globalCoverageRecordingIsDisabled
@@ -18942,10 +19006,20 @@
^ [ self hasAnyCategoryWithAnyUnLoadedClassSelected ]
!
+hasAnyClassSelectedForWhich:aBlock
+ |selectedClasses|
+
+ selectedClasses := self selectedClassesValue.
+ selectedClasses isEmptyOrNil ifTrue:[^ false].
+ ^ selectedClasses contains:aBlock
+
+ "Created: / 28-02-2012 / 16:50:16 / cg"
+!
+
hasAnyClassWithCoverageInfoSelected
|selected|
- selected := self selectedClasses value.
+ selected := self selectedClassesValue.
selected isEmptyOrNil ifTrue:[
selected := self selectedCategoryClasses
].
@@ -18979,12 +19053,19 @@
^ [ self hasAnyLoadedClassSelected ]
!
-hasAnyNonIgnoredMethodSelected
+hasAnyMethodSelectedForWhich:aBlock
|sel|
- sel := self selectedMethods value.
- ^ (sel size > 0)
- and:[ sel contains:[:m | m isIgnored not] ]
+ sel := self selectedMethodsValue.
+ ^ (sel size > 0) and:[ sel contains:aBlock ]
+
+ "Created: / 28-02-2012 / 16:17:24 / cg"
+!
+
+hasAnyNonIgnoredMethodSelected
+ ^ self hasAnyMethodSelectedForWhich:[:m | m isIgnored not]
+
+ "Modified: / 28-02-2012 / 16:17:56 / cg"
!
hasAnyNonIgnoredMethodSelectedHolder
@@ -18992,11 +19073,9 @@
!
hasAnyNonPrivateMethodSelected
- |sel|
-
- sel := self selectedMethods value.
- ^ (sel size > 0)
- and:[ sel contains:[:m | m isPrivate not] ]
+ ^ self hasAnyMethodSelectedForWhich:[:m | m isPrivate not]
+
+ "Modified: / 28-02-2012 / 16:18:29 / cg"
!
hasAnyNonPrivateMethodSelectedHolder
@@ -19004,11 +19083,9 @@
!
hasAnyNonProtectedMethodSelected
- |sel|
-
- sel := self selectedMethods value.
- ^ (sel size > 0)
- and:[ sel contains:[:m | m isProtected not] ]
+ ^ self hasAnyMethodSelectedForWhich:[:m | m isProtected not]
+
+ "Modified: / 28-02-2012 / 16:18:41 / cg"
!
hasAnyNonProtectedMethodSelectedHolder
@@ -19016,11 +19093,9 @@
!
hasAnyNonPublicMethodSelected
- |sel|
-
- sel := self selectedMethods value.
- ^ (sel size > 0)
- and:[ sel contains:[:m | m isPublic not] ]
+ ^ self hasAnyMethodSelectedForWhich:[:m | m isPublic not]
+
+ "Modified: / 28-02-2012 / 16:18:54 / cg"
!
hasAnyNonPublicMethodSelectedHolder
@@ -19043,7 +19118,7 @@
hasAnyTestCaseSelected
|selected|
- selected := self selectedClasses value.
+ selected := self selectedClassesValue.
selected isEmptyOrNil ifTrue:[
selected := self selectedCategoryClasses
].
@@ -19056,7 +19131,7 @@
].
^ false.
- "Modified: / 06-07-2011 / 14:07:33 / cg"
+ "Modified: / 28-02-2012 / 16:49:32 / cg"
!
hasAnyTestCaseSelectedHolder
@@ -19105,7 +19180,9 @@
!
hasAtMostOneClassesSelected
- ^ self selectedClasses value size <= 1
+ ^ self selectedClassesValue size <= 1
+
+ "Modified: / 28-02-2012 / 16:49:36 / cg"
!
hasAtMostOneClassesSelectedHolder
@@ -19207,12 +19284,9 @@
!
hasClassMethodsSelected
- |methods|
-
- methods := self selectedMethods value.
- methods size == 0 ifTrue:[ ^ false ].
- ^ (methods conform:[:eachMethod | eachMethod mclass isMeta])
-
+ ^ self hasOnlyMethodsSelectedForWhich:[:eachMethod | eachMethod mclass isMeta]
+
+ "Modified: / 28-02-2012 / 16:42:20 / cg"
!
hasClassMethodsSelectedHolder
@@ -19226,10 +19300,10 @@
!
hasClassSelected
- ^ self selectedClasses value size > 0
-
- "Created: / 4.2.2000 / 22:02:25 / cg"
- "Modified: / 6.2.2000 / 01:12:40 / cg"
+ ^ self selectedClassesValue size > 0
+
+ "Created: / 04-02-2000 / 22:02:25 / cg"
+ "Modified: / 28-02-2012 / 16:49:39 / cg"
!
hasClassSelectedAndCanFileOutBinaryHolder
@@ -19300,12 +19374,8 @@
!
hasClassSelectedWhichCanBeExcludedFromProject
- |selectedClasses|
-
- selectedClasses := self selectedClasses value.
- selectedClasses isEmptyOrNil ifTrue:[^ false].
- ^ selectedClasses
- contains:[:cls |
+ ^ self hasAnyClassSelectedForWhich:
+ [:cls |
|def|
def := ProjectDefinition definitionClassForPackage:cls package.
@@ -19317,7 +19387,7 @@
]
"Created: / 22-02-2007 / 13:55:03 / cg"
- "Modified: / 30-08-2007 / 18:58:08 / cg"
+ "Modified: / 28-02-2012 / 16:51:10 / cg"
!
hasClassSelectedWhichCanBeExcludedFromProjectHolder
@@ -19327,12 +19397,8 @@
!
hasClassSelectedWhichCanBeIncludedInProject
- |selectedClasses|
-
- selectedClasses := self selectedClasses value.
- selectedClasses isEmptyOrNil ifTrue:[^ false].
- ^ selectedClasses
- contains:[:cls |
+ ^ self hasAnyClassSelectedForWhich:
+ [:cls |
|def|
def := ProjectDefinition definitionClassForPackage:cls package.
@@ -19344,7 +19410,7 @@
]
"Created: / 22-02-2007 / 13:54:16 / cg"
- "Modified: / 28-03-2007 / 21:53:51 / cg"
+ "Modified: / 28-02-2012 / 16:50:59 / cg"
!
hasClassSelectedWhichCanBeIncludedInProjectHolder
@@ -19354,12 +19420,8 @@
!
hasClassSelectedWhichCanBeMadeAutoloadedInProject
- |selectedClasses|
-
- selectedClasses := self selectedClasses value.
- selectedClasses isEmptyOrNil ifTrue:[^ false].
- ^ selectedClasses
- contains:[:cls |
+ ^ self hasAnyClassSelectedForWhich:
+ [:cls |
|def|
def := ProjectDefinition definitionClassForPackage:cls package.
@@ -19445,8 +19507,9 @@
!
hasClassWithExtensionsSelected
- ^ (self selectedClasses value ? #())
- contains:[:cls | cls hasExtensions].
+ ^ self hasAnyClassSelectedForWhich:[:cls | cls hasExtensions].
+
+ "Modified: / 28-02-2012 / 16:54:34 / cg"
!
hasClassWithExtensionsSelectedHolder
@@ -19459,7 +19522,7 @@
^ [
| classes |
- classes := self selectedClasses value.
+ classes := self selectedClassesValue.
classes isEmptyOrNil ifTrue:[
false
] ifFalse:[
@@ -19469,13 +19532,14 @@
"Created: / 03-01-2012 / 15:48:46 / cg"
"Modified: / 19-01-2012 / 10:44:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 28-02-2012 / 16:54:43 / cg"
!
hasClassesSelectedAndFileBasedRepositoryExistsHolder
^ [
| classes |
- classes := self selectedClasses value.
+ classes := self selectedClassesValue.
classes isEmptyOrNil ifTrue:[
false
] ifFalse:[
@@ -19485,13 +19549,14 @@
"Created: / 21-12-2011 / 17:05:28 / cg"
"Modified: / 19-01-2012 / 10:44:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 28-02-2012 / 16:54:49 / cg"
!
hasClassesSelectedAndMercurialRepositoryExistsHolder
^ [
| classes |
- classes := self selectedClasses value.
+ classes := self selectedClassesValue.
classes isEmptyOrNil ifTrue:[
false
] ifFalse:[
@@ -19508,7 +19573,7 @@
^ [
| classes |
- classes := self selectedClasses value.
+ classes := self selectedClassesValue.
classes isEmptyOrNil ifTrue:[
false
] ifFalse:[
@@ -19524,18 +19589,20 @@
hasClassesSelectedAndSubversionRepositoryExists
| classes |
- classes := self selectedClasses value.
+ classes := self selectedClassesValue.
classes size = 0 ifTrue:[^false].
^ classes
allSatisfy:
[:cls | self hasSubversionRepositoryFor: cls theNonMetaclass package]
+
+ "Modified: / 28-02-2012 / 16:55:03 / cg"
!
hasClassesSelectedAndSubversionRepositoryExistsHolder
^ [
| classes |
- classes := self selectedClasses value.
+ classes := self selectedClassesValue.
classes isEmptyOrNil ifTrue:[
false
] ifFalse:[
@@ -19544,6 +19611,8 @@
[:cls | self hasSubversionRepositoryFor: cls theNonMetaclass package]
]
]
+
+ "Modified: / 28-02-2012 / 16:55:12 / cg"
!
hasClassesSelectedWhichAreSubclassOf:aBaseClass
@@ -19568,14 +19637,14 @@
hasClassesWithCommonSuperclassSelected
|selectedClasses commonSuper|
- selectedClasses := self selectedClasses value.
+ selectedClasses := self selectedClassesValue.
selectedClasses isEmptyOrNil ifTrue:[^ false].
selectedClasses size == 1 ifTrue:[^ true].
commonSuper := Behavior commonSuperclassOf:(selectedClasses ? #()).
^ commonSuper notNil and:[ selectedClasses includes: commonSuper ].
- "Modified: / 11-02-2007 / 13:47:14 / cg"
+ "Modified: / 28-02-2012 / 16:55:19 / cg"
!
hasDataBaseRepositoryFor: package
@@ -19619,15 +19688,13 @@
!
hasEnumTypeClassSelected
- ^ self hasClassSelected
- and:[self selectedClasses value
- contains:[:cls |
+ ^ self hasAnyClassSelectedForWhich:[:cls |
cls isLoaded
and:[(cls theNonMetaclass askFor:#isAbstract) not
and:[ cls withAllSuperclasses contains:[:aSuperClass |
- aSuperClass theNonMetaclass name includesString:'Enum']]] ]]
-
- "Modified: / 07-09-2007 / 15:38:45 / cg"
+ aSuperClass theNonMetaclass name includesString:'Enum']]] ]
+
+ "Modified: / 28-02-2012 / 16:56:28 / cg"
!
hasEnumTypeClassSelectedHolder
@@ -19637,7 +19704,9 @@
!
hasExactlyTwoClassesSelected
- ^ self selectedClasses value size == 2
+ ^ self selectedClassesValue size == 2
+
+ "Modified: / 28-02-2012 / 16:56:33 / cg"
!
hasExactlyTwoClassesSelectedHolder
@@ -19647,7 +19716,9 @@
!
hasExactlyTwoMethodsSelected
- ^ self selectedMethods value size == 2
+ ^ self selectedMethodsValue size == 2
+
+ "Modified: / 28-02-2012 / 16:20:11 / cg"
!
hasExactlyTwoMethodsSelectedHolder
@@ -19657,10 +19728,12 @@
!
hasExtensionMethodSelected
- ^ self selectedMethods value ? #()
- contains:[:aMethod | aMethod containingClass isNil
- or:[ aMethod package ~= aMethod containingClass package ]
- ]
+ ^ self hasAnyMethodSelectedForWhich:[:m |
+ m containingClass isNil
+ or:[ m package ~= m containingClass package ]
+ ]
+
+ "Modified: / 28-02-2012 / 16:21:22 / cg"
!
hasExtensionMethodSelectedHolder
@@ -19707,12 +19780,9 @@
!
hasInstanceMethodsSelected
- |methods|
-
- methods := self selectedMethods value.
- methods size == 0 ifTrue:[ ^ false ].
- ^ (methods conform:[:eachMethod | eachMethod mclass isMeta not])
-
+ ^ self hasOnlyMethodsSelectedForWhich:[:m | m mclass isMeta not]
+
+ "Modified: / 28-02-2012 / 16:26:35 / cg"
!
hasInstanceMethodsSelectedHolder
@@ -19792,8 +19862,9 @@
!
hasLoadedClassSelected
- ^ self hasClassSelected
- and:[self selectedClasses value contains:[:aClass | aClass isLoaded]]
+ ^ self hasAnyClassSelectedForWhich:[:aClass | aClass isLoaded]
+
+ "Modified: / 28-02-2012 / 16:56:54 / cg"
!
hasLoadedClassSelectedHolder
@@ -19809,10 +19880,12 @@
sel := self selectedSelectorInCodeViewOrNil.
sel isNil ifTrue:[^ false].
- (self selectedClasses value ? #()) contains:[:cls |
- (cls canUnderstand:sel) ifTrue:[^ true].
- ].
- ^ true.
+ (self hasAnyClassSelectedForWhich:[:cls |
+ (cls canUnderstand:sel)]) ifTrue:[^ true].
+
+ ^ false "true".
+
+ "Modified: / 28-02-2012 / 16:57:56 / cg"
!
hasLocalVariableSelectedInCodeView
@@ -19873,10 +19946,10 @@
!
hasMethodSelected
- ^ self selectedMethods value size > 0
-
- "Created: / 4.2.2000 / 22:09:52 / cg"
- "Modified: / 5.2.2000 / 23:06:44 / cg"
+ ^ self selectedMethodsValue size > 0
+
+ "Created: / 04-02-2000 / 22:09:52 / cg"
+ "Modified: / 28-02-2012 / 16:37:12 / cg"
!
hasMethodSelectedAndCanFileOutSIFHolder
@@ -19939,8 +20012,9 @@
!
hasMethodWithBreakPointSelected
- ^ self selectedMethods value ? #()
- contains:[:aMethod | aMethod isBreakpointed ]
+ ^ self hasAnyMethodSelectedForWhich:[:m | m isBreakpointed ]
+
+ "Modified: / 28-02-2012 / 16:23:11 / cg"
!
hasMethodWithBreakPointSelectedHolder
@@ -19948,8 +20022,9 @@
!
hasMethodWithTracePointSelected
- ^ self selectedMethods value ? #()
- contains:[:aMethod | aMethod isWrapped and:[aMethod isBreakpointed not] ]
+ ^ self hasAnyMethodSelectedForWhich:[:m | m isWrapped and:[m isBreakpointed not] ]
+
+ "Modified: / 28-02-2012 / 16:23:22 / cg"
!
hasMethodWithTracePointSelectedHolder
@@ -19957,8 +20032,9 @@
!
hasMethodWithWrapSelected
- ^ self selectedMethods value ? #()
- contains:[:aMethod | aMethod isWrapped ]
+ ^ self hasAnyMethodSelectedForWhich:[:m | m isWrapped ]
+
+ "Modified: / 28-02-2012 / 16:23:39 / cg"
!
hasMethodWithWrapSelectedHolder
@@ -19966,8 +20042,9 @@
!
hasMethodWithoutBreakPointSelected
- ^ self selectedMethods value ? #()
- contains:[:aMethod | aMethod isBreakpointed not ]
+ ^ self hasAnyMethodSelectedForWhich:[:m | m isBreakpointed not ]
+
+ "Modified: / 28-02-2012 / 16:23:53 / cg"
!
hasMethodWithoutBreakPointSelectedHolder
@@ -19989,7 +20066,9 @@
!
hasMultipleClassesSelected
- ^ self selectedClasses value size > 1
+ ^ self selectedClassesValue size > 1
+
+ "Modified: / 28-02-2012 / 16:58:02 / cg"
!
hasMultipleClassesSelectedHolder
@@ -19999,7 +20078,9 @@
!
hasMultipleMethodsSelected
- ^ self selectedMethods value size > 1
+ ^ self selectedMethodsValue size > 1
+
+ "Modified: / 28-02-2012 / 16:24:51 / cg"
!
hasMultipleMethodsSelectedHolder
@@ -20009,7 +20090,9 @@
!
hasMultipleSelectorsSelected
- ^ (self selectedMethods value collect:[:eachMethod | eachMethod selector]) size > 1
+ ^ (self selectedMethodsValue collect:[:eachMethod | eachMethod selector]) size > 1
+
+ "Modified: / 28-02-2012 / 16:24:58 / cg"
!
hasMultipleSelectorsSelectedHolder
@@ -20110,14 +20193,9 @@
!
hasNonPrivateClassSelected
- |classes|
-
- (classes := self selectedClasses value) size > 0 ifTrue:[
- ^ classes contains:[:aClass | aClass owningClass isNil]
- ].
- ^ false
-
- "Created: / 11.2.2000 / 11:07:54 / cg"
+ ^ self hasAnyClassSelectedForWhich:[:aClass | aClass owningClass isNil]
+
+ "Created: / 11-02-2000 / 11:07:54 / cg"
!
hasNonPrivateClassSelectedAndSourceCodeManagerHolder
@@ -20198,6 +20276,15 @@
^ [ self hasOOMPackageLoaded ]
!
+hasOnlyMethodsSelectedForWhich:aBlock
+ |sel|
+
+ sel := self selectedMethodsValue.
+ ^ (sel size > 0) and:[ sel conform:aBlock ]
+
+ "Created: / 28-02-2012 / 16:26:17 / cg"
+!
+
hasOnlyMethodsWithBreakPointSelected
|anyBreak anyWrap|
@@ -20277,7 +20364,7 @@
!
hasProjectDefinitionWithAnyUnloadedClassSelected
- ((self selectedClasses value) ? #()) do:[:cls |
+ (self selectedClassesValue) do:[:cls |
cls isLoaded ifFalse:[^ true].
cls isProjectDefinition ifTrue:[
cls hasAllExtensionsLoaded ifFalse:[^ true].
@@ -20287,7 +20374,7 @@
^ true
"Created: / 17-08-2006 / 00:49:24 / cg"
- "Modified: / 12-10-2006 / 21:51:16 / cg"
+ "Modified: / 28-02-2012 / 16:58:59 / cg"
!
hasProjectDefinitionWithAnyUnloadedClassSelectedHolder
@@ -20374,14 +20461,16 @@
!
hasRealExtensionMethodSelected
- ^ self selectedMethods value ? #()
- contains:[:aMethod | |mPackage|
+ ^ self hasAnyMethodSelectedForWhich:[:aMethod |
+ |mPackage|
+
mPackage := aMethod package.
aMethod containingClass notNil
and:[mPackage ~= aMethod containingClass package
- and:[mPackage ~= PackageId noProjectID]] ]
-
- "Modified: / 12-10-2006 / 20:51:30 / cg"
+ and:[mPackage ~= PackageId noProjectID]]
+ ]
+
+ "Modified: / 28-02-2012 / 16:24:22 / cg"
!
hasRealExtensionMethodSelectedHolder
@@ -20461,15 +20550,13 @@
!
hasSharedPoolClassSelected
- ^ self hasClassSelected
- and:[self selectedClasses value
- contains:[:cls |
+ ^ self hasAnyClassSelectedForWhich:[:cls |
cls isLoaded
and:[(cls theNonMetaclass askFor:#isAbstract) not
- and:[ cls inheritsFrom:SharedPool ]]] ]
+ and:[ cls inheritsFrom:SharedPool ]]]
"Created: / 25-10-2006 / 09:23:07 / cg"
- "Modified: / 29-06-2011 / 21:03:43 / cg"
+ "Modified: / 28-02-2012 / 16:59:17 / cg"
!
hasSharedPoolClassSelectedHolder
@@ -20553,10 +20640,10 @@
!
hasSingleClassSelected
- ^ self selectedClasses value size == 1
-
- "Created: / 4.2.2000 / 22:03:24 / cg"
- "Modified: / 6.2.2000 / 01:12:45 / cg"
+ ^ self selectedClassesValue size == 1
+
+ "Created: / 04-02-2000 / 22:03:24 / cg"
+ "Modified: / 28-02-2012 / 16:59:22 / cg"
!
hasSingleClassSelectedAndCanUseRefactoringSupportHolder
@@ -20645,10 +20732,10 @@
!
hasSingleMethodSelected
- ^ self selectedMethods value size == 1
-
- "Created: / 4.2.2000 / 22:10:05 / cg"
- "Modified: / 5.2.2000 / 23:06:51 / cg"
+ ^ self selectedMethodsValue size == 1
+
+ "Created: / 04-02-2000 / 22:10:05 / cg"
+ "Modified: / 28-02-2012 / 16:25:03 / cg"
!
hasSingleMethodSelectedAndCanUseRefactoringSupportHolder
@@ -20942,8 +21029,7 @@
!
hasUnassignedExtensionMethodSelected
- ^ self selectedMethods value ? #()
- contains:[:aMethod |
+ ^ self hasAnyMethodSelectedForWhich:[:aMethod |
|mPackage mClass|
mPackage := aMethod package.
@@ -20953,7 +21039,7 @@
and:[mPackage = PackageId noProjectID]]
]
- "Modified: / 12-10-2006 / 20:51:23 / cg"
+ "Modified: / 28-02-2012 / 16:24:32 / cg"
!
hasUnassignedExtensionMethodSelectedHolder
@@ -20992,12 +21078,13 @@
hasUpdateMethodSelected
^ self hasMethodSelected
- and:[self selectedMethods value
- conform:[:eachMethod | #(
+ and:[self hasOnlyMethodsSelectedForWhich:[:eachMethod | #(
#'update:'
#'update:with:'
#'update:with:from:'
) includes:eachMethod selector ]]
+
+ "Modified: / 28-02-2012 / 16:27:19 / cg"
!
hasUpdateMethodSelectedHolder
@@ -21092,9 +21179,9 @@
isMethodListBrowserOrHasMultipleClassesSelectedHolder
^ [navigationState isMethodListBrowser
- or:[self selectedClasses value size > 1] ]
-
- "Created: / 4.2.2000 / 22:23:39 / cg"
+ or:[self selectedClassesValue size > 1] ]
+
+ "Created: / 04-02-2000 / 22:23:39 / cg"
!
isPlsqlMetaclassPresent
@@ -21228,7 +21315,6 @@
^ UserPreferences current useSearchBarInBrowser or:[self codeView searchBarActionBlock notNil]
! !
-
!NewSystemBrowser methodsFor:'change & update'!
categorySelectionChanged
@@ -21344,7 +21430,7 @@
"/ dont update codeView, as long as no protocol is selected
((codeAspect := self codeAspect) == #repositoryLog
or:[codeAspect == #repositoryHistory]) ifTrue:[
- self selectedMethods value size == 0 ifTrue:[
+ self selectedMethodsValue size == 0 ifTrue:[
^ self
]
].
@@ -21363,7 +21449,7 @@
].
methodInfoProcess := [ self asyncShowMethodInfo. methodInfoProcess := nil. ] fork.
- "Modified: / 18.8.2000 / 19:23:55 / cg"
+ "Modified: / 28-02-2012 / 16:15:54 / cg"
!
delayedProtocolSelectionChanged
@@ -21431,7 +21517,7 @@
"/ show method, or class definition
- methods := self selectedMethods value.
+ methods := self selectedMethodsValue.
methods size == 1 ifTrue:[
mthd := methods first.
].
@@ -21461,9 +21547,11 @@
(protocol isNil or:[protocol = BrowserList nameListEntryForALL]) ifTrue:[
doShowMethodTemplate := false
] ifFalse:[
- doShowMethodTemplate := self showMethodTemplate value
+ navigationState showMethodTemplate ifTrue:[
+ doShowMethodTemplate := self showMethodTemplate value
"/ and:[ShowMethodTemplateWhenProtocolIsSelected == true
"/ or:[ navigationState methodList size == 0 ]].
+ ]
].
doShowMethodTemplate ifTrue:[
methods size > 1 ifTrue:[
@@ -21550,7 +21638,7 @@
self updateProtocolSelectionForChangedMethodSelection.
"Created: / 29-08-2006 / 13:59:06 / cg"
- "Modified: / 06-09-2006 / 16:37:56 / cg"
+ "Modified: / 28-02-2012 / 16:15:58 / cg"
!
delayedVariableSelectionChanged
@@ -21948,7 +22036,7 @@
or:[ something == #primitiveVariables ]]]]]].
isForAspect ifTrue:[
- ((self selectedClasses value ? #()) contains:[:cls | cls name = aParameter name]) ifTrue:[
+ ((self selectedClassesValue) contains:[:cls | cls name = aParameter name]) ifTrue:[
self enqueueDelayedUpdateCode.
]
].
@@ -21978,8 +22066,8 @@
super update:something with:aParameter from:changedObject
- "Modified: / 20-11-2006 / 12:29:59 / cg"
"Modified: / 15-11-2011 / 23:10:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 28-02-2012 / 16:51:27 / cg"
!
updateBookmarkHolder
@@ -22243,7 +22331,7 @@
browseImplementorsOfAny
|selectors|
- selectors := self selectedMethods value collect:[:each | each selector].
+ selectors := self selectedMethodsValue collect:[:each | each selector].
^ self
askForMethodAndSpawnSearchTitle:'Browse Implementors of (any in selected):'
@@ -22265,6 +22353,8 @@
withTextEntry:false
withMethodList:false
setSearchPattern:nil
+
+ "Modified: / 28-02-2012 / 16:14:55 / cg"
!
browseInheritanceOf
@@ -23313,9 +23403,7 @@
whereDefault := SearchDialog lastStringSearchArea ? self defaultSearchArea.
whereDefault == #classes ifTrue:[
- ((self selectedMethods value ? #())
- contains:[:anyMethod | anyMethod mclass notNil
- and:[anyMethod mclass isPrivate]])
+ (self hasAnyMethodSelectedForWhich:[:m | m mclass notNil and:[m mclass isPrivate]])
ifTrue:[
whereDefault := #ownersWithPrivateClasses
]
@@ -23335,7 +23423,7 @@
brwsr autoSearchPattern:string ignoreCase:ignoreCase.
]
- "Modified: / 22-12-2011 / 10:04:46 / cg"
+ "Modified: / 28-02-2012 / 16:40:11 / cg"
!
browseMenuMethodsWithStringInHelpSpec
@@ -23345,7 +23433,7 @@
whereDefault := self defaultSearchArea.
whereDefault == #classes ifTrue:[
- ((self selectedMethods value ? #()) contains:[:anyMethod | anyMethod mclass isPrivate]) ifTrue:[
+ (self hasAnyMethodSelectedForWhich:[:m | m mclass isPrivate]) ifTrue:[
whereDefault := #ownersWithPrivateClasses
]
].
@@ -23360,7 +23448,7 @@
brwsr autoSearchPattern:string ignoreCase:ignoreCase.
]
- "Modified: / 22-12-2011 / 10:04:52 / cg"
+ "Modified: / 28-02-2012 / 16:40:37 / cg"
!
browseMenuMethodsWithStringInMenuSpec
@@ -23370,7 +23458,7 @@
whereDefault := self defaultSearchArea.
whereDefault == #classes ifTrue:[
- ((self selectedMethods value ? #()) contains:[:anyMethod | anyMethod mclass isPrivate]) ifTrue:[
+ (self hasAnyMethodSelectedForWhich:[:m | m mclass isPrivate]) ifTrue:[
whereDefault := #ownersWithPrivateClasses
]
].
@@ -23385,7 +23473,7 @@
brwsr autoSearchPattern:string ignoreCase:ignoreCase.
]
- "Modified: / 22-12-2011 / 10:04:57 / cg"
+ "Modified: / 28-02-2012 / 16:40:54 / cg"
!
browseMenuMethodsWithStringLiteral
@@ -24134,7 +24222,7 @@
browseSendersOfAny
|selectors|
- selectors := self selectedMethods value collect:[:each | each selector].
+ selectors := self selectedMethodsValue collect:[:each | each selector].
false ifTrue:[
self autoSearchSelector:selectors ignoreCase:false doMatch:true.
@@ -24157,7 +24245,7 @@
brwsr autoSearchSelector:selectors ignoreCase:ignoreCase doMatch:doMatch.
]
- "Modified: / 13.11.2001 / 11:18:02 / cg"
+ "Modified: / 28-02-2012 / 16:15:36 / cg"
!
defaultSearchArea
@@ -24431,6 +24519,14 @@
!
createBufferWithSpec:aSpec
+ ^ self createBufferWithSpec:aSpec setupFromCurrentState:true
+
+ "Modified: / 27-02-2008 / 08:43:21 / janfrog"
+ "Modified: / 02-06-2011 / 22:34:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 28-02-2012 / 10:21:42 / cg"
+!
+
+createBufferWithSpec:aSpec setupFromCurrentState:doSetup
|nr bNameList oldNavigationState|
bNameList := self bufferNameList. "/ for lazy setup
@@ -24454,7 +24550,7 @@
navigationState := NavigationState new.
navigationState canvasType:aSpec.
- self setupNavigationStateFrom:oldNavigationState.
+ doSetup ifTrue:[self setupNavigationStateFrom:oldNavigationState ].
navigationState canvas:(self newCanvasWithSpec:aSpec).
@@ -24472,6 +24568,7 @@
"Modified: / 29-02-2000 / 10:40:04 / cg"
"Modified: / 27-02-2008 / 08:43:21 / janfrog"
"Modified: / 02-06-2011 / 22:34:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 28-02-2012 / 10:21:08 / cg"
!
destroyTab:tabIndex
@@ -24485,13 +24582,14 @@
brwsr := self class openInClass:aClass selector:selector
] ifFalse:[
brwsr := self.
- brwsr createBuffer.
+ "/ brwsr createBuffer.
+ brwsr createBufferWithSpec:#fullBrowserSpec setupFromCurrentState:false.
brwsr selectedCategories value:nil. "/ kludge workaround; classList needs a change to update.
brwsr switchToClass:aClass selector:selector.
].
^ brwsr
- "Modified: / 09-10-2006 / 12:03:24 / cg"
+ "Modified: / 28-02-2012 / 10:22:24 / cg"
! !
!NewSystemBrowser methodsFor:'menu actions-category'!
@@ -25034,14 +25132,15 @@
!
categoryMenuRewrite
-
| classes |
- classes := self selectedClassesInCategories: self selectedCategories value.
+
+ classes := self selectedClassesInCategories: self selectedCategoriesValue.
MethodRewriter new
classes: classes;
open
"Created: / 21-07-2007 / 07:06:53 / janfrog"
+ "Modified: / 28-02-2012 / 17:01:34 / cg"
!
categoryMenuSpawnBrowser
@@ -25228,9 +25327,9 @@
].
categoryList := categories copy.
- selectedClasses := self selectedClasses value copy.
+ selectedClasses := self selectedClassesValue copy.
selectedProtocols := self selectedProtocols value copy.
- selectedMethods := self selectedMethods value copy.
+ selectedMethods := self selectedMethodsValue copy.
self
newBrowserOrBufferDependingOn:where
@@ -25257,7 +25356,7 @@
brwsr immediateUpdate value:false.
]
- "Modified: / 13-10-2006 / 11:55:53 / cg"
+ "Modified: / 28-02-2012 / 16:52:32 / cg"
!
spawnCategoryBrowserIn:where
@@ -25271,31 +25370,46 @@
!NewSystemBrowser methodsFor:'menu actions-checks'!
classMenuCheck
- "perform all checks on the selected class(es)."
+ "perform a bunch of checks on the selected class(es).
+ This uses the old (more or less to be obsoleted) classChecker,
+ not the new SmallLint tool."
self classMenuCheck:#allChecks
+
+ "Modified (comment): / 01-03-2012 / 14:10:06 / cg"
!
classMenuCheck:whichCheck
- "perform an individual check on the selected class(es)."
+ "perform an individual check on the selected class(es).
+ This uses the old (more or less to be obsoleted) classChecker,
+ not the new SmallLint tool."
self classMenuCheckEach:(Array with:whichCheck)
- "Modified: / 18.8.2000 / 22:44:19 / cg"
+ "Modified: / 18-08-2000 / 22:44:19 / cg"
+ "Modified (comment): / 01-03-2012 / 14:10:14 / cg"
!
classMenuCheckAll
- "perform all checks on the selected class(es)."
+ "perform all checks on the selected class(es).
+ This uses the old (more or less to be obsoleted) classChecker,
+ not the new SmallLint tool."
self classMenuCheck:#allChecks
+
+ "Modified (comment): / 01-03-2012 / 14:10:19 / cg"
!
classMenuCheckEach:aCollectionOfCheckSymbols
- "perform a bunch of checks on the selected class(es)."
+ "perform a bunch of checks on the selected class(es).
+ This uses the old (more or less to be obsoleted) classChecker,
+ not the new SmallLint tool."
|classes theSingleClass lbl badMethodsGenerator badMethodInfoHolder badClassInfoHolder|
- classes := self selectedClasses value ? #().
+ classes := self selectedClassesValue.
+ classes isEmptyOrNil ifTrue:[^ self].
+
(theSingleClass := self theSingleSelectedClass) notNil ifTrue:[
lbl := 'Check results of ' , theSingleClass name
] ifFalse:[
@@ -25354,17 +25468,24 @@
sortBy:#class
"Created: / 18-08-2000 / 22:43:56 / cg"
- "Modified: / 18-05-2010 / 15:13:52 / cg"
+ "Modified: / 28-02-2012 / 16:45:37 / cg"
+ "Modified (comment): / 01-03-2012 / 14:09:59 / cg"
!
classMenuCheckErrors
- "perform error-checks on the selected class(es)."
+ "perform error-checks on the selected class(es).
+ This uses the old (more or less to be obsoleted) classChecker,
+ not the new SmallLint tool."
self classMenuCheck:#errorChecks
+
+ "Modified (comment): / 01-03-2012 / 14:10:26 / cg"
!
classMenuCheckIndividual
- "allow individual checks to be selected and perform those on the selected class(es)."
+ "allow individual checks to be selected and perform those on the selected class(es).
+ This uses the old (more or less to be obsoleted) classChecker,
+ not the new SmallLint tool."
|allChecks selectedChecks|
@@ -25383,19 +25504,86 @@
LastIndividualChecks := selectedChecks.
self classMenuCheckEach:selectedChecks.
- "Modified: / 18.8.2000 / 22:44:36 / cg"
+ "Modified: / 18-08-2000 / 22:44:36 / cg"
+ "Modified (comment): / 01-03-2012 / 14:10:31 / cg"
!
classMenuCheckStyle
- "perform style-checks on the selected class(es)."
+ "perform style-checks on the selected class(es).
+ This uses the old (more or less to be obsoleted) classChecker,
+ not the new SmallLint tool."
self classMenuCheck:#styleChecks
+
+ "Modified (comment): / 01-03-2012 / 14:10:36 / cg"
!
classMenuCheckWarnings
- "perform warning-checks on the selected class(es)."
+ "perform warning-checks on the selected class(es).
+ This uses the old (more or less to be obsoleted) classChecker,
+ not the new SmallLint tool."
self classMenuCheck:#warningChecks
+
+ "Modified (comment): / 01-03-2012 / 14:10:43 / cg"
+! !
+
+!NewSystemBrowser methodsFor:'menu actions-checks-lint'!
+
+runLintOnAllRules
+ "run the new smallLint checker tool on all rules"
+
+ self
+ smalllintCheck: self selectedCodeComponentsAsEnvironment
+ against: #smalllintRulesAll
+
+ "Created: / 07-03-2012 / 17:40:07 / cg"
+!
+
+runLintOnPreviousRules
+ "run the new smallLint checker tool"
+
+ self
+ smalllintCheck: self selectedCodeComponentsAsEnvironment
+ against: #smalllintRules
+
+ "Modified: / 17-04-2010 / 10:44:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified (comment): / 01-03-2012 / 14:10:47 / cg"
+ "Created: / 07-03-2012 / 17:39:28 / cg"
+!
+
+runLintOnSelectedRules
+ "run the new smallLint checker tool on selected rules"
+
+ self
+ smalllintCheck: self selectedCodeComponentsAsEnvironment
+ against: #smalllintRulesFromUser
+
+ "Created: / 07-03-2012 / 17:40:23 / cg"
+!
+
+smalllintRules
+
+ ^LastLintRules
+ ifNil:[self smalllintRulesFromUser]
+ ifNotNil:[LastLintRules]
+
+
+ "
+ Tools::NewSystemBrowser basicNew smalllintRules
+ "
+
+ "Modified: / 17-04-2010 / 09:42:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+smalllintRulesOrAllHolder
+ "Returns a holder on user-selected SmallLint rules
+ (or all rules if user made no selection"
+
+ ^[ self smalllintRulesOrAll ]
+
+ "Modified: / 17-04-2010 / 09:42:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 23-01-2012 / 11:05:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!NewSystemBrowser methodsFor:'menu actions-class'!
@@ -25683,7 +25871,7 @@
list := supers.
- self selectedClasses value size > 1 ifTrue:[
+ self selectedClassesValue size > 1 ifTrue:[
reqString := 'Generate isXXX methods in which superclass ?'.
title := 'Generate isXXX methods'.
] ifFalse:[
@@ -25712,7 +25900,7 @@
LastMethodMoveOrCopyTargetClass := newClass theNonMetaclass name.
^ newClass.
- "Modified: / 22.12.2001 / 03:04:48 / cg"
+ "Modified: / 28-02-2012 / 16:45:08 / cg"
!
checkCompilabilityOf:aClass errorsOnly:errorsOnly outputTo:outStream
@@ -25864,13 +26052,15 @@
classList := self classListGenerator value.
self assert:classList isOrderedCollection.
- classesToHide := self selectedClasses value copy.
+ classesToHide := self selectedClassesValue copy.
classesToHide do:[:classToHide |
classList removeIdentical:classToHide
].
classList sort:[:a :b | a name < b name].
self classListGenerator changed.
+
+ "Modified: / 28-02-2012 / 16:45:26 / cg"
!
classMenuChangeAspect:aspect
@@ -26152,12 +26342,12 @@
classMenuExcludeFromProject
|projectDefinitionClasses|
- projectDefinitionClasses := (self selectedClasses value collect:[:cls | cls projectDefinitionClass]) asSet.
+ projectDefinitionClasses := (self selectedClassesValue collect:[:cls | cls projectDefinitionClass]) asSet.
projectDefinitionClasses do:[:eachDefinitionClass |
|toExcludeForThis|
- toExcludeForThis := self selectedClasses value select:[:cls | cls projectDefinitionClass == eachDefinitionClass].
+ toExcludeForThis := self selectedClassesValue select:[:cls | cls projectDefinitionClass == eachDefinitionClass].
self
generateUndoableChange:(resources string:'Exclude %1 class(es) from Project %2' with:toExcludeForThis size with:eachDefinitionClass name)
@@ -26168,7 +26358,7 @@
].
"Created: / 19-02-2007 / 17:29:12 / cg"
- "Modified: / 26-01-2012 / 14:05:59 / cg"
+ "Modified: / 28-02-2012 / 16:46:23 / cg"
!
classMenuFileOutAs
@@ -26202,7 +26392,7 @@
self
fileOutClass:cls
askForFile:true
- withCancelAll:(self selectedClasses value size > 1)
+ withCancelAll:(self selectedClassesValue size > 1)
format:aFormatSymbolOrNil
sourceMode:mode.
]
@@ -26214,12 +26404,14 @@
ifPrivate:
[:cls | |owner|
owner := cls owningClass.
- (self selectedClasses value includes:owner) ifFalse:[
+ (self selectedClassesValue includes:owner) ifFalse:[
self warn:'Cannot fileOut private class: %1\\Please fileOut the owning class (%2).'
with:cls nameWithoutPrefix allBold
with:owner name.
]
]
+
+ "Modified: / 28-02-2012 / 16:46:20 / cg"
!
classMenuFileOutBinaryAs
@@ -26428,9 +26620,9 @@
classMenuGenerateApplicationCode
"create application code methods"
- self classMenuGenerateApplicationCodeForClasses:(self selectedClasses value ? #())
-
- "Modified: / 21-01-2012 / 11:10:11 / cg"
+ self classMenuGenerateApplicationCodeForClasses:(self selectedClassesValue)
+
+ "Modified: / 28-02-2012 / 16:46:34 / cg"
!
classMenuGenerateApplicationCodeFor:cls using:generator
@@ -26712,7 +26904,9 @@
!
classMenuGenerateProjectDefinitions
- self generateProjectDefinitionsIn:(self selectedClasses value ? #())
+ self generateProjectDefinitionsIn:(self selectedClassesValue)
+
+ "Modified: / 28-02-2012 / 16:46:49 / cg"
!
classMenuGenerateRedefinedInstanceCreationMethods
@@ -26884,12 +27078,12 @@
|projectDefinitionClasses|
- projectDefinitionClasses := (self selectedClasses value collect:[:cls | cls projectDefinitionClass]) asSet.
+ projectDefinitionClasses := (self selectedClassesValue collect:[:cls | cls projectDefinitionClass]) asSet.
projectDefinitionClasses do:[:eachDefinitionClass |
|toIncludeForThis|
- toIncludeForThis := self selectedClasses value select:[:cls | cls projectDefinitionClass == eachDefinitionClass].
+ toIncludeForThis := self selectedClassesValue select:[:cls | cls projectDefinitionClass == eachDefinitionClass].
self
generateUndoableChange:(resources string:'Include %1 class(es) in Project %2 (Make Compiled Class)' with:toIncludeForThis size with:eachDefinitionClass name)
@@ -26900,7 +27094,7 @@
].
"Created: / 19-02-2007 / 16:46:16 / cg"
- "Modified: / 26-01-2012 / 14:05:25 / cg"
+ "Modified: / 28-02-2012 / 16:47:12 / cg"
!
classMenuInitialize
@@ -26920,7 +27114,7 @@
|selectedClasses superClasses superClass name existingClass|
- selectedClasses := self selectedClasses value.
+ selectedClasses := self selectedClassesValue.
selectedClasses do:[:each | each autoload].
superClasses := selectedClasses collect:[:c | c superclass].
@@ -26953,6 +27147,8 @@
self switchToClassNamed:name.
"/ meta: self isMeta
"/ categories: self categories
+
+ "Modified: / 28-02-2012 / 16:47:15 / cg"
!
classMenuInspectClass
@@ -27089,21 +27285,21 @@
"fileOut selected classes (chunk format) and eMail to someone"
self
- mailClasses:self selectedClasses value
+ mailClasses:self selectedClassesValue
subject:'Class Source from Browser'
- "Modified: / 20-09-2007 / 15:03:32 / cg"
+ "Modified: / 28-02-2012 / 16:47:18 / cg"
!
classMenuMakeAutoloadedInProject
|projectDefinitionClasses|
- projectDefinitionClasses := (self selectedClasses value collect:[:cls | cls theNonMetaclass projectDefinitionClass]) asSet.
+ projectDefinitionClasses := (self selectedClassesValue collect:[:cls | cls theNonMetaclass projectDefinitionClass]) asSet.
projectDefinitionClasses do:[:eachDefinitionClass |
|toMakeAutoloadedForThis|
- toMakeAutoloadedForThis := self selectedClasses value select:[:cls | cls theNonMetaclass projectDefinitionClass == eachDefinitionClass].
+ toMakeAutoloadedForThis := self selectedClassesValue select:[:cls | cls theNonMetaclass projectDefinitionClass == eachDefinitionClass].
self
generateUndoableChange:(resources string:'Make %1 class(es) autoloaded in %2' with:toMakeAutoloadedForThis size with:eachDefinitionClass name)
overClasses:(Array with: eachDefinitionClass)
@@ -27122,7 +27318,7 @@
currentClass := self theSingleSelectedClass.
currentClass isNil ifTrue:[
- currentClass := self selectedClasses value first
+ currentClass := self selectedClassesValue first
].
currentClass := currentClass theNonMetaclass.
supers := (currentClass allSuperclasses reverse collect:[:cls | cls name]).
@@ -27180,7 +27376,7 @@
eachClass theMetaclass setOwningClass:newOwner.
].
- "Modified: / 12-09-2006 / 13:50:04 / cg"
+ "Modified: / 28-02-2012 / 16:47:28 / cg"
!
classMenuMakePublic
@@ -27363,7 +27559,7 @@
|newProject packages msg|
- packages := self selectedClasses value collect:[:each | each package].
+ packages := self selectedClassesValue collect:[:each | each package].
packages size == 1 ifTrue:[
msg := resources string:'Move class(es) from ''%1'' to which project:'
with:packages first allBold.
@@ -27377,8 +27573,8 @@
]
].
- "Created: / 17.2.2000 / 22:50:07 / cg"
- "Modified: / 17.2.2000 / 23:03:01 / cg"
+ "Created: / 17-02-2000 / 22:50:07 / cg"
+ "Modified: / 28-02-2012 / 16:47:31 / cg"
!
classMenuNewApplication
@@ -27814,7 +28010,7 @@
!
classMenuRegenerateProjectContentsDefinitions
- self updateProjectContentsDefinitionsIn:(self selectedClasses value ? #()) regenerate:true
+ self updateProjectContentsDefinitionsIn:(self selectedClassesValue) regenerate:true
"Created: / 12-10-2006 / 16:53:30 / cg"
!
@@ -27845,8 +28041,8 @@
|offerCancel offerYesToAll classesToRemove|
classesToRemove := OrderedCollection new.
- offerCancel := self selectedClasses value size > 1.
- offerYesToAll := self selectedClasses value size > 1.
+ offerCancel := self selectedClassesValue size > 1.
+ offerYesToAll := self selectedClassesValue size > 1.
YesToAllConfirmation handleConfirmationIn:[
self
@@ -27923,7 +28119,7 @@
].
]
- "Modified: / 04-09-2006 / 11:22:02 / cg"
+ "Modified: / 28-02-2012 / 16:47:47 / cg"
!
classMenuRename
@@ -28129,7 +28325,7 @@
classMenuRewrite
MethodRewriter new
- classes: self selectedClasses value;
+ classes: self selectedClassesValue;
open
"Created: / 05-07-2011 / 14:48:32 / cg"
@@ -28178,53 +28374,73 @@
classMenuSpawnBufferWithClassOrSubclassReferences
"add a buffer showing references to any of the selected classes or any of its subclasses"
- self spawnClassOrSubclassReferencesBrowserFor:(self selectedClasses value) in:#newBuffer
+ self spawnClassOrSubclassReferencesBrowserFor:(self selectedClassesValue) in:#newBuffer
+
+ "Modified: / 28-02-2012 / 16:48:06 / cg"
!
classMenuSpawnBufferWithClassProjects
"add a new buffer showing the selected classes projects"
- self spawnClassProjectsBrowserFor:(self selectedClasses value) in:#newBuffer
-
- "Created: / 18.8.2000 / 19:12:33 / cg"
+ self spawnClassProjectsBrowserFor:(self selectedClassesValue) in:#newBuffer
+
+ "Created: / 18-08-2000 / 19:12:33 / cg"
!
classMenuSpawnBufferWithClassReferences
"add a buffer showing references to any of the selected classes"
- self spawnClassReferencesBrowserFor:(self selectedClasses value) in:#newBuffer
+ self spawnClassReferencesBrowserFor:(self selectedClassesValue) in:#newBuffer
+
+ "Modified: / 28-02-2012 / 16:48:11 / cg"
+!
+
+classMenuSpawnBufferWithCommonSuperclass
+ "open a new browser showing the selected classes' common superclass"
+
+ self spawnWithCommonSuperclassIn:#newBuffer
+
+ "Created: / 28-02-2012 / 08:58:56 / cg"
!
classMenuSpawnClass
"open a new browser showing the selected classes only"
- self spawnClassBrowserFor:(self selectedClasses value) in:#newBrowser
+ self spawnClassBrowserFor:(self selectedClassesValue) in:#newBrowser
+
+ "Modified: / 28-02-2012 / 16:48:14 / cg"
!
classMenuSpawnClassBuffer
"add a buffer showing the selected classes only"
- self spawnClassBrowserFor:(self selectedClasses value) in:#newBuffer
+ self spawnClassBrowserFor:(self selectedClassesValue) in:#newBuffer
+
+ "Modified: / 28-02-2012 / 16:48:16 / cg"
!
classMenuSpawnClassOrSubclassReferences
"open a new browser showing references to the selected classes or any of its subclass"
- self spawnClassOrSubclassReferencesBrowserFor:(self selectedClasses value) in:#newBrowser
+ self spawnClassOrSubclassReferencesBrowserFor:(self selectedClassesValue) in:#newBrowser
+
+ "Modified: / 28-02-2012 / 16:48:20 / cg"
!
classMenuSpawnClassProjects
"open a new browser showing the selected classes projects"
- self spawnClassProjectsBrowserFor:(self selectedClasses value) in:#newBrowser
-
- "Created: / 18.8.2000 / 19:12:14 / cg"
+ self spawnClassProjectsBrowserFor:(self selectedClassesValue) in:#newBrowser
+
+ "Created: / 18-08-2000 / 19:12:14 / cg"
!
classMenuSpawnClassReferences
"open a new browser showing references to the selected classes "
- self spawnClassReferencesBrowserFor:(self selectedClasses value) in:#newBrowser
+ self spawnClassReferencesBrowserFor:(self selectedClassesValue) in:#newBrowser
+
+ "Modified: / 28-02-2012 / 16:48:26 / cg"
!
classMenuSpawnWithAllSubclasses
@@ -28239,12 +28455,20 @@
self spawnWithAllSuperclassesIn:#newBrowser
!
+classMenuSpawnWithCommonSuperclass
+ "open a new browser showing the selected classes' common superclass"
+
+ self spawnWithCommonSuperclassIn:#newBrowser
+
+ "Created: / 28-02-2012 / 08:58:10 / cg"
+!
+
classMenuUpdate
self classListApp forceUpdateList
!
classMenuUpdateProjectContentsDefinitions
- self updateProjectContentsDefinitionsIn:(self selectedClasses value ? #()) regenerate:false
+ self updateProjectContentsDefinitionsIn:(self selectedClassesValue) regenerate:false
"Created: / 10-10-2006 / 20:50:23 / cg"
!
@@ -28892,7 +29116,7 @@
self
generateUndoableChange:nameOfOperation
- overClasses:(self selectedClasses value ? #())
+ overClasses:(self selectedClassesValue)
via:aBlock
"Created: / 21-01-2012 / 10:22:19 / cg"
@@ -28903,8 +29127,10 @@
self
generateUndoableChange:nameOfOperation
- overClasses:(self selectedClasses value ? #())
+ overClasses:(self selectedClassesValue)
via:aBlock
+
+ "Modified: / 28-02-2012 / 16:49:22 / cg"
!
generateUndoableChangeOverSelectedMethods:nameOfOperation via:aBlock
@@ -28912,7 +29138,7 @@
|selMethods generator count dict method methodName languageOfFirstMethod|
- selMethods := self selectedMethods value.
+ selMethods := self selectedMethodsValue.
languageOfFirstMethod := selMethods first mclass programmingLanguage.
(selMethods conform:[:mthd | (mthd mclass programmingLanguage) = languageOfFirstMethod]) ifFalse:[
@@ -28939,7 +29165,7 @@
dict at:#sForPlural put:'s'.
dict at:#singleMethodNameOrNumberOfMethods put:(count printString allBold , ' methods').
] ifFalse:[
- method := self selectedMethods value first.
+ method := self selectedMethodsValue first.
methodName := method mclass nameWithoutPrefix , '>>' , method selector allBold.
dict at:#numMethodsOrEmpty put:' '.
dict at:#inSingleMethodOrEmpty put:' in ' , methodName.
@@ -28951,7 +29177,7 @@
generator executeCollectedChangesNamed:(nameOfOperation expandPlaceholdersWith:dict)
"Modified: / 06-12-2011 / 15:27:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 21-12-2011 / 15:46:19 / cg"
+ "Modified: / 28-02-2012 / 16:16:27 / cg"
!
launchSelectedApplication
@@ -29032,14 +29258,18 @@
moveSelectedClassesToCategory:newCategory
"change the class-category of the selected classes"
- self moveClasses:(self selectedClasses value) toCategory:newCategory
+ self moveClasses:(self selectedClassesValue) toCategory:newCategory
+
+ "Modified: / 28-02-2012 / 16:59:32 / cg"
!
moveSelectedClassesToProject:newProject
"change the packageID of the selected classes
(and optionally the packageID of any methods (if they are from different packages)"
- self moveClasses:(self selectedClasses value) toProject:newProject
+ self moveClasses:(self selectedClassesValue) toProject:newProject
+
+ "Modified: / 28-02-2012 / 16:59:35 / cg"
!
openClassDocumentationFor:aClass
@@ -29284,7 +29514,7 @@
selectedClasses := classes copy.
navigationState notNil ifTrue:[
selectedProtocols := self selectedProtocols value copy.
- selectedMethods := self selectedMethods value copy.
+ selectedMethods := self selectedMethodsValue copy.
(selectedMethods size > 0
and:[ selectedProtocols size == 0 ]) ifTrue:[
selectedProtocols := (selectedMethods collect:[:each | each category]) asSet asOrderedCollection
@@ -29313,7 +29543,7 @@
brwsr meta onChangeEvaluate:[ brwsr classListGenerator changed ].
]
- "Modified: / 26-10-2011 / 18:49:25 / cg"
+ "Modified: / 28-02-2012 / 16:30:36 / cg"
!
spawnClassBrowserForSearch:searchBlock sortBy:sortByWhat in:openHow label:lbl
@@ -29650,29 +29880,31 @@
!
spawnSingleClassBrowserFor:classes in:where
- "browse selected class(es);
+ "browse selected class(es) in a single class (classlist) browser
where is: #newBrowser - open a new browser showing the classes
where is: #newBuffer - add a new buffer showing the classes"
^ self spawnSingleClassBrowserFor:classes label:nil in:where
"Created: / 22-07-2011 / 18:41:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified (comment): / 28-02-2012 / 09:22:57 / cg"
!
spawnSingleClassBrowserFor:class label:titleOrNil in:where
- "browse selected class(es);
+ "browse selected class(es) in a single class (classlist) browser
where is: #newBrowser - open a new browser showing the classes
where is: #newBuffer - add a new buffer showing the classes"
^ self spawnSingleClassBrowserFor:class label:titleOrNil in:where select:true
"Created: / 22-07-2011 / 18:42:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified (comment): / 28-02-2012 / 09:23:05 / cg"
!
spawnSingleClassBrowserFor:class label:labelOrNil in:where select:doSelectIn
"browse selected class(es);
- where is: #newBrowser - open a new browser showing the classes
- where is: #newBuffer - add a new buffer showing the classes"
+ where is: #newBrowser - open a new browser showing the class
+ where is: #newBuffer - add a new buffer showing the class"
|spec meta allClasses selectedClasses selectedProtocols selectedMethods singleClass doSelect|
@@ -29689,7 +29921,7 @@
selectedClasses := Array with: singleClass.
navigationState notNil ifTrue:[
selectedProtocols := self selectedProtocols value copy.
- selectedMethods := self selectedMethods value copy.
+ selectedMethods := self selectedMethodsValue copy.
(selectedMethods size > 0
and:[ selectedProtocols size == 0 ]) ifTrue:[
selectedProtocols := (selectedMethods collect:[:each | each category]) asSet asOrderedCollection
@@ -29719,6 +29951,7 @@
]
"Created: / 22-07-2011 / 18:37:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 28-02-2012 / 16:36:30 / cg"
!
spawnWithAllSubclassesIn:how
@@ -29737,13 +29970,13 @@
]
].
- (all removeAllFoundIn:self selectedClasses value; yourself) isEmpty ifTrue:[
+ (all removeAllFoundIn:self selectedClassesValue; yourself) isEmpty ifTrue:[
self information:'No additional subclasses (same as selected).'.
^ self
].
brwsr := self spawnMultipleClassBrowserFor:allOrdered sortBy:#doNotSort in:how.
- "Modified: / 12-09-2006 / 13:43:19 / cg"
+ "Modified: / 28-02-2012 / 16:53:07 / cg"
!
spawnWithAllSuperclassesIn:how
@@ -29761,13 +29994,33 @@
]
]
].
- (all removeAllFoundIn:(self selectedClasses value); yourself) isEmpty ifTrue:[
+ (all removeAllFoundIn:(self selectedClassesValue); yourself) isEmpty ifTrue:[
self information:'No additional superclasses (same as selected).'.
^ self
].
brwsr := self spawnMultipleClassBrowserFor:allOrdered sortBy:#doNotSort in:how.
- "Modified: / 12-09-2006 / 13:43:11 / cg"
+ "Modified: / 28-02-2012 / 16:53:10 / cg"
+!
+
+spawnWithCommonSuperclassIn:how
+ "open a new browser showing the selected classes' common superclass"
+
+ ^ self spawnWithCommonSuperclassOf:(self selectedNonMetaclasses) in:how
+
+ "Created: / 28-02-2012 / 09:02:42 / cg"
+!
+
+spawnWithCommonSuperclassOf:classes in:how
+ "open a new browser showing the classes' common superclass"
+
+ |common|
+
+ common := Behavior commonSuperclassOf:classes.
+ "/ self spawnClassBrowserFor:{ common } label:'Common superclass' in:how.
+ self spawnFullBrowserInClass:common selector:nil in:how
+
+ "Created: / 28-02-2012 / 09:07:39 / cg"
!
variablesMenuGenerateMultiSetterMethod
@@ -30196,7 +30449,7 @@
owner := cls topOwningClass.
(alreadyCheckedOut includes:owner) ifFalse:[
- (self selectedClasses value includes:owner) ifFalse:[
+ ((self selectedClassesValue ? #()) includes:owner) ifFalse:[
answer := Dialog
confirmWithCancel:(resources string:'Cannot checkOut private class: %1\\Shall the owner ''%2'' be checked out ?'
with:cls nameWithoutPrefix allBold
@@ -30320,7 +30573,7 @@
^ self
classMenuCheckIn:doCheck
- classes:(self selectedClasses value)
+ classes:(self selectedClassesValue)
usingManager:aManagerOrNil
"Created: / 21-12-2011 / 18:21:30 / cg"
@@ -30462,7 +30715,9 @@
or merge-in the repository version.
"
- self checkOutClasses:(self selectedClasses value) askForRevision:true
+ self checkOutClasses:(self selectedClassesValue) askForRevision:true
+
+ "Modified: / 28-02-2012 / 16:45:43 / cg"
!
classMenuCheckOutNewest
@@ -30471,7 +30726,9 @@
or merge-in the repository version.
"
- self checkOutClasses:(self selectedClasses value) askForRevision:false
+ self checkOutClasses:(self selectedClassesValue) askForRevision:false
+
+ "Modified: / 28-02-2012 / 16:45:46 / cg"
!
classMenuCheckOutNewestUsingManager: manager
@@ -30480,7 +30737,7 @@
or merge-in the repository version.
"
- self checkOutClasses:(self selectedClasses value) askForRevision:false usingManager: manager
+ self checkOutClasses:(self selectedClassesValue) askForRevision:false usingManager: manager
"Modified: / 11-10-2011 / 23:09:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Created: / 21-12-2011 / 20:16:21 / cg"
@@ -30504,7 +30761,7 @@
or merge-in the repository version.
"
- self checkOutClasses:(self selectedClasses value) askForRevision:true usingManager: manager
+ self checkOutClasses:(self selectedClassesValue) askForRevision:true usingManager: manager
"Modified: / 11-10-2011 / 23:10:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Created: / 21-12-2011 / 20:16:41 / cg"
@@ -30515,9 +30772,9 @@
with the the newest version found in the repository.
That is the most recent version."
- self doCompareClassesWithRepository:(self selectedClasses value).
-
- "Modified: / 13-10-2006 / 11:44:09 / cg"
+ self doCompareClassesWithRepository:(self selectedClassesValue).
+
+ "Modified: / 28-02-2012 / 16:45:55 / cg"
!
classMenuCompareAgainstNewestInRepositoryUsingManager:aManagerOrNil
@@ -30525,9 +30782,8 @@
with the the newest version found in the repository.
That is the most recent version."
- self doCompareClassesWithRepository:(self selectedClasses value) usingManager:aManagerOrNil.
-
- "Modified: / 13-10-2006 / 11:44:09 / cg"
+ self doCompareClassesWithRepository:(self selectedClassesValue) usingManager:aManagerOrNil.
+
"Created: / 21-12-2011 / 19:55:56 / cg"
!
@@ -30630,12 +30886,12 @@
].
revString := rev.
- "/ this takes some time ... is it worth ?
- (newestRev := mgr newestRevisionOf:currentClass) notNil ifTrue:[
- newestRev ~= rev ifTrue:[
- revString := rev , ' (newest is ' , newestRev , ')'
- ]
- ].
+"/ "/ this takes some time ... is it worth ?
+"/ (newestRev := mgr newestRevisionOf:currentClass) notNil ifTrue:[
+"/ newestRev ~= rev ifTrue:[
+"/ revString := rev , ' (newest is ' , newestRev , ')'
+"/ ]
+"/ ].
self busyLabel:'comparing ...' with:nil.
@@ -30974,7 +31230,7 @@
|collectionOfClasses classes classesToUnload current fileName fileVersion remote diffs allDiffs title|
- collectionOfClasses := self selectedClasses value.
+ collectionOfClasses := self selectedClassesValue.
collectionOfClasses do:[:eachClass |
|className metaclassName|
@@ -31285,7 +31541,7 @@
|collectionOfClasses classes classesToUnload current remote diffs allDiffs
title|
- collectionOfClasses := self selectedClasses value.
+ collectionOfClasses := self selectedClassesValue.
classesToUnload := IdentitySet new.
classes :=
@@ -31347,7 +31603,7 @@
"Modified: / 18-10-2006 / 13:08:21 / User"
"Created: / 11-11-2006 / 15:36:43 / cg"
- "Modified: / 12-09-2011 / 11:55:16 / cg"
+ "Modified: / 28-02-2012 / 16:46:07 / cg"
!
classMenuEditVersionInRepository
@@ -31431,7 +31687,7 @@
self
showRepositoryLogOf:cls short:shortOrNot
beforeLogDo:[:s |
- self selectedClasses value size > 1 ifTrue:[
+ self selectedClassesValue size > 1 ifTrue:[
s nextPutLine:'-----------------------------------------------------------'.
s nextPutLine:('%1 log for %2:'
bindWith:(shortOrNot ifTrue:['Short'] ifFalse:['Full'])
@@ -31449,13 +31705,15 @@
[:cls |
|owner|
owner := cls owningClass.
- (self selectedClasses value includes:owner) ifFalse:[
+ (self selectedClassesValue includes:owner) ifFalse:[
self warn:'cannot show log of private class: %1\\Please see the log of the owning class (%2).'
with:cls nameWithoutPrefix allBold
with:owner name.
]
].
self normalLabel.
+
+ "Modified: / 28-02-2012 / 16:47:53 / cg"
!
classMenuRevisionLog:shortOrNot usingManager: manager
@@ -31481,7 +31739,7 @@
self
showRepositoryLogOf:cls short:shortOrNot usingManager: manager
beforeLogDo:[:s |
- self selectedClasses value size > 1 ifTrue:[
+ self selectedClassesValue size > 1 ifTrue:[
s nextPutLine:'-----------------------------------------------------------'.
s nextPutLine:('%1 log for %2:'
bindWith:(shortOrNot ifTrue:['Short'] ifFalse:['Full'])
@@ -31499,7 +31757,7 @@
[:cls |
|owner|
owner := cls owningClass.
- (self selectedClasses value includes:owner) ifFalse:[
+ (self selectedClassesValue includes:owner) ifFalse:[
self warn:'cannot show log of private class: %1\\Please see the log of the owning class (%2).'
with:cls nameWithoutPrefix allBold
with:owner name.
@@ -34181,11 +34439,13 @@
cls := mthd mclass.
] ifFalse:[
self codeAspect value ~= #classDefinition ifTrue:[
- ^ self warn:'Select either a class or a method.'
+ ^ self warn:'Select either a single class or a single method.'
].
cls := self theSingleSelectedClass.
].
aOneArgBlock value:cls.
+
+ "Modified: / 02-03-2012 / 14:32:58 / cg"
!
withCurrentMethodsClassAndSelectorDo:aTwoArgBlock
@@ -34354,6 +34614,9 @@
"/ stop if an instance variable is true
"/ ((context receiver instVarNamed:''foo'') == true)
+ "/ stop if shift-key is pressed
+ "/ Display shiftDown
+
"/ stop after 5 calls (notice the scope of the counter variable, outside the block)
"/ counter >= 5
@@ -34390,7 +34653,7 @@
self commonTraceHelperWith:#breakPointIf: with:conditionBlock clear:true
- "Modified: / 20-10-2010 / 09:33:57 / cg"
+ "Modified: / 14-02-2012 / 11:14:24 / cg"
!
debugMenuBreakPointIn
@@ -34485,7 +34748,7 @@
debugMenuOpenCallGraphForClasses
"open an OOM CallGraph view on the selected class(es)"
- self debugMenuOpenCallGraphForClasses:(self selectedClasses value).
+ self debugMenuOpenCallGraphForClasses:(self selectedClassesValue).
"Created: / 27-04-2010 / 14:07:58 / cg"
!
@@ -34764,7 +35027,7 @@
|selectedClasses|
- selectedClasses := self selectedClasses value.
+ selectedClasses := self selectedClassesValue.
selectedClasses isEmptyOrNil ifTrue:[
selectedClasses := self selectedCategoryClasses
].
@@ -34782,7 +35045,7 @@
]
].
- "Modified: / 06-07-2011 / 14:08:06 / cg"
+ "Modified: / 28-02-2012 / 16:52:45 / cg"
! !
!NewSystemBrowser methodsFor:'menu actions-help'!
@@ -34820,12 +35083,12 @@
!NewSystemBrowser methodsFor:'menu actions-lint'!
runLint
-
- self
- smalllintCheck: self selectedCodeComponentsAsEnvironment
- against: #smalllintRules
+ "run the new smallLint checker tool"
+
+ self runLintOnPreviousRules
"Modified: / 17-04-2010 / 10:44:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 07-03-2012 / 17:39:34 / cg"
! !
!NewSystemBrowser methodsFor:'menu actions-methodList'!
@@ -34837,14 +35100,14 @@
|classes|
- classes := self selectedMethods value collect:[:each | each mclass].
- classes := classes asIdentitySet.
+ classes := self selectedMethodsClasses asOrderedCollection.
^ self
classMenuCheckIn:true
- classes:(classes asOrderedCollection)
+ classes:classes
"Modified: / 18-11-2011 / 18:49:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 28-02-2012 / 09:12:37 / cg"
!
methodListMenuCheckInClassUsingManager: manager
@@ -34852,12 +35115,11 @@
|classes|
- classes := self selectedMethods value collect:[:each | each mclass].
- classes := classes asIdentitySet.
+ classes := self selectedMethodsClasses asOrderedCollection.
^ self
classMenuCheckIn:true
- classes:(classes asOrderedCollection)
+ classes:classes
usingManager: manager.
"Created: / 18-11-2011 / 18:49:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -34947,6 +35209,14 @@
"Created: / 07-08-2006 / 12:12:47 / cg"
!
+methodListMenuSpawnBufferWithCommonSuperclass
+ "add a buffer/open a browser showing the selected methods' common superclass"
+
+ ^ self spawnWithCommonSuperclassOf:(self selectedMethodsClasses) in:#newBuffer
+
+ "Created: / 28-02-2012 / 10:18:01 / cg"
+!
+
methodListMenuSpawnClassOrSubclassReferences
"open a new browser showing references to the selected classes or any of its subclass"
@@ -34974,8 +35244,10 @@
|classes|
- classes := (self selectedMethods value collect:[:each | each mclass]) asIdentitySet asOrderedCollection.
+ classes := self selectedMethodsClasses asOrderedCollection.
^ self spawnClassBrowserFor:classes in:where select:false
+
+ "Modified: / 28-02-2012 / 09:09:44 / cg"
!
methodListMenuSpawnClassesBuffer
@@ -34984,6 +35256,14 @@
^ self methodListMenuSpawnClasses:#newBuffer
!
+methodListMenuSpawnCommonSuperclass
+ "add a buffer/open a browser showing the selected methods' common superclass"
+
+ ^ self spawnWithCommonSuperclassOf:(self selectedMethodsClasses) in:#newBrowser
+
+ "Created: / 28-02-2012 / 10:15:54 / cg"
+!
+
methodListMenuSpawnFullBrowser
"add a buffer showing the selected methodss classes"
@@ -35001,8 +35281,8 @@
|methods classes brwsr anyMeta anyNonMeta|
- methods := self selectedMethods value.
- classes := (methods collect:[:each | each mclass]) asIdentitySet asOrderedCollection.
+ methods := self selectedMethodsValue.
+ classes := self selectedMethodsClasses asOrderedCollection.
brwsr := self spawnFullBrowserInClass:nil selector:nil in:where.
classes size > 0 ifTrue:[
@@ -35025,8 +35305,9 @@
brwsr immediateUpdate value:false.
].
^ brwsr
-! !
-
+
+ "Modified: / 28-02-2012 / 16:27:44 / cg"
+! !
!NewSystemBrowser methodsFor:'menu actions-namespace'!
@@ -35134,7 +35415,7 @@
].
namespaceList := namespaces copy.
- selectedClasses := self selectedClasses value.
+ selectedClasses := self selectedClassesValue.
self
newBrowserOrBufferDependingOn:where
@@ -35150,7 +35431,7 @@
"/ brwsr immediateUpdate value:false.
]
- "Modified: / 18.8.2000 / 16:13:15 / cg"
+ "Modified: / 28-02-2012 / 16:53:04 / cg"
! !
!NewSystemBrowser methodsFor:'menu actions-other'!
@@ -35181,8 +35462,8 @@
settingsList :=
#(
#('Editor' #'AbstractSettingsApplication::EditSettingsAppl' )
+ #('Code Editor 2' #'Tools::CodeView2SettingsAppl' )
#('Syntax Color' #'AbstractSettingsApplication::SyntaxColorSettingsAppl' )
- #('Code Editor 2' #'Tools::CodeView2SettingsAppl' )
#('Code Format' #'AbstractSettingsApplication::SourceCodeFormatSettingsAppl' )
#('System Browser' #'AbstractSettingsApplication::SystemBrowserSettingsAppl' )
#('Compiler' #'AbstractSettingsApplication::GeneralCompilerSettingsAppl' )
@@ -35206,8 +35487,8 @@
settingsApp window label:('System Browser Settings').
settingsApp openWindow.
- "Modified: / 06-07-2011 / 12:38:07 / cg"
"Created: / 15-10-2011 / 12:01:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 14-02-2012 / 15:35:18 / cg"
!
openSettingsDialogAndSelectSourceCodeManagement
@@ -35252,11 +35533,13 @@
|stream|
stream := '' writeStream.
- self selectedClasses value do:[:cls |
+ self selectedClassesValue do:[:cls |
cls theNonMetaclass fileOutOn:stream.
].
self window setClipboardText:stream contents
+
+ "Modified: / 28-02-2012 / 16:46:11 / cg"
!
classMenuFileOutBuildSupportFiles
@@ -35817,7 +36100,8 @@
Transcript topView raise.
].
- projectBuilder := Tools::ProjectBuilder new
+ projectBuilder := Tools::ProjectBuilder new.
+ projectBuilder
makeExeOnly:exeOnly;
package:projectToBuild;
"/ build
@@ -38343,7 +38627,7 @@
printStream := Printer new.
- (self selectedClasses value) do:[:eachClass |
+ (self selectedClassesValue) do:[:eachClass |
(self selectedProtocols value sort) do:[:eachProtocol |
(eachClass methodDictionary contains:[:m | m category = eachProtocol])
ifTrue:[
@@ -38353,6 +38637,8 @@
].
printStream close
+
+ "Modified: / 28-02-2012 / 16:59:38 / cg"
!
protocolCheckMenuSmalllintCheck: what
@@ -38765,13 +39051,13 @@
someCategories := Set new.
"/ offer the current classes's protocols in the dialog
- (selClasses := self selectedClasses value) notNil ifTrue:[
+ (selClasses := self selectedClassesValue) notEmptyOrNil ifTrue:[
selClasses do:[:eachClass |
someCategories addAll:(eachClass categories).
]
] ifFalse:[
"/ offer the current method-classes' protocols in the dialog
- (selMethods := self selectedMethods value) notNil ifTrue:[
+ (selMethods := self selectedMethodsValue) notNil ifTrue:[
selMethods do:[:eachMethod | |cls|
(cls := eachMethod mclass) notNil ifTrue:[
someCategories addAll:cls categories
@@ -38824,7 +39110,7 @@
]
].
methodCategoryListApp notNil ifTrue:[
- (self selectedClasses value ? #()) do:[:cls |
+ (self selectedClassesValue) do:[:cls |
"/ kludge - must also rename in addedProtocols
methodCategoryListApp renameAdditionalProtocol:currentMethodCategory to:newCategory forClass:cls.
].
@@ -38837,25 +39123,29 @@
self immediateUpdate value:false.
]
- "Modified: / 06-02-2007 / 10:21:34 / cg"
+ "Modified: / 28-02-2012 / 17:00:47 / cg"
!
protocolMenuSpawn
"open a new browser showing the selected category only"
^ self
- spawnProtocolBrowserFor:(self selectedClasses value)
+ spawnProtocolBrowserFor:(self selectedClassesValue)
and:(self selectedProtocols value)
in:#newBrowser
+
+ "Modified: / 28-02-2012 / 17:00:28 / cg"
!
protocolMenuSpawnBuffer
"add a new buffer showing the selected category only"
^ self
- spawnProtocolBrowserFor:(self selectedClasses value)
+ spawnProtocolBrowserFor:(self selectedClassesValue)
and:(self selectedProtocols value)
in:#newBuffer
+
+ "Modified: / 28-02-2012 / 16:54:00 / cg"
!
protocolMenuSpawnFullCategory
@@ -38912,11 +39202,13 @@
|methodCategoryListApp|
(methodCategoryListApp := self methodCategoryListApp) notNil ifTrue:[
- (self selectedClasses value ? #()) do:[:aClass |
+ (self selectedClassesValue) do:[:aClass |
methodCategoryListApp removeAllAdditionalProtocolForClass:aClass
].
methodCategoryListApp forceUpdateList
]
+
+ "Modified: / 28-02-2012 / 16:53:56 / cg"
!
spawnFullProtocolBrowserFor:protocols in:where
@@ -38990,7 +39282,7 @@
] ifFalse:[
spec := #multipleProtocolBrowserSpec.
].
- selectedMethods := self selectedMethods value copy.
+ selectedMethods := self selectedMethodsValue copy.
^ self
newBrowserOrBufferDependingOn:where
@@ -39040,6 +39332,8 @@
brwsr immediateUpdate value:false.
]
+
+ "Modified: / 28-02-2012 / 16:34:54 / cg"
! !
!NewSystemBrowser methodsFor:'menu actions-searching'!
@@ -39457,43 +39751,47 @@
!
searchMenuFindImplementationOf
- self
- askForSelector:'Search for implementation of (if sent to selected class):'
- allowBuffer:true
- allowBrowser:true
- thenDo:[:selector :where |
- |searchClass class mthd currentMethod|
-
- searchClass := self theSingleSelectedClass.
- searchClass isNil ifTrue:[
- searchClass := self classHierarchyTopClass value.
- searchClass isNil ifTrue:[
- self information:'No class selected (cannot search).'.
- ^ self
- ]
- ].
-
- currentMethod := self theSingleSelectedMethod.
- (currentMethod notNil
- and:[currentMethod selector == selector]) ifTrue:[
- searchClass := searchClass superclass.
- ].
-
- "/ search for the implementaion
- class := searchClass whichClassIncludesSelector:selector.
- class isNil ifTrue:[
- self information:'None found'.
- ] ifFalse:[
- mthd := class compiledMethodAt:selector.
- where isNil ifTrue:[
- self rememberLocationInHistory.
- self switchToClass:class selector:selector.
- ] ifFalse:[
- self spawnMethodBrowserFor:(Array with:mthd) in:where
- label:(resources string:'Implementation of %1' with:selector)
- ]
- ].
- ]
+ self obsoleteMethodWarning.
+ ^ self searchMenuFindResponseTo.
+"/ self
+"/ askForSelector:'Search for implementation of (if sent to selected class):'
+"/ allowBuffer:true
+"/ allowBrowser:true
+"/ thenDo:[:selector :where |
+"/ |searchClass class mthd currentMethod|
+"/
+"/ searchClass := self theSingleSelectedClass.
+"/ searchClass isNil ifTrue:[
+"/ searchClass := self classHierarchyTopClass value.
+"/ searchClass isNil ifTrue:[
+"/ self information:'No class selected (cannot search).'.
+"/ ^ self
+"/ ]
+"/ ].
+"/
+"/ currentMethod := self theSingleSelectedMethod.
+"/ (currentMethod notNil
+"/ and:[currentMethod selector == selector]) ifTrue:[
+"/ searchClass := searchClass superclass.
+"/ ].
+"/
+"/ "/ search for the implementaion
+"/ class := searchClass whichClassIncludesSelector:selector.
+"/ class isNil ifTrue:[
+"/ self information:'None found'.
+"/ ] ifFalse:[
+"/ mthd := class compiledMethodAt:selector.
+"/ where isNil ifTrue:[
+"/ self rememberLocationInHistory.
+"/ self switchToClass:class selector:selector.
+"/ ] ifFalse:[
+"/ self spawnMethodBrowserFor:(Array with:mthd) in:where
+"/ label:(resources string:'Implementation of %1' with:selector)
+"/ ]
+"/ ].
+"/ ]
+
+ "Modified: / 01-03-2012 / 07:36:12 / cg"
!
searchMenuFindMethod
@@ -40046,7 +40344,9 @@
!
doMoveSelectedMethodsToProject:newProject
- self moveMethods:(self selectedMethods value) toProject:newProject
+ self moveMethods:(self selectedMethodsValue) toProject:newProject
+
+ "Modified: / 28-02-2012 / 16:16:12 / cg"
!
doRemoveMethodsConfirmed:methodsToRemove
@@ -40156,7 +40456,9 @@
doRemoveSelectedMethodsUnconfirmed
"remove selected methods without asking questions"
- self doRemoveMethodsUnconfirmed:self selectedMethods value copy
+ self doRemoveMethodsUnconfirmed:self selectedMethodsValue copy
+
+ "Modified: / 28-02-2012 / 16:16:16 / cg"
!
fileOutMethods:aCollectionOfMethods format:formatSymbolOrNil fileNameTemplate:nameOrNil boxTitle:boxTitleOrNil
@@ -40266,7 +40568,7 @@
cls := self theSingleSelectedClass.
cls isNil ifTrue:[
- classes := self selectedClasses value.
+ classes := self selectedClassesValue.
classes notEmptyOrNil ifTrue:[
cls := classes first.
]
@@ -40275,6 +40577,8 @@
^ cls programmingLanguage methodTemplate
].
^ SystemBrowser methodTemplate
+
+ "Modified: / 28-02-2012 / 16:59:30 / cg"
!
methodsPreviousVersionCode
@@ -40581,12 +40885,12 @@
].
renameSelectedMethodsOnly ifTrue:[
- (self selectedMethods value collect:[:m | m selector]) asSet size == 1 ifFalse:[
+ (self selectedMethodsValue collect:[:m | m selector]) asSet size == 1 ifFalse:[
Dialog warn:'Multiple different selectors selected'.
^ self.
].
- classesOfSelectedMethods := self selectedMethods value collect:[:m|m mclass].
+ classesOfSelectedMethods := self selectedMethodsValue collect:[:m|m mclass].
"/ classesOfSelectedMethods := classesOfSelectedMethods
"/ collect:[:cls |
"/ |className rbClass|
@@ -40608,9 +40912,19 @@
rslt := self performRefactoring:refactoring.
self switchToSelector:newSelector asSymbol.
- ]
-
- "Modified: / 09-02-2011 / 13:54:20 / cg"
+ ].
+
+ dialog browseOldSendersHolder value ifTrue:[
+ self spawnMethodSendersBrowserFor:(Array with:oldSelector) in:#newBrowser
+ ].
+ dialog browseNewSendersHolder value ifTrue:[
+ self spawnMethodSendersBrowserFor:(Array with:newSelector) in:#newBrowser
+ ].
+ dialog browseChangedMethodsHolder value ifTrue:[
+ self spawnMethodImplementorsBrowserFor:(Array with:newSelector) match:false in:#newBrowser
+ ].
+
+ "Modified: / 28-02-2012 / 16:28:12 / cg"
!
selectVariableForMoveMethod
@@ -41134,7 +41448,7 @@
selectorMenuCheckInProjectExtensions
|projects|
- projects := ((self selectedMethods value) collect:[:each | each package]) asSet.
+ projects := ((self selectedMethodsValue) collect:[:each | each package]) asSet.
projects do:[:packageToCheckIn |
self
projectMenuCheckInProject:packageToCheckIn
@@ -41142,6 +41456,8 @@
extensions:true
buildSupport:false
].
+
+ "Modified: / 28-02-2012 / 16:28:43 / cg"
!
selectorMenuCleanUpChangeSet
@@ -41151,7 +41467,7 @@
ifFalse:[ ^ self].
self withWaitCursorDo:[
- self selectedMethods value do:[:eachMethod |
+ self selectedMethodsValue do:[:eachMethod |
ChangeSet current condenseChangesForClass:eachMethod mclass selector:eachMethod selector
]
]
@@ -41166,9 +41482,10 @@
<resource: #obsolete> "use ...Using:manager variant"
- self doCompareMethodsWithRepository:(self selectedMethods value).
+ self doCompareMethodsWithRepository:(self selectedMethodsValue).
"Modified: / 18-11-2011 / 18:43:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 28-02-2012 / 16:28:53 / cg"
!
selectorMenuCompareAgainstNewestInRepositoryUsingManager: manager
@@ -41176,7 +41493,7 @@
with the the newest version found in the repository.
That is the most recent version."
- self doCompareMethodsWithRepository:(self selectedMethods value) usingManager: manager.
+ self doCompareMethodsWithRepository:(self selectedMethodsValue) usingManager: manager.
"Created: / 18-11-2011 / 18:44:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Created: / 21-12-2011 / 20:20:20 / cg"
@@ -41198,11 +41515,12 @@
|classes|
- classes := (self selectedMethods value collect:[:m | m mclass theNonMetaclass]) asSet.
+ classes := (self selectedMethodsValue collect:[:m | m mclass theNonMetaclass]) asSet.
self doCompareClassesWithRepository:classes.
"Created: / 13-10-2006 / 11:40:23 / cg"
"Modified (format): / 18-11-2011 / 18:47:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 28-02-2012 / 16:28:59 / cg"
!
selectorMenuCompareClassAgainstNewestInRepositoryUsingManager: manager
@@ -41212,7 +41530,7 @@
|classes|
- classes := (self selectedMethods value collect:[:m | m mclass theNonMetaclass]) asSet.
+ classes := (self selectedMethodsValue collect:[:m | m mclass theNonMetaclass]) asSet.
self doCompareClassesWithRepository:classes usingManager: manager
"Created: / 18-11-2011 / 18:47:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -41235,12 +41553,14 @@
|selectedMethods|
- selectedMethods := self selectedMethods value.
+ selectedMethods := self selectedMethodsValue.
self
doCompareMethod:(selectedMethods first)
against:(selectedMethods second)
label:(resources string:'Comparing methods')
+
+ "Modified: / 28-02-2012 / 16:29:05 / cg"
!
selectorMenuCompareWithInherited
@@ -41248,12 +41568,14 @@
|m1 m2|
- m1 := self selectedMethods value first.
+ m1 := self selectedMethodsValue first.
m2 := m1 mclass superclass lookupMethodFor:(m1 selector).
self
doCompareMethod:m1
against:m2
label:(resources string:'Comparing against inherited')
+
+ "Modified: / 28-02-2012 / 16:29:11 / cg"
!
selectorMenuCompareWithMethod
@@ -41288,7 +41610,7 @@
selectorMenuCompareWithSmallTeamVersionOnHost:hostName
"compare the codeViews contents against a SmallTeam version"
- self selectedMethods value do:[:eachMethod |
+ self selectedMethodsValue do:[:eachMethod |
|v changeList change|
changeList := SmallTeam changesOnHost:hostName.
@@ -41308,7 +41630,7 @@
].
"Created: / 11-11-2006 / 15:15:26 / cg"
- "Modified: / 12-11-2006 / 15:50:02 / cg"
+ "Modified: / 28-02-2012 / 16:29:13 / cg"
!
selectorMenuCompileWithSTC
@@ -41394,7 +41716,7 @@
|methods fileNameTemplate m|
- methods := self selectedMethods value.
+ methods := self selectedMethodsValue.
methods size > 1 ifTrue:[
fileNameTemplate := 'someMethods'.
] ifFalse:[
@@ -41407,7 +41729,7 @@
fileNameTemplate:fileNameTemplate
boxTitle:'FileOut selected method(s) as:'
- "Modified: / 15.11.2001 / 17:57:52 / cg"
+ "Modified: / 28-02-2012 / 16:29:16 / cg"
!
selectorMenuFileOutSIFAs
@@ -41621,7 +41943,7 @@
selectorMenuLoadSmallTeamVersionFromHost:hostName
"load a smallTeam version"
- self selectedMethods value do:[:eachMethod |
+ self selectedMethodsValue do:[:eachMethod |
|changeList change|
changeList := SmallTeam changesOnHost:hostName.
@@ -41663,7 +41985,7 @@
selectorMenuMakeClassOrInstanceMethodWithForwarder:withForwarder
"move the selected methods from inst to their class side or vice versa"
- self selectedMethods value copy do:[:methodToMove |
+ self selectedMethodsValue copy do:[:methodToMove |
|mclass question msg selectorToMove dontDoIt newMethod dstClass|
mclass := methodToMove mclass.
@@ -41708,6 +42030,8 @@
"/ ]
"/ ]
]
+
+ "Modified: / 28-02-2012 / 16:29:23 / cg"
!
selectorMenuMakeIgnored
@@ -41843,11 +42167,11 @@
].
].
- methods := self selectedMethods value.
+ methods := self selectedMethodsValue.
self moveOrCopyMethods:methods toClass:newClass moveOrCopy:doWhat
- "Modified: / 24-11-2006 / 12:22:23 / cg"
+ "Modified: / 28-02-2012 / 16:29:26 / cg"
!
selectorMenuMoveToClass
@@ -41862,7 +42186,7 @@
|perPackageMethods|
perPackageMethods := Dictionary new.
- self selectedMethods value do:[:eachMethod |
+ self selectedMethodsValue do:[:eachMethod |
|methodsPackage classPackage set|
methodsPackage := eachMethod package.
@@ -41891,7 +42215,7 @@
|newProject classProjects offered affectedMethods msg|
- affectedMethods := self selectedMethods value.
+ affectedMethods := self selectedMethodsValue.
classProjects := (affectedMethods collect:[:eachMethod | eachMethod mclass package]) asSet.
LastProjectMoves size > 0 ifTrue:[
@@ -41921,22 +42245,22 @@
].
"Created: / 17-02-2000 / 23:02:49 / cg"
- "Modified: / 11-08-2006 / 13:40:58 / cg"
+ "Modified: / 28-02-2012 / 16:29:32 / cg"
!
selectorMenuMoveToProtocol
"move selected methods to some other category"
|mthd superClass inherited someCategories goodCandidates newCategory selClasses
- initialAnswer methodSelection selectors|
-
- methodSelection := self selectedMethods value copy.
+ initialAnswer methodSelection selectors subclassCategories gotInherited|
+
+ methodSelection := self selectedMethodsValue copy.
someCategories := Set new.
goodCandidates := Set new.
"/ offer the current classes's protocols in the dialog
- (selClasses := self selectedClasses value) notNil ifTrue:[
+ (selClasses := self selectedClassesValue) notNil ifTrue:[
selClasses do:[:eachClass |
someCategories addAll:(eachClass categories).
]
@@ -42021,23 +42345,49 @@
goodCandidates add:'enumeration'.
].
- someCategories := someCategories asOrderedCollection sort.
goodCandidates size == 1 ifTrue:[
initialAnswer := goodCandidates anElement
] ifFalse:[
(mthd := self theSingleSelectedMethod) notNil ifTrue:[
+ gotInherited := false.
+
+ "look for protocol of inherited"
superClass := mthd mclass superclass.
superClass notNil ifTrue:[
superClass := superClass whichClassIncludesSelector:mthd selector.
superClass notNil ifTrue:[
inherited := superClass compiledMethodAt:mthd selector.
inherited notNil ifTrue:[
- initialAnswer := inherited category
- ]
- ]
- ]
- ]
- ].
+ initialAnswer := inherited category.
+ gotInherited := true.
+ ]
+ ] ifFalse:[
+ superClass := mthd mclass superclass.
+ ].
+ ].
+ "look for majority protocol in subclasses"
+ subclassCategories := Bag new.
+ mthd mclass allSubclassesDo:[:cls |
+ |redefined|
+
+ redefined := superClass compiledMethodAt:mthd selector.
+ redefined notNil ifTrue:[
+ subclassCategories add:(redefined category).
+ ]
+ ].
+ subclassCategories notEmpty ifTrue:[
+ subclassCategories := (subclassCategories valuesAndCounts
+ sort:[:a :b | a value > b value])
+ collect:[:each | each key].
+ someCategories addAll:(subclassCategories first:(3 min:subclassCategories size)).
+ gotInherited ifFalse:[
+ initialAnswer := subclassCategories first.
+ ]
+ ].
+ ]
+ ].
+
+ someCategories := someCategories asOrderedCollection sort.
newCategory := self
askForMethodCategory:'Move to which protocol ?'
@@ -42048,7 +42398,7 @@
self moveMethods:methodSelection toProtocol:newCategory
- "Modified: / 02-08-2011 / 09:22:49 / cg"
+ "Modified: / 28-02-2012 / 16:52:19 / cg"
!
selectorMenuNewImageSpec
@@ -42215,7 +42565,7 @@
(self askIfModified:'Code was modified.\\Push method(s) anyway ?')
ifFalse:[^ self].
- selectedMethods := self selectedMethods value.
+ selectedMethods := self selectedMethodsValue.
(selectedMethods collect:[:m | m mclass]) asIdentitySet do:[:eachClass |
|methods selectors nm|
@@ -42239,6 +42589,8 @@
refactoring model name:nm.
self performRefactoring:refactoring.
].
+
+ "Modified: / 28-02-2012 / 16:29:38 / cg"
!
selectorMenuPushUpMethod
@@ -42250,16 +42602,20 @@
selectorMenuRecompile
"recompile the selected methods (for Debug only)"
- self selectedMethods value do:[:eachMethod |
+ self selectedMethodsValue do:[:eachMethod |
eachMethod mclass recompile:eachMethod selector
]
+
+ "Modified: / 28-02-2012 / 16:29:42 / cg"
!
selectorMenuRemove
"confirm removal of the selected methods (but does not search for senders),
then remove them."
- self doRemoveMethodsConfirmed:(self selectedMethods value)
+ self doRemoveMethodsConfirmed:(self selectedMethodsValue)
+
+ "Modified: / 28-02-2012 / 16:29:45 / cg"
!
selectorMenuRemoveParameter
@@ -42300,7 +42656,7 @@
mthd := self theSingleSelectedMethod.
mthd isNil ifTrue:[
- methods := self selectedMethods value ? #().
+ methods := self selectedMethodsValue.
(methods asSet collect:[:eachMethod | eachMethod selector]) size == 1 ifTrue:[
mthd := methods first.
]
@@ -42325,11 +42681,13 @@
"/
"/ mthd := self theSingleSelectedMethod.
"/ self renameMethod:mthd selector in:mthd mclass.
+
+ "Modified: / 28-02-2012 / 16:43:57 / cg"
!
selectorMenuRewrite
MethodRewriter new
- methods: self selectedMethods value;
+ methods: self selectedMethodsValue;
open
"Created: / 05-07-2011 / 14:49:06 / cg"
@@ -42380,7 +42738,7 @@
selectorsToRemove do:[:eachSelectorToRemove |
sent := mthd messagesSent.
(sent includes:eachSelectorToRemove) ifTrue:[
- (self selectedMethods value includesIdentical:mthd) ifFalse:[
+ (self selectedMethodsValue includesIdentical:mthd) ifFalse:[
possiblyInvoked add:mthd.
]
]
@@ -42390,7 +42748,7 @@
newFound := IdentitySet new.
selectorsToRemove do:[:eachSelectorToRemove |
(mthd refersToLiteral:eachSelectorToRemove) ifTrue:[
- (self selectedMethods value includesIdentical:mthd) ifFalse:[
+ (self selectedMethodsValue includesIdentical:mthd) ifFalse:[
possiblyUsedAsSelector add:mthd.
]
].
@@ -42459,6 +42817,8 @@
].
self doRemoveSelectedMethodsUnconfirmed
+
+ "Modified: / 28-02-2012 / 16:30:03 / cg"
!
selectorMenuSelectMethodsWithString
@@ -42474,10 +42834,12 @@
|projects|
- projects := (self selectedMethods value collect:[:m | m package]) asSet asSortedCollection.
+ projects := (self selectedMethodsValue collect:[:m | m package]) asSet asSortedCollection.
^ self
spawnProjectBrowserFor:projects
in:#newBrowser
+
+ "Modified: / 28-02-2012 / 16:30:06 / cg"
!
selectorMenuSpawnExtensionsProjectBuffer
@@ -42485,10 +42847,12 @@
|projects|
- projects := (self selectedMethods value collect:[:m | m package]) asSet asSortedCollection.
+ projects := (self selectedMethodsValue collect:[:m | m package]) asSet asSortedCollection.
^ self
spawnProjectBrowserFor:projects
in:#newBuffer
+
+ "Modified: / 28-02-2012 / 16:30:08 / cg"
!
selectorMenuSpawnImplementors
@@ -42535,18 +42899,22 @@
"open a new browser showing the selected methods only"
^ self
- spawnMethodBrowserFor:(self selectedMethods value)
+ spawnMethodBrowserFor:(self selectedMethodsValue)
in:#newBrowser
label:nil
+
+ "Modified: / 28-02-2012 / 16:30:11 / cg"
!
selectorMenuSpawnMethodBuffer
"add a new buffer showing the selected methods only"
^ self
- spawnMethodBrowserFor:(self selectedMethods value)
+ spawnMethodBrowserFor:(self selectedMethodsValue)
in:#newBuffer
label:nil
+
+ "Modified: / 28-02-2012 / 16:30:14 / cg"
!
selectorMenuSpawnProjectExtensions
@@ -42554,8 +42922,10 @@
selected methods project(s)"
^ self
- spawnProjectExtensionsBrowserFor:(self selectedMethods value)
+ spawnProjectExtensionsBrowserFor:(self selectedMethodsValue)
in:#newBrowser
+
+ "Modified: / 28-02-2012 / 16:30:16 / cg"
!
selectorMenuSpawnProjectExtensionsBuffer
@@ -42563,8 +42933,10 @@
selected methods project(s)"
^ self
- spawnProjectExtensionsBrowserFor:(self selectedMethods value)
+ spawnProjectExtensionsBrowserFor:(self selectedMethodsValue)
in:#newBuffer
+
+ "Modified: / 28-02-2012 / 16:30:19 / cg"
!
selectorMenuSpawnSenders
@@ -42665,7 +43037,7 @@
spawnCallersIn:openHow
"open a new browser or add a buffer showing the selected method's callers"
- self spawnCallersBrowserFor:(self selectedMethods value) in:openHow
+ self spawnCallersBrowserFor:(self selectedMethodsValue) in:openHow
"Created: / 27-04-2010 / 15:17:33 / cg"
!
@@ -42691,9 +43063,9 @@
|searchBlock "must be first local in block (see #methodsSelectionChangedAt:index, which fetches this value)"
spec aMethod multipleMethods methods lbl|
- multipleMethods := self selectedMethods value size > 1.
+ multipleMethods := self selectedMethodsValue size > 1.
multipleMethods ifTrue:[
- methods := self selectedMethods value copy.
+ methods := self selectedMethodsValue copy.
lbl := resources string:'implementor chains'.
] ifFalse:[
aMethod := self theSingleSelectedMethod.
@@ -42758,7 +43130,7 @@
].
]
- "Modified: / 1.3.2000 / 21:03:34 / cg"
+ "Modified: / 28-02-2012 / 16:37:04 / cg"
!
spawnLocalImplementorsBuffer
@@ -43204,7 +43576,7 @@
|selectedMethods classes list newBrowser label searchBlock
initialList anyRedefined|
- (selectedMethods := self selectedMethods value) size == 0 ifTrue:[
+ (selectedMethods := self selectedMethodsValue) size == 0 ifTrue:[
self warn:'No method selected.'.
^ self
].
@@ -43273,6 +43645,8 @@
newBrowser selectMethods:(selectedMethods copy).
newBrowser sortBy value:false.
]
+
+ "Modified: / 28-02-2012 / 16:30:45 / cg"
!
spawnMethodLocalImplementorsBrowserFor:aSelectorCollection in:openHow
@@ -43351,7 +43725,13 @@
theSingleSelector notNil ifTrue:[
cachedList := searchBlock value.
cachedList size == 0 ifTrue:[
- self information:(label , ' - none found').
+ (Dialog
+ confirm:(label , (resources string:' - none found'))
+ yesLabel:(resources string:'Show Implementors') noLabel:'OK'
+ initialAnswer:false
+ ) ifTrue:[
+ self spawnMethodImplementorsBrowserFor:aSelectorCollection in:openHow
+ ].
^ self
].
(cachedList size == 1 and:[cachedList first == self theSingleSelectedMethod]) ifTrue:[
@@ -43455,9 +43835,9 @@
|searchBlock "must be first local in block (see #methodsSelectionChangedAt:index, which fetches this value)"
spec aMethod multipleMethods methods lbl|
- multipleMethods := self selectedMethods value size > 1.
+ multipleMethods := self selectedMethodsValue size > 1.
multipleMethods ifTrue:[
- methods := self selectedMethods value copy.
+ methods := self selectedMethodsValue copy.
lbl := resources string:'Sender chains'.
] ifFalse:[
aMethod := self theSingleSelectedMethod.
@@ -43524,7 +43904,7 @@
].
]
- "Modified: / 1.3.2000 / 21:03:34 / cg"
+ "Modified: / 28-02-2012 / 16:36:22 / cg"
! !
!NewSystemBrowser methodsFor:'menu actions-subversion'!
@@ -43539,9 +43919,9 @@
!NewSystemBrowser methodsFor:'menu actions-subversion-class'!
classMenuSubversionShowRevisionLog
-
| pkg classes branch path |
- classes := self selectedClasses value.
+
+ classes := self selectedClassesValue.
pkg := self theSingleSelectedProjectFromClasses.
path := classes size == 1
ifTrue: [SVN::Repository containerNameForClass: classes anyOne]
@@ -43553,8 +43933,8 @@
open
"Modified: / 25-06-2010 / 10:08:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
+ "Modified: / 28-02-2012 / 16:48:38 / cg"
+! !
!NewSystemBrowser methodsFor:'menu actions-variables'!
@@ -44352,7 +44732,7 @@
].
"/ cls := self theSingleSelectedClass.
- cls := Behavior commonSuperclassOf:(self selectedClasses value).
+ cls := Behavior commonSuperclassOf:(self selectedClassesValue).
variablesToRemove do:[:variableToRemove |
classVar ifTrue:[
self codeMenuRemoveClassVariable:variableToRemove inClass:(cls theNonMetaclass)
@@ -44361,7 +44741,7 @@
]
].
- "Modified: / 12-10-2006 / 21:55:29 / cg"
+ "Modified: / 28-02-2012 / 16:51:57 / cg"
!
variablesMenuRemoveClassVariable
@@ -45215,14 +45595,15 @@
"/ ] ifFalse:[
(menu isKindOf:Menu) ifTrue:[
"/ a newStyle menuPanel
- menu atMenuItemLabeled:'Refactor' putSubmenu:shiftedMenu visible:true.
+ "/ (menu atNameKey:'refactor') "atMenuItemLabeled:'Refactor'" putSubmenu:shiftedMenu visible:true.
+ menu atMenuItemLabeled:(resources string:'Refactor') putSubmenu:shiftedMenu visible:true.
] ifFalse:[
"/ an oldStyle popUpMenu
"/ this is a kludge...
shiftedMenu := shiftedMenu asOldStylePopUpMenuFor:self.
"/ would like to add the shifted-menu here
menu menuView
- addLabels:(Array with:'-' with:'Refactor')
+ addLabels:(Array with:'-' with:(resources string:'Refactor'))
selectors:#( nil refactorings)
accelerators:#(nil 'Shift')
after:#accept.
@@ -45250,7 +45631,7 @@
^ menu
"Modified: / 18-10-2008 / 18:52:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
- "Modified: / 30-06-2011 / 10:47:03 / cg"
+ "Modified: / 01-03-2012 / 20:04:50 / cg"
!
compareClassWithSmallTeamVersionMenu
@@ -45261,7 +45642,7 @@
m := Menu new.
hosts := Set new.
- self selectedClasses value do:[:cls |
+ self selectedClassesValue do:[:cls |
hosts addAll:(SmallTeam hostsWithChangeForClassOrMetaclass:cls theNonMetaclass).
].
hosts := hosts asOrderedCollection sort.
@@ -45291,7 +45672,7 @@
SmallTeam notNil ifTrue:[
m := Menu new.
hosts := Set new.
- self selectedMethods value do:[:m |
+ self selectedMethodsValue do:[:m |
hosts addAll:(SmallTeam hostsWithChangeForClass:(m mclass) selector:(m selector)).
].
hosts := hosts asOrderedCollection sort.
@@ -45319,7 +45700,7 @@
m := Menu new.
hosts := Set new.
- self selectedMethods value do:[:m |
+ self selectedMethodsValue do:[:m |
hosts addAll:(SmallTeam hostsWithChangeForClass:(m mclass) selector:(m selector)).
].
hosts := hosts asOrderedCollection sort.
@@ -45506,7 +45887,7 @@
m := Menu new.
hosts := Set new.
- self selectedMethods value do:[:m |
+ self selectedMethodsValue do:[:m |
hosts addAll:(SmallTeam hostsWithChangeForClass:(m mclass) selector:(m selector)).
].
hosts := hosts asOrderedCollection sort.
@@ -45703,7 +46084,7 @@
"/ not exactly one method selected;
"/ generate a menu for all selected method's implementors and sent messages.
- methods := self selectedMethods value.
+ methods := self selectedMethodsValue.
methods isEmptyOrNil ifTrue:[
methods := OrderedCollection new.
self selectedClassesDo:[:cls |
@@ -45741,7 +46122,7 @@
^ m
"Created: / 27-04-2010 / 15:05:52 / cg"
- "Modified: / 07-05-2010 / 20:00:20 / cg"
+ "Modified: / 28-02-2012 / 16:27:41 / cg"
!
operationsMenu
@@ -45862,18 +46243,19 @@
m := Menu new.
m addItem:(MenuItem
- label:'Smalltalk method'
+ label:'Smalltalk Method'
value:[self selectorMenuNewMethod: SmalltalkLanguage instance]).
allLanguages do:[:eachLanguage |
m addItem:(MenuItem
- label:(eachLanguage name) , ' method'
+ label:(eachLanguage name) , ' Method'
value:[self selectorMenuNewMethod: eachLanguage])
].
^ m
"Created: / 30-12-2009 / 19:43:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 17-02-2012 / 22:15:06 / cg"
!
sentMessagesMenu
@@ -46811,11 +47193,10 @@
!
switchToClass:aClass selector:aSelector
-
-
- ^self switchToClass: aClass selector: aSelector updateHistory: true
+ ^ self switchToClass: aClass selector: aSelector updateHistory: true
"Modified: / 27-02-2008 / 16:34:46 / janfrog"
+ "Modified (format): / 28-02-2012 / 09:29:44 / cg"
!
switchToClass:aClass selector:aSelector updateHistory: updateHistory
@@ -46905,7 +47286,7 @@
self organizerMode value:(OrganizerCanvas organizerModeNamespace).
orgMode := self organizerMode value.
] ifFalse:[
- ((self selectedClasses value ? #()) contains:[:cls | cls nameSpace == aClass]) ifTrue:[^ self ].
+ ((self selectedClassesValue) contains:[:cls | cls nameSpace == aClass]) ifTrue:[^ self ].
"/ select the first class of that namespace
classes := aClass allClasses.
@@ -47015,7 +47396,7 @@
"Created: / 22-02-2008 / 09:05:51 / janfrog"
"Modified: / 27-02-2008 / 16:45:21 / janfrog"
- "Modified: / 05-10-2011 / 13:49:41 / cg"
+ "Modified: / 28-02-2012 / 16:53:17 / cg"
!
switchToClassNameMatching:aMatchString
@@ -47038,6 +47419,10 @@
switchToClassNameOrSelectorMatching:aMatchString
|className class implementors answer classesMatchingCaseless|
+ aMatchString isEmptyOrNil ifTrue:[
+ ^ self.
+ ].
+
aMatchString knownAsSymbol ifTrue:[
class := Smalltalk classNamed:aMatchString.
class notNil ifTrue:[
@@ -47045,12 +47430,14 @@
^ self.
].
classesMatchingCaseless := Smalltalk keys select:[:nm | nm sameAs:aMatchString].
+"/ matchStringLowercase := aMatchString asLowercase.
+"/ classesWithPrefixCaseless := Smalltalk keys select:[:nm | nm asLowercase startsWith:aMatchString].
"/ impl := Smalltalk allImplementorsOf:aMatchString asSymbol.
"/ impl notEmptyOrNil ifTrue:[
"/ ].
(aMatchString first isLetter not
- or:[ aMatchString first isLowercase]) ifTrue:[
+ or:[ aMatchString first isLowercase]) ifTrue:[
implementors := SystemBrowser findImplementorsMatching:aMatchString in:(Smalltalk allClasses) ignoreCase:true.
implementors size > 0 ifTrue:[
(classesMatchingCaseless isEmpty and:[implementors size == 1]) ifTrue:[
@@ -47073,13 +47460,15 @@
with:implementors size)
fromList:(implementors collect:[:m | m mclass name])
values:implementors
- buttons:#('No, Search for a Class') values:#(searchClass)
+ buttons:#('No, Search for a Class' 'Show all Implementors') values:#(searchClass browseAllImplementors)
lines:10 cancel:nil
postBuildBlock:[:box | box minExtent:300@250].
] ifFalse:[
answer := Dialog
choose:(resources
- stringWithCRs:'No class named "%1.\But there are %2 implementors of it and %3 classes with a similar name.\\Goto one of them ?'
+ stringWithCRs:'No class named "%1".\But there are %2 implementors of it and %3 '
+ , (classesMatchingCaseless size == 1 ifTrue:['class'] ifFalse:['classes'])
+ ,' with a similar name.\\Goto one of them ?'
with:aMatchString allBold
with:implementors size
with:classesMatchingCaseless size)
@@ -47088,12 +47477,25 @@
,{'Classes:' colorizeAllWith:Color grey}
,classesMatchingCaseless)
values:(#(nil),implementors,#(nil),classesMatchingCaseless)
- buttons:#('No, Search for a Class') values:#(searchClass)
+ buttons:#('No, Search for a Class' 'Show all Implementors') values:#(searchClass browseAllImplementors)
lines:10 cancel:nil
postBuildBlock:[:box | box minExtent:300@250].
].
answer isNil ifTrue:[^ self].
+ answer == #browseAllImplementors ifTrue:[
+ self
+ spawnMethodBrowserForSearch:[
+ SystemBrowser
+ findImplementorsOf:aMatchString
+ in:Smalltalk allClasses
+ ignoreCase:false.
+ ]
+ sortBy:#class
+ in:#newBuffer
+ label:(resources string:'Implementors of %1' string with:aMatchString).
+ ^ self
+ ].
answer ~~ #searchClass ifTrue:[
answer isSymbol ifTrue:[
self switchToClass:(Smalltalk classNamed:answer).
@@ -47111,8 +47513,8 @@
self switchToClassNamed:className.
]
- "Modified: / 13-02-2000 / 20:57:42 / cg"
"Modified: / 04-07-2006 / 18:48:25 / fm"
+ "Modified (comment): / 07-03-2012 / 12:05:07 / cg"
!
switchToClassNamed:aString
@@ -47400,7 +47802,9 @@
!
hasOnlySmalltalkClassesSelected
- ^ (self selectedClasses value ? #()) conform:[:cls | cls programmingLanguage isSmalltalk]
+ ^ (self selectedClassesValue) conform:[:cls | cls programmingLanguage isSmalltalk]
+
+ "Modified: / 28-02-2012 / 16:58:46 / cg"
!
javaMode
@@ -48706,7 +49110,7 @@
].
].
- (initialList asSet = (self selectedMethods value ? #()) asSet)
+ (initialList asSet = self selectedMethodsValue asSet)
"/ (numFound == 1 and:[initialList first == self theSingleSelectedMethod])
ifTrue:[
answer := Dialog
@@ -48751,8 +49155,7 @@
].
].
- "Modified: / 11-05-2010 / 16:51:50 / cg"
- "Modified (comment): / 06-12-2011 / 11:44:27 / cg"
+ "Modified: / 28-02-2012 / 16:38:36 / cg"
!
askForMethodAndSpawnSearchTitle:title browserLabel:labelHolderOrBlock searchWith:aSelectorOrBlock searchWhat:searchWhat searchArea:whereDefault
@@ -48926,15 +49329,15 @@
allProjects := Smalltalk allProjectIDs.
- selectedClasses := self selectedClasses value.
+ selectedClasses := self selectedClassesValue.
selectedClasses notNil ifTrue:[
classesProjects := selectedClasses
collectAll:[:cls |
(cls methodDictionary values
collect:[:m | m package ]) asSet ].
] ifFalse:[
- selectedMethods := self selectedMethods value.
- selectedMethods notNil ifTrue:[
+ selectedMethods := self selectedMethodsValue.
+ selectedMethods notEmptyOrNil ifTrue:[
classesProjects := selectedMethods
collectAll:[:mthd |
(mthd mclass methodDictionary values
@@ -48965,7 +49368,7 @@
suggestions:offered
"Created: / 11-08-2006 / 13:31:34 / cg"
- "Modified: / 12-10-2006 / 20:51:57 / cg"
+ "Modified: / 28-02-2012 / 16:45:05 / cg"
!
askForSelector:title allowBuffer:allowBuffer allowBrowser:allowBrowser thenDo:aBlock
@@ -48978,8 +49381,8 @@
openHow := nil.
selectors := Set new.
- methods := self selectedMethods value.
- methods size > 0 ifTrue:[
+ methods := self selectedMethodsValue.
+ methods notEmptyOrNil ifTrue:[
firstMethod := methods first.
firstSelector := firstMethod selector.
].
@@ -49073,6 +49476,8 @@
aBlock value:selector asSymbol value:openHow
].
^ selector
+
+ "Modified: / 28-02-2012 / 16:39:13 / cg"
!
askIfModified
@@ -49278,7 +49683,7 @@
initialText := sel asString withoutSeparators
] ifFalse:[
self codeAspect == #method ifTrue:[
- methods := self selectedMethods value.
+ methods := self selectedMethodsValue.
methods size > 0 ifTrue:[
someMethod := methods first.
usedGlobals := someMethod usedGlobals collect:[:eachVar | eachVar asSymbol].
@@ -49321,7 +49726,7 @@
^ box
"Created: / 13-02-2000 / 20:56:18 / cg"
- "Modified: / 11-07-2010 / 16:44:45 / cg"
+ "Modified: / 28-02-2012 / 16:16:21 / cg"
!
enterBoxForCodeSelectionTitle:title okText:okText
@@ -49483,9 +49888,11 @@
|sel|
- sel := self selectedClasses value.
+ sel := self selectedClassesValue.
sel size > 0 ifTrue:[^ sel first].
^ nil
+
+ "Modified: / 28-02-2012 / 16:45:01 / cg"
!
anySelectedMethod
@@ -49493,9 +49900,11 @@
|sel|
- sel := self selectedMethods value.
+ sel := self selectedMethodsValue.
sel size > 0 ifTrue:[^ sel anElement].
^ nil
+
+ "Modified: / 28-02-2012 / 16:14:38 / cg"
!
classIfValidNonMetaClassName:aClassName
@@ -49593,14 +50002,16 @@
|classes|
- classes := self selectedClasses value copy.
+ classes := self selectedClassesValue copy.
classes size == 0 ifTrue:[
self isMethodListBrowser ifTrue:[
- classes := ((self selectedMethods value collect:[:m | m mclass])
+ classes := ((self selectedMethodsClasses)
collect:[:each| each theNonMetaclass]) asIdentitySet.
]
].
^ classes
+
+ "Modified: / 28-02-2012 / 16:48:58 / cg"
!
codePaneAndPluginView
@@ -49732,7 +50143,7 @@
].
].
"/ take selected classes name as default
- (classes := self selectedClasses value) notEmptyOrNil ifTrue:[
+ (classes := self selectedClassesValue) notEmptyOrNil ifTrue:[
sel := (classes collect:[:cls | cls theNonMetaclass name]) asSortedCollection asStringWith:$|
].
sel isNil ifTrue:[
@@ -49746,6 +50157,8 @@
"/ ].
^ sel
+
+ "Modified: / 28-02-2012 / 16:49:25 / cg"
!
listOfAllNamespaces
@@ -49997,7 +50410,9 @@
selectedClassesDo:aBlock
"evaluate aBlock for each selected class."
- (self selectedClasses value ? #()) do:aBlock
+ (self selectedClassesValue) do:aBlock
+
+ "Modified: / 28-02-2012 / 16:53:49 / cg"
!
selectedClassesInCategories:aCollectionOfCategories
@@ -50041,10 +50456,12 @@
for private classes, evaluate privateBlock."
self
- classes:(self selectedClasses value)
+ classes:(self selectedClassesValue)
nonMetaDo:aBlock
ifUnloaded:unloadedBlock
ifPrivate:privateBlock
+
+ "Modified: / 28-02-2012 / 16:53:41 / cg"
!
selectedClassesWithWaitCursorDo:aBlock
@@ -50150,11 +50567,13 @@
selectedMethodsDo:aBlock
"evaluate aBlock for each selected method."
- (self selectedMethods value ? #()) do:aBlock
+ self selectedMethodsValue do:aBlock
+
+ "Modified: / 28-02-2012 / 16:43:14 / cg"
!
selectedNonMetaclasses
- ^ (self selectedClasses value ? #()) collect:[:cls | cls theNonMetaclass].
+ ^ (self selectedClassesValue) collect:[:cls | cls theNonMetaclass].
"Created: / 12-09-2006 / 13:40:25 / cg"
!
@@ -50208,7 +50627,7 @@
navigationState isFullProtocolBrowser ifTrue:[
targets := Smalltalk allClassesAndMetaclasses
] ifFalse:[
- targets := self selectedClasses value
+ targets := self selectedClassesValue
].
targets isEmptyOrNil ifTrue:[^self].
@@ -50229,7 +50648,7 @@
].
"Modified: / 01-08-2010 / 14:39:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 04-08-2011 / 19:05:33 / cg"
+ "Modified: / 28-02-2012 / 16:52:57 / cg"
!
selectedProtocolsDo:aBlock
@@ -50243,7 +50662,7 @@
navigationState isFullProtocolBrowser ifTrue:[
targets := Smalltalk allClassesAndMetaclasses
] ifFalse:[
- targets := self selectedClasses value
+ targets := self selectedClassesValue
].
allIncluded := protocols includes:(BrowserList nameListEntryForALL).
@@ -50263,6 +50682,8 @@
]
]
].
+
+ "Modified: / 28-02-2012 / 16:53:00 / cg"
!
selectedSelectorInCodeViewOrNil
@@ -50292,9 +50713,9 @@
!
selectedSelectors
- ^ (self selectedMethods value ? #()) collect:[:mthd | mthd selector]
-
- "Created: / 11.2.2000 / 10:29:30 / cg"
+ ^ self selectedMethodsValue collect:[:mthd | mthd selector]
+
+ "Created: / 11-02-2000 / 10:29:30 / cg"
!
selectedTemporaryVariableInCodeViewOrNil
@@ -50433,8 +50854,9 @@
theSingleSelectedLintRuleHolder
^BlockValue
- with:
- [:generator| | rule size |
+ with:[:generator|
+ | rule size |
+
rule := nil.
size := 0.
(generator value ? #()) do:[:each|rule := each.size := size + 1].
@@ -50442,6 +50864,7 @@
argument: self selectedLintRules
"Created: / 05-02-2010 / 12:56:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 01-03-2012 / 15:31:23 / cg"
!
theSingleSelectedLoadedNonMetaclassOrNil
@@ -50612,7 +51035,6 @@
^ navigationState projectListApplication
! !
-
!NewSystemBrowser methodsFor:'private-history'!
lastSearchPatterns
@@ -50640,19 +51062,9 @@
!
rememberSearchPattern:aString
- LastSearchPatterns isNil ifTrue:[
- LastSearchPatterns := OrderedCollection new.
- ].
- (LastSearchPatterns includes:aString) ifTrue:[
- LastSearchPatterns remove:aString.
- ] ifFalse:[
- LastSearchPatterns size > 20 ifTrue:[
- LastSearchPatterns removeFirst
- ]
- ].
- LastSearchPatterns addFirst:aString.
-
- "Modified: / 24-11-2010 / 12:51:31 / cg"
+ self class rememberSearchPattern:aString
+
+ "Modified: / 14-02-2012 / 14:00:36 / cg"
! !
!NewSystemBrowser methodsFor:'private-presentation'!
@@ -50691,7 +51103,7 @@
self codeInfoVisible value ifFalse:[^ nil].
- selectedClasses := self selectedClasses value.
+ selectedClasses := self selectedClassesValue.
selectedClasses isEmptyOrNil ifTrue:[^ nil].
categories := (selectedClasses collect:[:each|each category]) asSet.
categories size ~~ 1 ifTrue:[^ nil].
@@ -50707,6 +51119,8 @@
with:selectedClasses first name
with:selectedClasses size
with:category
+
+ "Modified: / 28-02-2012 / 16:45:20 / cg"
!
classInheritanceInfo
@@ -50958,7 +51372,7 @@
self codeInfoVisible value ifFalse:[^ nil].
- selectedMethods := self selectedMethods value.
+ selectedMethods := self selectedMethodsValue.
selectedMethods isEmptyOrNil ifTrue:[^ nil].
firstMethod := selectedMethods first.
@@ -50991,6 +51405,8 @@
^ prefix.
].
^ prefix,' - ' , msg.
+
+ "Modified: / 28-02-2012 / 16:16:33 / cg"
!
getMethodInfoForMethod:aMethod
@@ -51268,7 +51684,7 @@
updateCategorySelectionForChangedClassSelection
|classes selectedCategories oldSelectedCategories nameListEntryForALL|
- classes := self selectedClasses value.
+ classes := self selectedClassesValue.
classes size > 0 ifTrue:[
"/ category-selection feedBack:
"/ update the category-selection, if '* all *' is in its selection
@@ -51287,7 +51703,7 @@
].
"Created: / 24-02-2000 / 14:10:09 / cg"
- "Modified: / 12-09-2006 / 13:57:50 / cg"
+ "Modified: / 28-02-2012 / 16:51:33 / cg"
!
updateInfoForChangedClassSelection
@@ -51302,8 +51718,8 @@
with:singleSelectedClass category allBold).
] ifFalse:[
- selectedClasses := self selectedClasses value.
- categories := ((selectedClasses ? #()) collect:[:cls | cls category]) asSet.
+ selectedClasses := self selectedClassesValue.
+ categories := (selectedClasses collect:[:cls | cls category]) asSet.
categories size == 1 ifTrue:[
msg := (resources string:'Category: %1'
with:categories anElement allBold).
@@ -51320,12 +51736,14 @@
^ self.
].
self clearInfo.
+
+ "Modified: / 28-02-2012 / 16:51:46 / cg"
!
updateProtocolSelectionForChangedMethodSelection
|methods selectedProtocolsHolder selectedProtocols oldSelectedProtocols|
- methods := self selectedMethods value.
+ methods := self selectedMethodsValue.
methods size > 0 ifTrue:[
"/ protocol-selection feedBack:
"/ update the protocol-selection, if '* all *' is in its selection
@@ -51342,6 +51760,8 @@
].
].
].
+
+ "Modified: / 28-02-2012 / 16:36:38 / cg"
!
withActivityNotificationsRedirectedToInfoLabelDo:aBlock
@@ -51570,11 +51990,12 @@
firstComment := comments first.
firstComment string withoutSeparators isEmpty ifTrue:[
firstComment isEndOfLineComment ifFalse:[
- Dialog
- warn:'Useless (empty) Method-Comment. Please add flesh or remove it !!'.
+ Dialog warn:'Useless (empty) Method-Comment. Please add flesh or remove it !!'.
^ self
]
].
+
+ "Modified (format): / 06-03-2012 / 18:38:55 / cg"
!
checkIfSameSemanticsRedefinedWith:methodHere inClass:aClass
@@ -51798,81 +52219,85 @@
!NewSystemBrowser methodsFor:'private-smalllint'!
loadSmalllint
- |pkg dlg|
+ |pkg |
pkg := Smalltalk at:#'stx_goodies_refactoryBrowser_lint'.
(pkg isNil or:[ pkg isFullyLoaded not ]) ifTrue:[
- Smalltalk loadPackage:#'stx:goodies/refactoryBrowser/lint'
- asAutoloaded:false
- ].
-
- "
- Tools::NewSystemBrowser basicNew loadSmallLint"
+ Smalltalk loadPackage:#'stx:goodies/refactoryBrowser/lint' asAutoloaded:false
+ ].
+
+ "
+ Tools::NewSystemBrowser basicNew loadSmallLint
+ "
+
"Created: / 17-04-2010 / 09:40:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-smalllintCheck:anEnvironment against:ruleSetSymbol
+ "Modified (comment): / 07-03-2012 / 20:06:11 / cg"
+!
+
+smalllintCheck:anEnvironment against:ruleSetSymbol
+ "this is exected by an async task!!"
+
|rule|
- self
- assert:(#( #smalllintRulesAll #smalllintRulesFromUser #smalllintRules )
- includes:ruleSetSymbol).
+ self assert:(#( #smalllintRulesAll #smalllintRulesFromUser #smalllintRules ) includes:ruleSetSymbol).
+
rule := self perform:ruleSetSymbol asSymbol.
-
- "JV@2011-01-30: Oops, what the code below was supposed to do?"
-"/ rule isNil ifTrue:[ ^ self ].
-"/ rule isEmpty ifTrue:[
-"/ rule := self smalllintRulesFromUser.
-"/ ].
- "Changed to"
- rule isNil ifTrue:[
- rule := self smalllintRulesFromUser.
- ].
- rule isNil ifTrue:[
- ^self "/User cancelled the dialog
+ rule isNil ifTrue:[ ^ self ].
+"/ cg: that is wrong implemented in RBxxxRule: isEmpty has two meanings:
+"/ for composite: has sub-rules
+"/ for non-composite: has a result
+"/ therefore, isEmpty returns true here, so we will be always asked twice!!
+
+ rule isEmptyInTree ifTrue:[
+ ruleSetSymbol ~~ #smalllintRulesFromUser ifTrue:[
+ rule := self smalllintRulesFromUser.
+ rule isNil ifTrue:[ ^ self ].
+ ]
].
self showMessage:'Checking code...'
while:[
+ |showResult|
+
self smalllintRunRule:rule onEnvironment:anEnvironment.
- self
- spawnSmalllintBrowserByRuleFor:rule
- in:#newBuffer
- label:'SmallLint results for ' , anEnvironment label
+ showResult := true.
+ [rule notNil and:[rule isEmpty]] whileTrue:[
+ (Dialog confirm:'Nothing special found.\\Proceed to select more/different lint rules.' withCRs) ifTrue:[
+ rule := self smalllintRulesFromUser.
+ rule notNil ifTrue:[
+ self smalllintRunRule:rule onEnvironment:anEnvironment.
+ ].
+ ] ifFalse:[
+ rule := nil
+ ].
+ ].
+ rule notNil ifTrue:[
+ self
+ spawnSmalllintBrowserByRuleFor:rule
+ in:#newBuffer
+ label:'SmallLint results for ' , anEnvironment label
+ ].
].
"Modified: / 15-12-2008 / 18:51:43 / Josef Grega <gregaj1@fel.cvut.cz>"
"Modified: / 28-12-2008 / 14:40:01 / bazantj <enter your email here>"
"Created: / 24-02-2009 / 11:02:57 / Jan Vrany <vranyj1@fel.cvut.cz>"
"Modified: / 22-07-2009 / 14:38:30 / Jan Vrany <vranyj1@fel.cvut.cz>"
- "Modified: / 23-09-2011 / 15:26:48 / cg"
- "Modified: / 31-01-2012 / 12:07:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-smalllintRules
-
- ^LastLintRules
- ifNil:[self smalllintRulesFromUser]
- ifNotNil:[LastLintRules]
-
-
- "
- Tools::NewSystemBrowser basicNew smalllintRules
- "
-
- "Modified: / 17-04-2010 / 09:42:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 28-08-2010 / 20:45:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 07-03-2012 / 20:25:58 / cg"
!
smalllintRulesAll
-
| all checks |
+
all := RBCompositeLintRule allRules.
- checks := all rules detect:[ :each | each name = 'Lint checks' ].
- checks rules: (checks rules reject: [ :each | each name = 'Squeak bugs' ]).
+ checks := all rules detect:[ :each | each isLintChecksGroupParent ].
+ checks rules: (checks rules reject: [ :each | each isSqueakBugsGroupParent ]).
^all
"Created: / 17-04-2010 / 10:07:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 25-08-2010 / 14:38:21 / Jan Vrany <enter your email here>"
+ "Modified: / 07-03-2012 / 20:26:29 / cg"
!
smalllintRulesFromUser
@@ -51881,7 +52306,7 @@
self loadSmalllint.
dlg := Tools::LintRuleSelectionDialog new.
dlg selection: (LastLintRules ifNil:[nil"self smalllintRulesAll flattened"] ifNotNil:[LastLintRules flattened]).
- ^(dlg open; accepted)
+ ^ (dlg open; accepted)
ifTrue:[ LastLintRules := dlg selectionAsRule ]
ifFalse:[ nil ].
@@ -51892,66 +52317,62 @@
"Created: / 17-04-2010 / 09:41:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 25-08-2010 / 15:35:16 / Jan Vrany <enter your email here>"
+ "Modified (format): / 06-03-2012 / 18:55:09 / cg"
!
smalllintRulesOrAll
-
"Returns a set of user-selected SmallLint rules or all rules,
if no user selection is done"
- ^LastLintRules notNil ifTrue:[
- LastLintRules
- ] ifFalse:[
- self smalllintRulesAll
- ]
+ ^LastLintRules notNil
+ ifTrue:[ LastLintRules ]
+ ifFalse:[ self smalllintRulesAll ]
"Created: / 23-01-2012 / 10:59:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-smalllintRulesOrAllHolder
- "Returns a holder on user-selected SmallLint rules
- (or all rules if user made no selection"
-
- ^[ self smalllintRulesOrAll ]
-
- "Modified: / 17-04-2010 / 09:42:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Created: / 23-01-2012 / 11:05:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified (format): / 07-03-2012 / 20:05:40 / cg"
!
smalllintRunRule: aLintRule onEnvironment: anEnvironment
+ "run a checker in the background"
| rules |
+
rules := aLintRule flattened.
- rules withIndexDo:
- [:rule :index|
+ rules withIndexDo:[:rule :index|
ProgressNotification new
messageText: ('Checking: ', rule name);
parameter: (rules size / 100) * index;
raiseRequest.
- (SmalllintChecker runRule: rule onEnvironment: anEnvironment)]
+ (SmalllintChecker runRule: rule onEnvironment: anEnvironment)
+ ].
+ ProgressNotification new
+ messageText: ('Done');
+ parameter: 100;
+ raiseRequest.
"Modified: / 15-12-2008 / 18:51:43 / Josef Grega <gregaj1@fel.cvut.cz>"
"Modified: / 28-12-2008 / 14:40:01 / bazantj <enter your email here>"
"Modified: / 22-07-2009 / 14:38:30 / Jan Vrany <vranyj1@fel.cvut.cz>"
"Created: / 28-08-2010 / 12:12:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 01-03-2012 / 15:22:20 / cg"
!
spawnSmalllintBrowserByRuleFor: result in:where label:labelOrNil
-
^ self
newBrowserOrBufferDependingOn:where
label:labelOrNil
forSpec: #smallLintByRuleResultBrowserSpec
- setupWith:[:browser | |methodGenerator classGenerator ruleGenerator |
+ setupWith:[:browser |
+ |methodGenerator classGenerator ruleGenerator|
+
ruleGenerator :=
- Iterator on:
- [:whatToDo|
+ Iterator on:[:whatToDo|
result failedRules do:whatToDo].
methodGenerator :=
- Iterator on:
- [:whatToDo|
+ Iterator on: [:whatToDo|
| selectedRules selectedClasses failedMethods |
+
selectedClasses := browser selectedClasses value.
selectedRules := browser selectedLintRules value.
failedMethods := OrderedCollection new.
@@ -51978,7 +52399,11 @@
browser meta
onChangeSend: #changed to: browser selectorListGenerator.
-
+ "/ cg: does not work - why?
+ result failedRules size == 1 ifTrue:[
+ "/ autoselect the first one
+ browser selectedLintRules value:(result failedRules).
+ ].
"/self halt.
"
@@ -52086,7 +52511,7 @@
"Created: / 02-02-2010 / 20:05:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 02-02-2010 / 21:46:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 25-08-2010 / 10:30:33 / Jan Vrany <enter your email here>"
- "Modified: / 04-08-2011 / 19:05:35 / cg"
+ "Modified: / 01-03-2012 / 19:52:57 / cg"
! !
!NewSystemBrowser methodsFor:'private-syntax coloring'!
@@ -52649,10 +53074,10 @@
searchFieldCreated:anInputField
anInputField emptyFieldReplacementText:
"/(resources string:'Class Search & History').
- (resources string:'Search (Ctrl-L)').
+ (resources string:'Search Class/Selector (Ctrl-L)').
"Modified: / 09-02-2010 / 21:56:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 15-07-2011 / 19:14:45 / cg"
+ "Modified: / 07-03-2012 / 11:59:16 / cg"
!
searchFieldPanelCreated:aPanel
@@ -52830,8 +53255,8 @@
aMethod isNil ifTrue:[
"/ no method selected
aClassOrNil isNil ifTrue:[
- (self selectedClasses value isEmptyOrNil
- and:[ self selectedCategories value isEmptyOrNil
+ (self selectedClassesValue isEmptyOrNil
+ and:[ self selectedCategoriesValue isEmptyOrNil
and:[ self selectedProjects value isEmptyOrNil
and:[ navigationState isNameSpaceBrowser not
or:[ self selectedNamespaces value isEmptyOrNil ] ]]]) ifTrue:[
@@ -52862,10 +53287,10 @@
"/ tabList add:'Lint'. actionList add:[ self updateCodeEditorVisibilityForLintOfMethod:aMethod ].
].
- self selectedMethods value size == 2 ifTrue:[
+ self selectedMethodsValue size == 2 ifTrue:[
tabList add:'Diff'.
- actionList add:[ self updateDiffViewerVisibilityFor:(self selectedMethods value first source)
- and:(self selectedMethods value second source) ].
+ actionList add:[ self updateDiffViewerVisibilityFor:(self selectedMethodsValue first source)
+ and:(self selectedMethodsValue second source) ].
].
] ifFalse:[
tabList add:'Source'. actionList add:[ self updateCodeEditorVisibilityForSource ].
@@ -52910,7 +53335,7 @@
].
"Created: / 17-08-2006 / 16:44:51 / cg"
- "Modified: / 06-09-2006 / 19:22:45 / cg"
+ "Modified: / 28-02-2012 / 17:02:07 / cg"
! !
!NewSystemBrowser methodsFor:'startup & release'!
@@ -53859,6 +54284,14 @@
or:[navigationState isProtocolOrFullProtocolBrowser
or:[navigationState isChainBrowser ]]].
+ "/
+ "/ double clicking on wrapped method removes the wrap
+ "/
+ aMethod isWrapped ifTrue:[
+ self debugMenuRemoveBreakOrTrace.
+ ^ self
+ ].
+
mSelector := aMethod selector.
mClass := aMethod mclass.
mClass isNil ifTrue:[
@@ -53876,14 +54309,6 @@
].
"/
- "/ double clicking on wrapped method removes the wrap
- "/
- aMethod isWrapped ifTrue:[
- self debugMenuRemoveBreakOrTrace.
- ^ self
- ].
-
- "/
"/ double clicking on a resource-methods opens
"/ an appropriate editor
"/
@@ -53934,7 +54359,7 @@
spawnMethodInheritanceBrowserFor:(Array with:mSelector)
in:#newBuffer
- "Modified: / 05-07-2010 / 15:53:42 / cg"
+ "Modified: / 14-02-2012 / 11:11:58 / cg"
!
methodDoubleClickedAt:index
@@ -54145,9 +54570,11 @@
self
browseVarRefsToAny:names
- classes:self selectedClasses value
+ classes:self selectedClassesValue
variables:type access:#readOrWrite all:true
title:title in:#newBuffer
+
+ "Modified: / 28-02-2012 / 16:51:54 / cg"
! !
!NewSystemBrowser methodsFor:'user actions-accepting'!
@@ -54164,7 +54591,7 @@
language := languageOrNil
ifNotNil: [languageOrNil]
ifNil: [self hasMethodSelected
- ifTrue:[self selectedMethods value first programmingLanguage]
+ ifTrue:[self selectedMethodsValue first programmingLanguage]
ifFalse:[cls programmingLanguage]].
"/ a quick parse for the selector ...
@@ -54331,7 +54758,11 @@
answer:(self currentNamespace)
do:[
("self canUseRefactoringSupport"
- (language isSmalltalk) and:[(Smalltalk at:cls theNonMetaclass name)==cls and:[cls programmingLanguage == language]]) ifTrue:[
+ language isSmalltalk
+ and:[(Smalltalk at:cls theNonMetaclass name)==cls
+ and:[cls programmingLanguage == language
+ and:[InteractiveAddMethodChange notNil]]]
+ ) ifTrue:[
"/ cg: Q: is the AddMethodChange prepared for languages ?
change := InteractiveAddMethodChange compile:code in:cls classified:cat.
change controller:codeView.
@@ -54411,8 +54842,7 @@
^ returnValue.
"Created: / 30-12-2009 / 20:01:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 12-09-2011 / 11:10:26 / cg"
- "Modified (format): / 06-12-2011 / 11:50:34 / cg"
+ "Modified: / 28-02-2012 / 16:14:33 / cg"
!
askForInitialApplicationCodeFor:aClass
@@ -54485,7 +54915,7 @@
]
].
cls isNil ifTrue:[
- classes := self selectedClasses value.
+ classes := self selectedClassesValue.
classes isEmptyOrNil ifTrue:[
self warn:'oops class is gone; reselect and try again'.
^ nil
@@ -54520,7 +54950,7 @@
].
^ cls
- "Modified: / 12-10-2006 / 21:53:50 / cg"
+ "Modified: / 28-02-2012 / 16:48:55 / cg"
!
doAcceptClassAspect:aspect get:getSelector set:setSelector code:theCode
@@ -54904,7 +55334,7 @@
mthd notNil ifTrue:[
cat := mthd category
] ifFalse:[
- protocols := ((self selectedMethods value ? #()) collect:[:m | m category]) asSet.
+ protocols := (self selectedMethodsValue collect:[:m | m category]) asSet.
protocols size == 1 ifTrue:[
cat := protocols first
] ifFalse:[
@@ -54921,6 +55351,8 @@
]
].
^ cat
+
+ "Modified: / 28-02-2012 / 16:42:53 / cg"
!
selectorAndNameOfMethodFromCode:someCode in:aClass
@@ -55212,11 +55644,13 @@
"load an autoloaded class.
Invoked on doubleClick on a class or via the menu"
- self loadClasses:self selectedClasses value.
+ self loadClasses:self selectedClassesValue.
"/ to force update.
"/ (I guess, this is not needed)
- self selectedClasses value:(self selectedClasses value copy).
+ self selectedClasses value:(self selectedClassesValue copy).
+
+ "Modified: / 28-02-2012 / 16:45:33 / cg"
!
classMenuUnload
@@ -55225,9 +55659,9 @@
self unloadClasses:self selectedNonMetaclasses.
"/ to force update.
"/ (I guess, this is not needed)
- self selectedClasses value:(self selectedClasses value copy).
-
- "Modified: / 12-09-2006 / 13:48:12 / cg"
+ self selectedClasses value:(self selectedClassesValue copy).
+
+ "Modified: / 28-02-2012 / 16:48:42 / cg"
!
classReload
@@ -55235,14 +55669,14 @@
|classes names|
- classes := self selectedClasses value.
+ classes := self selectedClassesValue.
names := classes collect:[:cls | cls name].
self unloadClasses:classes.
self loadClasses:(names collect:[:nm | Smalltalk classNamed:nm]).
"/ to force update.
"/ (I guess, this is not needed)
- self selectedClasses value:(self selectedClasses value copy).
+ self selectedClasses value:(self selectedClassesValue copy).
"Created: / 04-07-2011 / 18:10:08 / cg"
!
@@ -55830,11 +56264,15 @@
"Created: / 28-08-2010 / 11:47:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
-showMessage:message while:block
- |state workerBlock worker|
+showMessage:message while:block
+ "used for long-during lint operations: show a progressbar and a message in the top pane,
+ execute block in another (background-) thread"
+
+ |state worker|
state := self navigationState.
- workerBlock := [
+ worker :=
+ [
self showMessagePane:#progressInfoSpec in:state.
block on:UserNotification
do:[:notification |
@@ -55844,13 +56282,14 @@
].
notification proceed
]
- ].
- worker := workerBlock newProcess
- addExitAction:[ self hideMessagePaneIn:state ].
+ ] newProcess.
+ worker addExitAction:[ self hideMessagePaneIn:state ].
+ worker priorityRange:(4 to:8).
state worker:worker.
worker resume.
"Created: / 28-08-2010 / 20:10:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 06-03-2012 / 18:37:40 / cg"
!
showMessagePane: spec
@@ -55913,15 +56352,15 @@
!NewSystemBrowser class methodsFor:'documentation'!
version
- ^ '$Id: Tools__NewSystemBrowser.st 7940 2012-03-17 20:05:16Z vranyj1 $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1734 2012/03/16 22:21:13 stefan Exp $'
!
version_CVS
- ^ '§Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1702 2012/01/26 13:58:43 cg Exp §'
+ ^ '§Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1734 2012/03/16 22:21:13 stefan Exp §'
!
version_SVN
- ^ '$Id: Tools__NewSystemBrowser.st 7940 2012-03-17 20:05:16Z vranyj1 $'
+ ^ '$Id: Tools__NewSystemBrowser.st 7952 2012-03-21 17:50:14Z vranyj1 $'
! !
NewSystemBrowser initialize!