--- a/NewLauncher.st Sun May 17 06:38:47 2015 +0200
+++ b/NewLauncher.st Wed May 20 11:22:14 2015 +0100
@@ -3424,7 +3424,8 @@
TODO: make this a little app instead of an ad-hoc dialog,
add remote packages (central goody repository?)"
- |list masterRoot root dialog filter filterHolder v itemsByPath getItemByPath packageIdByItem packageID
+ |list masterRoot root dialog filter filterHolder v itemsByPath getItemByPath
+ packageIdByItem packageID pathByItem
packageIcon greyPackageIcon applicationIcon greyApplicationIcon
folderIcon greyFolderIcon
browse packageDirPath
@@ -3449,6 +3450,7 @@
filterHolder := ValueHolder with:nil.
itemsByPath := Dictionary new.
packageIdByItem := IdentityDictionary new.
+ pathByItem := IdentityDictionary new.
Class withoutUpdatingChangesDo:[
myHierarchicalItemWithLabelAndIcon :=
@@ -3482,7 +3484,9 @@
label:path last.
parent add:item.
itemsByPath at:path put:item.
- packageID := path first , ':' , ((path copyFrom:2) asStringWith:$/).
+ packageID := path size > 1
+ ifTrue:[ path first , ':' , ((path copyFrom:2) asStringWith:$/) ]
+ ifFalse:[ path first ].
packageIdByItem at:item put:packageID.
].
item
@@ -3541,7 +3545,7 @@
root label:root label,((resources string:' (no "packages" folder found)') colorizeAllWith:Color red).
] ifFalse:[
packageDirPath asFilename directoryContentsAsFilenames sort do:[:fn |
- |item base nm path parentPath parent isLibrary isApplication isAlreadyLoaded defClass|
+ |item base nm path parentPath parent isLibrary isApplication isAlreadyLoaded defClass target|
((fn suffix = 'mcz')
or:[ (fn baseName startsWith:'.') ]) ifFalse:[
@@ -3563,7 +3567,11 @@
path := nm asCollectionOfSubstringsSeparatedBy:$_.
"/ see if already loaded
- packageID := path first , ':' , ((path copyFrom:2) asStringWith:$/).
+
+ packageID := (path size > 1)
+ ifTrue:[ path first , ':' , ((path copyFrom:2) asStringWith:$/) ]
+ ifFalse:[ path first ].
+
isAlreadyLoaded :=
(defClass := ProjectDefinition definitionClassForPackage:packageID) notNil
and:[ defClass isLoaded
@@ -3571,6 +3579,11 @@
item := getItemByPath value:path.
+ target := fn contents first.
+ ((target startsWith:'lib ') or:[(target startsWith:'app ')]) ifTrue:[
+ pathByItem at:item put:(target copyFrom:(target indexOfSeparator + 1)) withoutSeparators.
+ ].
+
"/ do not overwrite an app by a lib with the same name (happens in expecco/application)
(isApplication or:[ item icon isNil or:[item icon == folderIcon or:[item icon == greyFolderIcon]]]) ifTrue:[
isAlreadyLoaded ifTrue:[
@@ -3697,24 +3710,33 @@
dialog withWaitCursorDo:[
Smalltalk onChangeSend:#value:value: to:updateAction.
[
- Smalltalk loadPackage:package
+ [
+ Smalltalk loadPackage:package
+ ] on:PackageLoadError do:[:ex |
+ |path|
+
+ path := pathByItem at:eachSelectedItem.
+ "/ try to load the file as is (i.e. not via package-id
+ (Dialog information:'package ID inconsistency - loading file directly...').
+ Smalltalk fileIn:(packageDirPath asFilename / path).
+ ]
] ensure:[
Smalltalk retractInterestsFor:updateAction.
- ]
+ ].
].
((defClass := package asPackageId projectDefinitionClass) notNil
and:[ defClass isLoaded
and:[ defClass isFullyLoaded ]])
ifFalse:[
- defClass verbose:true.
- defClass isLoaded.
- defClass isFullyLoaded.
- defClass verbose:false.
- Dialog warn:(resources
- string:
- (defClass isNil
- ifTrue:['Load failed: definition class not present after package load.']
- ifFalse:['Load failed: definition class not fully loaded after package load.']))
+ defClass isNil ifTrue:[
+ Dialog warn:(resources string:'Load failed: definition class for packageID (%1) not present after package load.' with:package)
+ ] ifFalse:[
+ defClass verbose:true.
+ defClass isLoaded.
+ defClass isFullyLoaded.
+ defClass verbose:false.
+ Dialog warn:(resources string:'Load failed: definition class /%1) not fully loaded after package load.' with:defClass name)
+ ]
] ifTrue:[
doBrowse ifTrue:[
Tools::NewSystemBrowser openOnPackage:package
@@ -5762,14 +5784,14 @@
!NewLauncher class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/NewLauncher.st,v 1.548 2015-05-07 18:31:25 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/NewLauncher.st,v 1.549 2015-05-19 13:38:03 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/NewLauncher.st,v 1.548 2015-05-07 18:31:25 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/NewLauncher.st,v 1.549 2015-05-19 13:38:03 cg Exp $'
!
version_SVN
- ^ '$Id: NewLauncher.st,v 1.548 2015-05-07 18:31:25 cg Exp $'
+ ^ '$Id: NewLauncher.st,v 1.549 2015-05-19 13:38:03 cg Exp $'
! !
--- a/Tools__BreakpointService.st Sun May 17 06:38:47 2015 +0200
+++ b/Tools__BreakpointService.st Wed May 20 11:22:14 2015 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
"
COPYRIGHT (c) 2010 by Jan Vrany, SWING Research Group. CTU in Prague
All Rights Reserved
@@ -275,7 +277,7 @@
"/ Breakpoint character positions are fixed up just before
"/ passing a breakpoints to the compiler, see
"/ #fixupBreakpointPositions
- breakpoints do:[:each | each position: nil ].
+ breakpoints do:[:each | each method:aMethod. each position: nil ].
].
currentMethod := aMethod.
@@ -556,7 +558,7 @@
].
breakpoints := breakpoints species new.
- newMethod breakpointsDo:[ :each | breakpoints add: each ].
+ newMethod breakpointsDo:[ :each | each method:newMethod. breakpoints add: each ].
"/ must update breakpoints BEFORE the following, because it leads to a change
"/ notification, which may clear the breakpoints collection!!
@@ -696,14 +698,14 @@
!BreakpointService class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools__BreakpointService.st,v 1.60 2015-02-24 08:25:36 vrany Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__BreakpointService.st,v 1.61 2015-05-18 14:49:06 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools__BreakpointService.st,v 1.60 2015-02-24 08:25:36 vrany Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__BreakpointService.st,v 1.61 2015-05-18 14:49:06 cg Exp $'
!
version_SVN
- ^ '$Id: Tools__BreakpointService.st,v 1.60 2015-02-24 08:25:36 vrany Exp $'
+ ^ '$Id: Tools__BreakpointService.st,v 1.61 2015-05-18 14:49:06 cg Exp $'
! !
--- a/Tools__ClassCategoryList.st Sun May 17 06:38:47 2015 +0200
+++ b/Tools__ClassCategoryList.st Wed May 20 11:22:14 2015 +0100
@@ -666,6 +666,7 @@
].
packageFilter := self packageFilter value.
packageFilter notNil ifTrue:[
+ packageFilter := packageFilter collect:[:p | p withoutSeparators].
(packageFilter includes:allName) ifTrue:[packageFilter := nil].
].
@@ -1198,11 +1199,11 @@
!ClassCategoryList class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools__ClassCategoryList.st,v 1.65 2015-03-05 12:29:47 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__ClassCategoryList.st,v 1.66 2015-05-19 16:38:10 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools__ClassCategoryList.st,v 1.65 2015-03-05 12:29:47 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__ClassCategoryList.st,v 1.66 2015-05-19 16:38:10 cg Exp $'
!
version_HG
--- a/Tools__CodeView2.st Sun May 17 06:38:47 2015 +0200
+++ b/Tools__CodeView2.st Wed May 20 11:22:14 2015 +0100
@@ -2673,21 +2673,22 @@
"/ Transcript showCR:servicesWithAnnotations.
].
].
-
- "/ if there is either ONLY a breakpoint service which has an annotation
- "/ or none has an annotation, return the breakpoint service's message
- (servicesWithAnnotations isEmptyOrNil
- or:[ servicesWithAnnotations size == 1 and:[servicesWithAnnotations first == bpntService]]) ifTrue:[
- (bpntService notNil and:[ bpntService isEnabled ]) ifTrue:[
- serviceToShowHelpFor := bpntService
- ].
- ] ifFalse:[
- serviceToShowHelpFor := servicesWithAnnotations detect:[:service | service ~= bpntService] ifNone:nil.
- serviceToShowHelpFor := serviceToShowHelpFor ? servicesWithAnnotations first.
- ].
- serviceToShowHelpFor notNil ifTrue:[
- ^ serviceToShowHelpFor flyByHelpTextAtLine:lineNr
- ].
+ servicesWithAnnotations isNil ifTrue:[ ^ nil ].
+
+"/ "/ if there is either ONLY a breakpoint service which has an annotation
+"/ "/ or none has an annotation, return the breakpoint service's message
+"/ (servicesWithAnnotations isEmptyOrNil
+"/ or:[ servicesWithAnnotations size == 1 and:[servicesWithAnnotations first == bpntService]]) ifTrue:[
+"/ (bpntService notNil and:[ bpntService isEnabled ]) ifTrue:[
+"/ serviceToShowHelpFor := bpntService
+"/ ].
+"/ ] ifFalse:[
+"/ serviceToShowHelpFor := servicesWithAnnotations detect:[:service | service ~= bpntService] ifNone:nil.
+"/ serviceToShowHelpFor := serviceToShowHelpFor ? servicesWithAnnotations first.
+"/ ].
+"/ serviceToShowHelpFor notNil ifTrue:[
+"/ ^ serviceToShowHelpFor flyByHelpTextAtLine:lineNr
+"/ ].
text := servicesWithAnnotations
inject:(OrderedCollection new)
@@ -4265,11 +4266,11 @@
!CodeView2 class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools__CodeView2.st,v 1.189 2015-05-09 17:42:20 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__CodeView2.st,v 1.190 2015-05-18 14:49:30 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools__CodeView2.st,v 1.189 2015-05-09 17:42:20 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__CodeView2.st,v 1.190 2015-05-18 14:49:30 cg Exp $'
!
version_HG
@@ -4278,7 +4279,7 @@
!
version_SVN
- ^ '$Id: Tools__CodeView2.st,v 1.189 2015-05-09 17:42:20 cg Exp $'
+ ^ '$Id: Tools__CodeView2.st,v 1.190 2015-05-18 14:49:30 cg Exp $'
! !
--- a/Tools__MethodCategoryList.st Sun May 17 06:38:47 2015 +0200
+++ b/Tools__MethodCategoryList.st Wed May 20 11:22:14 2015 +0100
@@ -1399,7 +1399,7 @@
classesProcessed do:[:eachClass |
|classPackage required testOutcomes|
- showSyntheticMethods value ifTrue:[
+ (showSyntheticMethods value ? true) ifTrue:[
(eachClass isMeta not and:[eachClass isTestCaseLike and:[eachClass isAbstract not]]) ifTrue:[
testOutcomes := eachClass testSelectorsWithLastOutcomes.
numAllTestResults := numAllTestResults + testOutcomes size.
@@ -1470,7 +1470,7 @@
(packageFilter isNil or:[ packageFilter includes:eachClass package ]) ifTrue:[
(showPseudoProtocols and:[suppressPseudoProtocolsNow not]) ifTrue:[
- showSyntheticMethods value ifTrue:[
+ (showSyntheticMethods value ? true) ifTrue:[
"/ see if there is a subclassResponsibility in a superclass
required := SmalltalkCodeGeneratorTool missingRequiredProtocolFor:eachClass.
numMissingRequired := numMissingRequired + required size.
@@ -2201,11 +2201,11 @@
!MethodCategoryList class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools__MethodCategoryList.st,v 1.111 2015-02-26 03:58:30 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__MethodCategoryList.st,v 1.112 2015-05-19 16:38:42 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools__MethodCategoryList.st,v 1.111 2015-02-26 03:58:30 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__MethodCategoryList.st,v 1.112 2015-05-19 16:38:42 cg Exp $'
! !
--- a/Tools__NewSystemBrowser.st Sun May 17 06:38:47 2015 +0200
+++ b/Tools__NewSystemBrowser.st Wed May 20 11:22:14 2015 +0100
@@ -16,58 +16,58 @@
"{ NameSpace: Tools }"
SystemBrowser subclass:#NewSystemBrowser
- instanceVariableNames:'environmentHolder environment navigationState bufferNameList
- selectedBuffer buffers bufferUsageOrder browserCanvas
- immediateUpdate showClassPackages lastMethodCategory
- lastMethodMoveClass browserCanvasType
- syntaxColoringProcessRunning syntaxColoringProcess
- methodInfoProcess browsletShowHideLabelHolder browserPageCanvas
- isEmbedded hasNonEmptyEnvironmentSelectedHolder
- smalllintRulesOrAllHolder smalllintRulesOrDefaultHolder'
- classVariableNames:'LastNewProtocols LastProtocolRenames LastCategoryRenames
- LastCategoryRenameOld LastCategoryRenameNew LastProjectMoves
- LastNameSpaceMove LastMethodMoveOrCopyTargetClass
- LastClassFilterBlockString LastMethodFilterBlockString
- LastBreakPointConditionString LastIndividualChecks
- LastAcceptPackage LastVariableRenames LastVisitorClassName
- LastTemporaryVariableName FindHistory SynchronousUpdate
- DoubleClickIsOpenBrowser ShowMethodTemplateWhenProtocolIsSelected
- DefaultShowMethodInheritance DefaultEmphasizeUnloadedClasses
- DefaultImmediateSyntaxColoring DefaultImmediateExplaining
- DefaultSyntaxColoring DefaultToolBarVisible
- DefaultCodeInfoVisible DefaultShortNameInTabs
- DefaultHideUnloadedClasses DefaultMarkApplications
- DefaultAutoFormat DefaultShowMethodComplexity
- DefaultShowMethodTypeIcon DefaultShowSpecialResourceEditors
- DefaultShowSyntheticMethods SharedMethodCategoryCache
- LastMethodProcessingBlockString LastLoadedPackages
- DefaultShortAllClassesInNameSpaceOrganisation LastBaseVersionTag
- LastTag DefaultShowPseudoProtocols DefaultShowMultitabMode
- LastRenamedOld LastRenamedNew LastImportedPackage
- LastLintRulesHolder NewNavigationHistory
- LastLiteralReplacementType LastLiteralReplacementNewName
- LastLiteralReplacementOldLiteral LastNewProjectType
- LastClassProcessingBlockString RecentlyClosedList
- LastClassSearchBoxShowedFullName CachedTagToRevisionMapping
- CachedMethodsImplemented LastCypressDirectory
- LastClassSearchBoxShowedJavaOnly LastRemoteRepository
- LastClassDocDirectory'
- poolDictionaries:''
- category:'Interface-Browsers-New'
+ instanceVariableNames:'environmentHolder environment navigationState bufferNameList
+ selectedBuffer buffers bufferUsageOrder browserCanvas
+ immediateUpdate showClassPackages lastMethodCategory
+ lastMethodMoveClass browserCanvasType
+ syntaxColoringProcessRunning syntaxColoringProcess
+ methodInfoProcess browsletShowHideLabelHolder browserPageCanvas
+ isEmbedded hasNonEmptyEnvironmentSelectedHolder
+ smalllintRulesOrAllHolder smalllintRulesOrDefaultHolder'
+ classVariableNames:'LastNewProtocols LastProtocolRenames LastCategoryRenames
+ LastCategoryRenameOld LastCategoryRenameNew LastProjectMoves
+ LastNameSpaceMove LastMethodMoveOrCopyTargetClass
+ LastClassFilterBlockString LastMethodFilterBlockString
+ LastBreakPointConditionString LastIndividualChecks
+ LastAcceptPackage LastVariableRenames LastVisitorClassName
+ LastTemporaryVariableName FindHistory SynchronousUpdate
+ DoubleClickIsOpenBrowser ShowMethodTemplateWhenProtocolIsSelected
+ DefaultShowMethodInheritance DefaultEmphasizeUnloadedClasses
+ DefaultImmediateSyntaxColoring DefaultImmediateExplaining
+ DefaultSyntaxColoring DefaultToolBarVisible
+ DefaultCodeInfoVisible DefaultShortNameInTabs
+ DefaultHideUnloadedClasses DefaultMarkApplications
+ DefaultAutoFormat DefaultShowMethodComplexity
+ DefaultShowMethodTypeIcon DefaultShowSpecialResourceEditors
+ DefaultShowSyntheticMethods SharedMethodCategoryCache
+ LastMethodProcessingBlockString LastLoadedPackages
+ DefaultShortAllClassesInNameSpaceOrganisation LastBaseVersionTag
+ LastTag DefaultShowPseudoProtocols DefaultShowMultitabMode
+ LastRenamedOld LastRenamedNew LastImportedPackage
+ LastLintRulesHolder NewNavigationHistory
+ LastLiteralReplacementType LastLiteralReplacementNewName
+ LastLiteralReplacementOldLiteral LastNewProjectType
+ LastClassProcessingBlockString RecentlyClosedList
+ LastClassSearchBoxShowedFullName CachedTagToRevisionMapping
+ CachedMethodsImplemented LastCypressDirectory
+ LastClassSearchBoxShowedJavaOnly LastRemoteRepository
+ LastClassDocDirectory'
+ poolDictionaries:''
+ category:'Interface-Browsers-New'
!
ListEntry subclass:#OwnershipGraph
- instanceVariableNames:'ownershipInfo cachedForm'
- classVariableNames:''
- poolDictionaries:''
- privateIn:NewSystemBrowser
+ instanceVariableNames:'ownershipInfo cachedForm'
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:NewSystemBrowser
!
Object subclass:#RevisionOwnershipInfo
- instanceVariableNames:'revision author date lineOwnership'
- classVariableNames:''
- poolDictionaries:''
- privateIn:NewSystemBrowser::OwnershipGraph
+ instanceVariableNames:'revision author date lineOwnership'
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:NewSystemBrowser::OwnershipGraph
!
!NewSystemBrowser class methodsFor:'documentation'!
@@ -10457,7 +10457,7 @@
)
(MenuItem
enabled: hasProjectSelectedHolder
- label: 'Buffer with Projects Requiring this Project'
+ label: 'Buffer with Projects Requiring this Project (as prerequisite)'
itemValue: projectMenuSpawnPreRequirerBuffer
)
(MenuItem
@@ -10466,6 +10466,11 @@
itemValue: projectMenuSpawnReferencesBuffer
)
(MenuItem
+ enabled: hasProjectSelectedHolder
+ label: 'Buffer with Projects Required by this Project (prerequisites)'
+ itemValue: projectMenuSpawnAllPrerequisitesBuffer
+ )
+ (MenuItem
label: '-'
)
(MenuItem
@@ -10480,7 +10485,7 @@
)
(MenuItem
enabled: hasProjectSelectedHolder
- label: 'Browser on Projects Requiring this Project'
+ label: 'Browser on Projects Requiring this Project (as prerequisite)'
itemValue: projectMenuSpawnPreRequirerBrowser
)
(MenuItem
@@ -10489,6 +10494,11 @@
itemValue: projectMenuSpawnReferencesBrowser
)
(MenuItem
+ enabled: hasProjectSelectedHolder
+ label: 'Buffer with Projects Required by this Project (prerequisits)'
+ itemValue: projectMenuSpawnAllPrerequisitesBrowser
+ )
+ (MenuItem
label: '-'
)
(MenuItem
@@ -43354,6 +43364,18 @@
"Created: / 24.2.2000 / 21:42:26 / cg"
!
+projectMenuSpawnAllPrerequisitesBrowser
+ "add a browser showing projects which are prerequisite to the selected project(s)"
+
+ self spawnProjectAllPrerequisitesFor:(self selectedProjects value) in:#newBrowser
+!
+
+projectMenuSpawnAllPrerequisitesBuffer
+ "add a buffer showing projects which are prerequisite to the selected project(s)"
+
+ self spawnProjectAllPrerequisitesFor:(self selectedProjects value) in:#newBuffer
+!
+
projectMenuSpawnBuffer
"add a buffer showing the selected projects only"
@@ -43771,6 +43793,51 @@
selectedProjects sort do:aBlock
!
+spawnProjectAllPrerequisitesFor:someProjects in:how
+ "open a browser/buffer showing projects which are prerequisite of the selected project(s)"
+
+ |addPkg allPrereqs lbl already brwsr delta|
+
+ delta := 4.
+
+ allPrereqs := OrderedCollection new.
+ already := Set new.
+
+ addPkg :=
+ [:package :lvl |
+ |projectDefinition indent|
+
+ indent := String new:lvl.
+ allPrereqs add:(indent,package).
+ already add:package.
+
+ projectDefinition := ProjectDefinition definitionClassForPackage:package string.
+ projectDefinition notNil ifTrue:[
+ (projectDefinition effectivePreRequisites) do:[:eachPrereq |
+ (already includes:eachPrereq) ifFalse:[
+ addPkg value:eachPrereq value:lvl+delta
+ ] ifTrue:[
+ indent := String new:lvl+delta.
+ allPrereqs add:(indent,(eachPrereq withColor:Color grey)).
+ ].
+ ].
+ ].
+ ].
+
+ someProjects do:[:each | addPkg value:each value:0].
+
+ allPrereqs isEmpty ifTrue:[
+ Dialog warn:'No prerequisites found.'.
+ ^ self.
+ ].
+ someProjects size == 1 ifTrue:[
+ lbl := resources string:'All prerequisites of package "%1"' with:someProjects first
+ ] ifFalse:[
+ lbl := resources string:'All prerequisites any of %1 packages' with:someProjects size
+ ].
+ brwsr := self spawnProjectBrowserFor:allPrereqs label:lbl in:how sort:false.
+!
+
spawnProjectBrowserFor:projects in:where
"browse selected project(s);
where is: #newBrowser - open a new browser showing the projects
@@ -43784,6 +43851,15 @@
where is: #newBrowser - open a new browser showing the projects
where is: #newBuffer - add a new buffer showing the projects"
+ ^ self
+ spawnProjectBrowserFor:projects label:labelOrNil in:where sort:true
+!
+
+spawnProjectBrowserFor:projects label:labelOrNil in:where sort:sortItems
+ "browse selected project(s);
+ where is: #newBrowser - open a new browser showing the projects
+ where is: #newBuffer - add a new buffer showing the projects"
+
|spec projectList singleSelection brwsr|
(singleSelection := projects size == 1) ifTrue:[
@@ -43807,6 +43883,7 @@
brwsr immediateUpdate value:true.
brwsr projectListApp slaveMode:false.
+ sortItems ifFalse:[ brwsr projectListApp sortBy value:#keep ].
brwsr organizerMode value:#project.
brwsr projectListGenerator value:projectList.
brwsr packageFilter value:projectList.
@@ -43846,7 +43923,7 @@
spawnProjectPreRequirerBrowserFor:someProjects in:how
"open a browser/buffer showing projects which have the selected project(s) as prerequisite"
- |requirer|
+ |requirer lbl|
requirer := Set new.
ProjectDefinition allSubclassesDo:[:eachProjectDefinition |
@@ -43858,7 +43935,16 @@
Dialog warn:'Noone seems to require this package (not found in any prerequisites).'.
^ self.
].
- self spawnProjectBrowserFor:(requirer asOrderedCollection sort) in:how
+
+ someProjects size == 1 ifTrue:[
+ lbl := resources string:'Projects which require package "%1"' with:someProjects first
+ ] ifFalse:[
+ lbl := resources string:'Projects which require any of %1 packages' with:someProjects size
+ ].
+ self
+ spawnProjectBrowserFor:(requirer asOrderedCollection sort)
+ label:lbl
+ in:how
"Created: / 23-01-2007 / 19:25:00 / cg"
!
@@ -57932,11 +58018,10 @@
l isNil ifTrue:[
l := il := self currentWindowLabel.
].
- navigationState realModifiedState == true
- ifTrue:[
+ navigationState realModifiedState == true ifTrue:[
l := l , ' [modified]'
].
- window label:l; iconLabel:il.
+ window label:l string; iconLabel:il string.
"Modified: / 18.8.2000 / 21:12:17 / cg"
!
@@ -58122,6 +58207,7 @@
"Created: / 04-12-2011 / 22:22:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+
!NewSystemBrowser methodsFor:'private-semantic checks'!
checkAcceptedMethod:aMethod inClass:aClass
@@ -62544,11 +62630,11 @@
!NewSystemBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.2223 2015-05-16 09:52:59 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.2225 2015-05-19 16:39:45 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.2223 2015-05-16 09:52:59 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.2225 2015-05-19 16:39:45 cg Exp $'
!
version_HG
@@ -62557,7 +62643,7 @@
!
version_SVN
- ^ '$Id: Tools__NewSystemBrowser.st,v 1.2223 2015-05-16 09:52:59 cg Exp $'
+ ^ '$Id: Tools__NewSystemBrowser.st,v 1.2225 2015-05-19 16:39:45 cg Exp $'
! !
--- a/Tools__ProjectList.st Sun May 17 06:38:47 2015 +0200
+++ b/Tools__ProjectList.st Wed May 20 11:22:14 2015 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
"
COPYRIGHT (c) 2000 by eXept Software AG
All Rights Reserved
@@ -272,7 +274,7 @@
changedObject value == 0 ifTrue:[
self selectionIndexHolder value:#()
].
- newSel := changedObject value collect:[:idx | projectList value at:idx].
+ newSel := changedObject value collect:[:idx | (projectList value at:idx) withoutSeparators].
newSel ~= self selectedProjects value ifTrue:[
self selectedProjects value:newSel.
].
@@ -418,9 +420,10 @@
!
updateSelectionIndexFromSelection
- |newSel allIdx|
+ |newSel allIdx selection selectionIndex |
- self selectionHolder value isNil ifTrue:[
+ selection := self selectionHolder value.
+ selection isNil ifTrue:[
self selectionIndexHolder value:0.
^ self.
].
@@ -430,13 +433,14 @@
].
allIdx := projectList value indexOf:(self class nameListEntryForALL).
- newSel := self selectionHolder value
+ newSel := selection
collect:[:val | |i|
- i := projectList value indexOf:val.
+ i := projectList value findFirst:[:entry | entry string withoutSeparators = val].
i == 0 ifTrue:[allIdx] ifFalse:[i]]
thenSelect:[:idx | idx ~~ 0].
- (newSel ~= self selectionIndexHolder value
- or:[ self selectionIndexHolder value == 0]) ifTrue:[
+
+ selectionIndex := self selectionIndexHolder value.
+ (newSel ~= selectionIndex or:[ selectionIndex == 0]) ifTrue:[
self selectionIndexHolder value:newSel
].
@@ -710,7 +714,11 @@
hideModules := HideModules ? true.
hideModules := HideModules ? false.
- allProjects := IdentitySet new.
+ sortBy value == #keep ifTrue:[
+ allProjects := OrderedCollection new.
+ ] ifFalse:[
+ allProjects := IdentitySet new.
+ ].
projectBag := Bag new.
inGeneratorHolder isNil ifTrue:[
@@ -813,23 +821,27 @@
|allProjects numClassesInChangeSet|
allProjects := self allShownProjects copyAsOrderedCollection.
- allProjects sort.
+ sortBy value ~~ #keep ifTrue:[
+ allProjects sort
+ ].
allProjects size == 1 ifTrue:[
"/ self projectLabelHolder value:(allProjects first , ' [Project]').
self projectLabelHolder value:(LabelAndIcon icon:(self class packageIcon) string:allProjects first).
].
- includedPseudoEntryForChanged ifTrue:[
- numClassesInChangeSet := ChangeSet current changedClasses size.
- numClassesInChangeSet > 0 ifTrue:[
- "/ don't include count - makeGenerator compares against the un-expanded nameListEntry (sigh - need two lists)
- allProjects addFirst:((self class nameListEntryForChanged "bindWith:numClassesInChangeSet") allItalic).
+ sortBy value ~~ #keep ifTrue:[
+ includedPseudoEntryForChanged ifTrue:[
+ numClassesInChangeSet := ChangeSet current changedClasses size.
+ numClassesInChangeSet > 0 ifTrue:[
+ "/ don't include count - makeGenerator compares against the un-expanded nameListEntry (sigh - need two lists)
+ allProjects addFirst:((self class nameListEntryForChanged "bindWith:numClassesInChangeSet") allItalic).
+ ].
].
- ].
- allProjects size > 1 ifTrue:[
- allProjects addFirst:(self class nameListEntryForALL allItalic).
+ allProjects size > 1 ifTrue:[
+ allProjects addFirst:(self class nameListEntryForALL allItalic).
+ ].
].
^ allProjects
@@ -1045,10 +1057,10 @@
!ProjectList class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools__ProjectList.st,v 1.74 2015-02-04 23:15:15 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__ProjectList.st,v 1.75 2015-05-19 16:21:53 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools__ProjectList.st,v 1.74 2015-02-04 23:15:15 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__ProjectList.st,v 1.75 2015-05-19 16:21:53 cg Exp $'
! !