--- a/Tools__NewSystemBrowser.st Sun Jan 29 12:56:58 2012 +0000
+++ b/Tools__NewSystemBrowser.st Sun Jan 29 15:33:37 2012 +0000
@@ -43,7 +43,8 @@
DefaultShowMultitabMode LastRenamedOld LastRenamedNew
LastImportedPackage LastLintRules NewNavigationHistory
DefaultSortByNameAndInheritance LastLiteralReplacementType
- LastLiteralReplacementNewName LastLiteralReplacementOldLiteral'
+ LastLiteralReplacementNewName LastLiteralReplacementOldLiteral
+ LastNewProjectType'
poolDictionaries:''
category:'Interface-Browsers-New'
!
@@ -298,6 +299,13 @@
synchronousUpdate
^ SynchronousUpdate ? false
+
+ "
+ SynchronousUpdate := true
+ SynchronousUpdate := false
+ "
+
+ "Modified (comment): / 24-08-2011 / 15:33:27 / cg"
! !
!NewSystemBrowser class methodsFor:'help specs'!
@@ -309,6 +317,27 @@
spec := super flyByHelpSpec addPairsFrom:#(
+#bookmarks
+'Manage bookmarks'
+
+#goBack
+'Go back in local visited history'
+
+#goBackInGlobalHistory
+'Go back in global visited history'
+
+#goForward
+'Go forward in local visited history'
+
+#recentChanges
+'Recent changes'
+
+#recentClassChanges
+'Recently changed classes'
+
+#recentlyVisitedMethods
+'Recently changed methods'
+
#columnLabel
'The text-cursor''s column number'
@@ -411,37 +440,7 @@
].
^ spec.
- "Modified: / 15-07-2011 / 19:19:07 / cg"
-!
-
-helpSpec
- "This resource specification was automatically generated
- by the UIHelpTool of ST/X."
-
- "Do not manually edit this!! If it is corrupted,
- the UIHelpTool may not be able to read the specification."
-
- "
- UIHelpTool openOnClass:Tools::NewSystemBrowser
- "
-
- <resource: #help>
-
- ^ super helpSpec addPairsFrom:#(
-
-#goBack
-''
-
-#goBackInGlobalHistory
-''
-
-#goForward
-''
-
-#recentlyVisitedMethods
-''
-
-)
+ "Modified: / 08-11-2011 / 12:21:23 / cg"
! !
!NewSystemBrowser class methodsFor:'image specs'!
@@ -664,7 +663,7 @@
)
(ViewSpec
name: 'BookmarkBar'
- layout: (LayoutFrame 0 0 40 0 0 1 65 0)
+ layout: (LayoutFrame 0 0 40 0 0 1 67 0)
visibilityChannel: bookmarkBarVisibleHolder
component:
(SpecCollection
@@ -1116,21 +1115,21 @@
the UIPainter may not be able to read the specification."
"
- UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#codePaneSpec_withBrowslet
- Tools::NewSystemBrowser new openInterface:#codePaneSpec_withBrowslet
+ UIPainter new openOnClass:Tools::NewSystemBrowser andSelector:#codePaneSpec
+ Tools::NewSystemBrowser new openInterface:#codePaneSpec
"
<resource: #canvas>
^
#(FullSpec
- name: #'codePaneSpec_withBrowslet'
+ name: codePaneSpec
window:
(WindowSpec
label: 'SystemBrowser'
name: 'SystemBrowser'
min: (Point 0 0)
- bounds: (Rectangle 0 0 459 319)
+ bounds: (Rectangle 0 0 998 535)
icon: defaultIcon
)
component:
@@ -1201,14 +1200,44 @@
labelChannel: infoLabelHolder
adjust: left
)
- (LabelSpec
- label: 'Package'
- name: 'PackageLabel'
- activeHelpKey: packageInfoLabel
+ (HorizontalPanelViewSpec
+ name: 'PackageInfoPanel'
level: -1
- translateLabel: true
- labelChannel: packageLabelHolder
- adjust: left
+ horizontalLayout: rightSpaceFit
+ verticalLayout: fitSpace
+ horizontalSpace: 0
+ verticalSpace: 0
+ elementsChangeSize: true
+ component:
+ (SpecCollection
+ collection: (
+ (LabelSpec
+ label: 'Package'
+ name: 'PackageLabel'
+ activeHelpKey: packageInfoLabel
+ level: 0
+ borderWidth: -1
+ backgroundChannel: packageInfoBackgroundColorHolder
+ translateLabel: true
+ labelChannel: packageLabelHolder
+ adjust: left
+ useDefaultExtent: true
+ )
+ (ActionButtonSpec
+ label: 'Info'
+ name: 'PackageInfoButton'
+ level: 0
+ initiallyInvisible: true
+ backgroundChannel: packageInfoBackgroundColorHolder
+ foregroundColor: (Color 0.0 0.0 100.0)
+ translateLabel: true
+ resizeForLabel: true
+ extent: (Point 36 23)
+ postBuildCallback: postBuildPackageInfoButton:
+ )
+ )
+
+ )
)
)
@@ -1250,8 +1279,6 @@
)
)
-
- "Modified: / 11-10-2010 / 20:23:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
fullBrowserSpec
@@ -3063,7 +3090,8 @@
)
(ViewSpec
name: 'BookmarkBar'
- layout: (LayoutFrame 0 0 40 0 0 1 65 0)
+ layout: (LayoutFrame 0 0 40 0 0 1 67 0)
+ level: 1
visibilityChannel: bookmarkBarVisibleHolder
component:
(SpecCollection
@@ -3071,7 +3099,7 @@
(ActionButtonSpec
label: 'hideToolBarIcon'
name: 'Button1'
- layout: (LayoutFrame 0 0 0 0 13 0 0 1)
+ layout: (LayoutFrame 0 0 0 0 12 0 0 1)
activeHelpKey: hideToolBar
hasCharacterOrientedLabel: false
translateLabel: true
@@ -3109,8 +3137,6 @@
)
)
-
- "Modified: / 03-06-2011 / 13:47:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
pagedWindowSpec
@@ -5114,7 +5140,7 @@
)
)
- handles: (Any 0.333333333333333 0.666666666666667 1.0)
+ handles: (Any 0.33 0.67 1.0)
)
(SubCanvasSpec
name: 'RuleDetails'
@@ -5155,6 +5181,8 @@
)
)
+
+ "Modified: / 31-12-2011 / 13:12:37 / cg"
!
visualProfilerSpec
@@ -5642,6 +5670,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:#browseMenu
(Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser browseMenu)) startUp
@@ -5711,8 +5740,13 @@
label: 'With Extensions'
itemValue: browseMenuClassesWithExtensions
translateLabel: true
- showBusyCursorWhilePerforming: true
isVisible: false
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: 'Recently Opened Applications'
+ itemValue: browseMenuClassesOfRecentlyOpenedApplications
+ translateLabel: true
)
(MenuItem
label: '-'
@@ -5794,15 +5828,15 @@
label: 'With External Function Calls (FFI)'
itemValue: browseMenuClassesWithExternalFunctionCalls
translateLabel: true
- showBusyCursorWhilePerforming: true
isVisible: false
+ showBusyCursorWhilePerforming: true
)
(MenuItem
label: 'With Primitive Code'
itemValue: browseMenuClassesWithPrimitiveCode
translateLabel: true
- showBusyCursorWhilePerforming: true
isVisible: false
+ showBusyCursorWhilePerforming: true
)
(MenuItem
label: '-'
@@ -5857,6 +5891,12 @@
showBusyCursorWhilePerforming: true
)
(MenuItem
+ label: 'Writes to Global...'
+ itemValue: browseMenuWritesToGlobal
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
label: '-'
)
(MenuItem
@@ -6022,8 +6062,8 @@
label: 'With External Function Calls (FFI)'
itemValue: browseMenuMethodsWithExternalFunctionCalls
translateLabel: true
- showBusyCursorWhilePerforming: true
isVisible: false
+ showBusyCursorWhilePerforming: true
)
(MenuItem
label: '-'
@@ -6044,7 +6084,7 @@
nil
)
- "Modified: / 11-05-2010 / 18:21:14 / cg"
+ "Modified: / 29-09-2011 / 10:40:06 / cg"
!
bufferBaseMenu
@@ -6274,6 +6314,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:#categoryMenuFileOutAndRepositorySlice
(Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser categoryMenuFileOutAndRepositorySlice)) startUp
@@ -6349,54 +6390,10 @@
)
)
(MenuItem
- enabled: hasSourceCodeManagerHolder
- label: 'CVS'
- translateLabel: true
- submenu:
- (Menu
- (
- (MenuItem
- enabled: hasCategorySelectedAndSourceCodeManagerHolder
- label: 'CheckIn all...'
- itemValue: categoryMenuCheckInEach
- translateLabel: true
- labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn all...')
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- enabled: hasCategorySelectedAndSourceCodeManagerHolder
- label: 'CheckOut Newest All'
- itemValue: categoryMenuCheckOutNewest
- translateLabel: true
- labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest All')
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasCategorySelectedAndSourceCodeManagerHolder
- label: 'CheckOut Previous Versions All...'
- itemValue: categoryMenuCheckOut
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- enabled: hasSourceCodeManagerHolder
- label: 'Repository History...'
- itemValue: categoryMenuRepositoryHistory
- translateLabel: true
- showBusyCursorWhilePerforming: true
- labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Repository History...')
- )
- )
- nil
- nil
- )
- labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
+ label: 'Repository'
+ translateLabel: true
+ submenuChannel: categoryMenuSCMSlice
+ isMenuSlice: true
)
)
nil
@@ -6676,178 +6673,6 @@
)
!
-classCVSMenu
- "This resource specification was automatically generated
- by the MenuEditor of ST/X."
-
- "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:#classCVSMenu
- (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classCVSMenu)) startUp
- "
-
- <resource: #menu>
-
- ^
- #(Menu
- (
- (MenuItem
- label: '** No SourceCodeManager - See Settings in the Launcher **'
- translateLabel: true
- isVisible: hasNoSourceCodeManagerHolder
- )
- (MenuItem
- label: '-'
- isVisible: hasNoSourceCodeManagerHolder
- )
- (MenuItem
- enabled: hasClassSelectedHolderAndSourceCodeManagerHolder
- label: 'CheckIn...'
- itemValue: classMenuCheckIn
- translateLabel: true
- labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasClassWithExtensionsSelectedHolder
- label: 'CheckIn Extensions For'
- translateLabel: true
- submenuChannel: browseClassExtensionsMenu
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: changeSetContainsChangedClassesAndSourceCodeManagerHolder
- label: 'CheckIn All Changed Classes'
- itemValue: classMenuCheckInAllChangedClasses
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- label: 'Quick CheckIn...'
- itemValue: classMenuQuickCheckIn
- translateLabel: true
- isVisible: hasClassSelectedAndControlKeyDownHolder
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
- label: 'CheckIn Build Support Files...'
- itemValue: classMenuCheckInBuildSupportFiles
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
- label: 'Set Tag...'
- itemValue: classMenuSetTag
- translateLabel: true
- labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag...')
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
- label: 'CheckOut Newest'
- itemValue: classMenuCheckOutNewest
- translateLabel: true
- labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
- label: 'CheckOut Previous Version...'
- itemValue: classMenuCheckOut
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
- label: 'Revision Log (Recent Changes)'
- itemValue: classMenuShortRevisionLog
- translateLabel: true
- labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
- label: 'Revision Log (Full)'
- itemValue: classMenuRevisionLog
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- enabled: hasClassSelectedAndSourceCodeManagerHolder
- label: 'Compare with Newest in Repository...'
- itemValue: classMenuCompareAgainstNewestInRepository
- translateLabel: true
- labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
- label: 'Compare with Original in Repository...'
- itemValue: classMenuCompareAgainstOriginalInRepository
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
- label: 'Compare with Repository...'
- itemValue: classMenuCompareWithRepository
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
- label: 'Compare two Repository Versions...'
- itemValue: classMenuCompareTwoRepositoryVersions
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
- label: 'Compare Extensions with Repository...'
- itemValue: classMenuCompareExtensionsWithRepository
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
- label: 'Compare Build Support File'
- translateLabel: true
- submenuChannel: compareBuildSupportFileMenu
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
- label: 'Edit Version in Repository...'
- itemValue: classMenuEditVersionInRepository
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- )
- nil
- nil
- )
-
- "Created: / 19-04-2011 / 15:24:05 / cg"
-!
-
classCheckMenu
"This resource specification was automatically generated
by the MenuEditor of ST/X."
@@ -7023,6 +6848,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:#classDebugMenu
(Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classDebugMenu)) startUp
@@ -7078,6 +6904,7 @@
(MenuItem
label: 'Lint'
translateLabel: true
+ isVisible: false
submenuChannel: lintMenu
keepLinkedMenu: true
)
@@ -7089,6 +6916,13 @@
showBusyCursorWhilePerforming: true
)
(MenuItem
+ enabled: hasClassSelectedHolder
+ label: 'Recompile all Methods here and in Subclasses'
+ itemValue: classMenuRecompileAll
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
label: '-'
)
(MenuItem
@@ -7109,8 +6943,6 @@
nil
nil
)
-
- "Modified: / 27-04-2010 / 14:06:28 / cg"
!
classGenerateMenu
@@ -7597,6 +7429,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:#classMenu
(Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classMenu)) startUp
@@ -7708,31 +7541,10 @@
)
)
(MenuItem
- enabled: hasClassSelectedAndSourceCodeManagerHolder
- label: 'SCM'
- translateLabel: true
- isVisible: false
- submenuChannel: classSCMMenu
- labelImage: (ResourceRetriever ToolbarIconLibrary repositoryIcon 'SCM')
- argument: 'SCM'
- keepLinkedMenu: true
- )
- (MenuItem
- enabled: hasClassSelectedAndSourceCodeManagerHolder
- label: 'CVS'
- translateLabel: true
- submenuChannel: classCVSMenu
- labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
- argument: 'CVS'
- keepLinkedMenu: true
- )
- (MenuItem
- enabled: hasClassesSelectedAndSubversionRepositoryExistsHolder
- label: 'SubVersion'
- translateLabel: true
- isVisible: hasSubversionSupport
- submenuChannel: classSubversionMenu
- labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'SubVersion')
+ label: 'Repository Slice'
+ translateLabel: true
+ submenuChannel: classMenuSCMSlice
+ isMenuSlice: true
)
(MenuItem
label: '-'
@@ -7990,7 +7802,7 @@
)
(MenuItem
enabled: hasNonPrivateClassSelected
- label: 'To Project...'
+ label: 'To Package...'
itemValue: classMenuMoveToProject
translateLabel: true
)
@@ -8342,15 +8154,6 @@
#(Menu
(
(MenuItem
- label: 'Class Wizard'
- itemValue: classMenuOpenClassCreationWizard
- translateLabel: true
- labelImage: (ResourceRetriever ToolbarIconLibrary newClassWizardIcon 'Class Wizard')
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
label: 'Class'
itemValue: classMenuNewClass
translateLabel: true
@@ -8399,10 +8202,21 @@
submenuChannel: classNewPLSQLClassSlice
isMenuSlice: true
)
- )
- nil
- nil
- )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'Class Wizard'
+ itemValue: classMenuOpenClassCreationWizard
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary newClassWizardIcon 'Class Wizard')
+ )
+ )
+ nil
+ nil
+ )
+
+ "Modified: / 16-01-2012 / 20:38:44 / cg"
!
classNewSmalltalkSlice
@@ -8509,176 +8323,6 @@
"Modified: / 08-08-2011 / 07:47:16 / cg"
!
-classSCMMenu
- "This resource specification was automatically generated
- by the MenuEditor of ST/X."
-
- "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:#classSCMMenu
- (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classSCMMenu)) startUp
- "
-
- <resource: #menu>
-
- ^
- #(Menu
- (
- (MenuItem
- label: '** No SourceCodeManager - See Settings in the Launcher **'
- translateLabel: true
- isVisible: hasNoSourceCodeManagerHolder
- )
- (MenuItem
- label: '-'
- isVisible: hasNoSourceCodeManagerHolder
- )
- (MenuItem
- enabled: hasClassSelectedHolderAndSourceCodeManagerHolder
- label: 'CheckIn...'
- itemValue: classMenuCheckIn
- translateLabel: true
- labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasClassWithExtensionsSelectedHolder
- label: 'CheckIn Extensions For'
- translateLabel: true
- submenuChannel: browseClassExtensionsMenu
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: changeSetContainsChangedClassesAndSourceCodeManagerHolder
- label: 'CheckIn All Changed Classes'
- itemValue: classMenuCheckInAllChangedClasses
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- label: 'Quick CheckIn...'
- itemValue: classMenuQuickCheckIn
- translateLabel: true
- isVisible: hasClassSelectedAndControlKeyDownHolder
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
- label: 'CheckIn Build Support Files...'
- itemValue: classMenuCheckInBuildSupportFiles
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
- label: 'Set Tag...'
- itemValue: classMenuSetTag
- translateLabel: true
- labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag...')
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
- label: 'CheckOut Newest'
- itemValue: classMenuCheckOutNewest
- translateLabel: true
- labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
- label: 'CheckOut Previous Version...'
- itemValue: classMenuCheckOut
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
- label: 'Revision Log (Recent Changes)'
- itemValue: classMenuShortRevisionLog
- translateLabel: true
- labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
- label: 'Revision Log (Full)'
- itemValue: classMenuRevisionLog
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- enabled: hasClassSelectedAndSourceCodeManagerHolder
- label: 'Compare with Newest in Repository...'
- itemValue: classMenuCompareAgainstNewestInRepository
- translateLabel: true
- labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
- label: 'Compare with Original in Repository...'
- itemValue: classMenuCompareAgainstOriginalInRepository
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
- label: 'Compare with Repository...'
- itemValue: classMenuCompareWithRepository
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
- label: 'Compare two Repository Versions...'
- itemValue: classMenuCompareTwoRepositoryVersions
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
- label: 'Compare Extensions with Repository...'
- itemValue: classMenuCompareExtensionsWithRepository
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
- label: 'Compare Build Support File'
- translateLabel: true
- submenuChannel: compareBuildSupportFileMenu
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
- label: 'Edit Version in Repository...'
- itemValue: classMenuEditVersionInRepository
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- )
- nil
- nil
- )
-!
-
classSmallTeamMenu
"This resource specification was automatically generated
by the MenuEditor of ST/X."
@@ -9243,6 +8887,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:#mainMenu
(Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser mainMenu)) startUp
@@ -9293,7 +8938,7 @@
keepLinkedMenu: true
)
(MenuItem
- label: 'Project'
+ label: 'Package'
translateLabel: true
isVisible: projectMenuVisible
submenuChannel: projectMenu
@@ -9409,8 +9054,6 @@
nil
nil
)
-
- "Modified: / 04-07-2011 / 17:52:50 / cg"
!
methodDebugMenu
@@ -9420,159 +9063,159 @@
"Do not manually edit this!! If it is corrupted,
the MenuEditor may not be able to read the specification."
- "
- MenuEditor new openOnClass:NewSystemBrowser andSelector:#methodDebugMenu
- (Menu new fromLiteralArrayEncoding:(NewSystemBrowser methodDebugMenu)) startUp
- "
-
- <resource: #menu>
-
- ^
- #(#Menu
- #(
- #(#MenuItem
- #label: 'Remove Break/Trace'
- #translateLabel: true
- #value: #debugMenuRemoveBreakOrTrace
- #isVisible: #hasNoMethodOrMixedWrapsSelectedHolder
- #enabled: #hasMethodWithWrapSelectedHolder
- )
- #(#MenuItem
- #label: 'Remove Break'
- #translateLabel: true
- #value: #debugMenuRemoveBreakOrTrace
- #isVisible: #hasOnlyMethodsWithBreakPointSelected
- #enabled: #hasMethodWithBreakPointSelectedHolder
- )
- #(#MenuItem
- #label: 'Remove Trace'
- #translateLabel: true
- #value: #debugMenuRemoveBreakOrTrace
- #isVisible: #hasOnlyMethodsWithTracePointSelected
- #enabled: #hasMethodWithTracePointSelectedHolder
- )
- #(#MenuItem
- #label: 'Remove all Break && Tracepoints'
- #translateLabel: true
- #value: #debugMenuRemoveAllBreakpoints
- #enabled: #anyBreakOrTracePointsAreSetHolder
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'BreakPoint'
- #translateLabel: true
- #value: #debugMenuBreakPoint
- #enabled: #hasMethodSelectedHolder
- )
- #(#MenuItem
- #label: 'BreakPoint in Process...'
- #translateLabel: true
- #value: #debugMenuBreakPointIn
- #enabled: #hasMethodSelectedHolder
- )
- #(#MenuItem
- #label: 'BreakPoint for Instances Of...'
- #translateLabel: true
- #value: #debugMenuBreakPointFor
- #enabled: #hasMethodSelectedHolder
- )
- #(#MenuItem
- #label: 'BreakPoint After...'
- #translateLabel: true
- #value: #debugMenuBreakPointAfter
- #enabled: #hasMethodSelectedHolder
- )
- #(#MenuItem
- #label: 'BreakPoint If...'
- #translateLabel: true
- #value: #debugMenuBreakPointIf
- #enabled: #hasMethodSelectedHolder
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Trace'
- #translateLabel: true
- #value: #debugMenuTrace
- #enabled: #hasMethodSelectedHolder
- )
- #(#MenuItem
- #label: 'Trace Sender'
- #translateLabel: true
- #value: #debugMenuTraceSender
- #enabled: #hasMethodSelectedHolder
- )
- #(#MenuItem
- #label: 'Trace Full Walkback'
- #translateLabel: true
- #value: #debugMenuTraceFullWalkback
- #enabled: #hasMethodSelectedHolder
- )
- #(#MenuItem
- #label: 'Trace Change->Update Reason'
- #translateLabel: true
- #value: #debugMenuTraceChangeUpdate
- #enabled: #hasUpdateMethodSelectedHolder
- )
- #(#MenuItem
- #label: '-'
- )
- #(#MenuItem
- #label: 'Start Message Tally'
- #translateLabel: true
- #value: #debugMenuStartMessageTally
- #enabled: #hasMethodSelectedHolder
- #isVisible: false
- )
- #(#MenuItem
- #label: '-'
- #isVisible: false
- )
- #(#MenuItem
- #label: 'Start Timing'
- #translateLabel: true
- #value: #debugMenuStartTiming
- #enabled: #hasMethodSelectedHolder
- )
- #(#MenuItem
- #label: 'Start Counting'
- #translateLabel: true
- #value: #debugMenuStartCounting
- #enabled: #hasMethodSelectedHolder
- )
- #(#MenuItem
- #label: 'Start Memory Usage'
- #translateLabel: true
- #value: #debugMenuStartMemoryUsage
- #enabled: #hasMethodSelectedHolder
- )
- #(#MenuItem
- #label: '-'
- )
- (MenuItem
+
+ "
+ MenuEditor new openOnClass:Tools::NewSystemBrowser andSelector:#methodDebugMenu
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser methodDebugMenu)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ enabled: hasMethodWithWrapSelectedHolder
+ label: 'Remove Break/Trace'
+ itemValue: debugMenuRemoveBreakOrTrace
+ translateLabel: true
+ isVisible: hasNoMethodOrMixedWrapsSelectedHolder
+ )
+ (MenuItem
+ enabled: hasMethodWithBreakPointSelectedHolder
+ label: 'Remove Break'
+ itemValue: debugMenuRemoveBreakOrTrace
+ translateLabel: true
+ isVisible: hasOnlyMethodsWithBreakPointSelected
+ )
+ (MenuItem
+ enabled: hasMethodWithTracePointSelectedHolder
+ label: 'Remove Trace'
+ itemValue: debugMenuRemoveBreakOrTrace
+ translateLabel: true
+ isVisible: hasOnlyMethodsWithTracePointSelected
+ )
+ (MenuItem
+ enabled: anyBreakOrTracePointsAreSetHolder
+ label: 'Remove all Break && Tracepoints'
+ itemValue: debugMenuRemoveAllBreakpoints
+ translateLabel: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasMethodSelectedHolder
+ label: 'BreakPoint'
+ itemValue: debugMenuBreakPoint
+ translateLabel: true
+ )
+ (MenuItem
+ enabled: hasMethodSelectedHolder
+ label: 'BreakPoint in Process...'
+ itemValue: debugMenuBreakPointIn
+ translateLabel: true
+ )
+ (MenuItem
+ enabled: hasMethodSelectedHolder
+ label: 'BreakPoint for Instances Of...'
+ itemValue: debugMenuBreakPointFor
+ translateLabel: true
+ )
+ (MenuItem
+ enabled: hasMethodSelectedHolder
+ label: 'BreakPoint After...'
+ itemValue: debugMenuBreakPointAfter
+ translateLabel: true
+ )
+ (MenuItem
+ enabled: hasMethodSelectedHolder
+ label: 'BreakPoint If...'
+ itemValue: debugMenuBreakPointIf
+ translateLabel: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasMethodSelectedHolder
+ label: 'Trace'
+ itemValue: debugMenuTrace
+ translateLabel: true
+ )
+ (MenuItem
+ enabled: hasMethodSelectedHolder
+ label: 'Trace Sender'
+ itemValue: debugMenuTraceSender
+ translateLabel: true
+ )
+ (MenuItem
+ enabled: hasMethodSelectedHolder
+ label: 'Trace Full Walkback'
+ itemValue: debugMenuTraceFullWalkback
+ translateLabel: true
+ )
+ (MenuItem
+ enabled: hasUpdateMethodSelectedHolder
+ label: 'Trace Change->Update Reason'
+ itemValue: debugMenuTraceChangeUpdate
+ translateLabel: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasMethodSelectedHolder
+ label: 'Start Message Tally'
+ itemValue: debugMenuStartMessageTally
+ translateLabel: true
+ isVisible: false
+ )
+ (MenuItem
+ label: '-'
+ isVisible: false
+ )
+ (MenuItem
+ enabled: hasMethodSelectedHolder
+ label: 'Start Timing'
+ itemValue: debugMenuStartTiming
+ translateLabel: true
+ )
+ (MenuItem
+ enabled: hasMethodSelectedHolder
+ label: 'Start Counting'
+ itemValue: debugMenuStartCounting
+ translateLabel: true
+ )
+ (MenuItem
+ enabled: hasMethodSelectedHolder
+ label: 'Start Memory Usage'
+ itemValue: debugMenuStartMemoryUsage
+ translateLabel: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasAnyTestCaseSelectedHolder
label: 'Run Tests'
itemValue: runTestCases
translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
enabled: hasAnyTestCaseSelectedHolder
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
label: 'Debug Tests'
itemValue: runTestCasesWithDebug
translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
enabled: hasAnyTestCaseSelectedHolder
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
label: 'Run Tests for Coverage'
itemValue: runTestCasesForCoverage
translateLabel: true
- enabled: hasAnyTestCaseSelectedHolder
- showBusyCursorWhilePerforming: true
- "/ enabled: hasAnyClassWithCoverageInfoSelectedHolder
+ showBusyCursorWhilePerforming: true
)
(MenuItem
label: '-'
@@ -9609,15 +9252,23 @@
label: 'Clear all Coverage Info (Systemwide)'
itemValue: debugMenuClearCoverageInfo
translateLabel: true
- "/ enabled: hasAnyClassWithCoverageInfoSelectedHolder
- )
- )
- nil
- nil
- )
-
- "Created: / 11-09-2007 / 11:43:37 / cg"
- "Modified: / 20-04-2011 / 17:37:38 / cg"
+ )
+ (MenuItem
+ label: 'Enable Coverage Recording in all Processes'
+ itemValue: debugMenuEnableGlobalCoverageRecording
+ translateLabel: true
+ isVisible: globalCoverageRecordingIsDisabled
+ )
+ (MenuItem
+ label: 'Disable Coverage Recording in all Processes'
+ itemValue: debugMenuDisableGlobalCoverageRecording
+ translateLabel: true
+ isVisible: globalCoverageRecordingIsEnabled
+ )
+ )
+ nil
+ nil
+ )
!
methodListMenu
@@ -9932,6 +9583,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:#projectMenu
(Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser projectMenu)) startUp
@@ -10024,25 +9676,10 @@
)
)
(MenuItem
- label: 'CVS'
- translateLabel: true
- submenuChannel: projectMenuCVS
- labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
- )
- (MenuItem
- enabled: hasProjectSelectedSubversionRepositoryExistsHolder
- label: 'SubVersion'
- translateLabel: true
- isVisible: hasSubversionSupport
- submenuChannel: projectSubversionMenu
- labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'SubVersion')
- )
- (MenuItem
- enabled: hasProjectSelectedMonticelloRepositoryExistsHolder
- label: 'Monticello'
- translateLabel: true
- isVisible: hasMonticelloSupport
- submenuChannel: projectMonticelloMenu
+ label: 'Repositoru'
+ translateLabel: true
+ submenuChannel: projectMenuSCMSlice
+ isMenuSlice: true
)
(MenuItem
label: '-'
@@ -10202,15 +9839,33 @@
itemValue: projectMenuRegenerateProjectContentsDefinitions
translateLabel: true
)
- (MenuItem
- label: '-'
+ )
+ nil
+ nil
+ )
+ )
+ (MenuItem
+ label: 'Build'
+ translateLabel: true
+ submenu:
+ (Menu
+ (
+ (MenuItem
+ enabled: hasSingleRealProjectSelectedHolder
+ label: 'Build Package for Deployment'
+ itemValue: projectMenuBuild
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
)
(MenuItem
enabled: hasSingleRealProjectSelectedHolder
- label: 'Build Binaries for Deployment'
- itemValue: projectMenuBuild
- translateLabel: true
- showBusyCursorWhilePerforming: true
+ label: 'Build Binaries for Execution'
+ itemValue: projectMenuBuildExeOnly
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
)
(MenuItem
enabled: hasProjectSelectedHolder
@@ -10272,162 +9927,6 @@
)
!
-projectMenuCVS
- "This resource specification was automatically generated
- by the MenuEditor of ST/X."
-
- "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:#projectMenuCVS
- (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser projectMenuCVS)) startUp
- "
-
- <resource: #menu>
-
- ^
- #(Menu
- (
- (MenuItem
- enabled: hasProjectSelectedAndSourceCodeManagerHolder
- label: 'CheckIn...'
- itemValue: projectMenuCheckInAll
- translateLabel: true
- labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasProjectSelectedAndSourceCodeManagerHolder
- label: 'CheckIn Classes Only...'
- itemValue: projectMenuCheckInClasses
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasProjectSelectedAndSourceCodeManagerHolder
- label: 'CheckIn Extensions Only...'
- itemValue: projectMenuCheckInExtensions
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasProjectSelectedAndSourceCodeManagerHolder
- label: 'CheckIn Build Support Files Only...'
- itemValue: projectMenuCheckInBuildSupportFiles
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- enabled: hasProjectSelectedAndSourceCodeManagerHolder
- label: 'Set Tag (Release As)...'
- itemValue: projectMenuSetTag
- translateLabel: true
- labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag (Release As)...')
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- enabled: hasProjectSelectedAndSourceCodeManagerHolder
- label: 'CheckOut Newest'
- itemValue: projectMenuCheckOutNewest
- translateLabel: true
- labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasProjectSelectedAndSourceCodeManagerHolder
- label: 'CheckOut Previous Version...'
- itemValue: projectMenuCheckOut
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasProjectSelectedAndSourceCodeManagerHolder
- label: 'CheckOut Extensions Only...'
- itemValue: projectMenuCheckOutExtensions
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- label: 'Import Structure...'
- itemValue: projectMenuImport
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- label: 'Import...'
- itemValue: projectMenuImportAndLoadClasses
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- enabled: hasProjectSelectedAndSourceCodeManagerHolder
- label: 'Repository History...'
- itemValue: projectMenuRepositoryHistory
- translateLabel: true
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- enabled: hasProjectSelectedAndSourceCodeManagerHolder
- label: 'Compare with Newest in Repository...'
- itemValue: projectMenuCompareAgainstNewestInRepository
- translateLabel: true
- )
- (MenuItem
- enabled: hasProjectSelectedAndSourceCodeManagerHolder
- label: 'Compare with Repository at Date...'
- itemValue: projectMenuCompareAgainstRepository
- translateLabel: true
- )
- (MenuItem
- label: 'Compare Build Support File'
- translateLabel: true
- submenuChannel: compareBuildSupportFileMenu
- )
- (MenuItem
- enabled: hasProjectSelectedAndSourceCodeManagerHolder
- label: 'Consistency Check...'
- itemValue: projectMenuCheckRepositoryConsistency
- translateLabel: true
- )
- (MenuItem
- label: '-'
- isVisible: false
- )
- (MenuItem
- enabled: hasProjectSelectedHolder
- label: 'Resource Files...'
- itemValue: projectMenuResources
- translateLabel: true
- isVisible: false
- )
- (MenuItem
- enabled: hasProjectSelectedHolder
- label: 'Bitmap Files...'
- itemValue: projectMenuBitmapFiles
- translateLabel: true
- isVisible: false
- )
- )
- nil
- nil
- )
-!
-
protocolCheckMenu
"This resource specification was automatically generated
by the MenuEditor of ST/X."
@@ -11145,69 +10644,6 @@
"Modified: / 05-07-2011 / 14:46:40 / cg"
!
-selectorMenuCVS
- "This resource specification was automatically generated
- by the MenuEditor of ST/X."
-
- "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:#selectorMenuFileOutPrintOutSlice
- (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser selectorMenuFileOutPrintOutSlice)) startUp
- "
-
- <resource: #menu>
-
- ^
- #(Menu
- (
- (MenuItem
- enabled: hasMethodSelected
- label: 'CheckIn Class(es)...'
- itemValue: methodListMenuCheckInClass
- translateLabel: true
- labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn Class(es)...')
- showBusyCursorWhilePerforming: true
- )
- (MenuItem
- enabled: hasRealExtensionMethodSelectedHolder
- label: 'CheckIn Extensions for Project...'
- itemValue: selectorMenuCheckInProjectExtensions
- translateLabel: true
- isVisible: hasExtensionMethodSelectedHolder
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- enabled: hasMethodSelectedAndSourceCodeManagerHolder
- label: 'Compare with Newest in Repository...'
- itemValue: selectorMenuCompareAgainstNewestInRepository
- translateLabel: true
- labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
- )
- (MenuItem
- enabled: hasMethodSelectedAndSourceCodeManagerHolder
- label: 'Compare Class with Newest in Repository...'
- itemValue: selectorMenuCompareClassAgainstNewestInRepository
- translateLabel: true
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- enabled: hasSingleMethodSelected
- label: 'Browse Repository Versions...'
- itemValue: selectorMenuBrowseRepositoryVersions
- translateLabel: true
- )
- )
- nil
- nil
- )
-!
-
selectorMenuCompareGenerateDebugSlice
"This resource specification was automatically generated
by the MenuEditor of ST/X."
@@ -11478,6 +10914,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:#selectorMenuCopyMoveRemoveSlice
(Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser selectorMenuCopyMoveRemoveSlice)) startUp
@@ -11521,13 +10958,13 @@
)
(MenuItem
enabled: hasMethodSelectedHolder
- label: 'To Project...'
+ label: 'To Package...'
itemValue: selectorMenuMoveToProject
translateLabel: true
)
(MenuItem
enabled: hasExtensionMethodSelectedHolder
- label: 'To Classes Project'
+ label: 'To Classes Package'
itemValue: selectorMenuMoveToClassProject
translateLabel: true
)
@@ -11654,6 +11091,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:#selectorMenuFileOutPrintOutSlice
(Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser selectorMenuFileOutPrintOutSlice)) startUp
@@ -11698,11 +11136,10 @@
)
)
(MenuItem
- enabled: hasMethodSelected
- label: 'CVS'
- translateLabel: true
- submenuChannel: selectorMenuCVS
- labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
+ label: 'Repository'
+ translateLabel: true
+ submenuChannel: selectorMenuSCMSlice
+ isMenuSlice: true
)
(MenuItem
label: 'SmallTeam'
@@ -11781,6 +11218,12 @@
submenuChannel: implementedMessagesMenu
)
(MenuItem
+ label: 'Globals'
+ translateLabel: true
+ "/ isVisible: hasSingleMethodSelectedHolder
+ submenuChannel: globalReferencesMenu
+ )
+ (MenuItem
label: 'String Search...'
itemValue: browseMenuMethodsWithString
translateLabel: true
@@ -11796,6 +11239,8 @@
nil
nil
)
+
+ "Modified: / 26-10-2011 / 18:08:38 / cg"
!
selectorMenuSpawnSlice
@@ -11941,7 +11386,7 @@
(MenuItem
enabled: hasRealExtensionMethodSelectedHolder
label: 'Browser on Extensions for Project'
- itemValue: selectorMenuSpawnExtensionsProject
+ itemValue: selectorMenuSpawnProjectExtensions
translateLabel: true
isVisible: hasExtensionMethodSelectedHolder
)
@@ -11975,7 +11420,7 @@
nil
)
- "Modified: / 06-08-2006 / 12:09:31 / cg"
+ "Modified: / 24-11-2011 / 19:34:53 / cg"
!
selectorSmallTeamMenu
@@ -12629,6 +12074,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:#viewMenu
(Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser viewMenu)) startUp
@@ -12682,7 +12128,7 @@
choiceValue: namespace
)
(MenuItem
- label: 'Project'
+ label: 'Package'
translateLabel: true
isVisible: viewMenuOrganizerItemsVisible
hideMenuOnActivated: false
@@ -12690,7 +12136,7 @@
choiceValue: project
)
(MenuItem
- label: 'Project Diagram'
+ label: 'Package Diagram'
translateLabel: true
isVisible: packageDiagramMenuItemVisible
hideMenuOnActivated: false
@@ -13234,6 +12680,3134 @@
)
! !
+!NewSystemBrowser class methodsFor:'menu specs-SCM-category'!
+
+categoryMenuSCMCommon
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#categoryMenuSCMSlice_old
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser categoryMenuSCMSlice_old)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ enabled: hasCategorySelectedAndSourceCodeManagerHolder
+ label: 'CheckIn all...'
+ itemValue: categoryMenuCheckInEachUsing:
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn all...')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasCategorySelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Newest All'
+ itemValue: categoryMenuCheckOutNewestUsing:
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest All')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasCategorySelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Previous Versions All...'
+ itemValue: categoryMenuCheckOutUsing:
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasSourceCodeManagerHolder
+ label: 'Repository History...'
+ itemValue: categoryMenuRepositoryHistoryUsing:
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Repository History...')
+ showBusyCursorWhilePerforming: true
+ )
+ )
+ nil
+ nil
+ )
+
+ "Created: / 15-10-2011 / 12:22:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+categoryMenuSCMSlice
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#categoryMenuSCMSlice
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser categoryMenuSCMSlice)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ label: 'CVS'
+ translateLabel: true
+ submenu:
+ (Menu
+ (
+ (MenuItem
+ enabled: hasCategorySelectedAndSourceCodeManagerHolder
+ label: 'CheckIn all...'
+ itemValue: categoryMenuCheckInEach
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn all...')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasCategorySelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Newest All'
+ itemValue: categoryMenuCheckOutNewest
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest All')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasCategorySelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Previous Versions All...'
+ itemValue: categoryMenuCheckOut
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasSourceCodeManagerHolder
+ label: 'Repository History...'
+ itemValue: categoryMenuRepositoryHistory
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Repository History...')
+ showBusyCursorWhilePerforming: true
+ )
+ )
+ nil
+ nil
+ )
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
+ )
+ )
+ nil
+ nil
+ )
+
+ "Modified: / 01-12-2011 / 21:16:05 / cg"
+!
+
+categoryMenuSCMSliceAll
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#classMenuSCMSliceAll
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classMenuSCMSliceAll)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ enabled: hasClassSelectedAndSourceCodeManagerHolder
+ label: 'CVS'
+ translateLabel: true
+ submenuChannel: categoryMenuSCMFor:
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
+ argument: CVSSourceCodeManager
+ keepLinkedMenu: true
+ )
+ (MenuItem
+ enabled: hasClassesSelectedAndSubversionRepositoryExistsHolder
+ label: 'SubVersion'
+ translateLabel: true
+ isVisible: hasSubversionSupport
+ submenuChannel: categoryMenuSCMFor:
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'SubVersion')
+ argument: SVNSourceCodeManager
+ )
+ (MenuItem
+ enabled: hasClassSelectedAndSourceCodeManagerHolder
+ label: 'Perforce'
+ translateLabel: true
+ isVisible: hasPerforceSupport
+ submenuChannel: categoryMenuSCMFor:
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'Perforce')
+ argument: PerforceSourceCodeManager
+ )
+ )
+ nil
+ nil
+ )
+
+ "Created: / 15-10-2011 / 12:22:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+categoryMenuSCMSlice_compact
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#classMenuSCMSlice_compact
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classMenuSCMSlice_compact)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ label: 'Repository'
+ nameKey: SCM
+ translateLabel: true
+ submenu:
+ (Menu
+ (
+ (MenuItem
+ label: 'Common Slice'
+ nameKey: CommonSlice
+ translateLabel: true
+ submenuChannel: categoryMenuSCMFor:
+ argument: SourceCodeManagerPlaceholder
+ isMenuSlice: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'All Slice'
+ translateLabel: true
+ submenuChannel: categoryMenuSCMSliceAll
+ isMenuSlice: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'Repository Settings'
+ itemValue: openSettingsDialogAndSelectSourceCodeManagement
+ translateLabel: true
+ )
+ )
+ nil
+ nil
+ )
+ )
+ )
+ nil
+ nil
+ )
+
+ "Created: / 15-10-2011 / 12:21:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+categoryMenuSCMSlice_inline
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#classMenuSCMSlice_inline
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classMenuSCMSlice_inline)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'All Slice'
+ translateLabel: true
+ submenuChannel: categoryMenuSCMSliceAll
+ isMenuSlice: true
+ )
+ )
+ nil
+ nil
+ )
+
+ "Created: / 15-10-2011 / 12:21:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+categoryMenuSCMSlice_old
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#categoryMenuSCMSlice_old
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser categoryMenuSCMSlice_old)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ label: 'CVS'
+ translateLabel: true
+ submenu:
+ (Menu
+ (
+ (MenuItem
+ enabled: hasCategorySelectedAndSourceCodeManagerHolder
+ label: 'CheckIn all...'
+ itemValue: categoryMenuCheckInEach
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn all...')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasCategorySelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Newest All'
+ itemValue: categoryMenuCheckOutNewest
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest All')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasCategorySelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Previous Versions All...'
+ itemValue: categoryMenuCheckOut
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasSourceCodeManagerHolder
+ label: 'Repository History...'
+ itemValue: categoryMenuRepositoryHistory
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Repository History...')
+ showBusyCursorWhilePerforming: true
+ )
+ )
+ nil
+ nil
+ )
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
+ )
+ )
+ nil
+ nil
+ )
+! !
+
+!NewSystemBrowser class methodsFor:'menu specs-SCM-class'!
+
+classCVSMenu
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#classCVSMenu
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classCVSMenu)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ label: '** No SourceCodeManager - See Settings in the Launcher **'
+ translateLabel: true
+ isVisible: hasNoSourceCodeManagerHolder
+ )
+ (MenuItem
+ label: '-'
+ isVisible: hasNoSourceCodeManagerHolder
+ )
+ (MenuItem
+ enabled: hasClassSelectedHolderAndSourceCodeManagerHolder
+ label: 'CheckIn...'
+ itemValue: classMenuCheckIn
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasClassWithExtensionsSelectedHolder
+ label: 'CheckIn Extensions For'
+ translateLabel: true
+ submenuChannel: browseClassExtensionsMenu
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: changeSetContainsChangedClassesAndSourceCodeManagerHolder
+ label: 'CheckIn All Changed Classes'
+ itemValue: classMenuCheckInAllChangedClasses
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: 'Quick CheckIn...'
+ itemValue: classMenuQuickCheckIn
+ translateLabel: true
+ isVisible: hasClassSelectedAndControlKeyDownHolder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+ label: 'CheckIn Build Support Files...'
+ itemValue: classMenuCheckInBuildSupportFiles
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Newest'
+ itemValue: classMenuCheckOutNewest
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Previous Version...'
+ itemValue: classMenuCheckOut
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Edit Version in Repository...'
+ itemValue: classMenuEditVersionInRepository
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Newest in Repository...'
+ itemValue: classMenuCompareAgainstNewestInRepository
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Original in Repository...'
+ itemValue: classMenuCompareAgainstOriginalInRepository
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Repository...'
+ itemValue: classMenuCompareWithRepository
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare two Repository Versions...'
+ itemValue: classMenuCompareTwoRepositoryVersions
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectDefinitionOrClassWithExtensionsSelectedAndSourceCodeManagerHolder
+ label: 'Compare Extensions with Repository...'
+ itemValue: classMenuCompareExtensionsWithRepository
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+ label: 'Compare Build Support File'
+ translateLabel: true
+ submenuChannel: compareBuildSupportFileMenu
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'Set Tag...'
+ itemValue: classMenuSetTag
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag...')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'Revision Log (Recent Changes)'
+ itemValue: classMenuShortRevisionLog
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'Revision Log (Full)'
+ itemValue: classMenuRevisionLog
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ )
+ nil
+ nil
+ )
+!
+
+classDataBaseRepositoryMenu
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#classDataBaseRepositoryMenu
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classDataBaseRepositoryMenu)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ enabled: hasClassSelectedHolderAndSourceCodeManagerHolder
+ label: 'CheckIn...'
+ itemValue: classMenuCheckInUsingManagerNamed:
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
+ argument: DataBaseSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasClassWithExtensionsSelectedHolder
+ label: 'CheckIn Extensions For'
+ translateLabel: true
+ submenuChannel: browseClassExtensionsMenuUsingManagerNamed:
+ argument: DataBaseSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: changeSetContainsChangedClassesAndSourceCodeManagerHolder
+ label: 'CheckIn All Changed Classes'
+ itemValue: classMenuCheckInAllChangedClassesUsingManagerNamed:
+ translateLabel: true
+ argument: DataBaseSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+ label: 'CheckIn Build Support Files...'
+ itemValue: classMenuCheckInBuildSupportFilesUsingManagerNamed:
+ translateLabel: true
+ argument: DataBaseSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Newest'
+ itemValue: classMenuCheckOutNewestUsingManagerNamed:
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
+ argument: DataBaseSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Previous Version...'
+ itemValue: classMenuCheckOutUsingManagerNamed:
+ translateLabel: true
+ argument: DataBaseSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Newest in Repository...'
+ itemValue: classMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
+ argument: DataBaseSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Original in Repository...'
+ itemValue: classMenuCompareAgainstOriginalInRepositoryUsingManagerNamed:
+ translateLabel: true
+ argument: DataBaseSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Repository...'
+ itemValue: classMenuCompareWithRepositoryUsingManagerNamed:
+ translateLabel: true
+ argument: DataBaseSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare two Repository Versions...'
+ itemValue: classMenuCompareTwoRepositoryVersionsUsingManagerNamed:
+ translateLabel: true
+ argument: DataBaseSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectDefinitionOrClassWithExtensionsSelectedAndSourceCodeManagerHolder
+ label: 'Compare Extensions with Repository...'
+ itemValue: classMenuCompareExtensionsWithRepositoryUsingManagerNamed:
+ translateLabel: true
+ argument: DataBaseSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+ label: 'Compare Build Support File'
+ translateLabel: true
+ submenuChannel: compareBuildSupportFileMenuUsingManagerNamed:
+ argument: DataBaseSourceCodeManager
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'Revision Log (Recent Changes)'
+ itemValue: classMenuShortRevisionLogUsingManagerNamed:
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
+ argument: DataBaseSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'Revision Log (Full)'
+ itemValue: classMenuRevisionLogUsingManagerNamed:
+ translateLabel: true
+ argument: DataBaseSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ )
+ nil
+ nil
+ )
+!
+
+classFileBasedRepositoryMenu
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#classFileBasedRepositoryMenu
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classFileBasedRepositoryMenu)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ enabled: hasClassSelectedHolderAndSourceCodeManagerHolder
+ label: 'CheckIn...'
+ itemValue: classMenuCheckInUsingManagerNamed:
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
+ argument: FileBasedSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasClassWithExtensionsSelectedHolder
+ label: 'CheckIn Extensions For'
+ translateLabel: true
+ submenuChannel: browseClassExtensionsMenuUsingManagerNamed:
+ argument: FileBasedSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: changeSetContainsChangedClassesAndSourceCodeManagerHolder
+ label: 'CheckIn All Changed Classes'
+ itemValue: classMenuCheckInAllChangedClassesUsingManagerNamed:
+ translateLabel: true
+ argument: FileBasedSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+ label: 'CheckIn Build Support Files...'
+ itemValue: classMenuCheckInBuildSupportFilesUsingManagerNamed:
+ translateLabel: true
+ argument: FileBasedSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Newest'
+ itemValue: classMenuCheckOutNewestUsingManagerNamed:
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
+ argument: FileBasedSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Previous Version...'
+ itemValue: classMenuCheckOutUsingManagerNamed:
+ translateLabel: true
+ argument: FileBasedSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Newest in Repository...'
+ itemValue: classMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
+ argument: FileBasedSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Original in Repository...'
+ itemValue: classMenuCompareAgainstOriginalInRepositoryUsingManagerNamed:
+ translateLabel: true
+ argument: FileBasedSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Repository...'
+ itemValue: classMenuCompareWithRepositoryUsingManagerNamed:
+ translateLabel: true
+ argument: FileBasedSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare two Repository Versions...'
+ itemValue: classMenuCompareTwoRepositoryVersionsUsingManagerNamed:
+ translateLabel: true
+ argument: FileBasedSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectDefinitionOrClassWithExtensionsSelectedAndSourceCodeManagerHolder
+ label: 'Compare Extensions with Repository...'
+ itemValue: classMenuCompareExtensionsWithRepositoryUsingManagerNamed:
+ translateLabel: true
+ argument: FileBasedSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+ label: 'Compare Build Support File'
+ translateLabel: true
+ submenuChannel: compareBuildSupportFileMenuUsingManagerNamed:
+ argument: FileBasedSourceCodeManager
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'Revision Log (Recent Changes)'
+ itemValue: classMenuShortRevisionLogUsingManagerNamed:
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
+ argument: FileBasedSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'Revision Log (Full)'
+ itemValue: classMenuRevisionLogUsingManagerNamed:
+ translateLabel: true
+ argument: FileBasedSourceCodeManager
+ showBusyCursorWhilePerforming: true
+ )
+ )
+ nil
+ nil
+ )
+!
+
+classMenuSCMCommon
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#classMenuSCMCommon
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classMenuSCMCommon)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ enabled: hasClassSelectedHolderAndSourceCodeManagerHolder
+ label: 'CheckIn...'
+ itemValue: classMenuCheckInUsingManagerNamed:
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
+ argument: SourceCodeManagerPlaceholder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: 'CheckIn (Quick)...'
+ itemValue: classMenuQuickCheckInUsingManagerNamed:
+ translateLabel: true
+ isVisible: hasClassSelectedAndControlKeyDownHolder
+ argument: SourceCodeManagerPlaceholder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasClassWithExtensionsSelectedHolder
+ label: 'CheckIn Extensions For'
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ submenuChannel: browseClassExtensionsMenuUsingManagerNamed:
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: changeSetContainsChangedClassesAndSourceCodeManagerHolder
+ label: 'CheckIn All Changed Classes'
+ itemValue: classMenuCheckInAllChangedClassesUsingManagerNamed:
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+ label: 'CheckIn Build Support Files...'
+ itemValue: classMenuCheckInBuildSupportFilesUsingManagerNamed:
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Newest'
+ itemValue: classMenuCheckOutNewestUsingManagerNamed:
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
+ argument: SourceCodeManagerPlaceholder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Previous Version...'
+ itemValue: classMenuCheckOutUsingManagerNamed:
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'Revision Log (Recent Changes)'
+ itemValue: classMenuShortRevisionLogUsingManagerNamed:
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
+ argument: SourceCodeManagerPlaceholder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'Revision Log (Full)'
+ itemValue: classMenuRevisionLogUsingManagerNamed:
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Newest in Repository...'
+ itemValue: classMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
+ argument: SourceCodeManagerPlaceholder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Original in Repository...'
+ itemValue: classMenuCompareAgainstOriginalInRepositoryUsingManagerNamed:
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Repository...'
+ itemValue: classMenuCompareWithRepositoryUsingManagerNamed:
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare two Repository Versions...'
+ itemValue: classMenuCompareTwoRepositoryVersionsUsingManagerNamed:
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectDefinitionOrClassWithExtensionsSelectedAndSourceCodeManagerHolder
+ label: 'Compare Extensions with Repository...'
+ itemValue: classMenuCompareExtensionsWithRepositoryUsingManagerNamed:
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+ label: 'Compare Build Support File'
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ submenuChannel: projectMenuSCMCompareBuildSupportFileForManagerNamed:
+ argument: Default
+ )
+ (MenuItem
+ label: 'Extras'
+ translateLabel: true
+ submenuChannel: classMenuSCMExtraForManagerNamed:
+ argument: SourceCodeManagerPlaceholder
+ isMenuSlice: true
+ )
+ )
+ nil
+ nil
+ )
+
+ "Modified: / 12-10-2011 / 20:24:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 21-12-2011 / 20:02:25 / cg"
+!
+
+classMenuSCMExtra_CVS
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#classMenuSCMExtra_CVS
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classMenuSCMExtra_CVS)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'Set Tag...'
+ itemValue: classMenuSetTag
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag...')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Edit Version in Repository...'
+ itemValue: classMenuEditVersionInRepository
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ )
+ nil
+ nil
+ )
+!
+
+classMenuSCMExtra_Mercurial
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#classMenuSCMExtra_SVN
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classMenuSCMExtra_SVN)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
+ label: 'Changeset'
+ translateLabel: true
+ submenuChannel: classSubversionChangesetMenu
+ )
+ (MenuItem
+ label: 'Branch'
+ translateLabel: true
+ submenuChannel: commonSubversionBranchMenu
+ )
+ (MenuItem
+ label: 'Browse working copy'
+ itemValue: commonMenuSubversionBrowseWorkingCopy
+ translateLabel: true
+ )
+ (MenuItem
+ label: 'More'
+ translateLabel: true
+ submenu:
+ (Menu
+ (
+ (MenuItem
+ label: 'Common Slice'
+ translateLabel: true
+ submenuChannel: commonSubversionMenuSlice
+ isMenuSlice: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
+ label: 'Compare'
+ translateLabel: true
+ submenuChannel: classSubversionCompareMenu
+ labelImage: (ResourceRetriever #'SVN::IconLibrary' compare 'Compare')
+ )
+ (MenuItem
+ enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
+ label: 'Browse Revision log'
+ itemValue: classMenuSubversionShowRevisionLog
+ translateLabel: true
+ labelImage: (ResourceRetriever #'SVN::IconLibrary' log 'Browse Revision log')
+ )
+ )
+ nil
+ nil
+ )
+ )
+ )
+ nil
+ nil
+ )
+
+ "Created: / 15-01-2012 / 14:35:48 / cg"
+!
+
+classMenuSCMExtra_SVN
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#classMenuSCMExtra_SVN
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classMenuSCMExtra_SVN)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
+ label: 'Changeset'
+ translateLabel: true
+ submenuChannel: classSubversionChangesetMenu
+ )
+ (MenuItem
+ label: 'Branch'
+ translateLabel: true
+ submenuChannel: commonSubversionBranchMenu
+ )
+ (MenuItem
+ label: 'Browse working copy'
+ itemValue: commonMenuSubversionBrowseWorkingCopy
+ translateLabel: true
+ )
+ (MenuItem
+ label: 'More'
+ translateLabel: true
+ submenu:
+ (Menu
+ (
+ (MenuItem
+ label: 'Common Slice'
+ translateLabel: true
+ submenuChannel: commonSubversionMenuSlice
+ isMenuSlice: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
+ label: 'Compare'
+ translateLabel: true
+ submenuChannel: classSubversionCompareMenu
+ labelImage: (ResourceRetriever #'SVN::IconLibrary' compare 'Compare')
+ )
+ (MenuItem
+ enabled: hasClassesSelectedAndSubversionRepositoryExistsAndBranchSelectedHolder
+ label: 'Browse Revision log'
+ itemValue: classMenuSubversionShowRevisionLog
+ translateLabel: true
+ labelImage: (ResourceRetriever #'SVN::IconLibrary' log 'Browse Revision log')
+ )
+ )
+ nil
+ nil
+ )
+ )
+ )
+ nil
+ nil
+ )
+!
+
+classMenuSCMSlice
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#classMenuSCMSlice
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classMenuSCMSlice)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ enabled: hasClassSelectedAndSourceCodeManagerHolder
+ isVisible: cvsRepositoryMenusAreShown
+ label: 'CVS'
+ translateLabel: true
+ submenuChannel: classCVSMenu
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
+ argument: 'CVS'
+ keepLinkedMenu: true
+ )
+ (MenuItem
+ enabled: hasClassesSelectedAndSubversionRepositoryExistsHolder
+ isVisible: svnRepositoryMenusAreShown
+ label: 'SubVersion'
+ translateLabel: true
+ submenuChannel: classSubversionMenu
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'SubVersion')
+ )
+ (MenuItem
+ enabled: hasClassesSelectedAndFileBasedRepositoryExistsHolder
+ isVisible: fileBasedRepositoryMenusAreShown
+ label: 'File Repository'
+ translateLabel: true
+ submenuChannel: classFileBasedRepositoryMenu
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryIcon 'File Repository')
+ )
+ (MenuItem
+ enabled: hasClassesSelectedAndDataBaseRepositoryExistsHolder
+ isVisible: dataBaseRepositoryMenusAreShown
+ label: 'Database Repository'
+ translateLabel: true
+ submenuChannel: classDataBaseRepositoryMenu
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryIcon 'Database Repository')
+ )
+ (MenuItem
+ enabled: hasClassesSelectedAndMercurialRepositoryExistsHolder
+ isVisible: mercurialRepositoryMenusAreShown
+ label: 'Mercurial'
+ translateLabel: true
+ submenuChannel: classMercurialMenu
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryHGIcon 'Mercurial')
+ )
+ )
+ nil
+ nil
+ )
+
+ "Modified: / 15-01-2012 / 14:50:31 / cg"
+!
+
+classMenuSCMSliceAll
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#classMenuSCMSliceAll
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classMenuSCMSliceAll)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ enabled: hasClassSelectedAndSourceCodeManagerHolder
+ isVisible: cvsRepositoryMenusAreShown
+ label: 'CVS'
+ translateLabel: true
+ submenuChannel: classMenuSCMFor:
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
+ argument: CVSSourceCodeManager
+ keepLinkedMenu: true
+ )
+ (MenuItem
+ enabled: hasClassesSelectedAndSubversionRepositoryExistsHolder
+ isVisible: svnRepositoryMenusAreShown
+ label: 'SubVersion'
+ translateLabel: true
+ submenuChannel: classMenuSCMFor:
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'SubVersion')
+ argument: SVNSourceCodeManager
+ )
+ (MenuItem
+ enabled: hasClassSelectedAndSourceCodeManagerHolder
+ isVisible: mercurialRepositoryMenusAreShown
+ label: 'Mercurial'
+ translateLabel: true
+ submenuChannel: classMenuSCMFor:
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryHGIcon 'Mercurial')
+ argument: MercurialSourceCodeManager
+ )
+ (MenuItem
+ enabled: hasClassSelectedAndSourceCodeManagerHolder
+ isVisible: perforceRepositoryMenusAreShown
+ label: 'Perforce'
+ translateLabel: true
+ submenuChannel: classMenuSCMFor:
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'Perforce')
+ argument: PerforceSourceCodeManager
+ )
+ )
+ nil
+ nil
+ )
+
+ "Modified: / 15-01-2012 / 14:50:44 / cg"
+!
+
+classMenuSCMSlice_compact
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#classMenuSCMSlice_compact
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classMenuSCMSlice_compact)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ label: 'Repository'
+ nameKey: SCM
+ translateLabel: true
+ submenu:
+ (Menu
+ (
+ (MenuItem
+ label: 'Common Slice'
+ nameKey: CommonSlice
+ translateLabel: true
+ submenuChannel: classMenuSCMFor:
+ argument: SourceCodeManagerPlaceholder
+ isMenuSlice: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'All Slice'
+ translateLabel: true
+ submenuChannel: classMenuSCMSliceAll
+ isMenuSlice: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'Repository Settings'
+ itemValue: openSettingsDialogAndSelectSourceCodeManagement
+ translateLabel: true
+ )
+ )
+ nil
+ nil
+ )
+ )
+ )
+ nil
+ nil
+ )
+
+ "Modified: / 15-10-2011 / 12:04:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+classMenuSCMSlice_inline
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#classMenuSCMSlice_inline
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classMenuSCMSlice_inline)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'All Slice'
+ translateLabel: true
+ submenuChannel: classMenuSCMSliceAll
+ isMenuSlice: true
+ )
+ )
+ nil
+ nil
+ )
+!
+
+classMenuSCMSlice_old
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#classMenuSCMSlice_old
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classMenuSCMSlice_old)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ enabled: hasClassSelectedAndSourceCodeManagerHolder
+ label: 'CVS'
+ isVisible: cvsRepositoryMenusAreShown
+ translateLabel: true
+ submenuChannel: classCVSMenu
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
+ argument: 'CVS'
+ keepLinkedMenu: true
+ )
+ (MenuItem
+ enabled: hasClassesSelectedAndSubversionRepositoryExistsHolder
+ isVisible: svnRepositoryMenusAreShown
+ label: 'SubVersion'
+ translateLabel: true
+ submenuChannel: classSubversionMenu
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'SubVersion')
+ )
+ (MenuItem
+ enabled: hasClassesSelectedAndMercurialRepositoryExistsHolder
+ isVisible: mercurialRepositoryMenusAreShown
+ label: 'Mercurial'
+ translateLabel: true
+ submenuChannel: classMercurialMenu
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryHGIcon 'Mercurial')
+ )
+ (MenuItem
+ enabled: hasClassesSelectedAndPerforceRepositoryExistsHolder
+ isVisible: perforceRepositoryMenusAreShown
+ label: 'Perforce'
+ translateLabel: true
+ submenuChannel: classPerforceMenu
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'Perforce')
+ )
+ (MenuItem
+ enabled: hasClassesSelectedAndFileBasedRepositoryExistsHolder
+ label: 'File Repository'
+ isVisible: fileBasedRepositoryMenusAreShown
+ translateLabel: true
+ submenuChannel: classFileBasedRepositoryMenu
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryIcon 'File Repository')
+ )
+ (MenuItem
+ enabled: hasClassesSelectedAndDataBaseRepositoryExistsHolder
+ isVisible: dataBaseRepositoryMenusAreShown
+ label: 'Database Repository'
+ translateLabel: true
+ submenuChannel: classDataBaseRepositoryMenu
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryIcon 'Database Repository')
+ )
+ )
+ nil
+ nil
+ )
+
+ "Modified: / 15-01-2012 / 14:49:41 / cg"
+!
+
+classMercurialMenu
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#classMercurialMenu
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classMercurialMenu)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ label: '** No SourceCodeManager - See Settings in the Launcher **'
+ translateLabel: true
+ isVisible: hasNoSourceCodeManagerHolder
+ )
+ (MenuItem
+ label: '-'
+ isVisible: hasNoSourceCodeManagerHolder
+ )
+ (MenuItem
+ enabled: hasClassSelectedHolderAndSourceCodeManagerHolder
+ label: 'CheckIn...'
+ itemValue: classMenuCheckIn
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasClassWithExtensionsSelectedHolder
+ label: 'CheckIn Extensions For'
+ translateLabel: true
+ submenuChannel: browseClassExtensionsMenu
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: changeSetContainsChangedClassesAndSourceCodeManagerHolder
+ label: 'CheckIn All Changed Classes'
+ itemValue: classMenuCheckInAllChangedClasses
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: 'Quick CheckIn...'
+ itemValue: classMenuQuickCheckIn
+ translateLabel: true
+ isVisible: hasClassSelectedAndControlKeyDownHolder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+ label: 'CheckIn Build Support Files...'
+ itemValue: classMenuCheckInBuildSupportFiles
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Newest'
+ itemValue: classMenuCheckOutNewest
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Previous Version...'
+ itemValue: classMenuCheckOut
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Edit Version in Repository...'
+ itemValue: classMenuEditVersionInRepository
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Newest in Repository...'
+ itemValue: classMenuCompareAgainstNewestInRepository
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Original in Repository...'
+ itemValue: classMenuCompareAgainstOriginalInRepository
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Repository...'
+ itemValue: classMenuCompareWithRepository
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare two Repository Versions...'
+ itemValue: classMenuCompareTwoRepositoryVersions
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectDefinitionOrClassWithExtensionsSelectedAndSourceCodeManagerHolder
+ label: 'Compare Extensions with Repository...'
+ itemValue: classMenuCompareExtensionsWithRepository
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+ label: 'Compare Build Support File'
+ translateLabel: true
+ submenuChannel: compareBuildSupportFileMenu
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'Set Tag...'
+ itemValue: classMenuSetTag
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag...')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'Revision Log (Recent Changes)'
+ itemValue: classMenuShortRevisionLog
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'Revision Log (Full)'
+ itemValue: classMenuRevisionLog
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ )
+ nil
+ nil
+ )
+!
+
+classPerforceMenu
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#classPerforceMenu
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classPerforceMenu)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ label: '** No SourceCodeManager - See Settings in the Launcher **'
+ translateLabel: true
+ isVisible: hasNoSourceCodeManagerHolder
+ )
+ (MenuItem
+ label: '-'
+ isVisible: hasNoSourceCodeManagerHolder
+ )
+ (MenuItem
+ enabled: hasClassSelectedHolderAndSourceCodeManagerHolder
+ label: 'CheckIn...'
+ itemValue: classMenuCheckIn
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasClassWithExtensionsSelectedHolder
+ label: 'CheckIn Extensions For'
+ translateLabel: true
+ submenuChannel: browseClassExtensionsMenu
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: changeSetContainsChangedClassesAndSourceCodeManagerHolder
+ label: 'CheckIn All Changed Classes'
+ itemValue: classMenuCheckInAllChangedClasses
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: 'Quick CheckIn...'
+ itemValue: classMenuQuickCheckIn
+ translateLabel: true
+ isVisible: hasClassSelectedAndControlKeyDownHolder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+ label: 'CheckIn Build Support Files...'
+ itemValue: classMenuCheckInBuildSupportFiles
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Newest'
+ itemValue: classMenuCheckOutNewest
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Previous Version...'
+ itemValue: classMenuCheckOut
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Edit Version in Repository...'
+ itemValue: classMenuEditVersionInRepository
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Newest in Repository...'
+ itemValue: classMenuCompareAgainstNewestInRepository
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Original in Repository...'
+ itemValue: classMenuCompareAgainstOriginalInRepository
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Repository...'
+ itemValue: classMenuCompareWithRepository
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare two Repository Versions...'
+ itemValue: classMenuCompareTwoRepositoryVersions
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectDefinitionOrClassWithExtensionsSelectedAndSourceCodeManagerHolder
+ label: 'Compare Extensions with Repository...'
+ itemValue: classMenuCompareExtensionsWithRepository
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+ label: 'Compare Build Support File'
+ translateLabel: true
+ submenuChannel: compareBuildSupportFileMenu
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'Set Tag...'
+ itemValue: classMenuSetTag
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag...')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'Revision Log (Recent Changes)'
+ itemValue: classMenuShortRevisionLog
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'Revision Log (Full)'
+ itemValue: classMenuRevisionLog
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ )
+ nil
+ nil
+ )
+!
+
+classSCMMenu
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#classSCMMenu
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classSCMMenu)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ label: '** No SourceCodeManager - See Settings in the Launcher **'
+ translateLabel: true
+ isVisible: hasNoSourceCodeManagerHolder
+ )
+ (MenuItem
+ label: '-'
+ isVisible: hasNoSourceCodeManagerHolder
+ )
+ (MenuItem
+ enabled: hasClassSelectedHolderAndSourceCodeManagerHolder
+ label: 'CheckIn...'
+ itemValue: classMenuCheckIn
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasClassWithExtensionsSelectedHolder
+ label: 'CheckIn Extensions For'
+ translateLabel: true
+ submenuChannel: browseClassExtensionsMenu
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: changeSetContainsChangedClassesAndSourceCodeManagerHolder
+ label: 'CheckIn All Changed Classes'
+ itemValue: classMenuCheckInAllChangedClasses
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: 'Quick CheckIn...'
+ itemValue: classMenuQuickCheckIn
+ translateLabel: true
+ isVisible: hasClassSelectedAndControlKeyDownHolder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+ label: 'CheckIn Build Support Files...'
+ itemValue: classMenuCheckInBuildSupportFiles
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'Set Tag...'
+ itemValue: classMenuSetTag
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag...')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Newest'
+ itemValue: classMenuCheckOutNewest
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Previous Version...'
+ itemValue: classMenuCheckOut
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'Revision Log (Recent Changes)'
+ itemValue: classMenuShortRevisionLog
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryLog 'Revision Log (Recent Changes)')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasNonPrivateClassSelectedAndSourceCodeManagerHolder
+ label: 'Revision Log (Full)'
+ itemValue: classMenuRevisionLog
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Newest in Repository...'
+ itemValue: classMenuCompareAgainstNewestInRepository
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Original in Repository...'
+ itemValue: classMenuCompareAgainstOriginalInRepository
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Repository...'
+ itemValue: classMenuCompareWithRepository
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Compare two Repository Versions...'
+ itemValue: classMenuCompareTwoRepositoryVersions
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+ label: 'Compare Extensions with Repository...'
+ itemValue: classMenuCompareExtensionsWithRepository
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectDefinitionSelectedAndSourceCodeManagerHolder
+ label: 'Compare Build Support File'
+ translateLabel: true
+ submenuChannel: compareBuildSupportFileMenu
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasSingleClassSelectedAndSourceCodeManagerHolder
+ label: 'Edit Version in Repository...'
+ itemValue: classMenuEditVersionInRepository
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ )
+ nil
+ nil
+ )
+! !
+
+!NewSystemBrowser class methodsFor:'menu specs-SCM-project'!
+
+projectMenuCVS
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#projectMenuCVS
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser projectMenuCVS)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'CheckIn...'
+ itemValue: projectMenuCheckInAll
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'CheckIn Classes Only...'
+ itemValue: projectMenuCheckInClasses
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'CheckIn Extensions Only...'
+ itemValue: projectMenuCheckInExtensions
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'CheckIn Build Support Files Only...'
+ itemValue: projectMenuCheckInBuildSupportFiles
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'Set Tag (Release As)...'
+ itemValue: projectMenuSetTag
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag (Release As)...')
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Newest'
+ itemValue: projectMenuCheckOutNewest
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Previous Version...'
+ itemValue: projectMenuCheckOut
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Extensions Only...'
+ itemValue: projectMenuCheckOutExtensions
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'Import Structure...'
+ itemValue: projectMenuImport
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: 'Import...'
+ itemValue: projectMenuImportAndLoadClasses
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'Repository History...'
+ itemValue: projectMenuRepositoryHistory
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Newest in Repository...'
+ itemValue: projectMenuCompareAgainstNewestInRepository
+ translateLabel: true
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Repository at Date...'
+ itemValue: projectMenuCompareAgainstRepository
+ translateLabel: true
+ )
+ (MenuItem
+ label: 'Compare Build Support File'
+ translateLabel: true
+ submenuChannel: compareBuildSupportFileMenu
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'Consistency Check...'
+ itemValue: projectMenuCheckRepositoryConsistency
+ translateLabel: true
+ )
+ (MenuItem
+ label: '-'
+ isVisible: false
+ )
+ (MenuItem
+ enabled: hasProjectSelectedHolder
+ label: 'Resource Files...'
+ itemValue: projectMenuResources
+ translateLabel: true
+ isVisible: false
+ )
+ (MenuItem
+ enabled: hasProjectSelectedHolder
+ label: 'Bitmap Files...'
+ itemValue: projectMenuBitmapFiles
+ translateLabel: true
+ isVisible: false
+ )
+ )
+ nil
+ nil
+ )
+!
+
+projectMenuSCMCommon
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#projectMenuSCMCommon
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser projectMenuSCMCommon)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'CheckIn...'
+ itemValue: projectMenuCheckInAllUsingManagerNamed:
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn...')
+ argument: SourceCodeManagerPlaceholder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'CheckIn Classes Only...'
+ itemValue: projectMenuCheckInClassesUsingManagerNamed:
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'CheckIn Extensions Only...'
+ itemValue: projectMenuCheckInExtensionsUsingManagerNamed:
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'CheckIn Build Support Files Only...'
+ itemValue: projectMenuCheckInBuildSupportFilesUsingManagerNamed:
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Newest'
+ itemValue: projectMenuCheckOutNewestUsingManagerNamed:
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckOut 'CheckOut Newest')
+ argument: SourceCodeManagerPlaceholder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Previous Version...'
+ itemValue: projectMenuCheckOutUsingManagerNamed:
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'CheckOut Extensions Only...'
+ itemValue: projectMenuCheckOutExtensionsUsingManagerNamed:
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'Import Structure...'
+ itemValue: projectMenuImportUsing:
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: 'Import...'
+ itemValue: projectMenuImportAndLoadClassesUsingManagerNamed:
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Newest in Repository...'
+ itemValue: projectMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Repository at Date...'
+ itemValue: projectMenuCompareAgainstRepositoryUsingManagerNamed:
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ )
+ (MenuItem
+ label: 'Compare Build Support File'
+ translateLabel: true
+ submenuChannel: projectMenuSCMCompareBuildSupportFileForManagerNamed:
+ argument: SourceCodeManagerPlaceholder
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'Consistency Check...'
+ itemValue: projectMenuCheckRepositoryConsistencyUsingManagerNamed:
+ translateLabel: true
+ argument: SourceCodeManagerPlaceholder
+ )
+ (MenuItem
+ label: '-'
+ isVisible: false
+ )
+ (MenuItem
+ enabled: hasProjectSelectedHolder
+ label: 'Resource Files...'
+ itemValue: projectMenuResourcesUsingManagerNamed:
+ translateLabel: true
+ isVisible: false
+ argument: SourceCodeManagerPlaceholder
+ )
+ (MenuItem
+ enabled: hasProjectSelectedHolder
+ label: 'Bitmap Files...'
+ itemValue: projectMenuBitmapFilesUsingManagerNamed:
+ translateLabel: true
+ isVisible: false
+ argument: SourceCodeManagerPlaceholder
+ )
+ (MenuItem
+ label: 'Extras'
+ translateLabel: true
+ submenuChannel: projectMenuSCMExtraFor:
+ argument: SourceCodeManagerPlaceholder
+ isMenuSlice: true
+ )
+ )
+ nil
+ nil
+ )
+
+ "Modified: / 23-12-2011 / 19:23:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+projectMenuSCMCompareBuildSupportFile
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#compareBuildSupportFileMenu
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser compareBuildSupportFileMenu)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ enabled: hasSingleProjectOrProjectDefinitionSelected
+ label: 'Make.spec'
+ itemValue: projectMenuShowGeneratedBuildFile:usingManager:
+ translateLabel: true
+ argument: 'Make.spec'
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleProjectOrProjectDefinitionSelected
+ label: 'Make.proto'
+ itemValue: projectMenuShowGeneratedBuildFile:usingManager:
+ translateLabel: true
+ argument: 'Make.proto'
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleProjectOrProjectDefinitionSelected
+ label: 'bc.mak'
+ itemValue: projectMenuShowGeneratedBuildFile:usingManager:
+ translateLabel: true
+ argument: 'bc.mak'
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleProjectOrProjectDefinitionSelected
+ label: 'libInit.cc'
+ itemValue: projectMenuShowGeneratedBuildFile:usingManager:
+ translateLabel: true
+ argument: 'libInit.cc'
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleProjectOrProjectDefinitionSelected
+ label: 'modules.stx'
+ itemValue: projectMenuShowGeneratedBuildFile:usingManager:
+ translateLabel: true
+ argument: 'modules.stx'
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleProjectOrProjectDefinitionSelected
+ label: 'lib.rc / app.rc'
+ itemValue: projectMenuShowGeneratedBuildFile:usingManager:
+ translateLabel: true
+ argument: 'lib.rc'
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleProjectOrProjectDefinitionSelected
+ label: 'app.nsi'
+ itemValue: projectMenuShowGeneratedBuildFile:usingManager:
+ translateLabel: true
+ argument: 'app.nsi'
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleProjectOrProjectDefinitionSelected
+ label: 'abbrev.stc'
+ itemValue: projectMenuShowGeneratedBuildFile:usingManager:
+ translateLabel: true
+ argument: 'abbrev.stc'
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleProjectOrProjectDefinitionSelected
+ label: 'loadAll'
+ itemValue: projectMenuShowGeneratedBuildFile:usingManager:
+ translateLabel: true
+ argument: 'loadAll'
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasSingleProjectOrProjectDefinitionSelected
+ label: 'bmake.bat'
+ itemValue: projectMenuShowGeneratedBuildFile:usingManager:
+ translateLabel: true
+ argument: 'bmake.bat'
+ showBusyCursorWhilePerforming: true
+ )
+ )
+ nil
+ nil
+ )
+
+ "Created: / 12-10-2011 / 18:56:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 21-12-2011 / 20:24:39 / cg"
+!
+
+projectMenuSCMExtra_CVS
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#projectMenuSCMExtra_CVS
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser projectMenuSCMExtra_CVS)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'Repository History...'
+ itemValue: projectMenuRepositoryHistory
+ translateLabel: true
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'Set Tag (Release As)...'
+ itemValue: projectMenuSetTagUsing:
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag (Release As)...')
+ argument: SourceCodeManagerPlaceholder
+ )
+ )
+ nil
+ nil
+ )
+!
+
+projectMenuSCMExtra_SVN
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#projectMenuSCMExtra_SVN
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser projectMenuSCMExtra_SVN)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
+ label: 'Changeset'
+ translateLabel: true
+ submenuChannel: projectSubversionChangesetMenu
+ )
+ (MenuItem
+ label: 'Branch'
+ translateLabel: true
+ submenuChannel: commonSubversionBranchMenu
+ )
+ (MenuItem
+ label: 'Browse working copy'
+ itemValue: commonMenuSubversionBrowseWorkingCopy
+ translateLabel: true
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'Set Tag (Release As)...'
+ itemValue: projectMenuSetTagUsing:
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryTag 'Set Tag (Release As)...')
+ argument: SourceCodeManagerPlaceholder
+ )
+ (MenuItem
+ label: 'More'
+ translateLabel: true
+ submenu:
+ (Menu
+ (
+ (MenuItem
+ label: 'Remove working copy'
+ itemValue: projectMenuSubversionRemoveWorkingCopy
+ translateLabel: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
+ label: 'Fast commit'
+ translateLabel: true
+ choice: projectMenuSubversionCommitMode
+ choiceValue: fast
+ )
+ (MenuItem
+ enabled: hasProjectSelectedSubversionRepositoryExistsAndBranchSelectedHolder
+ label: 'Full commit'
+ translateLabel: true
+ choice: projectMenuSubversionCommitMode
+ choiceValue: full
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'Common Slice'
+ translateLabel: true
+ submenuChannel: commonSubversionMenuSlice
+ isMenuSlice: true
+ )
+ )
+ nil
+ nil
+ )
+ )
+ )
+ nil
+ nil
+ )
+!
+
+projectMenuSCMSlice
+
+ <resource: #menu>
+
+ ^self
+ perform: ('projectMenuSCMSlice_' , UserPreferences current sourceCodeManagementMenuLayout) asSymbol
+ ifNotUnderstood: [self projectMenuSCMSlice_old].
+
+ "Created: / 07-10-2011 / 14:50:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+projectMenuSCMSliceAll
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#classMenuSCMSliceAll
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classMenuSCMSliceAll)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'CVS'
+ translateLabel: true
+ submenuChannel: projectMenuSCMFor:
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
+ argument: CVSSourceCodeManager
+ keepLinkedMenu: true
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'SubVersion'
+ translateLabel: true
+ isVisible: hasSubversionSupport
+ submenuChannel: projectMenuSCMFor:
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'SubVersion')
+ argument: SVNSourceCodeManager
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'Perforce'
+ translateLabel: true
+ isVisible: hasPerforceSupport
+ submenuChannel: projectMenuSCMFor:
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryP4Icon 'Perforce')
+ argument: PerforceSourceCodeManager
+ )
+ (MenuItem
+ enabled: hasProjectSelectedAndSourceCodeManagerHolder
+ label: 'Monticello'
+ translateLabel: true
+ isVisible: hasMonticelloSupport
+ submenuChannel: projectMenuSCMFor:
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryMCIcon 'Monticello')
+ argument: MCSourceCodeManager
+ )
+ )
+ nil
+ nil
+ )
+
+ "Created: / 12-10-2011 / 20:38:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 01-12-2011 / 21:12:53 / cg"
+!
+
+projectMenuSCMSlice_compact
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#classMenuSCMSlice_compact
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classMenuSCMSlice_compact)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ label: 'Repository'
+ nameKey: SCM
+ translateLabel: true
+ submenu:
+ (Menu
+ (
+ (MenuItem
+ label: 'Common Slice'
+ nameKey: CommonSlice
+ translateLabel: true
+ submenuChannel: projectMenuSCMFor:
+ argument: SourceCodeManagerPlaceholder
+ isMenuSlice: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'All Slice'
+ translateLabel: true
+ submenuChannel: projectMenuSCMSliceAll
+ isMenuSlice: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'Repository Settings'
+ itemValue: openSettingsDialogAndSelectSourceCodeManagement
+ translateLabel: true
+ )
+ )
+ nil
+ nil
+ )
+ )
+ )
+ nil
+ nil
+ )
+
+ "Created: / 12-10-2011 / 20:36:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+projectMenuSCMSlice_inline
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#projectMenuSCMSlice_inline
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser projectMenuSCMSlice_inline)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'All Slice'
+ translateLabel: true
+ submenuChannel: projectMenuSCMSliceAll
+ isMenuSlice: true
+ )
+ )
+ nil
+ nil
+ )
+!
+
+projectMenuSCMSlice_old
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#projectMenuSCMSlice_old
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser projectMenuSCMSlice_old)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ label: 'CVS'
+ translateLabel: true
+ submenuChannel: projectMenuCVS
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
+ )
+ (MenuItem
+ enabled: hasProjectSelectedSubversionRepositoryExistsHolder
+ label: 'SubVersion'
+ translateLabel: true
+ isVisible: hasSubversionSupport
+ submenuChannel: projectSubversionMenu
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'SubVersion')
+ )
+ (MenuItem
+ enabled: hasProjectSelectedMonticelloRepositoryExistsHolder
+ label: 'Monticello'
+ translateLabel: true
+ isVisible: hasMonticelloSupport
+ submenuChannel: projectMonticelloMenu
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryMCIcon 'Monticello')
+ )
+ )
+ nil
+ nil
+ )
+! !
+
+!NewSystemBrowser class methodsFor:'menu specs-SCM-selector'!
+
+selectorMenuCVS
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#selectorMenuFileOutPrintOutSlice
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser selectorMenuFileOutPrintOutSlice)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ enabled: hasMethodSelected
+ label: 'CheckIn Class(es)...'
+ itemValue: methodListMenuCheckInClass
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn Class(es)...')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasRealExtensionMethodSelectedHolder
+ label: 'CheckIn Extensions for Project...'
+ itemValue: selectorMenuCheckInProjectExtensions
+ translateLabel: true
+ isVisible: hasExtensionMethodSelectedHolder
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasMethodSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Newest in Repository...'
+ itemValue: selectorMenuCompareAgainstNewestInRepository
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
+ )
+ (MenuItem
+ enabled: hasMethodSelectedAndSourceCodeManagerHolder
+ label: 'Compare Class with Newest in Repository...'
+ itemValue: selectorMenuCompareClassAgainstNewestInRepository
+ translateLabel: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasSingleMethodSelected
+ label: 'Browse Repository Versions...'
+ itemValue: selectorMenuBrowseRepositoryVersions
+ translateLabel: true
+ )
+ )
+ nil
+ nil
+ )
+!
+
+selectorMenuSCMCommon
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#selectorMenuSCMCommon
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser selectorMenuSCMCommon)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ enabled: hasMethodSelected
+ label: 'CheckIn Class(es)...'
+ itemValue: methodListMenuCheckInClassUsingManagerNamed:
+ argument: SourceCodeManagerPlaceholder
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCheckIn 'CheckIn Class(es)...')
+ showBusyCursorWhilePerforming: true
+ )
+ (MenuItem
+ enabled: hasRealExtensionMethodSelectedHolder
+ label: 'CheckIn Extensions for Project...'
+ itemValue: selectorMenuCheckInProjectExtensionsUsingManagerNamed:
+ argument: SourceCodeManagerPlaceholder
+ translateLabel: true
+ isVisible: hasExtensionMethodSelectedHolder
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasMethodSelectedAndSourceCodeManagerHolder
+ label: 'Compare with Newest in Repository...'
+ itemValue: selectorMenuCompareAgainstNewestInRepositoryUsingManagerNamed:
+ argument: SourceCodeManagerPlaceholder
+ translateLabel: true
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryVersions 'Compare with Newest in Repository...')
+ )
+ (MenuItem
+ enabled: hasMethodSelectedAndSourceCodeManagerHolder
+ label: 'Compare Class with Newest in Repository...'
+ itemValue: selectorMenuCompareClassAgainstNewestInRepositoryUsingManagerNamed:
+ argument: SourceCodeManagerPlaceholder
+ translateLabel: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ enabled: hasSingleMethodSelected
+ label: 'Browse Repository Versions...'
+ itemValue: selectorMenuBrowseRepositoryVersionsUsingManagerNamed:
+ argument: SourceCodeManagerPlaceholder
+ translateLabel: true
+ )
+ )
+ nil
+ nil
+ )
+
+ "Modified: / 11-01-2012 / 14:05:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+selectorMenuSCMSlice
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#selectorMenuSCMSlice
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser selectorMenuSCMSlice)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'All Slice'
+ translateLabel: true
+ submenuChannel: selectorMenuSCMSliceAll
+ isMenuSlice: true
+ )
+ )
+ nil
+ nil
+ )
+!
+
+selectorMenuSCMSliceAll
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#classMenuSCMSliceAll
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classMenuSCMSliceAll)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ enabled: hasMethodSelectedAndSourceCodeManagerHolder
+ label: 'CVS'
+ translateLabel: true
+ submenuChannel: selectorMenuSCMFor:
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
+ argument: CVSSourceCodeManager
+ keepLinkedMenu: true
+ )
+ (MenuItem
+ enabled: hasMethodSelectedAndSourceCodeManagerHolder
+ label: 'SubVersion'
+ translateLabel: true
+ isVisible: hasSubversionSupport
+ submenuChannel: selectorMenuSCMFor:
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositorySVNIcon 'SubVersion')
+ argument: SVNSourceCodeManager
+ )
+ (MenuItem
+ enabled: hasMethodSelectedAndSourceCodeManagerHolder
+ label: 'Perforce'
+ translateLabel: true
+ isVisible: hasPerforceSupport
+ submenuChannel: selectorMenuSCMFor:
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryP4Icon 'Perforce')
+ argument: PerforceSourceCodeManager
+ )
+ )
+ nil
+ nil
+ )
+
+ "Created: / 12-10-2011 / 20:47:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 01-12-2011 / 21:13:19 / cg"
+!
+
+selectorMenuSCMSlice_compact
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#classMenuSCMSlice_compact
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser classMenuSCMSlice_compact)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ label: 'Repository'
+ nameKey: SCM
+ translateLabel: true
+ submenu:
+ (Menu
+ (
+ (MenuItem
+ label: 'Common Slice'
+ nameKey: CommonSlice
+ translateLabel: true
+ submenuChannel: selectorMenuSCMFor:
+ argument: SourceCodeManagerPlaceholder
+ isMenuSlice: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'All Slice'
+ translateLabel: true
+ submenuChannel: selectorMenuSCMSliceAll
+ isMenuSlice: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'Repository Settings'
+ itemValue: openSettingsDialogAndSelectSourceCodeManagement
+ translateLabel: true
+ )
+ )
+ nil
+ nil
+ )
+ )
+ )
+ nil
+ nil
+ )
+
+ "Created: / 12-10-2011 / 20:45:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+selectorMenuSCMSlice_inline
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#selectorMenuSCMSlice_inline
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser selectorMenuSCMSlice_inline)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'All Slice'
+ translateLabel: true
+ submenuChannel: selectorMenuSCMSliceAll
+ isMenuSlice: true
+ )
+ )
+ nil
+ nil
+ )
+!
+
+selectorMenuSCMSlice_old
+ "This resource specification was automatically generated
+ by the MenuEditor of ST/X."
+
+ "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:#selectorMenuSCMSlice_old
+ (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser selectorMenuSCMSlice_old)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ enabled: hasMethodSelected
+ label: 'CVS'
+ translateLabel: true
+ submenuChannel: selectorMenuCVS
+ labelImage: (ResourceRetriever ToolbarIconLibrary repositoryCVSIcon 'CVS')
+ )
+ )
+ nil
+ nil
+ )
+! !
+
!NewSystemBrowser class methodsFor:'menu specs-dialogs'!
classesWhichHaveBeenModifiedPopupMenu
@@ -13426,6 +16000,7 @@
"Modified: / 29-09-2006 / 16:11:08 / cg"
! !
+
!NewSystemBrowser class methodsFor:'menu specs-popup'!
categoryPopUpMenu
@@ -13843,6 +16418,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:#toolBarMenu
(Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser toolBarMenu)) startUp
@@ -13861,7 +16437,7 @@
translateLabel: true
isButton: true
isVisible: showGlobalHistory
- labelImage: (ResourceRetriever XPToolbarIconLibrary historyBackInGlobalListIcon)
+ labelImage: (ResourceRetriever ToolbarIconLibrary historyBackInGlobalListIcon)
)
(MenuItem
activeHelpKey: goBack
@@ -13871,7 +16447,7 @@
translateLabel: true
isButton: true
isVisible: showLocalHistory
- labelImage: (ResourceRetriever XPToolbarIconLibrary historyBackIcon)
+ labelImage: (ResourceRetriever ToolbarIconLibrary historyBackIcon)
)
(MenuItem
activeHelpKey: goForward
@@ -13881,7 +16457,7 @@
translateLabel: true
isButton: true
isVisible: showLocalHistory
- labelImage: (ResourceRetriever XPToolbarIconLibrary historyForwardIcon)
+ labelImage: (ResourceRetriever ToolbarIconLibrary historyForwardIcon)
)
(MenuItem
label: ''
@@ -13929,6 +16505,8 @@
submenuChannel: changedMenu
labelImage: (ResourceRetriever ToolbarIconLibrary changesBrowserIcon)
showBusyCursorWhilePerforming: true
+ ignoreMnemonicKeys: true
+ ignoreShortcutKeys: true
)
(MenuItem
activeHelpKey: recentClassChanges
@@ -13939,6 +16517,8 @@
submenuChannel: changedClassesMenu
labelImage: (ResourceRetriever ToolbarIconLibrary empty1x20Icon)
showBusyCursorWhilePerforming: true
+ ignoreMnemonicKeys: true
+ ignoreShortcutKeys: true
)
(MenuItem
activeHelpKey: bookmarks
@@ -13946,7 +16526,9 @@
translateLabel: true
isVisible: false
submenuChannel: boockmarksMenu
- labelImage: (ResourceRetriever ToolbarIconLibrary bookmarks22x22)
+ labelImage: (ResourceRetriever ToolbarIconLibrary bookmarks14x14)
+ ignoreMnemonicKeys: true
+ ignoreShortcutKeys: true
)
(MenuItem
label: ''
@@ -14107,20 +16689,17 @@
nil
nil
)
+
+ "Modified: / 31-12-2011 / 15:47:24 / cg"
! !
!NewSystemBrowser class methodsFor:'queries'!
hasSubversionSupport
- |subVersionRepository|
-
- "/ use Smalltalk-at to trick the dependency/prerequisite generator
- subVersionRepository := Smalltalk at: #'SVN::RepositoryManager'.
-
- ^ subVersionRepository notNil
- and:[ subVersionRepository isLoaded
- and:[ subVersionRepository enabled ]
- ]
+ ^ ConfigurableFeatures includesFeature: #SubversionSupportEnabled
+
+ "Modified: / 07-09-2011 / 10:45:40 / cg"
+ "Modified: / 19-01-2012 / 10:46:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!NewSystemBrowser class methodsFor:'startup'!
@@ -14572,6 +17151,15 @@
^ self navigationState noAllItem
!
+packageInfoBackgroundColorHolder
+
+ "Current background color of package info bar"
+
+ ^ self navigationState packageInfoBackgroundColorHolder
+
+ "Created: / 03-10-2011 / 13:56:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
packageLabelHolder
"the current buffers packageLabel (info field)"
@@ -14789,6 +17377,34 @@
"Created: / 18.2.2000 / 12:17:07 / cg"
!
+cvsRepositoryMenusAreShown
+ ^ ConfigurableFeatures includesFeature: #CVSSupportEnabled
+
+ "Created: / 18-01-2012 / 10:50:13 / cg"
+ "Modified: / 19-01-2012 / 10:44:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+dataBaseRepositoryMenusAreShown
+ ^ ConfigurableFeatures includesFeature: #DataBaseSourceCodeManagerSupportEnabled
+
+ "Created: / 10-01-2012 / 00:29:02 / cg"
+ "Modified: / 19-01-2012 / 10:44:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+fileBasedRepositoryMenusAreShown
+ ^ ConfigurableFeatures includesFeature: #FileBasedSourceCodeManagerSupportEnabled
+
+ "Created: / 10-01-2012 / 00:29:12 / cg"
+ "Modified: / 19-01-2012 / 10:44:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+mercurialRepositoryMenusAreShown
+ ^ ConfigurableFeatures includesFeature: #MercurialSupportEnabled
+
+ "Created: / 15-01-2012 / 14:36:53 / cg"
+ "Modified: / 19-01-2012 / 10:40:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
methodListPopUpMenu
"to avoid generation of an aspect method by GUI definer"
@@ -14817,12 +17433,11 @@
"Created: / 18.2.2000 / 12:17:22 / cg"
!
-projectMenu
- "to avoid generation of an aspect method by GUI definer"
-
- ^ self class projectMenu
-
- "Created: / 18.2.2000 / 12:17:28 / cg"
+perforceRepositoryMenusAreShown
+ ^ ConfigurableFeatures includesFeature: #PerforceSupportEnabled
+
+ "Created: / 10-01-2012 / 00:29:46 / cg"
+ "Modified: / 19-01-2012 / 10:45:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
protocolMenu
@@ -14861,6 +17476,13 @@
"Modified: / 11-09-2007 / 11:44:09 / cg"
!
+svnRepositoryMenusAreShown
+ ^ ConfigurableFeatures includesFeature: #SubversionSupportEnabled
+
+ "Created: / 15-01-2012 / 14:49:31 / cg"
+ "Modified: / 19-01-2012 / 10:46:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
tabMenu:index
<resource: #programMenu>
@@ -15125,6 +17747,7 @@
"Created: / 24.2.2000 / 23:28:06 / cg"
! !
+
!NewSystemBrowser methodsFor:'aspects-organization'!
categoryMenuVisible
@@ -16224,6 +18847,18 @@
"Modified: / 28-08-2006 / 23:33:08 / cg"
!
+globalCoverageRecordingIsDisabled
+ ^ [ InstrumentationContext hasGlobalInstrumentationContext not ]
+
+ "Created: / 21-09-2011 / 19:16:17 / cg"
+!
+
+globalCoverageRecordingIsEnabled
+ ^ [ InstrumentationContext hasGlobalInstrumentationContext ]
+
+ "Created: / 21-09-2011 / 19:16:08 / cg"
+!
+
hasAnyAutoLoadedClassSelected
|selected|
@@ -16772,6 +19407,55 @@
"Created: / 4.2.2000 / 22:02:53 / cg"
!
+hasClassesSelectedAndDataBaseRepositoryExistsHolder
+ ^ [
+ | classes |
+
+ classes := self selectedClasses value.
+ classes isEmptyOrNil ifTrue:[
+ false
+ ] ifFalse:[
+ ConfigurableFeatures includesFeature: #DataBaseSourceCodeManagerSupport
+ ]
+ ]
+
+ "Created: / 03-01-2012 / 15:48:46 / cg"
+ "Modified: / 19-01-2012 / 10:44:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+hasClassesSelectedAndFileBasedRepositoryExistsHolder
+ ^ [
+ | classes |
+
+ classes := self selectedClasses value.
+ classes isEmptyOrNil ifTrue:[
+ false
+ ] ifFalse:[
+ ConfigurableFeatures includesFeature: #FileBasedSourceCodeManagerSupport
+ ]
+ ]
+
+ "Created: / 21-12-2011 / 17:05:28 / cg"
+ "Modified: / 19-01-2012 / 10:44:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+hasClassesSelectedAndMercurialRepositoryExistsHolder
+ ^ [
+ | classes |
+
+ classes := self selectedClasses value.
+ classes isEmptyOrNil ifTrue:[
+ false
+ ] ifFalse:[
+ classes
+ allSatisfy:
+ [:cls | self hasMercurialRepositoryFor: cls theNonMetaclass package]
+ ]
+ ]
+
+ "Created: / 19-01-2012 / 16:14:57 / cg"
+!
+
hasClassesSelectedAndPerforceRepositoryExistsHolder
^ [
| classes |
@@ -16846,6 +19530,22 @@
"Modified: / 11-02-2007 / 13:47:14 / cg"
!
+hasDataBaseRepositoryFor: package
+ ^ ConfigurableFeatures hasDatabaBaseSourceCodeManagerSupport
+ "/ use Smalltalk-at to trick the dependency/prerequisite generator
+ and:[(Smalltalk at:#'DatabaBaseSourceCodeManager') hasRepositoryForPackage: package]
+
+ "Created: / 03-01-2012 / 15:35:39 / cg"
+!
+
+hasDataBaseSourceCodeManagerSupport
+ ^ ConfigurableFeatures includesFeature: #DataBaseSourceCodeManagerSupport
+
+ "Modified: / 07-09-2011 / 10:45:57 / cg"
+ "Created: / 03-01-2012 / 15:47:11 / cg"
+ "Modified: / 19-01-2012 / 10:44:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
hasEmptyNamespacesSelected
"return true, if only empty namespaces are selected"
@@ -16923,6 +19623,28 @@
"Modified: / 08-03-2007 / 23:00:43 / cg"
!
+hasFileBasedRepositoryFor: package
+ "is there a subversion source repository for package?"
+
+ ^ (ConfigurableFeatures includesFeature: #FileBasedSourceCodeManagerSupport)
+ "/ use Smalltalk-at to trick the dependency/prerequisite generator
+ and:[(Smalltalk at:#'FileBasedSourceCodeManager') hasRepositoryForPackage: package]
+
+ "Created: / 31-03-2008 / 15:08:13 / janfrog"
+ "Modified: / 22-08-2009 / 10:49:33 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 07-09-2011 / 10:43:21 / cg"
+ "Created: / 21-12-2011 / 17:08:01 / cg"
+ "Modified: / 19-01-2012 / 10:45:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+hasFileBasedSourceCodeManagerSupport
+ ^ (ConfigurableFeatures includesFeature: #FileBasedSourceCodeManagerSupport)
+
+ "Modified: / 07-09-2011 / 10:45:57 / cg"
+ "Created: / 21-12-2011 / 17:08:53 / cg"
+ "Modified: / 19-01-2012 / 10:45:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
hasFindHistoryClassesHolder
^ [ FindHistory size > 0 ]
@@ -17058,6 +19780,25 @@
^ [ self hasLocalVariableSelectedInCodeView ]
!
+hasMercurialRepositoryFor: package
+ "is there a perforce source repository for package?"
+
+ ^ self hasMercurialSupport
+ "/ use Smalltalk-at to trick the dependency/prerequisite generator
+"/ and:[(Smalltalk at:#'PerforceSourceCodeManager') hasRepositoryForPackage: package]
+
+ "Modified: / 22-08-2009 / 10:49:33 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Created: / 15-01-2012 / 14:42:02 / cg"
+!
+
+hasMercurialSupport
+ "is there support for the perforce source code manager?"
+
+ ^ self hasSCMSupportFor:#'MercurialSourceCodeManager'
+
+ "Created: / 15-01-2012 / 14:42:30 / cg"
+!
+
hasMetaMethodSelectedHolder
^ [ (self hasMethodSelected and:[self hasMetaSelected])
or:[self hasClassMethodsSelected ]]
@@ -17185,10 +19926,10 @@
!
hasMonticelloSupport
-
- ^(Smalltalk at: #MCSourceCodeManager) notNil
+ ^ (Smalltalk at: #MCSourceCodeManager) notNil
"Created: / 14-09-2010 / 22:34:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified (format): / 01-12-2011 / 21:21:12 / cg"
!
hasMultipleClassesSelected
@@ -17449,15 +20190,18 @@
hasPerforceSupport
"is there support for the perforce source code manager?"
- |perforceManager|
-
- "/ use Smalltalk-at to trick the dependency/prerequisite generator
- perforceManager := Smalltalk at: #'PerforceSourceCodeManager'.
- ^ perforceManager notNil and:[ perforceManager isLoaded ]
+ ^ self hasSCMSupportFor:#'PerforceSourceCodeManager'
"Created: / 19-04-2011 / 14:14:51 / cg"
!
+hasProjectDefinitionOrClassWithExtensionsSelectedAndSourceCodeManagerHolder
+ ^ [ self hasSourceCodeManager
+ and:[ self hasProjectDefinitionSelected or:[self hasClassWithExtensionsSelected]]]
+
+ "Created: / 12-09-2011 / 11:12:12 / cg"
+!
+
hasProjectDefinitionSelected
^ self selectedClassesValue contains:[:cls | cls theNonMetaclass isProjectDefinition]
@@ -17616,6 +20360,20 @@
^ manager hasRedoableOperations
!
+hasSCMSupportFor:aManagerClassName
+ "is there support for the perforce source code manager?"
+
+ |manager|
+
+ "/ use Smalltalk-at to trick the dependency/prerequisite generator
+ manager := Smalltalk at:aManagerClassName.
+ ^ manager notNil
+ and:[ manager isLoaded
+ and:[ manager shownInBrowserMenus ]]
+
+ "Created: / 15-01-2012 / 14:45:11 / cg"
+!
+
hasSelectedClassWithSuperclassHolder
^ [ self theSingleSelectedClass notNil
and:[self theSingleSelectedClass superclass notNil ]]
@@ -18099,11 +20857,14 @@
"Created: / 31-03-2008 / 15:08:13 / janfrog"
"Modified: / 22-08-2009 / 10:49:33 / Jan Vrany <vranyj1@fel.cvut.cz>"
- "Modified: / 19-04-2011 / 14:04:02 / cg"
+ "Modified: / 15-01-2012 / 13:18:10 / cg"
!
hasSubversionSupport
- ^ self class hasSubversionSupport
+ ^ ConfigurableFeatures includesFeature: #SubversionSupportEnabled
+
+ "Modified: / 07-09-2011 / 10:45:57 / cg"
+ "Modified: / 19-01-2012 / 10:45:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
hasTemporaryVariableSelectedInCodeView
@@ -18237,7 +20998,12 @@
!
instrumentingCompilerExists
- ^ InstrumentingCompiler notNil
+ "true, if instrumenting is possible
+ (now, always true, because InstrumentingCompiler is now in the libcomp package)"
+
+ ^ InstrumentingCompiler notNil
+
+ "Modified (comment): / 30-09-2011 / 12:41:20 / cg"
!
isAnyOtherMetaclassPresent
@@ -18406,6 +21172,7 @@
^ UserPreferences current useSearchBarInBrowser or:[self codeView searchBarActionBlock notNil]
! !
+
!NewSystemBrowser methodsFor:'change & update'!
categorySelectionChanged
@@ -19145,13 +21912,18 @@
].
]
].
+
+ something == #methodTrap ifTrue:[
+ self hasMethodWithoutBreakPointSelectedHolder value:(self hasMethodWithoutBreakPointSelected).
+ self hasMethodWithBreakPointSelectedHolder value:(self hasMethodWithBreakPointSelected).
+ ].
^ self
].
super update:something with:aParameter from:changedObject
"Modified: / 20-11-2006 / 12:29:59 / cg"
- "Modified: / 18-05-2011 / 17:30:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 15-11-2011 / 23:10:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
updateBookmarkHolder
@@ -19361,7 +22133,7 @@
spec := super flyByHelpSpec.
changeSet := ChangeSet current.
- (changeSet contains:[:chg | chg isMethodChange and:[chg changeClass notNil]]) ifTrue:[
+ (changeSet findLast:[:chg | chg isMethodChange and:[chg changeClass notNil]]) ~~ 0 ifTrue:[
spec at:#recentChanges put:(spec at:#recentlyChangedMethods).
] ifFalse:[
"/ (changeSet contains:[:chg | chg isClassChange and:[chg changeClass notNil]]) ifTrue:[
@@ -19371,6 +22143,8 @@
"/ ]
].
^ spec.
+
+ "Modified: / 08-09-2011 / 05:05:06 / cg"
!
flyByHelpTextFor:aComponent
@@ -19830,6 +22604,34 @@
label:'Changed classes in current changeSet' openAs:openHow
!
+browseMenuClassesOfRecentlyOpenedApplications
+ "add a new buffer on all classes for which an application has been opened recently"
+
+ ^ self browseMenuClassesOfRecentlyOpenedApplications:#newBuffer
+
+ "Created: / 22-08-2011 / 08:03:25 / cg"
+!
+
+browseMenuClassesOfRecentlyOpenedApplications:openHow
+ "add a new buffer/open a new browser on all classes for which an app has been opened recently"
+
+ |searchBlock|
+
+ searchBlock :=
+ [
+ |appHistory|
+
+ appHistory := ApplicationModel recentlyOpenedApplications.
+ appHistory
+ collect:[:nm | Smalltalk classNamed:nm]
+ as:OrderedCollection
+ ].
+
+ ^ self spawnClassBrowserForSearch:searchBlock sortBy:nil in:openHow label:'Recently opened applications'
+
+ "Created: / 22-08-2011 / 08:04:17 / cg"
+!
+
browseMenuClassesWithFilter:aFilterBlock label:aLabelString
|searchBlock|
@@ -19988,9 +22790,14 @@
"/
"/ example (search for classes which implement some message and are in the Smalltalk nameSpace)
-
(class nameSpace == Smalltalk
and:[ class implements:#at: ] )
+
+ "/ example (search for classes which do not implement a message)
+ "/ (class implements:#at:) not
+
+ "/ same, for class side
+ "/ (class theMetaclass implements:#version) not
]
'.
@@ -20016,6 +22823,8 @@
self assert:filterBlock isBlock message:'bad input'.
self browseMenuClassesWithFilter:filterBlock label:'Class-Search result'
+
+ "Modified: / 29-09-2011 / 13:13:31 / cg"
!
browseMenuClassesWithoutCVSRepositoryContainer
@@ -20459,7 +23268,7 @@
self
askForMethodAndSpawnSearchTitle:'String to Search for in Sources:'
- browserLabel:'Methods containing ''%1'''
+ browserLabel:'Methods containing "%1"'
searchWith:#( #'findString:in:ignoreCase:match:' #'findString:inMethods:ignoreCase:match:' )
searchWhat:#string
searchArea:whereDefault
@@ -20470,7 +23279,7 @@
brwsr autoSearchPattern:string ignoreCase:ignoreCase.
]
- "Modified: / 19-11-2010 / 12:11:55 / cg"
+ "Modified: / 22-12-2011 / 10:04:46 / cg"
!
browseMenuMethodsWithStringInHelpSpec
@@ -20486,7 +23295,7 @@
].
self
askForMethodAndSpawnSearchTitle:'String to search for in help spec methods:'
- browserLabel:'HelpSpec Methods containing ''%1'''
+ browserLabel:'HelpSpec Methods containing "%1"'
searchWith:#findHelpSpecMethodsWithString:in:ignoreCase:match:
searchWhat:#string
searchArea:whereDefault
@@ -20494,6 +23303,8 @@
setSearchPattern:[:brwsr :string :ignoreCase :doMatch|
brwsr autoSearchPattern:string ignoreCase:ignoreCase.
]
+
+ "Modified: / 22-12-2011 / 10:04:52 / cg"
!
browseMenuMethodsWithStringInMenuSpec
@@ -20509,7 +23320,7 @@
].
self
askForMethodAndSpawnSearchTitle:'String to search for in menu spec methods:'
- browserLabel:'MenuSpec Methods containing ''%1'''
+ browserLabel:'MenuSpec Methods containing "%1"'
searchWith:#'findMenuSpecMethodsWithString:in:ignoreCase:match:'
searchWhat:#string
searchArea:whereDefault
@@ -20517,6 +23328,8 @@
setSearchPattern:[:brwsr :string :ignoreCase :doMatch|
brwsr autoSearchPattern:string ignoreCase:ignoreCase.
]
+
+ "Modified: / 22-12-2011 / 10:04:57 / cg"
!
browseMenuMethodsWithStringLiteral
@@ -21083,6 +23896,157 @@
"Modified: / 12-10-2006 / 20:51:48 / cg"
!
+browseMenuWritesToGlobal
+ "launch an enterBox for global to search for writers"
+
+ |labelHolder alreadyAsked searchAllLabel|
+
+ labelHolder := 'Methods writing to global ''%1''' asValue.
+ self
+ askForMethodAndSpawnSearchTitle:'Global to search:\(TAB for completion; matchPattern allowed)'
+ browserLabel:labelHolder
+ searchWith:[:string :classes :dummyIgnoreCase :dummyMatch|
+ |globlNames globlNamesAndSymbols globlName sym baseName matchBlock realClasses val
+ keysReferringToValue otherKeysReferringToValue msg searchAll|
+
+ globlNames := string withoutSeparators asCollectionOfSubstringsSeparatedByAny:',;| '.
+"/ globlNames size > 1 ifTrue:[
+"/ globlNames := globlNames collect:[:nm | nm asSymbol].
+"/ matchBlock := [:cls :mthd :sel |
+"/ |mSource usedGlobals usesGlobal|
+"/
+"/ usesGlobal := false.
+"/ mthd isLazyMethod ifTrue:[
+"/ mSource := mthd source.
+"/
+"/ (mSource notNil
+"/ and:[(globlNames contains:[:nm |
+"/ (mSource includesString:nm)
+"/ and:[
+"/ usedGlobals isNil ifTrue:[ usedGlobals := mthd usedGlobals].
+"/ usesGlobal := usedGlobals includes:nm
+"/ ]])]).
+"/ ] ifFalse:[
+"/ globlNames contains:[:nm |
+"/ (mthd referencesLiteral:nm)
+"/ and:[
+"/ usedGlobals isNil ifTrue:[ usedGlobals := mthd usedGlobals].
+"/ usesGlobal := usedGlobals includes:nm
+"/ ]].
+"/ ].
+"/ usesGlobal ifTrue:[
+"/ ].
+"/ ]
+"/ ] ifFalse:[
+"/ globlName := globlNames first.
+"/ globlName knownAsSymbol ifFalse:[
+"/ globlName includesMatchCharacters ifFalse:[
+"/ ^ self warn:'No such global (''' , globlName , ''')'.
+"/ ].
+"/ matchBlock := [:cls :mthd :sel |
+"/ (mthd literals contains:[:lit | globlName match:lit])
+"/ and:[mthd usedGlobals contains:[:lit | globlName match:lit] ]
+"/ ]
+"/ ] ifTrue:[
+"/ searchAll := false.
+"/ sym := globlName asSymbol.
+"/
+"/ val := globlName lastIndexOf:$:.
+"/ val ~~ 0 ifTrue:[
+"/ baseName := (globlName copyFrom:val+1) asSymbol.
+"/ ] ifFalse:[
+"/ baseName := sym.
+"/ ].
+"/ (val := Smalltalk at:sym) isBehavior ifTrue:[
+"/ otherKeysReferringToValue := OrderedCollection new.
+"/ Smalltalk keysAndValuesDo:[:k :v | v == val ifTrue:[
+"/ k ~~ sym ifTrue:[
+"/ otherKeysReferringToValue add:k
+"/ ]
+"/ ]
+"/ ].
+"/ otherKeysReferringToValue size > 0 ifTrue:[
+"/ keysReferringToValue := otherKeysReferringToValue copyWith:sym.
+"/ otherKeysReferringToValue size == 1 ifTrue:[
+"/ msg := '''%1'' also refers to that value. Search these references too ?'.
+"/ searchAllLabel := 'Methods referring to ''%1'' or ''%2''' bindWithArguments:keysReferringToValue.
+"/ ] ifFalse:[
+"/ searchAllLabel := 'Methods referring to the value of ''%1'''.
+"/ otherKeysReferringToValue size <= 3 ifTrue:[
+"/ msg := (otherKeysReferringToValue copyWithoutLast:1) asStringWith:', '.
+"/ msg := msg , ' and ' , otherKeysReferringToValue last.
+"/ msg := msg , ' also refer to that value. Search those references too ?'.
+"/ ] ifFalse:[
+"/ msg := 'There are %2 other globals referring to that value. Search those references too ?'.
+"/ ]
+"/ ].
+"/ alreadyAsked isNil ifTrue:[
+"/ searchAll := Dialog
+"/ confirmWithCancel:(msg bindWith:otherKeysReferringToValue first with:otherKeysReferringToValue size)
+"/ default:true.
+"/ searchAll isNil ifTrue:[^ self].
+"/ alreadyAsked := searchAll.
+"/ ] ifFalse:[
+"/ searchAll := alreadyAsked.
+"/ ].
+"/ ]
+"/ ].
+"/ searchAll ifTrue:[
+"/ labelHolder value:searchAllLabel.
+"/ matchBlock := [:cls :mthd :sel |
+"/ "/ kludge: Lazy methods do not include symbols in the literal array - sigh
+"/ mthd isLazyMethod ifTrue:[
+"/ (mthd usedGlobals includesAny:keysReferringToValue)
+"/ ] ifFalse:[
+"/ (keysReferringToValue contains:[:globl | mthd refersToLiteral:globl])
+"/ and:[mthd usedGlobals includesAny:keysReferringToValue]
+"/ ]
+"/ ]
+"/ ] ifFalse:[
+"/ matchBlock := [:cls :mthd :sel | |mSource|
+"/ "/ kludge: Lazy methods do not include symbols in the literal array - sigh
+"/ mthd isLazyMethod ifTrue:[
+"/ mSource := mthd source.
+"/ (mSource notNil
+"/ and:[(mSource includesString:baseName)
+"/ and:[mthd usedGlobals includes:sym]])
+"/ ] ifFalse:[
+"/ (((mthd referencesLiteral:baseName) or:[baseName ~~ sym and:[mthd referencesLiteral:sym]])
+"/ and:[mthd usedGlobals includes:sym])
+"/ ]
+"/ ]
+"/ ]
+"/ ].
+"/ ].
+
+ matchBlock := self class
+ filterToSearchRefsTo:string
+ instVars:false
+ classVars:false
+ globals:true
+ access:#write.
+
+ "/ recollect realClasses from names (in case of class-changes)
+ realClasses := classes collect:[:eachClass | Smalltalk at:eachClass name].
+ self class
+ findMethodsIn:realClasses
+ where:matchBlock
+ ]
+ searchWhat:#globalName
+ searchArea:#everywhere
+ withCaseIgnore:false
+ setSearchPattern:[:brwsr :string :ignoreCase :doMatch|
+ |globlNames|
+
+ globlNames := string withoutSeparators asCollectionOfSubstringsSeparatedByAny:',;| '.
+ brwsr autoSearchVariables:globlNames.
+
+ "/ brwsr autoSearchPattern:string ignoreCase:ignoreCase.
+ ]
+
+ "Created: / 29-09-2011 / 10:40:16 / cg"
+!
+
browseResponseToIt
|selector|
@@ -22173,9 +25137,9 @@
self busyLabel:'saving: %1' with:eachClass name.
Class fileOutErrorSignal handle:[:ex |
answer := DialogBox
- confirm:(resources string:'Cannot fileOut: %1\(%2)\\skipped.'
+ confirm:(resources stringWithCRs:'Cannot fileOut: %1\(%2)\\skipped.'
with:(eachClass name allBold)
- with:ex description) withCRs
+ with:ex description)
yesLabel:'ok' noLabel:'cancel'.
answer == false ifTrue:[
^ self
@@ -22190,7 +25154,7 @@
].
self normalLabel.
- "Modified: / 06-10-2006 / 16:17:56 / cg"
+ "Modified: / 05-09-2011 / 22:01:27 / cg"
!
spawnCategoryBrowserFor:categories in:where
@@ -22526,7 +25490,7 @@
AbortSignal raise
].
confirmed ifTrue:[
- SourceCodeManagerUtilities
+ SourceCodeManagerUtilities default
removeSourceContainerForClass:eachClassToRemove
confirm:true
warn:true
@@ -22563,7 +25527,7 @@
(CheckForInstancesWhenRemovingClasses == false or:[
aSubClass hasInstances not or:[
self confirm:(resources string:'''%1'' has instances - remove anyway ?'
- with:aSubClass name allBold)
+ with:aSubClass name allBold)
]
]) ifTrue:[
classesToRemove add:aSubClass.
@@ -22603,7 +25567,7 @@
]
]
- "Modified: / 30-08-2007 / 19:01:37 / cg"
+ "Modified: / 21-12-2011 / 20:22:34 / cg"
!
askForSuperclassToGenerateTestMethod:selector
@@ -23117,7 +26081,6 @@
!
classMenuExcludeFromProject
-
|projectDefinitionClasses|
projectDefinitionClasses := (self selectedClasses value collect:[:cls | cls projectDefinitionClass]) asSet.
@@ -23136,7 +26099,7 @@
].
"Created: / 19-02-2007 / 17:29:12 / cg"
- "Modified: / 30-08-2007 / 18:28:10 / cg"
+ "Modified: / 26-01-2012 / 14:05:59 / cg"
!
classMenuFileOutAs
@@ -23279,10 +26242,12 @@
"create a visitor acceptor method"
self
- generateUndoableChangeOverSelectedClasses:'Generate Accept-Visitor Method for %(singleClassNameOrNumberOfClasses)'
- via:[:generator :eachClass |
+ generateUndoableChange:'Generate Accept-Visitor Method for %(singleClassNameOrNumberOfClasses)'
+ overSelectedClassesVia:[:generator :eachClass |
generator createAcceptVisitorMethodIn:eachClass theNonMetaclass
].
+
+ "Modified: / 21-01-2012 / 10:22:31 / cg"
!
classMenuGenerateAccessMethods
@@ -23357,8 +26322,8 @@
otherwise for that selected instvar."
self
- generateUndoableChangeOverSelectedClasses:'Generate Access Methods in %(singleClassNameOrNumberOfClasses)'
- via:[:generator :eachClass |
+ generateUndoableChange:'Generate Access Methods in %(singleClassNameOrNumberOfClasses)'
+ overSelectedClassesVia:[:generator :eachClass |
|names|
names := self variableFilter value.
@@ -23375,8 +26340,7 @@
lazyInitialization:lazyInitialization
]
- "Modified: / 18.8.1997 / 15:44:10 / cg"
- "Created: / 7.8.1998 / 18:17:18 / cg"
+ "Created: / 07-08-1998 / 18:17:18 / cg"
!
classMenuGenerateAccessMethodsWithLazyInitialization
@@ -23395,11 +26359,9 @@
classMenuGenerateApplicationCode
"create application code methods"
- self
- generateUndoableChangeOverSelectedClasses:'Generate ApplicationCode in %(singleClassNameOrNumberOfClasses)'
- via:[:generator :eachClass |
- self classMenuGenerateApplicationCodeFor:(eachClass theNonMetaclass) using:generator
- ]
+ self classMenuGenerateApplicationCodeForClasses:(self selectedClasses value ? #())
+
+ "Modified: / 21-01-2012 / 11:10:11 / cg"
!
classMenuGenerateApplicationCodeFor:cls using:generator
@@ -23425,14 +26387,30 @@
"Modified: / 19-08-2011 / 01:58:40 / cg"
!
+classMenuGenerateApplicationCodeForClasses:classes
+ "create application code methods"
+
+ self
+ generateUndoableChange:'Generate ApplicationCode in %(singleClassNameOrNumberOfClasses)'
+ overClasses:classes
+ via:[:generator :eachClass |
+ generator confirmChanges:false.
+ self classMenuGenerateApplicationCodeFor:(eachClass theNonMetaclass) using:generator
+ ]
+
+ "Created: / 21-01-2012 / 11:09:47 / cg"
+!
+
classMenuGenerateClassInitializationCode
"create #initialize method on the class side"
self
- generateUndoableChangeOverSelectedClasses:'Generate Class Initializer in %(singleClassNameOrNumberOfClasses)'
- via:[:generator :eachClass |
+ generateUndoableChange:'Generate Class Initializer in %(singleClassNameOrNumberOfClasses)'
+ overSelectedClassesVia:[:generator :eachClass |
generator createClassInitializeMethodIn:eachClass theMetaclass.
]
+
+ "Modified: / 21-01-2012 / 10:22:58 / cg"
!
classMenuGenerateClassTypeTestMethods
@@ -23452,12 +26430,12 @@
].
self
- generateUndoableChangeOverSelectedClasses:'Generate ClassType Testers'
- via:[:generator :eachClass |
+ generateUndoableChange:'Generate ClassType Testers'
+ overSelectedClassesVia:[:generator :eachClass |
generator createClassTypeTestMethodsIn:cls theNonMetaclass forClasses:subclasses
].
- "Modified: / 01-03-2007 / 20:51:07 / cg"
+ "Modified: / 21-01-2012 / 10:23:07 / cg"
!
classMenuGenerateClassTypeTestMethodsForThisClass
@@ -23475,10 +26453,12 @@
superclass isNil ifTrue:[^ self].
self
- generateUndoableChangeOverSelectedClasses:'Generate ClassType Testers'
- via:[:generator :eachClass |
+ generateUndoableChange:'Generate ClassType Testers'
+ overSelectedClassesVia:[:generator :eachClass |
generator createClassTypeTestMethodsIn:(superclass theNonMetaclass) forClasses:(Array with:eachClass)
].
+
+ "Modified: / 21-01-2012 / 10:23:15 / cg"
!
classMenuGenerateCopyrightMethod
@@ -23495,23 +26475,23 @@
SmalltalkCodeGeneratorTool copyrightTemplate:copyRightText.
self
- generateUndoableChangeOverSelectedClasses:'Generate Copyright Method in %(singleClassNameOrNumberOfClasses)'
- via:[:generator :eachClass |
+ generateUndoableChange:'Generate Copyright Method in %(singleClassNameOrNumberOfClasses)'
+ overSelectedClassesVia:[:generator :eachClass |
|metaClass |
metaClass := eachClass theMetaclass.
generator createCopyrightMethodFor:copyRightText for:metaClass.
]
- "Modified: / 31-01-2011 / 18:30:04 / cg"
+ "Modified: / 21-01-2012 / 10:23:22 / cg"
!
classMenuGenerateDocumentationMethodFromComment
"create documentation method from comment"
self
- generateUndoableChangeOverSelectedClasses:'Generate Documentation method in %(singleClassNameOrNumberOfClasses)'
- via:[:generator :eachClass |
+ generateUndoableChange:'Generate Documentation method in %(singleClassNameOrNumberOfClasses)'
+ overSelectedClassesVia:[:generator :eachClass |
|cls|
cls := eachClass theMetaclass.
@@ -23522,14 +26502,16 @@
].
].
]
+
+ "Modified: / 21-01-2012 / 10:23:31 / cg"
!
classMenuGenerateDocumentationStubs
"create documentation methods"
self
- generateUndoableChangeOverSelectedClasses:'Generate Documentation in %(singleClassNameOrNumberOfClasses)'
- via:[:generator :eachClass |
+ generateUndoableChange:'Generate Documentation in %(singleClassNameOrNumberOfClasses)'
+ overSelectedClassesVia:[:generator :eachClass |
|metaClass |
metaClass := eachClass theMetaclass.
@@ -23540,19 +26522,23 @@
"/ but only if not already present.
generator createExamplesMethodFor:metaClass.
]
+
+ "Modified: / 21-01-2012 / 10:23:38 / cg"
!
classMenuGenerateEnumTypeCode
"create an enumeration type"
self
- generateUndoableChangeOverSelectedClasses:'Generate EnumTypeCode in %(singleClassNameOrNumberOfClasses)'
- via:[:generator :eachClass |
+ generateUndoableChange:'Generate EnumTypeCode in %(singleClassNameOrNumberOfClasses)'
+ overSelectedClassesVia:[:generator :eachClass |
|cls|
cls := eachClass theNonMetaclass.
generator createEnumTypeCodeFor:cls
]
+
+ "Modified: / 21-01-2012 / 10:23:45 / cg"
!
classMenuGenerateGetterMethods
@@ -23572,30 +26558,36 @@
"create initialize method"
self
- generateUndoableChangeOverSelectedClasses:'Initialization Code for %(singleClassNameOrNumberOfClasses)'
- via:[:generator :eachClass |
+ generateUndoableChange:'Initialization Code for %(singleClassNameOrNumberOfClasses)'
+ overSelectedClassesVia:[:generator :eachClass |
generator createInitializationMethodIn:eachClass theNonMetaclass
].
+
+ "Modified: / 21-01-2012 / 10:23:53 / cg"
!
classMenuGenerateInitializeMethod
"create the initialize method"
self
- generateUndoableChangeOverSelectedClasses:'Initializer for %(singleClassNameOrNumberOfClasses)'
- via:[:generator :eachClass |
+ generateUndoableChange:'Initializer for %(singleClassNameOrNumberOfClasses)'
+ overSelectedClassesVia:[:generator :eachClass |
generator createInitializationMethodIn:eachClass theNonMetaclass
].
+
+ "Modified: / 21-01-2012 / 10:24:01 / cg"
!
classMenuGenerateInitializedInstanceCreationMethods
"create new and initialize methods"
self
- generateUndoableChangeOverSelectedClasses:'Initialized Instance Creation Code for %(singleClassNameOrNumberOfClasses)'
- via:[:generator :eachClass |
+ generateUndoableChange:'Initialized Instance Creation Code for %(singleClassNameOrNumberOfClasses)'
+ overSelectedClassesVia:[:generator :eachClass |
generator createInitializedInstanceCreationMethodsIn:eachClass theNonMetaclass
].
+
+ "Modified: / 21-01-2012 / 10:24:07 / cg"
!
classMenuGenerateMultiSetterMethod
@@ -23627,18 +26619,20 @@
selector := selector asSymbol.
self
- generateUndoableChangeOverSelectedClasses:'Parametrized Instance Creation Code for %(singleClassNameOrNumberOfClasses)'
- via:[:generator :eachClass |
+ generateUndoableChange:'Parametrized Instance Creation Code for %(singleClassNameOrNumberOfClasses)'
+ overSelectedClassesVia:[:generator :eachClass |
generator createParametrizedInstanceCreationMethodsNamed:selector in:eachClass theNonMetaclass
].
+
+ "Modified: / 21-01-2012 / 10:24:15 / cg"
!
classMenuGeneratePoolInitializationCode
"create a Pool initialization template method"
self
- generateUndoableChangeOverSelectedClasses:'Generate Pool Initialization in %(singleClassNameOrNumberOfClasses)'
- via:[:generator :eachClass |
+ generateUndoableChange:'Generate Pool Initialization in %(singleClassNameOrNumberOfClasses)'
+ overSelectedClassesVia:[:generator :eachClass |
|cls|
cls := eachClass theNonMetaclass.
@@ -23656,20 +26650,24 @@
"create redefined new methods"
self
- generateUndoableChangeOverSelectedClasses:'Redefined Instance Creation for %(singleClassNameOrNumberOfClasses)'
- via:[:generator :eachClass |
+ generateUndoableChange:'Redefined Instance Creation for %(singleClassNameOrNumberOfClasses)'
+ overSelectedClassesVia:[:generator :eachClass |
generator createRedefinedInstanceCreationMethodsIn:eachClass theNonMetaclass
].
+
+ "Modified: / 21-01-2012 / 10:24:28 / cg"
!
classMenuGenerateRequiredProtocol
"create required protocol (all inherited subclassResponsibility methods)"
self
- generateUndoableChangeOverSelectedClasses:'Generate Required Protocol in %(singleClassNameOrNumberOfClasses)'
- via:[:generator :eachClass |
+ generateUndoableChange:'Generate Required Protocol in %(singleClassNameOrNumberOfClasses)'
+ overSelectedClassesVia:[:generator :eachClass |
generator createClassResponsibleProtocolFor:eachClass
]
+
+ "Modified: / 21-01-2012 / 10:24:37 / cg"
!
classMenuGenerateSetterMethods
@@ -23691,8 +26689,8 @@
|singletonVarName|
self
- generateUndoableChangeOverSelectedClasses:'Singleton Pattern for %(singleClassNameOrNumberOfClasses)'
- via:[:generator :eachClass |
+ generateUndoableChange:'Singleton Pattern for %(singleClassNameOrNumberOfClasses)'
+ overSelectedClassesVia:[:generator :eachClass |
|theClass vars defaultNameForSingleton singletonVar|
"/ if any of the selected classes is a subclass of one of the previously processed,
@@ -23729,20 +26727,24 @@
classMenuGenerateStandardPrintOnMethod
self
- generateUndoableChangeOverSelectedClasses:'Generate PrintOn Method for %(singleClassNameOrNumberOfClasses)'
- via:[:generator :eachClass |
+ generateUndoableChange:'Generate PrintOn Method for %(singleClassNameOrNumberOfClasses)'
+ overSelectedClassesVia:[:generator :eachClass |
generator createStandardPrintOnMethodIn:eachClass theNonMetaclass
].
+
+ "Modified: / 21-01-2012 / 10:24:51 / cg"
!
classMenuGenerateUpdateMethod
"create a standard update method template"
self
- generateUndoableChangeOverSelectedClasses:'Generate%(numClassesOrEmpty)Update Method%(sForPlural)%(forSingleClassOrEmpty)'
- via:[:generator :eachClass |
+ generateUndoableChange:'Generate%(numClassesOrEmpty)Update Method%(sForPlural)%(forSingleClassOrEmpty)'
+ overSelectedClassesVia:[:generator :eachClass |
generator createUpdateMethodIn:eachClass theNonMetaclass
].
+
+ "Modified: / 21-01-2012 / 10:24:58 / cg"
!
classMenuGenerateVisitorMethods
@@ -23765,13 +26767,12 @@
LastVisitorClassName := visitorClassName.
self
- generateUndoableChangeOverSelectedClasses:'Generate Visitor Pattern'
- via:[:generator :eachClass |
+ generateUndoableChange:'Generate Visitor Pattern'
+ overSelectedClassesVia:[:generator :eachClass |
generator createVisitorMethodsIn:eachClass theNonMetaclass andVisitorClass:visitorClass
].
- "Modified: / 11.10.2001 / 22:19:09 / cg"
- "Created: / 11.10.2001 / 22:26:08 / cg"
+ "Created: / 11-10-2001 / 22:26:08 / cg"
!
classMenuGenerateVisitorMethods2
@@ -23786,7 +26787,7 @@
title:'Visitor class'
onCancel:nil
list:#()
- entryCompletionBlock:(self classNameEntryCompletionBlock).
+ entryCompletionBlock:(DoWhatIMeanSupport classNameEntryCompletionBlock).
visitorClass := self classIfValidNonMetaClassName:visitorClassName.
visitorClass isNil ifTrue:[^ nil].
@@ -23794,12 +26795,13 @@
LastVisitorClassName := visitorClassName.
self
- generateUndoableChangeOverSelectedClasses:'Generate Visitor Pattern'
- via:[:generator :eachClass |
+ generateUndoableChange:'Generate Visitor Pattern'
+ overSelectedClassesVia:[:generator :eachClass |
generator createVisitorMethodsIn:eachClass theNonMetaclass andVisitorClass2:visitorClass
].
"Created: / 07-07-2009 / 20:41:47 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 21-01-2012 / 10:25:37 / cg"
!
classMenuHierarchy
@@ -23829,7 +26831,7 @@
].
"Created: / 19-02-2007 / 16:46:16 / cg"
- "Modified: / 20-02-2007 / 10:39:30 / cg"
+ "Modified: / 26-01-2012 / 14:05:25 / cg"
!
classMenuInitialize
@@ -24656,7 +27658,7 @@
].
].
- "Modified: / 30-01-2011 / 15:51:57 / cg"
+ "Modified: / 29-12-2011 / 13:48:54 / cg"
!
classMenuPrimitiveCode:aspect
@@ -24715,6 +27717,25 @@
].
!
+classMenuRecompileAll
+ "recompile selected classes incl all subclasses (kludge - for me)"
+
+ |already|
+
+ already := Set new.
+ self selectedClassesDo:[:each |
+ each withAllSubclassesDo:[:eachClass |
+ (already includes:eachClass theNonMetaclass) ifFalse:[
+ already add:eachClass theNonMetaclass.
+ eachClass theNonMetaclass recompile.
+ eachClass theMetaclass recompile.
+ ]
+ ].
+ ].
+
+ "Created: / 07-09-2011 / 21:23:01 / cg"
+!
+
classMenuRecompileInstrumented
self selectedClassesDo:[:eachClass |
self recompileClassWithInstrumentation:eachClass
@@ -25703,16 +28724,32 @@
!
generateUndoableChange:nameOfOperation overClasses:classes via:aBlock
- "helper for code generators"
-
- |generator count dict className codeGeneratorClass|
-
- "/ remove this a.s.a.p
- (classes conform:[:cls | |lang| lang := cls programmingLanguage. lang isSmalltalk or:[lang isSTXJavaScript]]) ifFalse:[
- Dialog warn:('Sorry.\\For now, this works only for Smalltalk classes.' withCRs).
- ^ self.
- ].
- codeGeneratorClass := classes first programmingLanguage codeGeneratorClass.
+ "helper for code generators; collect changes generated by enumerating
+ classes with a generator into a user-provided block.
+ If classes is nil, the block is called once with a nil class argument."
+
+ |programmingLanguage generator count dict className codeGeneratorClass|
+
+ classes notNil ifTrue:[
+ "/ remove this a.s.a.p
+ "/ check if all classes are either smalltalk or java-script
+ (classes
+ conform:[:cls |
+ |lang|
+
+ lang := cls programmingLanguage.
+ lang isSmalltalk or:[lang isSTXJavaScript]]
+ ) ifFalse:[
+ Dialog warn:('Sorry.\\For now, this works only for Smalltalk classes.' withCRs).
+ ^ self.
+ ].
+ ].
+
+ programmingLanguage := (classes isEmptyOrNil)
+ ifTrue:[ SmalltalkLanguage instance ]
+ ifFalse:[ classes first programmingLanguage ].
+
+ codeGeneratorClass := programmingLanguage codeGeneratorClass.
codeGeneratorClass isNil ifTrue:[
Dialog warn:('Sorry.\\For now, there seems to be no codeGeneratorClass defined for this language.' withCRs).
^ self.
@@ -25723,13 +28760,17 @@
count := 0.
self withWaitCursorDo:[
- classes do:[:eachClass |
- eachClass isLoaded ifFalse:[
- Transcript showCR:'skipping unloaded class: ' , eachClass name.
- ] ifTrue:[
- aBlock value:generator value:eachClass.
- count := count + 1.
- ]
+ classes isNil ifTrue:[
+ aBlock value:generator value:nil.
+ ] ifFalse:[
+ classes do:[:eachClass |
+ eachClass isLoaded ifFalse:[
+ Transcript showCR:'skipping unloaded class: ' , eachClass name.
+ ] ifTrue:[
+ aBlock value:generator value:eachClass.
+ count := count + 1.
+ ]
+ ].
].
dict := Dictionary new.
@@ -25757,7 +28798,18 @@
]
]
- "Modified: / 30-01-2011 / 15:20:03 / cg"
+ "Modified: / 21-01-2012 / 11:11:24 / cg"
+!
+
+generateUndoableChange:nameOfOperation overSelectedClassesVia:aBlock
+ "helper for code generators"
+
+ self
+ generateUndoableChange:nameOfOperation
+ overClasses:(self selectedClasses value ? #())
+ via:aBlock
+
+ "Created: / 21-01-2012 / 10:22:19 / cg"
!
generateUndoableChangeOverSelectedClasses:nameOfOperation via:aBlock
@@ -25772,10 +28824,12 @@
generateUndoableChangeOverSelectedMethods:nameOfOperation via:aBlock
"helper for code generators"
- |generator count dict method methodName languageOfFirstMethod|
-
- languageOfFirstMethod := self selectedMethods value first mclass language.
- (self selectedMethods value conform:[:mthd | (mthd mclass language) = languageOfFirstMethod]) ifFalse:[
+ |selMethods generator count dict method methodName languageOfFirstMethod|
+
+ selMethods := self selectedMethods value.
+
+ languageOfFirstMethod := selMethods first mclass programmingLanguage.
+ (selMethods conform:[:mthd | (mthd mclass programmingLanguage) = languageOfFirstMethod]) ifFalse:[
Dialog warn:'All methods must be defined in the same programming language'.
^ self
].
@@ -25810,7 +28864,8 @@
generator executeCollectedChangesNamed:(nameOfOperation expandPlaceholdersWith:dict)
- "Modified: / 30-01-2011 / 15:20:35 / cg"
+ "Modified: / 06-12-2011 / 15:27:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 21-12-2011 / 15:46:19 / cg"
!
launchSelectedApplication
@@ -25949,9 +29004,10 @@
compile :=
[:cls :sel :mthd |
- (mthd sends:#subclassResponsibility) ifFalse:[
+ ((mthd sends:#subclassResponsibility)
+ or:[ (mthd sends:#subclassResponsibility:) ]) ifFalse:[
mthd hasPrimitiveCode ifFalse:[
- cls recompile:sel usingCompilerClass:InstrumentingCompiler
+ cls recompile:sel usingCompiler:InstrumentingCompiler new
]
]
].
@@ -25975,7 +29031,7 @@
].
"Created: / 10-08-2010 / 14:36:45 / cg"
- "Modified: / 06-07-2011 / 21:44:17 / cg"
+ "Modified: / 30-09-2011 / 12:46:34 / cg"
!
recompileMethodWithInstrumentation:aMethod
@@ -25983,7 +29039,7 @@
aMethod hasPrimitiveCode ifFalse:[
aMethod mclass
recompile:aMethod selector
- usingCompilerClass:InstrumentingCompiler
+ usingCompiler:InstrumentingCompiler new
]
]
@@ -26078,6 +29134,12 @@
]
!
+spawnBrowserOnClass:cls
+ self spawnClassBrowserFor:(Array with:cls) in:#newBuffer
+
+ "Created: / 26-10-2011 / 18:28:21 / cg"
+!
+
spawnClassBrowserFor:classes in:where
"browse selected class(es);
where is: #newBrowser - open a new browser showing the classes
@@ -26103,11 +29165,13 @@
allClasses := OrderedCollection new.
classes do:[:eachClass |
- eachClass withAllPrivateClassesDo:[:everyClass |
+ eachClass theNonMetaclass withAllPrivateClassesDo:[:everyClass |
allClasses add:everyClass
].
].
^ self spawnClassBrowserFor:allClasses label:titleOrNil in:where select:true
+
+ "Modified: / 19-10-2011 / 16:06:25 / cg"
!
spawnClassBrowserFor:classes label:labelOrNil in:where select:doSelectIn
@@ -26125,7 +29189,7 @@
meta := singleClass isMeta.
doSelect := true.
] ifFalse:[
- spec := #multipleClassBrowserSpec.
+ spec := #fullBrowserSpec. "/#multipleClassBrowserSpec.
meta := self meta value ? false.
].
@@ -26163,7 +29227,7 @@
brwsr meta onChangeEvaluate:[ brwsr classListGenerator changed ].
]
- "Modified: / 1.3.2000 / 11:54:08 / cg"
+ "Modified: / 26-10-2011 / 18:49:25 / cg"
!
spawnClassBrowserForSearch:searchBlock sortBy:sortByWhat in:openHow label:lbl
@@ -26379,68 +29443,61 @@
] ifFalse:[
allRefs := IdentitySet new.
aCollectionOfClasses do:[:eachClassInQuestion |
- |sym symInsideNamespace symInsideOwner refsHere|
+ |findRefs sym classesNameSpace symInsideNamespace symInsideOwner refsHere|
sym := eachClassInQuestion theNonMetaclass name.
-
- refsHere := self class
- findMethodsIn:(Smalltalk allClasses)
- where:[:cls :mthd :sel |
- |mSource|
+ classesNameSpace := eachClassInQuestion theNonMetaclass nameSpace.
+
+ findRefs :=
+ [:setOfClasses |
+ self class
+ findMethodsIn:setOfClasses
+ where:[:cls :mthdIn :sel |
+ |mthd mSource isCandidate isReference usedGlobals|
+
+ mthd := mthdIn.
+ mthd isWrapped ifTrue:[ mthd := mthd originalMethod ].
"/ kludge: Lazy methods do not include symbols in the literal array - sigh
mthd isLazyMethod ifTrue:[
mSource := mthd source.
- (mSource notNil
- and:[(mSource includesString:sym)
- and:[mthd usedGlobals includes:sym]])
+ isCandidate := mSource notNil and:[ mSource includesString:sym].
] ifFalse:[
- ((mthd referencesLiteral:sym)
- and:[mthd usedGlobals includes:sym])
- ]
- ].
+ isCandidate := mthd referencesLiteral:sym
+ ].
+ isReference := false.
+ isCandidate ifTrue:[
+ usedGlobals := mthd usedGlobals.
+ isReference := (usedGlobals includes:sym).
+ isReference ifFalse:[
+ (mthd referencesLiteral:classesNameSpace name) ifTrue:[
+ isReference := mthd sendsAny:#(#'at:' #'at:ifAbsent:' #'classNamed:')
+ ].
+ isReference ifFalse:[
+ classesNameSpace ~= Smalltalk ifTrue:[
+ (mthd referencesLiteral:#Smalltalk) ifTrue:[
+ isReference := mthd sendsAny:#(#'at:' #'at:ifAbsent:' #'classNamed:')
+ ].
+ ]
+ ]
+ ]
+ ].
+ isReference
+ ].
+ ].
+
+ refsHere := findRefs value:(Smalltalk allClasses).
allRefs addAll:refsHere.
(eachClassInQuestion nameSpace notNil
and:[ eachClassInQuestion nameSpace ~~ Smalltalk ]) ifTrue:[
symInsideNamespace := eachClassInQuestion theNonMetaclass nameWithoutNameSpacePrefix asSymbol.
- refsHere := self class
- findMethodsIn:(eachClassInQuestion topNameSpace allClassesWithAllPrivateClasses)
- where:[:cls :mthd :sel |
- |mSource|
-
- "/ kludge: Lazy methods do not include symbols in the literal array - sigh
- mthd isLazyMethod ifTrue:[
- mSource := mthd source.
- (mSource notNil
- and:[(mSource includesString:symInsideNamespace)
- and:[mthd usedGlobals includes:sym]])
- ] ifFalse:[
- ((mthd referencesLiteral:symInsideNamespace)
- and:[mthd usedGlobals includes:sym])
- ]
- ].
+ refsHere := findRefs value:(eachClassInQuestion topNameSpace allClassesWithAllPrivateClasses).
allRefs addAll:refsHere.
].
(eachClassInQuestion owningClass notNil) ifTrue:[
symInsideOwner := eachClassInQuestion theNonMetaclass nameWithoutPrefix asSymbol.
-
- refsHere := self class
- findMethodsIn:(Array with:eachClassInQuestion owningClass)
- where:[:cls :mthd :sel |
- |mSource|
-
- "/ kludge: Lazy methods do not include symbols in the literal array - sigh
- mthd isLazyMethod ifTrue:[
- mSource := mthd source.
- (mSource notNil
- and:[(mSource includesString:symInsideOwner)
- and:[mthd usedGlobals includes:sym]])
- ] ifFalse:[
- ((mthd referencesLiteral:symInsideOwner)
- and:[mthd usedGlobals includes:sym])
- ]
- ].
+ refsHere := findRefs value:(Array with:eachClassInQuestion owningClass).
allRefs addAll:refsHere.
].
].
@@ -26462,6 +29519,8 @@
brwsr autoSearchPattern:singleClassName ignoreCase:false.
]
].
+
+ "Modified (format): / 25-11-2011 / 14:02:17 / cg"
!
spawnMultipleClassBrowserFor:classes sortBy:sortHow in:where
@@ -26687,13 +29746,15 @@
aDefinitionClass excludeClasses:toExclude usingCompiler:generator.
!
-includeClassInProject:aClass using:compiler
+includeClassInProject:aClass usingManager:compiler
"include (add to classList) a class."
self
includeClasses:(Array with: aClass)
inProject:aClass projectDefinitionClass
- using:compiler
+ usingManager:compiler
+
+ "Created: / 21-12-2011 / 20:17:48 / cg"
!
includeClasses: toInclude inProject:aDefinitionClass using:compiler
@@ -26723,11 +29784,163 @@
"Created: / 08-02-2011 / 09:45:56 / cg"
!
+askForRepositoryVersionOf:aClass withSourceDo:aTwoArgBlock
+ "helper for comapre class against version and compare method against version.
+ Ask for a version in the repository, fetch it and call ablock with
+ the source and revision info string as arguments.
+ Returns false, if no source could be fetched, true if the block was called"
+
+ |aStream comparedSource rev revInfoString mgr
+ nm msg rev2 newestRev
+ containerModule containerPackage containerFile rslt
+ pkg info mod dir versionsAreTheSame|
+
+ nm := aClass name.
+ mgr := SourceCodeManagerUtilities default sourceCodeManagerFor:aClass.
+ mgr isNil ifTrue:[
+ ^ false
+ ].
+ rev := aClass binaryRevision.
+ rev2 := aClass revision.
+ rev isNil ifTrue:[
+ rev := rev2
+ ].
+ rev isNil ifTrue:[
+ "/
+ "/ class not in repository - allow compare against any other containers newest contents
+ "/
+ self normalLabel.
+
+ pkg := aClass package.
+ (pkg notNil and:[pkg ~= PackageId noProjectID]) ifTrue:[
+ containerModule := pkg upTo:$:.
+ containerPackage := pkg copyFrom:(containerModule size + 2).
+ ].
+ containerModule size == 0 ifTrue:[
+ containerModule := (SourceCodeManagerUtilities lastModule) ? Project current repositoryModule.
+ ].
+ containerPackage size == 0 ifTrue:[
+ containerPackage := (SourceCodeManagerUtilities lastPackage) ? Project current package.
+ ].
+ rslt := SourceCodeManagerUtilities default
+ askForContainer:(resources string:'The class seems to have no repository information.\\Do you want to compare it against an existing containers contents ?')
+ title:'Container to compare' note:nil
+ initialModule:containerModule
+ initialPackage:containerPackage
+ initialFileName:(aClass nameWithoutPrefix , '.st')
+ forNewContainer:false.
+ rslt isNil ifTrue:[
+ "/ canel
+ ^ false
+ ].
+ containerModule := rslt at:#module.
+ containerPackage := rslt at:#package.
+ containerFile := rslt at:#fileName.
+ SourceCodeManagerUtilities lastModule:containerModule.
+ SourceCodeManagerUtilities lastPackage:containerPackage.
+ ] ifFalse:[
+ "/
+ "/ class in repository - ask for revision
+ "/
+ newestRev := mgr newestRevisionOf:aClass.
+
+ msg := resources string:'Compare to revision: (empty for newest)'.
+ rev notNil ifTrue:[
+ msg := msg , '\\' , (resources string:'Current %1 is based upon rev %2.'
+ with:nm allBold with:rev).
+ (rev2 notNil and:[rev2 ~= rev]) ifTrue:[
+ msg := msg , '\' , (resources string:'And has been checked into the repository as %1.' with:rev2)
+ ]
+ ].
+ newestRev notNil ifTrue:[
+ msg := msg , '\' , (resources string:'Newest in reporitory is %1.' with:newestRev)
+ ].
+
+ self normalLabel.
+ rev := SourceCodeManagerUtilities default
+ askForExistingRevision:msg
+ title:'Compare with repository'
+ class:aClass
+ ].
+
+ versionsAreTheSame := false.
+ (rev notNil or:[containerFile notNil]) ifFalse:[
+ self normalLabel.
+ ^ false
+ ].
+
+ rev notNil ifTrue:[
+ rev withoutSpaces isEmpty ifTrue:[
+ msg := 'extracting newest %1 (' , (newestRev ? '???') , ')'.
+ "/ aStream := mgr getMostRecentSourceStreamForClassNamed:nm.
+ rev := newestRev.
+ revInfoString := 'newest'.
+ ] ifFalse:[
+ msg := 'extracting previous %1'.
+ revInfoString := rev
+ ].
+ aStream := mgr getSourceStreamFor:aClass revision:rev.
+ ] ifFalse:[
+ msg := 'extracting newest version from ' , containerModule , '/' , containerPackage, '/' , containerFile.
+ aStream := mgr streamForClass:nil fileName:containerFile revision:#newest directory:containerPackage module:containerModule cache:false.
+ revInfoString := '???'
+ ].
+ self busyLabel:msg with:nm.
+
+ aStream isNil ifTrue:[
+ info := mgr sourceInfoOfClass:aClass.
+ info notNil ifTrue:[
+ mod := info at:#module ifAbsent:'??'.
+ dir := info at:#directory ifAbsent:'??'.
+ ].
+
+ self warn:(resources
+ string:'Could not extract source from repository (for module: ''%1'' , directory: ''%2'' , revision: ''%3'')'
+ with:mod with:dir with:revInfoString).
+ self normalLabel.
+ ^ false
+ ].
+
+ aStream class readErrorSignal handle:[:ex |
+ self warn:('read error while reading extracted source\\' , ex description) withCRs.
+ aStream close.
+ self normalLabel.
+ ^ false
+ ] do:[
+ comparedSource := aStream contents asString.
+ ].
+ aStream close.
+
+ revInfoString = '(newest)' ifTrue:[
+ |rev|
+
+ (rev := mgr newestRevisionOf:aClass) notNil ifTrue:[
+ revInfoString := '(newest is ' , rev , ')'
+ ]
+ ].
+
+ aTwoArgBlock value:comparedSource value:revInfoString.
+
+ self normalLabel.
+ ^ true.
+
+ "Created: / 29-11-2011 / 13:10:05 / cg"
+!
+
checkInClasses:aCollectionOfClasses withInfo:logInfoOrNil withCheck:doCheck
"check a bunch of classes into the source repository.
If logInfoOrNil isNil, ask for one."
- |classesNotInPackage msg answer errors|
+ self checkInClasses:aCollectionOfClasses withInfo:logInfoOrNil withCheck:doCheck usingManager:nil
+
+ "Modified: / 21-12-2011 / 18:23:10 / cg"
+!
+
+checkInClasses:aCollectionOfClasses withInfo:logInfoOrNil withCheck:doCheck usingManager:aManagerOrNil
+ "check a bunch of classes into the source repository.
+ If logInfoOrNil isNil, ask for one."
+
+ |classesNotInPackage utilities msg answer errors|
errors := self checkCompilabilityOfAll:aCollectionOfClasses errorsOnly:true.
errors notEmptyOrNil ifTrue:[
@@ -26737,11 +29950,16 @@
].
].
+ utilities := aManagerOrNil isNil
+ ifTrue:[ SourceCodeManagerUtilities default ]
+ ifFalse:[ aManagerOrNil utilities ].
+
self withActivityNotificationsRedirectedToInfoLabelDo:[
- SourceCodeManagerUtilities
+ utilities
checkinClasses:aCollectionOfClasses
withInfo:logInfoOrNil
- withCheck:doCheck.
+ withCheck:doCheck
+ usingManager:aManagerOrNil.
].
classesNotInPackage := aCollectionOfClasses select:[:cls |
@@ -26771,20 +29989,20 @@
)
labels:(resources array:#('Cancel' 'Autoloaded' 'Compiled')).
answer == nil ifTrue:[^ self ].
- answer == true ifTrue:[
- classesNotInPackage do:[:eachClass |
- eachClass projectDefinitionClass
- includeClasses:{ eachClass } usingCompiler:nil
- ].
- ] ifFalse:[
- classesNotInPackage do:[:eachClass |
- eachClass projectDefinitionClass
- makeClassesAutoloaded:{ eachClass } usingCompiler:nil
- ].
- ].
- ].
-
- "Modified: / 02-11-2010 / 13:19:35 / cg"
+
+ classesNotInPackage do:[:eachClass |
+ |defClass|
+
+ defClass := eachClass projectDefinitionClass.
+ answer == true ifTrue:[
+ defClass includeClasses:{ eachClass } usingCompiler:nil
+ ] ifFalse:[
+ defClass makeClassesAutoloaded:{ eachClass } usingCompiler:nil
+ ].
+ ].
+ ].
+
+ "Created: / 21-12-2011 / 18:22:58 / cg"
!
checkOutClass:aClass askForRevision:askForRevision
@@ -26801,6 +30019,22 @@
"Modified: / 01-03-2007 / 17:47:32 / cg"
!
+checkOutClass:aClass askForRevision:askForRevision usingManager: manager
+ "check-out a single class from the source repository.
+ Offer a chance to either merge-in a version, or overload the current version.
+ If askForRevision is false, fetch the newest revision(s),
+ otherwise ask for the revision."
+
+ self withActivityNotificationsRedirectedToInfoLabelDo:[
+ manager utilities
+ checkoutClass:aClass askForRevision:askForRevision askForMerge:true.
+ ]
+
+ "Modified: / 01-03-2007 / 17:47:32 / cg"
+ "Created: / 11-10-2011 / 23:12:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:26:27 / cg"
+!
+
checkOutClasses:classes askForRevision:askForRevision
"check-out a bunch of classes from the source repository.
Offer chance to either overwrite the current version,
@@ -26808,6 +30042,18 @@
If askForRevision is false, fetch the newest revision(s),
otherwise ask for the revision."
+ self checkOutClasses:classes askForRevision:askForRevision usingManager:nil
+
+ "Modified: / 22-12-2011 / 11:05:05 / cg"
+!
+
+checkOutClasses:classes askForRevision:askForRevision usingManager:aManagerOrNil
+ "check-out a bunch of classes from the source repository.
+ Offer chance to either overwrite the current version,
+ or merge-in the repository version.
+ If askForRevision is false, fetch the newest revision(s),
+ otherwise ask for the revision."
+
|alreadyCheckedOut|
(self askIfModified:'Code was modified.\\CheckOut anyway ?')
@@ -26842,7 +30088,12 @@
ex proceed.
] do:[
self withActivityNotificationsRedirectedToInfoLabelDo:[
- SourceCodeManagerUtilities
+ |utilities|
+
+ utilities := aManagerOrNil notNil
+ ifTrue:[ aManagerOrNil utilities ]
+ ifFalse:[ SourceCodeManagerUtilities default ].
+ utilities
checkoutClass:cls askForRevision:askForRevision askForMerge:true askForConfirmation:false.
].
alreadyCheckedOut add:cls.
@@ -26865,7 +30116,7 @@
AbortAllOperationRequest raise "/ cancel
].
answer == true ifTrue:[
- self checkOutClass:owner askForRevision:askForRevision.
+ self checkOutClass:owner askForRevision:askForRevision usingManager:aManagerOrNil.
alreadyCheckedOut add:owner.
].
]
@@ -26874,20 +30125,16 @@
].
self normalLabel.
- "Modified: / 09-02-2011 / 14:01:59 / cg"
+ "Created: / 11-10-2011 / 23:11:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:15:33 / cg"
!
classMenuCheckIn
"check a class into the source repository (with checks)"
- |doChecks|
-
- doChecks := (UserPreferences current at:#checkClassesWhenCheckingIn ifAbsent:true).
- doChecks := doChecks asValue.
- self classMenuCheckIn:doChecks.
- doChecks value ~~ (UserPreferences current at:#checkClassesWhenCheckingIn ifAbsent:true) ifTrue:[
- UserPreferences current at:#checkClassesWhenCheckingIn put:doChecks value
- ].
+ self classMenuCheckInUsingManager:nil
+
+ "Modified: / 21-12-2011 / 18:20:40 / cg"
!
classMenuCheckIn:doCheck
@@ -26897,9 +30144,9 @@
Otherwise, a no check is done, and the class is quickly checked in.
"
- ^ self
- classMenuCheckIn:doCheck
- classes:(self selectedClasses value)
+ ^ self classMenuCheckIn:doCheck usingManager:nil
+
+ "Modified: / 21-12-2011 / 18:21:44 / cg"
!
classMenuCheckIn:doCheck classes:classesSelected
@@ -26909,6 +30156,18 @@
Otherwise, a no check is done, and the class is quickly checked in.
"
+ self classMenuCheckIn:doCheck classes:classesSelected usingManager:nil
+
+ "Modified: / 21-12-2011 / 18:22:24 / cg"
+!
+
+classMenuCheckIn:doCheck classes:classesSelected usingManager:aManagerOrNil
+ "check a class into the source repository.
+ If doCheck is true, perform some checks (leftover halts etc.) on
+ the class (which may take some time with huge classes).
+ Otherwise, a no check is done, and the class is quickly checked in.
+ "
+
|classesToCheckIn|
(self askIfModified:'Code was modified.\\CheckIn (without that modification) anyway ?')
@@ -26955,18 +30214,34 @@
].
classesToCheckIn notEmpty ifTrue:[
- self checkInClasses:classesToCheckIn withInfo:nil withCheck:doCheck.
+ self checkInClasses:classesToCheckIn withInfo:nil withCheck:doCheck usingManager:aManagerOrNil.
].
self normalLabel.
+
+ "Created: / 21-12-2011 / 18:22:09 / cg"
+!
+
+classMenuCheckIn:doCheck usingManager:aManagerOrNil
+ "check a class into the source repository.
+ If doCheck is true, perform some checks (leftover halts etc.) on
+ the class (which may take some time with huge classes).
+ Otherwise, a no check is done, and the class is quickly checked in.
+ "
+
+ ^ self
+ classMenuCheckIn:doCheck
+ classes:(self selectedClasses value)
+ usingManager:aManagerOrNil
+
+ "Created: / 21-12-2011 / 18:21:30 / cg"
!
classMenuCheckInAllChangedClasses
"check in all changed classes into the source repository (with checks)"
- |doChecks|
-
- doChecks := (UserPreferences current at:#checkClassesWhenCheckingIn ifAbsent:true).
- ^ self classMenuCheckInAllChangedClasses:doChecks
+ ^ self classMenuCheckInAllChangedClassesUsingManager:nil
+
+ "Modified: / 21-12-2011 / 19:52:29 / cg"
!
classMenuCheckInAllChangedClasses:doCheck
@@ -26976,9 +30251,43 @@
Otherwise, a no check is done, and the class is quickly checked in.
"
+ ^ self classMenuCheckInAllChangedClasses:doCheck usingManager:nil
+
+ "Modified: / 21-12-2011 / 19:53:00 / cg"
+!
+
+classMenuCheckInAllChangedClasses:doCheck usingManager:aManagerOrNil
+ "check all changed classes into the source repository.
+ If doCheck is true, perform some checks (leftover halts etc.) on
+ the class (which may take some time with huge classes).
+ Otherwise, a no check is done, and the class is quickly checked in.
+ "
+
^ self
classMenuCheckIn:doCheck
classes:(ChangeSet current changedClasses)
+ usingManager:aManagerOrNil
+
+ "Created: / 21-12-2011 / 19:52:50 / cg"
+!
+
+classMenuCheckInAllChangedClassesUsingManager:aManagerOrNil
+ "check in all changed classes into the source repository (with checks)"
+
+ |doChecks|
+
+ doChecks := (UserPreferences current at:#checkClassesWhenCheckingIn ifAbsent:true).
+ ^ self classMenuCheckInAllChangedClasses:doChecks usingManager:aManagerOrNil
+
+ "Created: / 21-12-2011 / 19:52:16 / cg"
+!
+
+classMenuCheckInAllChangedClassesUsingManagerNamed:aManagerName
+ "check in all changed classes into the source repository (with checks)"
+
+ ^ self classMenuCheckInAllChangedClassesUsingManager:(Smalltalk at:aManagerName asSymbol)
+
+ "Created: / 21-12-2011 / 20:04:27 / cg"
!
classMenuCheckInExtensions
@@ -27021,13 +30330,39 @@
(self askIfModified:'Code was modified.\\CheckIn (without that modification) anyway ?')
ifFalse:[^ self].
-
- self
- projectMenuCheckInProject:aProjectID
- classes:false
- extensions:true
- buildSupport:false
- askForMethodsInOtherPackages:false
+ self withWaitCursorDo:[
+ self
+ projectMenuCheckInProject:aProjectID
+ classes:false
+ extensions:true
+ buildSupport:false
+ askForMethodsInOtherPackages:false
+ ]
+
+ "Modified: / 08-09-2011 / 04:07:58 / cg"
+!
+
+classMenuCheckInUsingManager:aManagerOrNil
+ "check a class into the source repository (with checks)"
+
+ |doChecks|
+
+ doChecks := (UserPreferences current at:#checkClassesWhenCheckingIn ifAbsent:true).
+ doChecks := doChecks asValue.
+ self classMenuCheckIn:doChecks usingManager:aManagerOrNil.
+ doChecks value ~~ (UserPreferences current at:#checkClassesWhenCheckingIn ifAbsent:true) ifTrue:[
+ UserPreferences current at:#checkClassesWhenCheckingIn put:doChecks value
+ ].
+
+ "Created: / 21-12-2011 / 18:20:19 / cg"
+!
+
+classMenuCheckInUsingManagerNamed:sourceCodeManagerClassName
+ "check a class into the source repository (with checks)"
+
+ self classMenuCheckInUsingManager:(Smalltalk at:sourceCodeManagerClassName asSymbol)
+
+ "Created: / 21-12-2011 / 20:03:01 / cg"
!
classMenuCheckOut
@@ -27049,6 +30384,31 @@
self checkOutClasses:(self selectedClasses value) askForRevision:false
!
+classMenuCheckOutNewestUsingManager: manager
+ "check-out the newest version of the selected class(es) from the source repository.
+ Offer chance to either overwrite the current version,
+ or merge-in the repository version.
+ "
+
+ self checkOutClasses:(self selectedClasses value) 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"
+!
+
+classMenuCheckOutUsingManager: manager
+ "check-out selected class(es) from the source repository.
+ Individually ask for class revisions.
+ Offer chance to either overwrite the current version,
+ or merge-in the repository version.
+ "
+
+ self checkOutClasses:(self selectedClasses value) 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"
+!
+
classMenuCompareAgainstNewestInRepository
"open a diff-textView comparing the current (in-image) version
with the the newest version found in the repository.
@@ -27059,13 +30419,52 @@
"Modified: / 13-10-2006 / 11:44:09 / cg"
!
+classMenuCompareAgainstNewestInRepositoryUsingManager:aManagerOrNil
+ "open a diff-textView comparing the current (in-image) version
+ 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"
+ "Created: / 21-12-2011 / 19:55:56 / cg"
+!
+
+classMenuCompareAgainstNewestInRepositoryUsingManagerNamed:sourceCodeManagerClassName
+ "open a diff-textView comparing the current (in-image) version
+ with the the newest version found in the repository.
+ That is the most recent version."
+
+ self classMenuCompareAgainstNewestInRepositoryUsingManager:(Smalltalk at:sourceCodeManagerClassName asSymbol)
+
+ "Created: / 21-12-2011 / 20:35:43 / cg"
+!
+
classMenuCompareAgainstOriginalInRepository
"open a diff-textView comparing the current (in-image) version
with the the base version found in the repository.
That is the version on which the class was based upon, not the most recent one."
+ |currentClass mgr|
+
+ currentClass := self theSingleSelectedLoadedNonMetaclassOrNil.
+ currentClass isNil ifTrue:[
+ self warn:'Cannot compare unloaded classes.'.
+ ^ self.
+ ].
+ mgr := SourceCodeManagerUtilities default sourceCodeManagerFor:currentClass.
+ self classMenuCompareAgainstOriginalInRepositoryUsingManager:mgr.
+
+ "Modified: / 21-12-2011 / 22:49:35 / cg"
+!
+
+classMenuCompareAgainstOriginalInRepositoryUsingManager: manager
+ "open a diff-textView comparing the current (in-image) version
+ with the the base version found in the repository.
+ That is the version on which the class was based upon, not the most recent one."
+
|currentClass
- aStream comparedSource currentSource rev revString thisRevString mgr
+ aStream comparedSource currentSource rev revInfo revString thisRevString mgr
nm msg newestRev brwsr|
currentClass := self theSingleSelectedLoadedNonMetaclassOrNil.
@@ -27075,14 +30474,16 @@
].
nm := currentClass name.
- mgr := SourceCodeManagerUtilities sourceCodeManagerFor:currentClass.
+ mgr := manager.
mgr isNil ifTrue:[
^ self
].
- rev := currentClass binaryRevision.
- rev isNil ifTrue:[
- rev := currentClass revision.
- ].
+ revInfo := currentClass revisionInfoOfManager: manager.
+ revInfo ifNil:[
+ self warn:('The class seems to have no repository information for %1.' bindWith: mgr managerTypeName).
+ ^ self
+ ].
+ rev := revInfo revision.
rev isNil ifTrue:[
self warn:'The class seems to have no repository information.'.
^ self
@@ -27153,7 +30554,96 @@
].
self normalLabel.
- "Modified: / 01-03-2007 / 20:47:37 / cg"
+ "Modified: / 11-10-2011 / 14:37:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:28:18 / cg"
+!
+
+classMenuCompareAgainstOriginalInRepositoryUsingManagerNamed:sourceCodeManagerClassName
+ "open a diff-textView comparing the current (in-image) version
+ with the the base version found in the repository.
+ That is the version on which the class was based upon, not the most recent one."
+
+ self classMenuCompareAgainstOriginalInRepositoryUsingManager:(Smalltalk at:sourceCodeManagerClassName asSymbol)
+
+ "Created: / 21-12-2011 / 22:50:51 / cg"
+!
+
+classMenuCompareClassExtensionsWithRepository
+ "open a diff-textView comparing the current (in-image) extensions of the selected class
+ with the some extensions version found in the repository."
+
+ |currentClass extensionMethods extensionMethodChangesInImage extensionProjectDefinitions
+ extensionMethodChangesInRepository diffSet versionsAreTheSame|
+
+ currentClass := self theSingleSelectedLoadedNonMetaclassOrNil.
+ currentClass isNil ifTrue:[^ self].
+
+ extensionMethods := currentClass methodDictionary values select:[:mthd | mthd isExtension].
+
+ extensionProjectDefinitions := Set new.
+ ProjectDefinition allSubclasses do:[:eachProjectDefinition |
+ (eachProjectDefinition extensionClasses includes:currentClass) ifTrue:[
+ extensionProjectDefinitions add:eachProjectDefinition.
+ ].
+ ].
+
+ extensionMethodChangesInImage := ChangeSet forExistingClass:currentClass withExtensions:true extensionsOnly:true.
+ extensionMethodChangesInRepository := ChangeSet new.
+
+ extensionProjectDefinitions do:[:eachProjectDefinition |
+ |mgr revString info rev package changesHere changesHereForMe|
+
+ package := eachProjectDefinition package.
+ mgr := SourceCodeManagerUtilities default sourceCodeManagerFor:eachProjectDefinition.
+ mgr isNil ifTrue:[
+ Dialog warn:(resources string:'No sourceCodeManager known for %1.' with:eachProjectDefinition package).
+ ] ifFalse:[
+ rev := mgr
+ newestRevisionInFile:'extensions.st'
+ directory:(eachProjectDefinition directory)
+ module:(eachProjectDefinition module).
+ "/ revString := eachProjectDefinition perform:(mgr nameOfVersionMethodForExtensions) ifNotUnderstood:nil.
+ "/ revString isNil ifTrue:[
+ "/ Dialog warn:(resources string:'%1 seems to not have any extensions (loaded)' with:package).
+ "/] ifFalse:[
+ "/ info := mgr revisionInfoFromString:revString.
+ "/ rev := info revision.
+ "/
+ "/ ask for revision
+ "/
+"/ newestRev := mgr
+"/ newestRevisionInFile:'extensions.st'
+"/ directory:(eachProjectDefinition directory)
+"/ module:(eachProjectDefinition module).
+
+ changesHere := SourceCodeManagerUtilities default
+ changeSetForExtensionMethodsForPackage:package
+ revision:rev orAskForRevision:false
+ usingManager:mgr.
+ changesHereForMe := changesHere select:[:chg | chg isMethodChange
+ and:[chg changeClass == currentClass]].
+ extensionMethodChangesInRepository addAll:changesHereForMe.
+ "/ ].
+ ].
+ ].
+
+ versionsAreTheSame := false.
+ diffSet := extensionMethodChangesInImage diffSetsAgainst:extensionMethodChangesInRepository.
+ diffSet isEmpty ifTrue:[
+ self information:'Versions are identical.'.
+ ^ self
+ ].
+
+ (UserPreferences versionDiffViewerClass)
+ openOnDiffSet:diffSet
+ labelA:'Current (In Image)'
+ labelB:('Repository (%1 extension package(s))' bindWith:extensionProjectDefinitions size)
+ title:'Diffs'
+ ignoreExtensions:false.
+
+ self normalLabel.
+
+ "Created: / 12-09-2011 / 11:21:39 / cg"
!
classMenuCompareExtensionsWithRepository
@@ -27163,13 +30653,14 @@
|currentClass projectDefinition rev revString mgr msg newestRev diffSet info versionsAreTheSame changeSetForMethodsInRepository changeSetForMethodsInImage|
currentClass := self theSingleSelectedLoadedNonMetaclassOrNil.
- (currentClass isNil
- or:[(projectDefinition := currentClass theNonMetaclass) isProjectDefinition not]) ifTrue:[
- self warn:'Oops - select a ProjectDefinition class.'.
- ^ self.
- ].
-
- mgr := SourceCodeManagerUtilities sourceCodeManagerFor:projectDefinition.
+ currentClass isNil ifTrue:[^ self].
+
+ (projectDefinition := currentClass theNonMetaclass) isProjectDefinition ifFalse:[
+ self classMenuCompareClassExtensionsWithRepository.
+ ^ self.
+ ].
+
+ mgr := SourceCodeManagerUtilities default sourceCodeManagerFor:projectDefinition.
mgr isNil ifTrue:[
^ self
].
@@ -27201,7 +30692,7 @@
].
self normalLabel.
- rev := SourceCodeManagerUtilities
+ rev := SourceCodeManagerUtilities default
askForExistingRevision:msg
title:'Compare Extensions against Revision'
class:nil
@@ -27224,10 +30715,10 @@
revString := rev
].
changeSetForMethodsInRepository :=
- SourceCodeManagerUtilities
+ SourceCodeManagerUtilities default
changeSetForExtensionMethodsForPackage:projectDefinition package
revision:revString orAskForRevision:false
- using:mgr.
+ usingManager:mgr.
changeSetForMethodsInImage := ChangeSet forExistingMethods:(
Method allInstances
@@ -27241,12 +30732,19 @@
openOnDiffSet:diffSet
labelA:'Current (In Image)'
labelB:'Repository (',rev,')'
- title:'Diffs'.
+ title:'Diffs'
+ ignoreExtensions:false.
self normalLabel.
"Created: / 04-01-1997 / 15:48:20 / cg"
- "Modified: / 01-03-2007 / 20:50:08 / cg"
+ "Modified: / 21-12-2011 / 20:21:14 / cg"
+!
+
+classMenuCompareExtensionsWithRepositoryUsingManager: aManager
+ ^ Dialog warn: 'Not yet implemented'
+
+ "Created: / 21-12-2011 / 20:28:28 / cg"
!
classMenuCompareTwoRepositoryVersions
@@ -27262,19 +30760,19 @@
].
nm := currentClass name.
- mgr := SourceCodeManagerUtilities sourceCodeManagerFor:currentClass.
+ mgr := SourceCodeManagerUtilities default sourceCodeManagerFor:currentClass.
mgr isNil ifTrue:[
^ self
].
self normalLabel.
- rev1 := SourceCodeManagerUtilities
+ rev1 := SourceCodeManagerUtilities default
askForExistingRevision:(resources string:'Compare which revision:')
title:(resources string:'Compare which repository version')
class:currentClass.
rev1 isNil ifTrue:[^ self].
- rev2 := SourceCodeManagerUtilities
+ rev2 := SourceCodeManagerUtilities default
askForExistingRevision:(resources string:'Against which revision:')
title:(resources string:'Against which repository version')
class:currentClass.
@@ -27305,6 +30803,71 @@
"Modified: / 08-02-2011 / 10:26:45 / cg"
!
+classMenuCompareTwoRepositoryVersionsUsingManager: manager
+ "open a diff-textView comparing two versions found in the repository."
+
+ |currentClass source1 source2 mgr
+ nm rev1 rev2 versionsAreTheSame|
+
+ currentClass := self theSingleSelectedLoadedNonMetaclassOrNil.
+ currentClass isNil ifTrue:[
+ self warn:'Cannot compare unloaded classes.'.
+ ^ self.
+ ].
+
+ nm := currentClass name.
+ mgr := manager.
+ mgr isNil ifTrue:[
+ ^ self
+ ].
+
+ self normalLabel.
+ rev1 := manager utilities
+ askForExistingRevision:(resources string:'Compare which revision:')
+ title:(resources string:'Compare which repository version')
+ class:currentClass.
+ rev1 isNil ifTrue:[^ self].
+
+ rev2 := manager utilities
+ askForExistingRevision:(resources string:'Against which revision:')
+ title:(resources string:'Against which repository version')
+ class:currentClass.
+ rev2 isNil ifTrue:[^ self].
+
+ source1 := self getClassSourceFor:currentClass revision:rev1 usingManager: manager.
+ source2 := self getClassSourceFor:currentClass revision:rev2 usingManager: manager.
+
+ self busyLabel:'comparing ...' with:nil.
+ versionsAreTheSame := (source1 = source2).
+ versionsAreTheSame ifFalse:[
+ self busyLabel:'comparing ...' with:nil.
+ (UserPreferences versionDiffViewerClass)
+ openOnClass:currentClass
+ labelA:(rev1)
+ sourceA:source1
+ labelB:(rev2)
+ sourceB:source2
+ title:('comparing ' , currentClass name)
+ ifSame:[versionsAreTheSame := true].
+
+ versionsAreTheSame ifTrue:[
+ self information:'Versions are identical.'.
+ ].
+ ].
+ self normalLabel.
+
+ "Modified: / 11-10-2011 / 23:07:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:28:43 / cg"
+!
+
+classMenuCompareTwoRepositoryVersionsUsingManagerNamed:sourceCodeManagerClassName
+ "open a diff-textView comparing two versions found in the repository."
+
+ self classMenuCompareTwoRepositoryVersionsUsingManager:(Smalltalk at:sourceCodeManagerClassName asSymbol)
+
+ "Created: / 21-12-2011 / 23:13:40 / cg"
+!
+
classMenuCompareWithFile
"compare the class against a version in a file"
@@ -27321,7 +30884,7 @@
Transcript showCR:('Cannot compare unloaded class: ' , eachClass name).
] ifTrue:[
fileName := Dialog requestFileName:'Compare against:'.
- fileName isNil ifTrue:[^ self].
+ fileName isEmptyOrNil ifTrue:[^ self].
self busyLabel:'comparing ...' with:nil.
@@ -27350,7 +30913,8 @@
openOnDiffSet:allDiffs
labelA:'Version in File ',fileName
labelB:'Image'
- title:title.
+ title:title
+ ignoreExtensions:true.
].
self normalLabel.
@@ -27363,7 +30927,71 @@
with the some version found in the repository."
|currentClass
- aStream comparedSource currentSource rev revString thisRevString mgr
+ aStream currentSource thisRevString newestRev versionsAreTheSame|
+
+ currentClass := self theSingleSelectedLoadedNonMetaclassOrNil.
+ currentClass isNil ifTrue:[
+ self warn:'Cannot compare unloaded classes.'.
+ ^ self.
+ ].
+
+ self
+ askForRepositoryVersionOf:currentClass
+ withSourceDo:[:comparedSource :revString |
+
+ self busyLabel:'generating current source ...' with:nil.
+
+ aStream := '' writeStream.
+ Method flushSourceStreamCache.
+ "/ currentClass fileOutOn:aStream withTimeStamp:false.
+ "/ currentSource := aStream contents asString.
+
+ Class fileOutErrorSignal handle:[:ex |
+ ex proceed
+ ] do:[
+ currentSource := currentClass source asString.
+ ].
+
+ self busyLabel:'comparing ...' with:nil.
+ versionsAreTheSame := (comparedSource = currentSource).
+ versionsAreTheSame ifFalse:[
+ thisRevString := currentClass revision.
+ thisRevString isNil ifTrue:[
+ thisRevString := 'no revision'
+ ].
+
+ self busyLabel:'comparing ...' with:nil.
+ (UserPreferences versionDiffViewerClass)
+ openOnClass:currentClass
+ labelA:('repository: ' , revString) sourceA:comparedSource
+ labelB:('current: (based on: ' , thisRevString , ')') sourceB:currentSource
+ title:('comparing ' , currentClass name)
+ ifSame:[versionsAreTheSame := true].
+ ].
+ versionsAreTheSame ifTrue:[
+ ((currentClass revision = newestRev)
+ and:[currentClass hasUnsavedChanges]) ifTrue:[
+ (self confirm:'Versions are identical.\\Remove entries from changeSet ?' withCRs) ifTrue:[
+ ChangeSet current condenseChangesForClass:currentClass.
+ ].
+ ] ifFalse:[
+ self information:'Versions are identical.'.
+ ]
+ ].
+ ].
+
+ self normalLabel.
+
+ "Created: / 04-01-1997 / 15:48:20 / cg"
+ "Modified: / 29-11-2011 / 13:19:13 / cg"
+!
+
+classMenuCompareWithRepositoryUsingManager: manager
+ "open a diff-textView comparing the current (in-image) version
+ with the some version found in the repository."
+
+ |currentClass
+ aStream comparedSource currentSource revInfo rev revString thisRevString mgr
nm msg rev2 newestRev
containerModule containerPackage containerFile rslt
pkg info mod dir versionsAreTheSame|
@@ -27375,13 +31003,17 @@
].
nm := currentClass name.
- mgr := SourceCodeManagerUtilities sourceCodeManagerFor:currentClass.
+ mgr := manager.
mgr isNil ifTrue:[
^ self
].
+ "Use revision of manager"
rev := currentClass binaryRevision.
- rev2 := currentClass revision.
- rev isNil ifTrue:[
+ revInfo := mgr revisionInfoOfManager: mgr.
+ revInfo notNil ifTrue:[
+ rev2 := revInfo revision.
+ ].
+ rev2 notNil ifTrue:[
rev := rev2
].
rev isNil ifTrue:[
@@ -27401,7 +31033,7 @@
containerPackage size == 0 ifTrue:[
containerPackage := (SourceCodeManagerUtilities lastPackage) ? Project current package.
].
- rslt := SourceCodeManagerUtilities
+ rslt := manager utilities
askForContainer:(resources string:'The class seems to have no repository information.\\Do you want to compare it against an existing containers contents ?')
title:'Container to compare' note:nil
initialModule:containerModule
@@ -27428,17 +31060,15 @@
msg := msg , '\\' , (resources string:'Current %1 is based upon rev %2.'
with:nm allBold with:rev).
(rev2 notNil and:[rev2 ~= rev]) ifTrue:[
- msg := msg , '\' , (resources string:'And has been checked into the repository as %1.'
- with:rev2)
+ msg := msg , '\' , (resources string:'And has been checked into the repository as %1.' with:rev2)
]
].
newestRev notNil ifTrue:[
- msg := msg , '\' , (resources string:'Newest in reporitory is %1.'
- with:newestRev)
+ msg := msg , '\' , (resources string:'Newest in reporitory is %1.' with:newestRev)
].
self normalLabel.
- rev := SourceCodeManagerUtilities
+ rev := manager utilities
askForExistingRevision:msg
title:'Compare with repository'
class:currentClass
@@ -27535,8 +31165,17 @@
].
self normalLabel.
- "Created: / 04-01-1997 / 15:48:20 / cg"
- "Modified: / 01-03-2007 / 20:50:08 / cg"
+ "Modified: / 11-10-2011 / 16:25:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:28:48 / cg"
+!
+
+classMenuCompareWithRepositoryUsingManagerNamed:sourceCodeManagerClassName
+ "open a diff-textView comparing the current (in-image) version
+ with the some version found in the repository."
+
+ self classMenuCompareWithRepositoryUsingManager:(Smalltalk at:sourceCodeManagerClassName asSymbol)
+
+ "Created: / 21-12-2011 / 22:51:56 / cg"
!
classMenuCompareWithSmallTeamVersionOnHost:hostName
@@ -27599,14 +31238,15 @@
openOnDiffSet:allDiffs
labelA:'Version on Host ',hostName
labelB:'Image'
- title:title.
+ title:title
+ ignoreExtensions:false.
].
self normalLabel.
"Modified: / 18-10-2006 / 13:08:21 / User"
"Created: / 11-11-2006 / 15:36:43 / cg"
- "Modified: / 12-11-2006 / 15:41:49 / cg"
+ "Modified: / 12-09-2011 / 11:55:16 / cg"
!
classMenuEditVersionInRepository
@@ -27624,13 +31264,13 @@
].
nm := currentClass name.
- mgr := SourceCodeManagerUtilities sourceCodeManagerFor:currentClass.
+ mgr := SourceCodeManagerUtilities default sourceCodeManagerFor:currentClass.
mgr isNil ifTrue:[
^ self
].
self normalLabel.
- rev := SourceCodeManagerUtilities
+ rev := SourceCodeManagerUtilities default
askForExistingRevision:(resources string:'Edit which revision:')
title:(resources string:'Edit which repository version')
class:currentClass.
@@ -27643,12 +31283,24 @@
"Created: / 17-02-2011 / 10:29:59 / cg"
!
+classMenuEditVersionInRepositoryUsingManager: aManager
+ ^ Dialog warn: 'Not yet implemented'
+
+ "Created: / 21-12-2011 / 20:28:57 / cg"
+!
+
classMenuQuickCheckIn
"check a class into the source repository (without checks)"
^ self classMenuCheckIn:false
!
+classMenuQuickCheckInUsingManager: argument
+ ^ Dialog warn: 'Not yet implemented'
+
+ "Created: / 21-12-2011 / 20:29:04 / cg"
+!
+
classMenuRevisionLog
"show a classes revision log"
@@ -27705,6 +31357,77 @@
self normalLabel.
!
+classMenuRevisionLog:shortOrNot usingManager: manager
+ "show a classes revision log"
+
+ |codeView|
+
+ (self askIfModified:'Code was modified.\\Show log anyway ?')
+ ifFalse:[^ self].
+
+ self codeAspect:#repositoryLog.
+ self selectedMethods value:nil.
+ self selectProtocols:nil.
+
+ codeView := self codeView.
+ codeView contents:nil.
+ codeView modified:false.
+ navigationState realModifiedState:false.
+
+ self
+ selectedClassesNonMetaDo:
+ [:cls |
+ self
+ showRepositoryLogOf:cls short:shortOrNot usingManager: manager
+ beforeLogDo:[:s |
+ self selectedClasses value size > 1 ifTrue:[
+ s nextPutLine:'-----------------------------------------------------------'.
+ s nextPutLine:('%1 log for %2:'
+ bindWith:(shortOrNot ifTrue:['Short'] ifFalse:['Full'])
+ with:cls name).
+ s nextPutLine:'-----------------------------------------------------------'.
+ s cr.
+ ]
+ ]
+ ]
+ ifUnloaded:
+ [:cls |
+ true.
+ ]
+ ifPrivate:
+ [:cls |
+ |owner|
+ owner := cls owningClass.
+ (self selectedClasses value 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.
+
+ "Created: / 11-10-2011 / 20:32:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:26:08 / cg"
+!
+
+classMenuRevisionLogUsingManager: manager
+ "show a classes revision log"
+
+ self classMenuRevisionLog:false usingManager: manager
+
+ "Modified: / 11-10-2011 / 20:31:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:17:12 / cg"
+!
+
+classMenuRevisionLogUsingManagerNamed:sourceCodeManagerClassName
+ "show a classes revision log"
+
+ self classMenuRevisionLog:false usingManager:(Smalltalk at:sourceCodeManagerClassName asSymbol)
+
+ "Modified: / 11-10-2011 / 20:31:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 23:02:10 / cg"
+!
+
classMenuSetTag
|classes tag knownTags|
@@ -27741,29 +31464,79 @@
"Modified: / 08-02-2011 / 10:30:49 / cg"
!
+classMenuSetTagUsingManager: aManager
+ ^ Dialog warn: 'Not yet implemented'
+
+ "Created: / 21-12-2011 / 20:29:13 / cg"
+!
+
classMenuShortRevisionLog
"show a short (last 20 entries) classes repository log"
self classMenuRevisionLog:true
!
+classMenuShortRevisionLogUsingManager: manager
+ "show a short (last 20 entries) classes repository log"
+
+ self classMenuRevisionLog:true usingManager: manager
+
+ "Modified: / 11-10-2011 / 20:31:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:17:24 / cg"
+!
+
+classMenuShortRevisionLogUsingManagerNamed:sourceCodeManagerClassName
+ "show a short (last 20 entries) classes repository log"
+
+ self classMenuShortRevisionLogUsingManager:(Smalltalk at:sourceCodeManagerClassName asSymbol)
+
+ "Created: / 21-12-2011 / 23:12:15 / cg"
+!
+
compareAgainstNewestInRepository:aClass
"open a diff-textView comparing the current (in-image) version
with the the newest version found in the repository.
That is the most recent version."
- SourceCodeManagerUtilities compareClassWithRepository:aClass askForRevision:false.
+ self compareAgainstNewestInRepository:aClass usingManager:nil
+
+ "Modified: / 21-12-2011 / 20:13:47 / cg"
+!
+
+compareAgainstNewestInRepository:aClass usingManager:aManagerOrNil
+ "open a diff-textView comparing the current (in-image) version
+ with the the newest version found in the repository.
+ That is the most recent version."
+
+ |utilities|
+
+ utilities := aManagerOrNil isNil
+ ifTrue:[SourceCodeManagerUtilities default]
+ ifFalse:[aManagerOrNil utilities].
+
+ utilities compareClassWithRepository:aClass askForRevision:false.
self normalLabel.
+
+ "Created: / 11-10-2011 / 10:33:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:13:31 / cg"
!
doCompareClassesWithRepository:collectionOfClasses
+ self doCompareClassesWithRepository:collectionOfClasses usingManager:nil
+
+ "Created: / 04-01-1997 / 15:48:20 / cg"
+ "Modified: / 18-10-2006 / 13:08:21 / User"
+ "Modified: / 21-12-2011 / 20:12:26 / cg"
+!
+
+doCompareClassesWithRepository:collectionOfClasses usingManager:aManagerOrNil
|classes s
aStream comparedSource currentSource thisRevString
classesToUnload current repository diffs allDiffs
title|
collectionOfClasses size == 1 ifTrue:[
- self compareAgainstNewestInRepository:(collectionOfClasses first theNonMetaclass).
+ self compareAgainstNewestInRepository:(collectionOfClasses first theNonMetaclass) usingManager:aManagerOrNil.
^ self.
].
@@ -27788,7 +31561,7 @@
eachClass isLoaded ifFalse:[
Transcript showCR:('Cannot compare unloaded class: ' , eachClass name).
] ifTrue:[
- aStream := self sourceStreamForRepositorySourceOfClass:eachClass.
+ aStream := self sourceStreamForRepositorySourceOfClass:eachClass usingManager:aManagerOrNil.
aStream notNil ifTrue:[
aStream class readErrorSignal handle:[:ex |
self warn:('read error while reading extracted source\\' , ex description) withCRs.
@@ -27811,7 +31584,7 @@
self busyLabel:'comparing ...' with:nil.
comparedSource = currentSource ifTrue:[
- ((eachClass revision = (eachClass sourceCodeManager newestRevisionOf:eachClass))
+ ((eachClass revision = ((aManagerOrNil ? eachClass sourceCodeManager) newestRevisionOf:eachClass))
and:[eachClass hasUnsavedChanges]) ifTrue:[
(self confirm:'Versions are identical.\\Remove entries from changeSet ?' withCRs) ifTrue:[
ChangeSet current condenseChangesForClass:eachClass.
@@ -27867,20 +31640,22 @@
openOnDiffSet:allDiffs
labelA:'Repository'
labelB:'Image'
- title:title.
+ title:title
+ ignoreExtensions:true.
].
self normalLabel.
- "Created: / 04-01-1997 / 15:48:20 / cg"
"Modified: / 18-10-2006 / 13:08:21 / User"
- "Modified: / 26-10-2006 / 15:13:33 / cg"
+ "Modified: / 12-09-2011 / 11:54:42 / cg"
+ "Created: / 11-10-2011 / 10:32:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:10:53 / cg"
!
generateDiffSetForClasses:collectionOfClasses newest:newest
|classes s
aStream comparedSource currentSource rev revString thisRevString mgr
- nm msg rev2 newestRev
+ nm msg newestRev
containerModule containerPackage containerFile rslt
pkg info mod dir classesToUnload current repository diffs allDiffs
title|
@@ -27901,7 +31676,7 @@
classes do:[:currentClass |
nm := currentClass name.
- mgr := SourceCodeManagerUtilities sourceCodeManagerFor:currentClass.
+ mgr := SourceCodeManagerUtilities default sourceCodeManagerFor:currentClass.
mgr isNil ifTrue:[
(Dialog
confirm:('No sourceCode manager defined for %1 - check settings.\\Skip this class ?' bindWith:currentClass name) withCRs)
@@ -27910,9 +31685,8 @@
].
].
rev := currentClass binaryRevision.
- rev2 := currentClass revision.
rev isNil ifTrue:[
- rev := rev2
+ rev := currentClass revision
].
rev isNil ifTrue:[
"/
@@ -27931,7 +31705,7 @@
containerPackage size == 0 ifTrue:[
containerPackage := (SourceCodeManagerUtilities lastPackage) ? Project current package.
].
- rslt := SourceCodeManagerUtilities
+ rslt := SourceCodeManagerUtilities default
askForContainer:(resources string:'The class seems to have no repository information.\\Do you want to compare it against an existing containers contents ?')
title:'Container to compare' note:nil
initialModule:containerModule
@@ -28051,12 +31825,13 @@
openOnDiffSet:allDiffs
labelA:'Repository'
labelB:'Image'
- title:title.
+ title:title
+ ignoreExtensions:true.
self normalLabel.
"Created: / 04-01-1997 / 15:48:20 / cg"
- "Modified: / 12-10-2006 / 23:30:12 / cg"
+ "Modified: / 29-09-2011 / 15:43:28 / cg"
!
getClassSourceFor:aClass revision:revision
@@ -28087,6 +31862,35 @@
"Created: / 08-02-2011 / 10:24:50 / cg"
!
+getClassSourceFor:aClass revision:revision usingManager: manager
+ "ask aClass's sourceCodeManager to retrieve a (possibly older or newer) version's source code"
+
+ |msg stream source|
+
+ msg := 'extracting previous %1'.
+ self busyLabel:msg with:revision.
+
+ stream := manager getSourceStreamFor:aClass revision:revision.
+ stream isNil ifTrue:[
+ self warn:(resources
+ string:'Could not extract source of rev %1 from repository'
+ with:revision).
+ ^ nil
+ ].
+ stream class readErrorSignal handle:[:ex |
+ self warn:('read error while reading extracted source\\' , ex description) withCRs.
+ stream close.
+ ^ nil
+ ] do:[
+ source := stream contents asString.
+ ].
+ stream close.
+ ^ source
+
+ "Created: / 11-10-2011 / 23:06:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:25:39 / cg"
+!
+
repositoryHistoryForProjects:projectListOrNil
(self askIfModified:'Code was modified.\\Show history anyway ?')
ifFalse:[^ self].
@@ -28257,7 +32061,7 @@
do:[
self busyLabel:'Extracting log of %1' with:aClass name.
aBlock value:aStream.
- SourceCodeManagerUtilities repositoryLogOf:aClass short:shortOrNot onto:aStream
+ SourceCodeManagerUtilities default repositoryLogOf:aClass short:shortOrNot onto:aStream
].
self codeAspect:#repositoryLog.
@@ -28279,20 +32083,63 @@
self normalLabel
!
+showRepositoryLogOf:aClass short:shortOrNot usingManager: manager beforeLogDo:aBlock
+ "show a classes repository log - append to codeView.
+ CAVEAT: that is almost the same code as found in SystemBrowser;
+ move to SourceCodeManagerUtilities."
+
+ |codeView aStream|
+
+ aStream := WriteStream on:(String new:200).
+
+ Processor activeProcess
+ withPriority:Processor activePriority-1 to:Processor activePriority
+ do:[
+ self busyLabel:'Extracting log of %1' with:aClass name.
+ aBlock value:aStream.
+ manager utilities repositoryLogOf:aClass short:shortOrNot onto:aStream
+ ].
+
+ self codeAspect:#repositoryLog.
+ self selectedMethods value:nil.
+ self selectProtocols:nil.
+
+ codeView := self codeView.
+ codeView contents:(codeView contents ,
+ Character cr asString ,
+ Character cr asString ,
+ aStream contents).
+
+ codeView modified:false.
+ navigationState realModifiedState:false.
+
+"/ self clearAcceptAction.
+"/ self clearExplainAction.
+
+ self normalLabel
+
+ "Created: / 11-10-2011 / 20:33:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:24:55 / cg"
+!
+
sourceStreamForRepositorySourceOfClass:aClass
"ask for a classes revision and return a stream on this revisions source; nil on error"
- |mgr rev rev2 pkg containerModule containerPackage rslt containerFile newestRev msg sourceStream revString
+ ^ self sourceStreamForRepositorySourceOfClass:aClass usingManager:(aClass sourceCodeManager)
+
+ "Modified: / 21-12-2011 / 20:11:59 / cg"
+!
+
+sourceStreamForRepositorySourceOfClass:aClass usingManager: aManagerOrNil
+ "ask for a classes revision and return a stream on this revisions source; nil on error"
+
+ |mgr rev pkg containerModule containerPackage rslt containerFile newestRev msg sourceStream revString
info mod dir|
- mgr := SourceCodeManagerUtilities sourceCodeManagerFor:aClass.
- mgr isNil ifTrue:[
- ^ nil
- ].
+ mgr := aManagerOrNil ? aClass sourceCodeManager.
rev := aClass binaryRevision.
- rev2 := aClass revision.
rev isNil ifTrue:[
- rev := rev2
+ rev := aClass revision
].
rev isNil ifTrue:[
"/
@@ -28311,7 +32158,7 @@
containerPackage size == 0 ifTrue:[
containerPackage := (SourceCodeManagerUtilities lastPackage) ? Project current package.
].
- rslt := SourceCodeManagerUtilities
+ rslt := mgr utilities
askForContainer:(resources
stringWithCRs:'The "%1"-class seems to have no repository information.\\Do you want to compare it against an existing containers contents ?'
with:aClass name)
@@ -28371,7 +32218,9 @@
].
^ nil
- "Modified: / 12-10-2006 / 20:51:19 / cg"
+ "Modified: / 29-09-2011 / 15:43:08 / cg"
+ "Created: / 11-10-2011 / 10:34:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:11:25 / cg"
! !
!NewSystemBrowser methodsFor:'menu actions-code'!
@@ -30520,6 +34369,18 @@
"Created: / 27-04-2010 / 19:00:32 / cg"
!
+debugMenuDisableGlobalCoverageRecording
+ InstrumentationContext setGlobalInstrumentationContext:nil
+
+ "Created: / 21-09-2011 / 19:17:45 / cg"
+!
+
+debugMenuEnableGlobalCoverageRecording
+ InstrumentationContext new beActiveEverywhere
+
+ "Created: / 21-09-2011 / 19:17:42 / cg"
+!
+
debugMenuOpenCallGraphForClasses
"open an OOM CallGraph view on the selected class(es)"
@@ -30763,53 +34624,25 @@
].
self busyLabel:'running test %1 ...' with:cls name.
toRun := suite tests size.
- result := TestResult new.
withDebug ifTrue:[
- suite tests do:[:each |
- |errorHappened|
-
- errorHappened := false.
- GenericException
- handle:[:ex |
- (HaltInterrupt accepts:ex signal) ifFalse:[
- ex signal == NoHandlerError ifFalse:[
- errorHappened := true.
- ]
- ].
- ex reject.
- ]
- do:[ each debug ].
- errorHappened ifTrue:[
- cls rememberFailedTest:each selector.
- result failures add:each.
- ] ifFalse:[
- cls rememberPassedTest:each selector.
- result passed add:each.
- ]
+ result := TestResultForRunWithDebug new.
+ ] ifFalse:[
+ result := TestResult new.
+ ].
+ suite
+ run:result
+ beforeEachDo:[:case :result |
+ self showInfo:('To Run: %1 ; executing %2...' bindWith:toRun
+ with:case printString).
]
- ] ifFalse:[
- suite
- run:result
- beforeEachDo:[:case :result |
- self showInfo:('To Run: %1 ; executing %2...' bindWith:toRun
- with:case printString).
- ]
- afterEachDo:[:case :result | toRun := toRun - 1. ].
- cls rememberPassedTestsFromResult:result.
- cls rememberFailedTestsFromResult:result.
- ].
+ afterEachDo:[:case :result | toRun := toRun - 1. ].
+
result hasPassed ifTrue:[
result passedCount > 0 ifTrue:[
- isCompleteSuite ifTrue:[
- cls rememberPassedTestRun
- ].
self showInfo:(result printString asText colorizeAllWith:Color black
on:Color green).
].
] ifFalse:[
- isCompleteSuite ifTrue:[
- cls rememberFailedTestRun
- ].
self showInfo:(result printString asText colorizeAllWith:Color black
on:Color red).
].
@@ -30820,7 +34653,7 @@
"Created: / 05-08-2006 / 17:32:06 / cg"
"Modified: / 06-07-2011 / 14:07:52 / cg"
- "Modified: / 29-07-2011 / 09:51:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 21-08-2011 / 13:54:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
selectedNonAbstractTestCaseClassesDo:aBlock
@@ -30899,6 +34732,8 @@
methodListMenuCheckInClass
"check the selected methods class(es) into the source repository."
+ <resource: #obsolete> "use ...Using:manager variant"
+
|classes|
classes := self selectedMethods value collect:[:each | each mclass].
@@ -30907,6 +34742,25 @@
^ self
classMenuCheckIn:true
classes:(classes asOrderedCollection)
+
+ "Modified: / 18-11-2011 / 18:49:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+methodListMenuCheckInClassUsingManager: manager
+ "check the selected methods class(es) into the source repository."
+
+ |classes|
+
+ classes := self selectedMethods value collect:[:each | each mclass].
+ classes := classes asIdentitySet.
+
+ ^ self
+ classMenuCheckIn:true
+ classes:(classes asOrderedCollection)
+ usingManager: manager.
+
+ "Created: / 18-11-2011 / 18:49:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:18:09 / cg"
!
methodListMenuCopyList
@@ -31072,6 +34926,7 @@
^ brwsr
! !
+
!NewSystemBrowser methodsFor:'menu actions-namespace'!
nameSpaceMenuCheckOut
@@ -31212,27 +35067,54 @@
!
openSettingsDialog
+
+ ^self openSettingsDialogAndSelect: nil
+
+ "Modified: / 06-07-2011 / 12:38:07 / cg"
+ "Modified: / 15-10-2011 / 12:01:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+openSettingsDialogAndSelect: settingsClassToSelectOrNil
|settingsList settingsApp|
settingsList :=
#(
#('Editor' #'AbstractSettingsApplication::EditSettingsAppl' )
#('Syntax Color' #'AbstractSettingsApplication::SyntaxColorSettingsAppl' )
+ #('Code Editor 2' #'Tools::CodeView2SettingsAppl' )
#('Code Format' #'AbstractSettingsApplication::SourceCodeFormatSettingsAppl' )
#('System Browser' #'AbstractSettingsApplication::SystemBrowserSettingsAppl' )
#('Compiler' #'AbstractSettingsApplication::GeneralCompilerSettingsAppl' )
#('Compiler/ByteCode' #'AbstractSettingsApplication::ByteCodeCompilerSettingsAppl' )
#('Source Code Management' #'AbstractSettingsApplication::SourceCodeManagementSettingsAppl')
+ "/ see initializeSettingsList for how the following is expanded...
+ #('Source Code Management/[% managerTypeName]'
+ '[ AbstractSourceCodeManager availableManagers
+ collect:[:each | each settingsApplicationClass] ]'
+ '[% defaultIcon]' )
).
settingsApp := SettingsDialog new.
"/ settingsApp requestor:self.
- settingsApp installSettingsEntries:settingsList.
+ settingsApp installSettingsEntries:settingsList expand: true.
settingsApp allButOpen.
+ settingsApp showRoot: false.
+ settingsClassToSelectOrNil notNil ifTrue:[
+ settingsApp selectItemWithClass: settingsClassToSelectOrNil.
+ ].
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>"
+!
+
+openSettingsDialogAndSelectSourceCodeManagement
+
+ self openSettingsDialogAndSelect: AbstractSettingsApplication::SourceCodeManagementSettingsAppl
+
+ "Modified: / 06-07-2011 / 12:38:07 / cg"
+ "Created: / 15-10-2011 / 12:02:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!NewSystemBrowser methodsFor:'menu actions-project'!
@@ -31248,6 +35130,23 @@
"Modified: / 12-09-2006 / 13:53:28 / cg"
!
+classMenuCheckInBuildSupportFilesUsingManager:aManagerOrNil
+ self selectedNonMetaclassesDo:[:eachClass |
+ eachClass isProjectDefinition ifTrue:[
+ self projectMenuCheckInBuildSupportFilesForProject:eachClass package definition:eachClass usingManager:aManagerOrNil
+ ]
+ ]
+
+ "Modified: / 11-10-2011 / 23:16:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:28:09 / cg"
+!
+
+classMenuCheckInBuildSupportFilesUsingManagerNamed:sourceCodeManagerClassName
+ self classMenuCheckInBuildSupportFilesUsingManager:(Smalltalk at:sourceCodeManagerClassName asSymbol)
+
+ "Created: / 22-12-2011 / 14:04:45 / cg"
+!
+
classMenuCopySourceToClipboard
|stream|
@@ -31491,7 +35390,7 @@
classes := (bindings at:#selectedClassesWithMissingContainer) value
collect:[:idx | classesWithMissingContainer at:idx].
- SourceCodeManagerUtilities
+ SourceCodeManagerUtilities default
checkinClasses:classes
withInfo:nil
withCheck:true
@@ -31568,7 +35467,7 @@
classes := (bindings at:#selectedClassesWhichHaveBeenModified) value
collect:[:idx | classesWhichHaveBeenModified at:idx].
- SourceCodeManagerUtilities
+ SourceCodeManagerUtilities default
checkinClasses:classes
withInfo:nil
withCheck:true
@@ -31676,13 +35575,17 @@
|classesInPackage|
classesInPackage := Smalltalk allClassesInPackage:package.
- (classesInPackage contains:[:cls | cls isBrowserStartable]) ifTrue:[
- (classesInPackage contains:[:cls | cls isVisualStartable])
- ifTrue:[ defaultProjectType := ProjectDefinition guiApplicationType]
- ifFalse:[ defaultProjectType := ProjectDefinition nonGuiApplicationType]
- ] ifFalse:[
- defaultProjectType := ProjectDefinition libraryType
- ].
+ classesInPackage isEmpty ifTrue:[
+ defaultProjectType := LastNewProjectType ? ProjectDefinition guiApplicationType
+ ] ifFalse:[
+ (classesInPackage contains:[:cls | cls isBrowserStartable]) ifTrue:[
+ (classesInPackage contains:[:cls | cls isVisualStartable])
+ ifTrue:[ defaultProjectType := ProjectDefinition guiApplicationType]
+ ifFalse:[ defaultProjectType := ProjectDefinition nonGuiApplicationType]
+ ] ifFalse:[
+ defaultProjectType := ProjectDefinition libraryType
+ ].
+ ]
].
aProjectIDOrNil notNil ifTrue:[
@@ -31754,6 +35657,8 @@
^ nil
].
+ LastNewProjectType := projectTypeHolder value.
+
self withWaitCursorDo:[
aProjectIDOrNil notNil ifTrue:[
newProjectID := aProjectIDOrNil.
@@ -31774,7 +35679,7 @@
].
^ projectDefinitionClass
- "Modified: / 06-10-2006 / 11:44:05 / cg"
+ "Modified: / 21-01-2012 / 10:33:15 / cg"
!
projectMenuBitmapFiles
@@ -31782,7 +35687,19 @@
!
projectMenuBuild
- |projectToBuild projectDefinitionClasses projectDefinition|
+ self projectMenuBuildExeOnly:false
+
+ "Modified: / 21-01-2012 / 13:53:52 / cg"
+!
+
+projectMenuBuildExeOnly
+ self projectMenuBuildExeOnly:true
+
+ "Created: / 21-01-2012 / 13:54:00 / cg"
+!
+
+projectMenuBuildExeOnly:exeOnly
+ |projectToBuild projectDefinitionClasses projectDefinition projectBuilder|
projectToBuild := self theSingleSelectedProject.
projectDefinitionClasses := self projectDefinitionClassesForSelectedProjects.
@@ -31795,12 +35712,25 @@
Tools::ProjectBuilderAssistantApplication new
projectType:projectDefinition projectType.
- Tools::ProjectBuilder new
+ Transcript isView ifTrue:[
+ Transcript topView raise.
+ ].
+
+ projectBuilder := Tools::ProjectBuilder new
+ makeExeOnly:exeOnly;
package:projectToBuild;
- build
+ "/ build
+ buildWithColorizedOutputTo:Transcript.
+
+ FileBrowserV2 openOnDirectory:(projectBuilder buildDirectory)
+
+ "Created: / 21-01-2012 / 13:53:34 / cg"
!
projectMenuCheckInAll
+
+ <resource: #obsolete> "use ...Using:manager variant"
+
self selectedProjectsDo:[:packageToCheckIn |
self
projectMenuCheckInProject:packageToCheckIn
@@ -31810,20 +35740,49 @@
]
"Modified: / 09-08-2006 / 18:57:28 / fm"
+ "Modified: / 13-10-2011 / 11:06:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified (comment): / 15-10-2011 / 20:22:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+projectMenuCheckInAllUsingManager: manager
+ self selectedProjectsDo:[:packageToCheckIn |
+ self
+ projectMenuCheckInProject:packageToCheckIn
+ classes:true
+ extensions:true
+ buildSupport:true
+ usingManager: manager
+ ]
+
+ "Modified: / 09-08-2006 / 18:57:28 / fm"
+ "Created: / 13-10-2011 / 10:37:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:18:25 / cg"
+!
+
+projectMenuCheckInAllUsingManagerNamed: managerName
+
+ ^self projectMenuCheckInAllUsingManager: (Smalltalk at: managerName asSymbol)
+
+ "Created: / 23-12-2011 / 19:24:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
projectMenuCheckInBuildSupportFiles
+
+ <resource: #obsolete> "use ...Using:manager variant"
+
self selectedProjectsDo:[:packageToCheckIn |
self projectMenuCheckInBuildSupportFilesForProject:packageToCheckIn
]
"Created: / 09-08-2006 / 19:04:52 / fm"
+ "Modified: / 15-10-2011 / 22:31:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
projectMenuCheckInBuildSupportFilesForProject:packageID
- |anyFailure module directory defClass mgr|
-
- anyFailure := false.
+
+ <resource: #obsolete> "use ...Using:manager variant"
+
+ |defClass mgr|
defClass := ProjectDefinition definitionClassForPackage:packageID createIfAbsent:false.
defClass isNil ifTrue:[
@@ -31832,34 +35791,44 @@
defClass compileDescriptionMethods.
].
- defClass validateDescription.
- defClass hasAllCompiledClassesFullyLoaded ifFalse:[
- (Dialog confirm:('%1: the dependency information as generated will be incomplete,%<cr>because some compiled class(es) are not loaded (see Transcript).%<cr>%<cr>%2%<cr>Continue anyway ?'
- bindWith:defClass name
- with:('Warning: these classes will be excluded from the list of compiled classes.' allBold)))
- ifFalse:[
- ^ self.
- ]
- ].
-
- mgr := SourceCodeManagerUtilities sourceCodeManagerFor:defClass.
+ mgr := SourceCodeManagerUtilities default sourceCodeManagerFor:defClass.
mgr isNil ifTrue:[
self warn:'No sourceCode manager - cannot checkin.'.
^ self.
].
+ self projectMenuCheckInBuildSupportFilesForProject:packageID definition:defClass usingManager:mgr
+
+ "Created: / 09-08-2006 / 18:59:42 / fm"
+ "Modified: / 16-08-2006 / 18:38:49 / User"
+ "Modified: / 15-10-2011 / 22:31:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 22-12-2011 / 14:03:36 / cg"
+!
+
+projectMenuCheckInBuildSupportFilesForProject:packageID definition:defClass usingManager:mgr
+ |anyFailure module directory|
+
+ defClass validateDescription.
+
+ anyFailure := false.
+
module := packageID asPackageId module.
directory := packageID asPackageId directory.
self activityNotification:(resources string:'checking in build-support files...').
+ (mgr checkForExistingModule:module directory:directory) ifFalse:[
+ mgr createModule:module directory:directory
+ ].
self withActivityNotificationsRedirectedToInfoLabelDo:[
defClass forEachFileNameAndGeneratedContentsDo:[:fileName :fileContents |
|realFileName realDirectory|
- realDirectory := directory.
- realFileName := fileName.
- (realFileName includes:$/) ifTrue:[
- realDirectory := (realDirectory asFilename construct:(realFileName asFilename directoryName)) name.
- realFileName := realFileName asFilename baseName.
+ "/ care for subdirectories
+ (fileName includes:$/) ifTrue:[
+ realDirectory := (directory asFilename construct:(fileName asFilename directoryName)) name.
+ realFileName := fileName asFilename baseName.
+ ] ifFalse:[
+ realDirectory := directory.
+ realFileName := fileName.
].
realDirectory := realDirectory replaceAll:$\ with:$/.
@@ -31871,8 +35840,10 @@
(mgr
checkForExistingContainer:realFileName inModule:module directory:realDirectory)
ifFalse:[
- (mgr checkForExistingModule:module directory:realDirectory) ifFalse:[
- mgr createModule:module directory:realDirectory
+ realDirectory ~= directory ifTrue:[
+ (mgr checkForExistingModule:module directory:realDirectory) ifFalse:[
+ mgr createModule:module directory:realDirectory
+ ].
].
(mgr
createContainerForText:fileContents
@@ -31908,7 +35879,8 @@
self
checkInClasses:(Array with:defClass)
withInfo:'automatic checkIn'
- withCheck:false.
+ withCheck:false
+ usingManager: mgr
].
self activityNotification:nil.
@@ -31922,10 +35894,57 @@
"Created: / 09-08-2006 / 18:59:42 / fm"
"Modified: / 16-08-2006 / 18:38:49 / User"
- "Modified: / 23-02-2011 / 15:27:20 / cg"
+ "Modified: / 12-10-2011 / 11:36:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:19:30 / cg"
+!
+
+projectMenuCheckInBuildSupportFilesForProject:packageID usingManager: manager
+ |defClass mgr|
+
+ defClass := ProjectDefinition definitionClassForPackage:packageID createIfAbsent:false.
+ defClass isNil ifTrue:[
+ defClass := self projectDefinitionDialogFor:packageID.
+ defClass isNil ifTrue:[ ^ self ].
+ defClass compileDescriptionMethods.
+ ].
+
+ mgr := manager.
+ mgr isNil ifTrue:[
+ self warn:'No sourceCode manager - cannot checkin.'.
+ ^ self.
+ ].
+ self projectMenuCheckInBuildSupportFilesForProject:packageID definition:defClass usingManager:mgr
+
+ "Created: / 09-08-2006 / 18:59:42 / fm"
+ "Modified: / 16-08-2006 / 18:38:49 / User"
+ "Modified: / 06-09-2011 / 08:00:43 / cg"
+ "Created: / 15-10-2011 / 22:32:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:25:21 / cg"
+ "Modified: / 24-01-2012 / 13:03:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+projectMenuCheckInBuildSupportFilesUsingManager: manager
+ self selectedProjectsDo:[:packageToCheckIn |
+ self projectMenuCheckInBuildSupportFilesForProject:packageToCheckIn usingManager: manager
+ ]
+
+ "Created: / 09-08-2006 / 19:04:52 / fm"
+ "Created: / 15-10-2011 / 22:31:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:18:34 / cg"
+ "Modified: / 24-01-2012 / 13:02:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+projectMenuCheckInBuildSupportFilesUsingManagerNamed: managerName
+
+ ^self projectMenuCheckInBuildSupportFilesUsingManager: (Smalltalk at:managerName asSymbol)
+
+ "Created: / 24-01-2012 / 13:02:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
projectMenuCheckInClasses
+
+ <resource: #obsolete> "use ...Using:manager variant"
+
self selectedProjectsDo:[:packageToCheckIn |
self
projectMenuCheckInProject:packageToCheckIn
@@ -31933,9 +35952,35 @@
extensions:false
buildSupport:false
]
+
+ "Modified: / 15-10-2011 / 20:22:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+projectMenuCheckInClassesUsingManager: manager
+ self selectedProjectsDo:[:packageToCheckIn |
+ self
+ projectMenuCheckInProject:packageToCheckIn
+ classes:true
+ extensions:false
+ buildSupport:false
+ usingManager: manager
+ ]
+
+ "Created: / 15-10-2011 / 20:21:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:18:42 / cg"
+!
+
+projectMenuCheckInClassesUsingManagerNamed: sourceCodeManagerClassName
+
+ self projectMenuCheckInClassesUsingManager: (Smalltalk at:sourceCodeManagerClassName asSymbol)
+
+ "Created: / 23-12-2011 / 19:29:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
projectMenuCheckInExtensions
+
+ <resource: #obsolete> "use ...Using:manager variant"
+
self selectedProjectsDo:[:packageToCheckIn |
self
projectMenuCheckInProject:packageToCheckIn
@@ -31943,9 +35988,36 @@
extensions:true
buildSupport:false
]
+
+ "Modified: / 15-10-2011 / 20:22:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+projectMenuCheckInExtensionsUsingManager: manager
+
+ self selectedProjectsDo:[:packageToCheckIn |
+ self
+ projectMenuCheckInProject:packageToCheckIn
+ classes:false
+ extensions:true
+ buildSupport:false
+ usingManager: manager
+ ]
+
+ "Created: / 15-10-2011 / 20:06:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:18:50 / cg"
+!
+
+projectMenuCheckInExtensionsUsingManagerNamed: sourceCodeManagerClassName
+
+ self projectMenuCheckInExtensionsUsingManager: (Smalltalk at:sourceCodeManagerClassName asSymbol)
+
+ "Created: / 23-12-2011 / 19:30:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
projectMenuCheckInProject:packageToCheckIn classes:doClasses extensions:doExtensions buildSupport:doBuild
+
+ <resource: #obsolete>
+
^ self
projectMenuCheckInProject:packageToCheckIn
classes:doClasses
@@ -31954,9 +36026,12 @@
askForMethodsInOtherPackages:true
"Modified: / 21-08-2006 / 19:43:22 / cg"
+ "Modified: / 13-10-2011 / 11:07:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
projectMenuCheckInProject:packageToCheckIn classes:doClasses extensions:doExtensions buildSupport:doBuild askForMethodsInOtherPackages:askForMethodsInOtherPackages
+ <resource: #obsolete>
+
|classes classesToCheckIn methodsToCheckIn
methodsInOtherPackages looseMethods otherPackages
msg classesInChangeSet checkinInfo originalCheckinInfo classesToTag|
@@ -31980,7 +36055,10 @@
].
].
- classesInChangeSet := classesToCheckIn select:[:cls | cls hasUnsavedChanges].
+ "/ cg: O(n^2) algorithm
+ "/ classesInChangeSet := classesToCheckIn select:[:cls | cls hasUnsavedChanges].
+ "/ replaced by: O(n) algorithm
+ classesInChangeSet := ChangeSet current selectForWhichIncludesChangeForClassOrMetaclassOrPrivateClassFrom:classesToCheckIn.
"/ individual methods ...
classes do:[:aClass |
@@ -32012,7 +36090,7 @@
].
msg := msg , 'of project "%3"'.
- checkinInfo := SourceCodeManagerUtilities
+ checkinInfo := SourceCodeManagerUtilities default
getCheckinInfoFor:(msg
bindWith:classesToCheckIn size
with:methodsToCheckIn size
@@ -32023,7 +36101,7 @@
checkinInfo isNil ifTrue:[
^ self.
].
- (SourceCodeManagerUtilities
+ (SourceCodeManagerUtilities default
checkinExtensionMethods:methodsToCheckIn
forPackage:packageToCheckIn
withInfo:checkinInfo)
@@ -32037,7 +36115,7 @@
checkForExistingContainer:'extensions.st' inPackage:packageToCheckIn)
ifTrue:[
"/ self halt.
- (SourceCodeManagerUtilities
+ (SourceCodeManagerUtilities default
checkinExtensionMethods:#()
forPackage:packageToCheckIn
withInfo:'No extensions any more')
@@ -32050,7 +36128,7 @@
].
checkinInfo isNil ifTrue:[
- checkinInfo := SourceCodeManagerUtilities
+ checkinInfo := SourceCodeManagerUtilities default
getCheckinInfoFor:('%1 classes (%4 changed) and %2 extensions for project "%3"'
bindWith:classesToCheckIn size
with:methodsToCheckIn size
@@ -32145,18 +36223,18 @@
mthd package:packageToCheckIn
].
].
- SourceCodeManagerUtilities checkinClasses:classesToCheckIn withInfo:checkinInfo.
+ SourceCodeManagerUtilities default checkinClasses:classesToCheckIn withInfo:checkinInfo.
].
originalCheckinInfo notNil ifTrue:[
originalCheckinInfo isStable ifTrue:[
classesToTag do:[:eachClass |
- SourceCodeManagerUtilities tagClass:eachClass as:#stable
+ SourceCodeManagerUtilities default tagClass:eachClass as:#stable
].
].
originalCheckinInfo tagIt ifTrue:[
classesToTag do:[:eachClass |
- SourceCodeManagerUtilities tagClass:eachClass as:(originalCheckinInfo tag)
+ SourceCodeManagerUtilities default tagClass:eachClass as:(originalCheckinInfo tag)
].
].
].
@@ -32168,7 +36246,38 @@
self normalLabel.
- "Modified: / 28-11-2006 / 15:44:24 / cg"
+ "Modified: / 08-09-2011 / 04:42:38 / cg"
+ "Modified: / 13-10-2011 / 11:07:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+projectMenuCheckInProject:packageToCheckIn classes:doClasses extensions:doExtensions buildSupport:doBuild askForMethodsInOtherPackages:askForMethodsInOtherPackages usingManager: manager
+
+ self withActivityNotificationsRedirectedToInfoLabelDo:[
+ manager utilities
+ checkinPackage:packageToCheckIn
+ classes:doClasses
+ extensions:doExtensions
+ buildSupport:doBuild
+ askForMethodsInOtherPackages:askForMethodsInOtherPackages
+ ]
+
+ "Modified: / 08-09-2011 / 04:42:38 / cg"
+ "Created: / 13-10-2011 / 10:40:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:25:11 / cg"
+!
+
+projectMenuCheckInProject:packageToCheckIn classes:doClasses extensions:doExtensions buildSupport:doBuild usingManager: manager
+ ^ self
+ projectMenuCheckInProject:packageToCheckIn
+ classes:doClasses
+ extensions:doExtensions
+ buildSupport:doBuild
+ askForMethodsInOtherPackages:true
+ usingManager: manager
+
+ "Modified: / 21-08-2006 / 19:43:22 / cg"
+ "Created: / 13-10-2011 / 10:37:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:18:59 / cg"
!
projectMenuCheckOut
@@ -32187,7 +36296,7 @@
checkoutExtensionMethodsForPackage:packageToCheckOut
askForRevision:true
askForMerge:true
- using:(SourceCodeManager defaultManager)
+ usingManager:(SourceCodeManager defaultManager)
]
"Created: / 10-08-2006 / 18:16:51 / cg"
@@ -32487,7 +36596,7 @@
"/ eachClassInProject isLoaded ifTrue:[
self busyLabel:'Checking ' , packageToCheck , ' - ' , eachClassInProject name.
- mgr := SourceCodeManagerUtilities sourceCodeManagerFor:eachClassInProject.
+ mgr := SourceCodeManagerUtilities default sourceCodeManagerFor:eachClassInProject.
info := mgr sourceInfoOfClass:eachClassInProject.
info isNil ifTrue:[
"/ no container for that class
@@ -32601,6 +36710,8 @@
"Comparing the current (in-image) version of the project(s)
against the the newest version found in the repository."
+ <resource: #obsolete> "use ...Using:manager variant"
+
self withWaitCursorDo:[
self selectedProjects value do:[:eachProject |
SourceCodeManagerUtilities compareProjectWithRepository:eachProject
@@ -32609,6 +36720,32 @@
"Created: / 12-10-2006 / 17:41:55 / cg"
"Modified: / 12-10-2006 / 21:46:14 / cg"
+ "Modified: / 15-10-2011 / 23:09:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+projectMenuCompareAgainstNewestInRepositoryUsingManager: manager
+ "Comparing the current (in-image) version of the project(s)
+ against the the newest version found in the repository."
+
+ self withWaitCursorDo:[
+ self selectedProjects value do:[:eachProject |
+ manager utilities compareProjectWithRepository:eachProject
+ ].
+ ].
+
+ "Modified: / 12-10-2006 / 21:46:14 / cg"
+ "Created: / 15-10-2011 / 23:10:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:29:20 / cg"
+ "Modified: / 16-01-2012 / 18:45:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+projectMenuCompareAgainstNewestInRepositoryUsingManagerNamed: managerName
+ "Comparing the current (in-image) version of the project(s)
+ against the the newest version found in the repository."
+
+ ^self projectMenuCompareAgainstNewestInRepositoryUsingManager: (Smalltalk at:managerName asSymbol)
+
+ "Created: / 16-01-2012 / 18:45:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
projectMenuCompareAgainstRepository
@@ -32857,6 +36994,10 @@
dirName isNil ifTrue:[
^ self
].
+ dirName asFilename exists ifFalse:[
+ dirName asFilename recursiveMakeDirectory
+ ].
+
self
fileOutEachClassIn:self selectedProjectClasses
in:dirName
@@ -32879,6 +37020,8 @@
format:aFormatSymbolOrNil
toFile:fileNameForExtensions
withPackage:true
+
+ "Modified: / 05-09-2011 / 22:02:48 / cg"
!
projectMenuFileOutEachSIFIn
@@ -33298,14 +37441,99 @@
!
projectMenuNew
- |projectDefinitionClass|
+ |projectDefinitionClass appClassName theCode appClass package
+ defaultStartupClassName startupClassName startupClass change|
projectDefinitionClass := self projectDefinitionDialogFor:nil.
projectDefinitionClass isNil ifTrue:[
^ self
].
- projectDefinitionClass compileDescriptionMethods.
- self selectClass:projectDefinitionClass.
+
+ package := projectDefinitionClass package.
+ Class packageQuerySignal answer:package
+ do:[
+ projectDefinitionClass compileDescriptionMethods.
+ self selectClass:projectDefinitionClass.
+
+ projectDefinitionClass isApplicationDefinition ifTrue:[
+ appClassName := Dialog
+ request:(resources
+ stringWithCRs:'Create initial application class?\(Enter name or cancel)').
+ appClassName notNil ifTrue:[
+ theCode := '
+ApplicationModel subclass: #''%1''
+ instanceVariableNames:'' ''
+ classVariableNames:'' ''
+ poolDictionaries:'' ''
+ category:''%1''
+' bindWith:appClassName.
+
+
+ self canUseRefactoringSupport ifTrue:[
+ change := AddClassChange definition: theCode.
+ change name:('Create application class %1' bindWith:appClassName).
+ RefactoryChangeManager performChange:change
+ ] ifFalse:[
+ self
+ doAcceptClassDefinition:theCode
+ usingCompiler:Compiler.
+ ].
+
+ appClass := Smalltalk classNamed:appClassName.
+ appClass package:package.
+
+ self classMenuGenerateApplicationCodeForClasses:{ appClass }.
+ appClass instAndClassMethodsDo:[:m | m package:package].
+
+ defaultStartupClassName := appClassName,'Start'.
+ (Smalltalk classNamed:defaultStartupClassName) notNil ifTrue:[
+ defaultStartupClassName := nil
+ ].
+ startupClassName := Dialog
+ request:(resources
+ stringWithCRs:'Create startup class (e.g. main)?\(Enter name or cancel)')
+ initialAnswer:defaultStartupClassName.
+ startupClassName notNil ifTrue:[
+ theCode := '
+StandaloneStartup subclass: #''%1''
+ instanceVariableNames:'' ''
+ classVariableNames:'' ''
+ poolDictionaries:'' ''
+ category:''%1''
+' bindWith:startupClassName.
+
+ self canUseRefactoringSupport ifTrue:[
+ change := AddClassChange definition: theCode.
+ change name:('Create startup class %1' bindWith:startupClassName).
+ RefactoryChangeManager performChange:change
+ ] ifFalse:[
+ self
+ doAcceptClassDefinition:theCode
+ usingCompiler:Compiler.
+ ].
+
+ startupClass := Smalltalk classNamed:startupClassName.
+ startupClass package:package.
+
+ "/ update the classList, again
+ projectDefinitionClass compileDescriptionMethods.
+ "/ generate startupClass code
+ self halt.
+ SmalltalkCodeGeneratorTool
+ compile:(projectDefinitionClass startupClassName_codeFor:(startupClass name))
+ forClass:projectDefinitionClass theMetaclass
+ inCategory:'description - startup'.
+
+ self classMenuGenerateApplicationCodeForClasses:{ startupClass }.
+ startupClass instAndClassMethodsDo:[:m | m package:package].
+ ].
+
+ self selectClass:appClass.
+ ]
+ ]
+ ].
+
+ "Modified: / 21-01-2012 / 13:38:43 / cg"
!
projectMenuProperties
@@ -33328,21 +37556,20 @@
^ self
].
- ProjectDefinitionEditor new
+ Tools::ProjectDefinitionEditor new
definitionClass:defClass;
open
- "Modified: / 09-02-2007 / 12:17:29 / cg"
+ "Modified: / 20-01-2012 / 16:36:32 / cg"
!
projectMenuRecompileInstrumented
self selectedProjectClasses do:[:eachClass |
- eachClass theNonMetaclass recompileUsingCompilerClass:InstrumentingCompiler.
- eachClass theMetaclass recompileUsingCompilerClass:InstrumentingCompiler.
+ self recompileClassWithInstrumentation:eachClass
].
"Created: / 27-04-2010 / 12:39:43 / cg"
- "Modified: / 27-04-2010 / 14:09:13 / cg"
+ "Modified: / 30-09-2011 / 12:39:19 / cg"
!
projectMenuRegenerateProjectContentsDefinitions
@@ -33441,6 +37668,9 @@
!
projectMenuRepositoryHistory
+
+ <resource: #obsolete> "use ...Using:manager variant"
+
|projects|
projects := self selectedProjects value.
@@ -33449,6 +37679,21 @@
self repositoryHistoryForProjects:projects
"Modified: / 12-09-2006 / 15:06:02 / cg"
+ "Modified: / 15-10-2011 / 22:58:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+projectMenuRepositoryHistoryUsingManager: manager
+
+ |projects|
+
+ projects := self selectedProjects value.
+ projects size == 0 ifTrue:[projects := nil].
+
+ self repositoryHistoryForProjects:projects usingManager: manager
+
+ "Modified: / 12-09-2006 / 15:06:02 / cg"
+ "Created: / 15-10-2011 / 22:59:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:20:03 / cg"
!
projectMenuResources
@@ -33456,6 +37701,9 @@
!
projectMenuSetTag
+
+ <resource: #obsolete> "use ...Using:manager variant"
+
|tag|
tag := Dialog request:'Tag:'.
@@ -33471,12 +37719,13 @@
]
"Created: / 12-09-2006 / 13:25:09 / cg"
+ "Modified: / 15-10-2011 / 22:45:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
projectMenuShowGeneratedBuildFile:whichFile
"/ intermediate - this will be removed later
- |package defClass newFile oldFile editor differ theFile|
+ |package defClass newFile oldFile editor differ theFile missingName|
self hasProjectDefinitionSelected ifTrue:[
self hasSingleClassSelected ifTrue:[
@@ -33509,15 +37758,17 @@
theFile := defClass nsiFilename.
].
- (defClass allClassNames "compiled_classNames"
- contains:[:aName |
+ (missingName := defClass allClassNames "compiled_classNames"
+ detect:[:aName |
|cls|
cls := Smalltalk at:aName asSymbol.
cls isNil
- ])
- ifTrue:[
- (Dialog confirm:('Some class from the list of compiled classes is missing in the image!!\\Continue anyway ?') withCRs)
+ ]
+ ifNone:nil)
+ notNil ifTrue:[
+ (Dialog confirm:(resources stringWithCRs:'Some class (%1) from the list of compiled classes is missing in the image!!\\Continue anyway ?'
+ with:missingName))
ifFalse:[^ self ].
].
@@ -33562,7 +37813,102 @@
].
"Created: / 29-08-2006 / 15:35:44 / cg"
- "Modified: / 19-12-2006 / 12:15:33 / cg"
+ "Modified: / 12-09-2011 / 16:03:28 / cg"
+!
+
+projectMenuShowGeneratedBuildFile:whichFile usingManager: manager
+ "/ intermediate - this will be removed later
+
+ |package defClass newFile oldFile editor differ theFile missingName|
+
+ self hasProjectDefinitionSelected ifTrue:[
+ self hasSingleClassSelected ifTrue:[
+ defClass := self theSingleSelectedClass
+ ].
+ defClass isNil ifTrue:[
+ self warn:(resources string:'Please select a single project definition class').
+ ^ self.
+ ].
+ defClass := defClass theNonMetaclass.
+ package := defClass package.
+ ] ifFalse:[
+ self hasSingleProjectSelected ifTrue:[
+ package := self theSingleSelectedProject.
+ defClass := ProjectDefinition definitionClassForPackage:package.
+ defClass isNil ifTrue:[
+ self warn:(resources string:'Missing project definition class (%1)\for package: %2.'
+ with:(ProjectDefinition initialClassNameForDefinitionOf:package)
+ with:package allBold).
+ ^ self.
+ ].
+ ]
+ ].
+
+ theFile := whichFile.
+ theFile = 'lib.rc' ifTrue:[
+ theFile := defClass rcFilename.
+ ].
+ theFile = 'app.nsi' ifTrue:[
+ theFile := defClass nsiFilename.
+ ].
+
+ (missingName := defClass allClassNames "compiled_classNames"
+ detect:[:aName |
+ |cls|
+
+ cls := Smalltalk at:aName asSymbol.
+ cls isNil
+ ]
+ ifNone:nil)
+ notNil ifTrue:[
+ (Dialog confirm:(resources stringWithCRs:'Some class (%1) from the list of compiled classes is missing in the image!!\\Continue anyway ?'
+ with:missingName))
+ ifFalse:[^ self ].
+ ].
+
+ whichFile = 'abbrev.stc' ifTrue:[
+ (defClass compiled_classNames
+ contains:[:aName |
+ |cls|
+
+ cls := Smalltalk at:aName asSymbol.
+ cls notNil and:[cls isLoaded not]
+ ])
+ ifTrue:[
+ (Dialog confirm:'Autoload missing class(es) ?\\Notice: generated abbrev.stc file is wrong if autoloaded classes are unloaded' withCRs) ifTrue:[
+ defClass compiled_classNames do:[:aName |
+ (Smalltalk at:aName asSymbol) autoload
+ ].
+ ].
+ ].
+ ].
+
+ [
+ newFile := defClass generateFile:theFile.
+ ] on:Error do:[:ex|
+ self errorNotify:ex description.
+ ^ self.
+ ].
+
+ manager notNil ifTrue:[
+ oldFile := manager
+ getFile:theFile
+ revision:#newest
+ directory:(package asPackageId directory)
+ module:(package asPackageId module).
+ ].
+ oldFile isNil ifTrue:[
+ editor := EditTextView openOnModel:newFile.
+ editor topView label:(resources string:'Generated %1' with:theFile).
+ ] ifFalse:[
+ differ := DiffCodeView
+ openOn:oldFile label:(resources string:'Newest %1 in Repository' with:theFile)
+ and:newFile label:(resources string:'Generated %1' with:theFile).
+ ].
+
+ "Modified: / 12-09-2011 / 16:03:28 / cg"
+ "Created: / 12-10-2011 / 19:02:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:24:42 / cg"
!
projectMenuSpawn
@@ -33689,7 +38035,7 @@
|mgr info classesModule classesPackageDir classesContainerFileName|
eachClassInProject isPrivate ifFalse:[
- mgr := SourceCodeManagerUtilities sourceCodeManagerFor:eachClassInProject.
+ mgr := SourceCodeManagerUtilities default sourceCodeManagerFor:eachClassInProject.
info := mgr sourceInfoOfClass:eachClassInProject.
info isNil ifTrue:[
"/ no container for that class
@@ -33841,16 +38187,28 @@
"Modified: / 23-10-2006 / 11:01:42 / cg"
! !
+!NewSystemBrowser methodsFor:'menu actions-project-monticello'!
+
+projectMenuMonticelloBrowseRepositories
+ MCRepositoryBrowser openOnPrimaryRepositoryForPackage:(self theSingleSelectedProject).
+
+ "Created: / 01-12-2011 / 21:47:24 / cg"
+! !
+
!NewSystemBrowser methodsFor:'menu actions-protocol'!
doMoveSelectedProtocolsToProject:newProject
"change the package-id of all methods in the selected protocols.
Will eventually update the Project-object"
- self selectedProtocolMethodsDo:[:cls :protocol :sel :eachMethod |
- eachMethod package:newProject.
- ].
- self rememberLastProjectMoveTo:newProject
+ self withWaitCursorDo:[
+ self selectedProtocolMethodsDo:[:cls :protocol :sel :eachMethod |
+ eachMethod package:newProject.
+ ].
+ self rememberLastProjectMoveTo:newProject
+ ].
+
+ "Modified: / 08-09-2011 / 04:17:32 / cg"
!
methodListMenuUpdate
@@ -34654,7 +39012,7 @@
ifTrue:[ ns := '' ]
ifFalse:[ns := ' (in ',ns,')'].
cls nameWithoutNameSpacePrefix,ns
- ]) sortWith:allClasses.
+ ]) sortWith:allClasses; yourself.
updateList := [
|nameToSearch list namesStarting namesIncluding lcName|
@@ -34714,7 +39072,7 @@
].
doWhat isNil ifTrue:[
- aBlock notNil ifTrue:[aBlock value:className].
+ aBlock notNil ifTrue:[aBlock value:className optionalArgument:singleClass and:doWhat].
^ className
].
@@ -34723,7 +39081,7 @@
].
^ className
- "Modified: / 14-04-2011 / 10:21:40 / cg"
+ "Modified: / 18-01-2012 / 11:28:42 / cg"
!
askForClassToSearch:doWhatByDefault single:singleClass msgTail:msgTail thenDo:aBlock
@@ -35290,6 +39648,8 @@
with the the newest versions found in the repository.
That is the most recent version."
+ <resource: #obsolete> "use ...Repository: methods using:manager variant"
+
|s aStream comparedSource currentSource thisRevString
current repositoryChangeSet diffs allDiffs
mclass mselector theNonMetaclass lastClass lastRepositoryChangeSet
@@ -35326,7 +39686,7 @@
repositoryChangeSet := SourceCodeManagerUtilities
changeSetForExtensionMethodsForPackage:methodPackage
askForRevision:false
- using:SourceCodeManager.
+ usingManager:SourceCodeManager.
repositoryChangeSet := repositoryChangeSet
select:[:eachChange | eachChange isMethodChange
and:[eachChange selector = mselector
@@ -35413,13 +39773,153 @@
openOnDiffSet:allDiffs
labelA:labelA
labelB:labelB
- title:title.
+ title:title
+ ignoreExtensions:false.
self normalLabel.
"Created: / 04-01-1997 / 15:48:20 / cg"
- "Modified: / 19-02-2011 / 15:32:42 / cg"
"Modified: / 11-08-2011 / 12:21:30 / az"
+ "Modified: / 18-11-2011 / 18:46:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 21-12-2011 / 20:21:46 / cg"
+!
+
+doCompareMethodsWithRepository:methods usingManager: manager
+ "open a diff-textView comparing the current (in-image) versions
+ with the the newest versions found in the repository.
+ That is the most recent version."
+
+ |s aStream comparedSource currentSource thisRevString
+ current repositoryChangeSet diffs allDiffs
+ mclass mselector theNonMetaclass lastClass lastRepositoryChangeSet
+ isExtension title labelA labelB|
+
+ self withWaitCursorDo:[
+ Method flushSourceStreamCache.
+
+ methods do:[:eachMethod |
+ |classPackage methodPackage|
+
+ mclass := eachMethod mclass.
+ mclass isNil ifTrue:[
+ self warn:('Cannot find methods class (obsolete).').
+ ] ifFalse:[
+ classPackage := mclass package.
+ methodPackage := eachMethod package.
+ (classPackage == methodPackage or:[ methodPackage == PackageId noProjectID ]) ifTrue:[
+ theNonMetaclass := mclass theNonMetaclass.
+ isExtension := false.
+ ] ifFalse:[
+ isExtension := true.
+ ].
+
+ mselector := eachMethod selector.
+
+ currentSource := eachMethod source asString.
+ current := ChangeSet new.
+ current addMethodChange:eachMethod in:mclass.
+
+ self busyLabel:'getting repository source...' with:nil.
+
+ isExtension ifTrue:[
+ repositoryChangeSet := manager utilities
+ changeSetForExtensionMethodsForPackage:methodPackage
+ askForRevision:false
+ usingManager:manager.
+ repositoryChangeSet := repositoryChangeSet
+ select:[:eachChange | eachChange isMethodChange
+ and:[eachChange selector = mselector
+ and:[eachChange className = mclass name]]].
+ lastClass := nil.
+ ] ifFalse:[
+ (lastClass ~~ theNonMetaclass) ifTrue:[
+ aStream := self sourceStreamForRepositorySourceOfClass:theNonMetaclass.
+ aStream notNil ifTrue:[
+ aStream class readErrorSignal handle:[:ex |
+ self warn:('read error while reading extracted source\\' , ex description) withCRs.
+ aStream close.
+ comparedSource := nil.
+ ] do:[
+ comparedSource := aStream contents asString.
+ ].
+ aStream close.
+
+ thisRevString := theNonMetaclass revision.
+ thisRevString isNil ifTrue:[
+ thisRevString := 'no revision'
+ ].
+
+ lastRepositoryChangeSet := ChangeSet fromStream:(s := comparedSource readStream). s close.
+ lastClass := theNonMetaclass.
+
+ self busyLabel:'comparing...' with:nil.
+ ].
+ ].
+ repositoryChangeSet := (lastRepositoryChangeSet ? #())
+ select:[:eachChange | eachChange isMethodChange
+ and:[eachChange selector = mselector
+ and:[eachChange className = mclass name]]].
+ ].
+ repositoryChangeSet notEmptyOrNil ifTrue:[
+ diffs := repositoryChangeSet diffSetsAgainst:current.
+ ].
+ allDiffs isNil ifTrue:[
+ allDiffs := diffs.
+ ] ifFalse:[
+ allDiffs changed addAll:(diffs changed).
+ allDiffs onlyInArg addAll:(diffs onlyInArg).
+ allDiffs onlyInReceiver addAll:(diffs onlyInReceiver).
+ ].
+ ].
+ ].
+ ].
+
+ (allDiffs isNil or:[allDiffs isEmpty]) ifTrue:[
+ (methods
+ contains:[:m |
+ ChangeSet current includesChangeForClass:m mclass selector:m selector
+ ]
+ ) ifTrue:[
+ (self confirm:'Versions are identical.\\Remove entries from changeSet ?' withCRs)
+ ifTrue:[
+ methods do:[:m |
+ ChangeSet current condenseChangesForClass:m mclass selector:m selector.
+ ].
+ ].
+ ] ifFalse:[
+ self information:'Versions are identical.'.
+ ].
+ ^ self.
+ ].
+
+ title := methods size == 1
+ ifTrue:['Difference of %1' bindWith:methods first whoString]
+ ifFalse:['Differences of %1 classes' bindWith:methods size].
+
+ labelA := 'Repository'.
+ labelB := 'Image'.
+
+ (methods collect:[:m | m mclass theNonMetaclass]) asSet size == 1 ifTrue:[
+ "/ all methods of the same class
+ (methods collect:[:m | m package]) asSet size == 1 ifTrue:[
+ "/ all methods from the same package (source container)
+ labelA := 'Repository (%1)' bindWith:(thisRevString ? '?').
+ labelB := 'Image (based on %1)' bindWith:(methods first mclass theNonMetaclass revision).
+ ].
+ ].
+
+ VersionDiffBrowser
+ openOnDiffSet:allDiffs
+ labelA:labelA
+ labelB:labelB
+ title:title
+ ignoreExtensions:false.
+
+ self normalLabel.
+
+ "Modified: / 11-08-2011 / 12:21:30 / az"
+ "Created: / 18-11-2011 / 18:45:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:17:36 / cg"
!
doMoveSelectedMethodsToProject:newProject
@@ -36077,6 +40577,9 @@
!
selectorMenuBrowseRepositoryVersions
+
+ <resource: #obsolete> "use ...Using:manager variant"
+
|method mclass mselector className mgr revisions previousMethods browser
lastSource currentSource lastRevision lastDate lastChange thisIsAnExtensionMethod
packageId directory module|
@@ -36102,7 +40605,7 @@
] ifFalse:[
packageId := mclass package asPackageId.
"/ mgr := packageId projectDefinitionClass sourceCodeManager.
- mgr := SourceCodeManagerUtilities sourceCodeManagerFor:mclass.
+ mgr := SourceCodeManagerUtilities default sourceCodeManagerFor:mclass.
self assert:(mgr = packageId projectDefinitionClass sourceCodeManager).
].
directory := packageId directory.
@@ -36278,6 +40781,221 @@
].
"Modified: / 01-07-2011 / 16:34:29 / cg"
+ "Modified: / 18-11-2011 / 18:17:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+selectorMenuBrowseRepositoryVersionsUsingManager: manager
+
+ |method mclass mselector className mgr revisions previousMethods browser
+ lastSource currentSource lastRevision lastDate lastChange thisIsAnExtensionMethod
+ packageId directory module|
+
+ method := self theSingleSelectedMethod.
+ method isNil ifTrue:[^ self].
+
+ mclass := method mclass.
+ mselector := method selector.
+ className := mclass name.
+ [
+ |set|
+
+ set := ChangeSet forExistingMethods:(Array with:method).
+ set := set select:[:c | c isMethodChange].
+ lastChange := set first.
+ ] value.
+
+ thisIsAnExtensionMethod := (method package ~= mclass package).
+ thisIsAnExtensionMethod ifTrue:[
+ packageId := method package asPackageId.
+ mgr := manager
+ ] ifFalse:[
+ packageId := mclass package asPackageId.
+ "/ mgr := packageId projectDefinitionClass sourceCodeManager.
+ mgr := manager.
+ "/self assert:(mgr = packageId projectDefinitionClass sourceCodeManager).
+ ].
+ directory := packageId directory.
+ module := packageId module.
+
+ self withWaitCursorDo:[
+ |revisionLog start stop answer t tS list msg first|
+
+ thisIsAnExtensionMethod ifTrue:[
+ revisionLog := mgr
+ revisionLogOf:nil
+ fromRevision:nil
+ toRevision:nil
+ numberOfRevisions:nil
+ fileName:'extensions.st'
+ directory:directory
+ module:module.
+ ] ifFalse:[
+ revisionLog := mgr revisionLogOf:mclass.
+ ].
+ revisions := revisionLog at:#revisions.
+
+ start := 1.
+ stop := revisions size.
+ stop > 20 ifTrue:[
+ thisIsAnExtensionMethod ifTrue:[
+ t := 500. "/ fake time
+ ] ifFalse:[
+ "/ measure the time it takes to checkout a version...
+ t := Time millisecondsToRun:[
+ |revSourceStream|
+
+ revSourceStream := mgr getSourceStreamFor:mclass revision:((revisions at:10) at:#revision).
+ ChangeSet fromStream:revSourceStream.
+ revSourceStream close.
+ ].
+ ].
+
+ list := revisions collect:[:entry |
+ |rev author dateString date msg|
+
+ rev := entry at:#revision.
+ author := entry at:#author.
+ dateString := entry at:#date.
+ date := Timestamp readGeneralizedFrom:dateString.
+ dateString := date printStringFormat:'%(year)-%(mon)-%(day) %h:%m:%s'.
+ entry at:#date put:dateString.
+ msg := (entry at:#logMessage) asStringCollection first asString.
+ rev,' ',author,' ',dateString,' ',msg
+ ].
+ msg := 'There are %1 revisions to extract from the repository'.
+ t := (t * revisions size / 1000) rounded.
+ t < 10 ifTrue:[
+ msg := msg,'\(this will take a few seconds).'.
+ tS := t.
+ ] ifFalse:[
+ t := t * revisions size // 1000 // 10 * 10.
+ tS := (TimeDuration fromSeconds:t) printStringForApproximation.
+ msg := msg,'\(this will take roughly %2).'
+ ].
+ msg := msg,'\\Do you want to see all or only some of the revisions ?'.
+
+ answer := Dialog
+ choose:(resources stringWithCRs:msg
+ with:revisions size
+ with:tS)
+ fromList:list values:revisions initialSelection:nil
+ buttons:nil
+ values:nil
+ default:nil
+ lines:20
+ cancel:[^ self]
+ multiple:false
+ title:(resources string:'Confirmation')
+ postBuildBlock:[:dialog |
+ |b|
+
+ b := Button label:(resources string:'Browse Newer than Selected').
+ b action:[ stop := (dialog componentAt:#ListView) selection. dialog okPressed].
+ b := dialog addButton:b before:dialog okButton.
+
+ dialog okButton label:(resources string:'Browse All').
+ dialog okButton action:[ stop := revisions size. dialog okPressed].
+ ].
+
+ stop isNil ifTrue:[^ self ].
+ ].
+
+t := Time millisecondsToRun:[
+
+ previousMethods := ChangeSet new.
+ lastSource := currentSource := method source.
+ lastRevision := lastDate := nil.
+ first := true.
+
+ revisions from:start to:stop do:[:eachLogEntry |
+ |revision date revSourceStream|
+
+ revision := eachLogEntry at:#revision.
+ date := eachLogEntry at:#date.
+
+ [
+ |chg nChg classChangeSet changeSource changeName|
+
+ self activityNotification:('Fetching revision ',revision,'...').
+ thisIsAnExtensionMethod ifTrue:[
+ revSourceStream := mgr
+ streamForClass:nil
+ fileName:'extensions.st'
+ revision:revision
+ directory:directory
+ module:module
+ cache:true.
+ ] ifFalse:[
+ revSourceStream := mgr getSourceStreamFor:mclass revision:revision.
+ ].
+ classChangeSet := ChangeSet fromStream:revSourceStream.
+
+ chg := classChangeSet
+ detect:[:chg | chg isMethodChange
+ and:[chg selector = mselector
+ and:[chg className = className]]]
+ ifNone:nil.
+
+ chg isNil ifTrue:[
+ "the method was created in the next version (previous one processed)"
+ ] ifFalse:[
+ changeSource := chg source.
+ ].
+ ((changeSource isNil and:[lastSource isNil])
+ or:[ changeSource asString = lastSource asString ]) ifTrue:[
+ ] ifFalse:[
+ lastChange isNil ifTrue:[
+ "/ mhm - was not in the previous version
+ ] ifFalse:[
+ nChg := lastChange asNamedMethodChange
+ ].
+ lastRevision isNil ifTrue:[
+ (stop = revisions size) ifTrue:[
+ changeName := 'current (not in the repository)'.
+ ] ifFalse:[
+ "/ not showing all - dont really know
+ changeName := 'current'.
+ ].
+ ] ifFalse:[
+ changeName := lastRevision,' [',lastDate,']'.
+ first ifTrue:[
+ changeName := changeName,' (= current)'.
+ ]
+ ].
+ nChg notNil ifTrue:[
+ nChg changeName:changeName.
+ previousMethods add:nChg.
+ ].
+ lastSource := changeSource.
+ lastChange := chg.
+
+ first := false.
+ ].
+ lastRevision := revision.
+ lastDate := date.
+ ] ensure:[
+ revSourceStream notNil ifTrue:[revSourceStream close].
+ ].
+ ].
+].
+"/ Transcript showCR:('it took %1 seconds' bindWith:(t /1000)printString).
+
+ self activityNotification:nil.
+ browser := (UserPreferences current changeSetBrowserClass) openOn:previousMethods.
+ browser window label:('Revisions of ' , mclass name , ' ' , mselector).
+ browser readOnly:true.
+ ].
+
+ "Modified: / 01-07-2011 / 16:34:29 / cg"
+ "Created: / 18-11-2011 / 18:19:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:29:42 / cg"
+!
+
+selectorMenuBrowseRepositoryVersionsUsingManagerNamed: managerName
+
+ ^self selectorMenuBrowseRepositoryVersionsUsingManager: (Smalltalk at:managerName asSymbol)
+
+ "Created: / 02-01-2012 / 12:35:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
selectorMenuChangePrivacyTo:privacySymbol
@@ -36323,7 +41041,29 @@
with the the newest version found in the repository.
That is the most recent version."
+ <resource: #obsolete> "use ...Using:manager variant"
+
self doCompareMethodsWithRepository:(self selectedMethods value).
+
+ "Modified: / 18-11-2011 / 18:43:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+selectorMenuCompareAgainstNewestInRepositoryUsingManager: manager
+ "open a diff-textView comparing the current (in-image) version
+ with the the newest version found in the repository.
+ That is the most recent version."
+
+ self doCompareMethodsWithRepository:(self selectedMethods value) usingManager: manager.
+
+ "Created: / 18-11-2011 / 18:44:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:20:20 / cg"
+!
+
+selectorMenuCompareAgainstNewestInRepositoryUsingManagerNamed: managerNamed
+
+ ^ self selectorMenuCompareAgainstNewestInRepositoryUsingManager: (Smalltalk at:managerNamed asSymbol)
+
+ "Created: / 02-01-2012 / 12:37:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
selectorMenuCompareClassAgainstNewestInRepository
@@ -36331,12 +41071,40 @@
with the the newest version found in the repository.
That is the most recent version."
+ <resource: #obsolete> "use ...Using:manager variant"
+
+ |classes|
+
+ classes := (self selectedMethods value 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>"
+!
+
+selectorMenuCompareClassAgainstNewestInRepositoryUsingManager: manager
+ "open a diff-textView comparing the current (in-image) version of the class(es)
+ with the the newest version found in the repository.
+ That is the most recent version."
+
|classes|
classes := (self selectedMethods value collect:[:m | m mclass theNonMetaclass]) asSet.
- self doCompareClassesWithRepository:classes.
-
- "Created: / 13-10-2006 / 11:40:23 / cg"
+ self doCompareClassesWithRepository:classes usingManager: manager
+
+ "Created: / 18-11-2011 / 18:47:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:20:28 / cg"
+!
+
+selectorMenuCompareClassAgainstNewestInRepositoryUsingManagerNamed: managerName
+ "open a diff-textView comparing the current (in-image) version of the class(es)
+ with the the newest version found in the repository.
+ That is the most recent version."
+
+ ^ self selectorMenuCompareClassAgainstNewestInRepositoryUsingManager: (Smalltalk at:managerName asSymbol)
+
+ "Created: / 21-12-2011 / 20:20:28 / cg"
+ "Created: / 02-01-2012 / 12:37:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
selectorMenuCompareTwoSelectedMethods
@@ -38664,6 +43432,7 @@
"Modified: / 25-06-2010 / 10:08:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+
!NewSystemBrowser methodsFor:'menu actions-variables'!
browseVarRefsOrModsWithTitle:browserTitle boxTitle:boxTitle variables:varType access:accessType all:browseAll
@@ -39208,8 +43977,8 @@
ifFalse:['Accessors']].
self
- generateUndoableChangeOverSelectedClasses:'Generate ',what,' in %(singleClassNameOrNumberOfClasses)'
- via:[:generator :eachClass |
+ generateUndoableChange:'Generate ',what,' in %(singleClassNameOrNumberOfClasses)'
+ overSelectedClassesVia:[:generator :eachClass |
|classVars instVars|
classVars := names select:[:var | eachClass classVarNames includes:var].
@@ -39236,7 +44005,7 @@
]
]
- "Modified: / 05-07-2011 / 23:01:12 / cg"
+ "Modified: / 21-01-2012 / 10:25:52 / cg"
!
variablesMenuGenerateAccessMethodsForAll
@@ -39332,8 +44101,8 @@
"common helper to create access methods."
self
- generateUndoableChangeOverSelectedClasses:'Generate collection access in %(singleClassNameOrNumberOfClasses)'
- via:[:generator :eachClass |
+ generateUndoableChange:'Generate collection access in %(singleClassNameOrNumberOfClasses)'
+ overSelectedClassesVia:[:generator :eachClass |
names size > 0 ifTrue:[
generator
createCollectionAccessMethodsFor:names
@@ -40048,6 +44817,21 @@
].
!
+categoryMenuWithFind
+ "insert the sourcecode manager name"
+
+ <resource: #programMenu>
+
+ | menu |
+
+ menu := self class categoryMenuWithFind decodeAsLiteralArray.
+ menu receiver:self.
+ menu findGuiResourcesIn:self.
+ ^ menu
+
+ "Created: / 15-10-2011 / 12:28:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
changedClassesMenu
"returns a block evaluating to a popup menu to navigate
to the last few changed classes"
@@ -40192,25 +44976,15 @@
<resource: #programMenu>
- |menu item sourceCodeManager|
+ | menu |
menu := self class classMenu decodeAsLiteralArray.
- item := menu menuItemWithArgument:#SCM.
- self theSingleSelectedClass notNil ifTrue:[
- sourceCodeManager := self theSingleSelectedClass sourceCodeManager.
- ] ifFalse:[
- sourceCodeManager := SourceCodeManager ? AbstractSourceCodeManager defaultManager.
- ].
- sourceCodeManager isNil ifTrue:[
- item label:(resources string:'SCM (none)').
- ] ifFalse:[
- item label:(resources string:'SCM (%1)' with:(sourceCodeManager managerTypeName)).
- ].
menu receiver:self.
menu findGuiResourcesIn:self.
^ menu
"Created: / 19-04-2011 / 14:29:47 / cg"
+ "Created: / 11-10-2011 / 09:08:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
classOperationsMenu
@@ -40482,6 +45256,56 @@
].
!
+globalReferencesMenu
+ "a menu allowing to browse the referenced globals (typically: classes) of the
+ selected method(s)"
+
+ |classes m|
+
+ classes := Set new.
+
+ self selectedMethodsDo:[:m |
+ m literalsDo:[:lit |
+ |cls ns|
+
+ lit isSymbol ifTrue:[
+ (((cls := Smalltalk at:lit) notNil and:[ cls isBehavior ])
+ "JV@2011-11-25: Added check if the nameSpace is really a namespace, it may be
+ a class if m mclass is a privateClass...
+ ---------------------------------------------v"
+ or:[ m mclass notNil
+ and:[ (ns := m mclass nameSpace) notNil
+ and:[ ns isNameSpace
+ and:[ ns ~= Smalltalk
+ and:[ (cls := ns at:lit) notNil and:[ cls isBehavior ]]]]]])
+ ifTrue:[
+ classes add:cls
+ ]
+ ]
+ ].
+ ].
+ classes isEmpty ifTrue:[
+ ^ nil
+ ].
+
+ classes := classes asOrderedCollection sort:[:a :b | a name < b name].
+
+ m := Menu new.
+ classes do:[:each |
+ |item|
+
+ item := MenuItem label:each name.
+ item value:#'spawnBrowserOnClass:'.
+ item argument:each.
+ m addItem:item.
+ ].
+ ^ m
+
+ "Created: / 26-10-2011 / 18:15:01 / cg"
+ "Modified (comment): / 25-11-2011 / 21:57:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 21-12-2011 / 23:52:28 / cg"
+!
+
goBackInGlobalHistoryMenu
<resource: #programMenu>
@@ -40861,6 +45685,21 @@
^menu
!
+projectMenu
+
+ <resource: #programMenu>
+
+ | menu |
+
+ menu := self class projectMenu decodeAsLiteralArray.
+ menu receiver:self.
+ menu findGuiResourcesIn:self.
+ ^ menu
+
+ "Created: / 18-02-2000 / 12:17:28 / cg"
+ "Modified: / 12-10-2011 / 20:31:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
selectedClassesHierarchyMenu
<resource: #programMenu >
@@ -40989,6 +45828,475 @@
"Modified: / 20-11-2006 / 12:23:08 / cg"
! !
+!NewSystemBrowser methodsFor:'menus-dynamic-SCM'!
+
+categoryMenuSCMFor: sourceCodeManagerClassName
+ "insert the sourcecode manager name"
+
+ <resource: #programMenu>
+
+ |manager menu |
+
+ sourceCodeManagerClassName isBehavior ifTrue:[
+ manager := sourceCodeManagerClassName
+ ] ifFalse:[
+ manager := Smalltalk at: sourceCodeManagerClassName.
+ ].
+ manager isNil ifTrue:[
+ menu := Menu new.
+ menu addItem:
+ (MenuItem
+ label: (resources string: 'Unavailable - Configure SCM')
+ value: [self openSettingsDialogAndSelectSourceCodeManagement])
+ ] ifFalse:[
+ menu := self class categoryMenuSCMCommon decodeAsLiteralArray.
+ ].
+ self replaceSourceCodeManagerPlaceholderWith: manager in: menu.
+
+ ^ menu
+
+ "Created: / 15-10-2011 / 12:23:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+categoryMenuSCMSlice
+
+ <resource: #programMenu>
+
+ ^self
+ commonMenuSCMSliceNamed: #categoryMenuSCMSlice
+ computeManagerWith:
+ [:managers|
+ self selectedCategoryClassesDo: [:cls|
+ | mgr |
+
+ mgr := cls theNonMetaclass sourceCodeManager.
+ mgr isNil ifFalse:[managers add: mgr]
+ ]].
+
+ "Created: / 19-04-2011 / 14:29:47 / cg"
+ "Created: / 15-10-2011 / 12:31:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+classMenuSCMExtraFor: sourceCodeManagerClassName
+
+ <resource: #programMenu>
+
+ |manager spec menu |
+
+ sourceCodeManagerClassName isBehavior ifTrue:[
+ manager := sourceCodeManagerClassName
+ ] ifFalse:[
+ manager := Smalltalk at: sourceCodeManagerClassName.
+ manager isNil ifTrue:[
+ ^Menu new
+ ].
+ ].
+ spec := self class perform: ('classMenuSCMExtra_' , manager managerTypeNameShort) asSymbol ifNotUnderstood:[nil].
+ spec notNil ifTrue:[
+ menu := spec decodeAsLiteralArray.
+ menu receiver:self.
+ menu findGuiResourcesIn:self.
+ menu addItem: (MenuItem separator) beforeIndex: 1
+ ] ifFalse:[
+ menu := Menu new.
+ ].
+ ^menu
+
+ "Created: / 12-10-2011 / 16:04:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+classMenuSCMExtraForManagerNamed:sourceCodeManagerClassName
+
+ <resource: #programMenu>
+
+ |manager spec menu |
+
+ sourceCodeManagerClassName isBehavior ifTrue:[
+ manager := sourceCodeManagerClassName
+ ] ifFalse:[
+ manager := Smalltalk at: sourceCodeManagerClassName.
+ manager isNil ifTrue:[
+ ^Menu new
+ ].
+ ].
+ spec := self class perform: ('classMenuSCMExtra_' , manager managerTypeNameShort) asSymbol ifNotUnderstood:[nil].
+ spec notNil ifTrue:[
+ menu := spec decodeAsLiteralArray.
+ menu receiver:self.
+ menu findGuiResourcesIn:self.
+ menu addItem: (MenuItem separator) beforeIndex: 1
+ ] ifFalse:[
+ menu := Menu new.
+ ].
+ ^menu
+
+ "Created: / 12-10-2011 / 16:04:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:01:27 / cg"
+!
+
+classMenuSCMFor: sourceCodeManagerClassName
+ "insert the sourcecode manager name"
+
+ <resource: #programMenu>
+
+ |manager menu |
+
+ sourceCodeManagerClassName isBehavior ifTrue:[
+ manager := sourceCodeManagerClassName
+ ] ifFalse:[
+ manager := Smalltalk at: sourceCodeManagerClassName.
+ ].
+ manager isNil ifTrue:[
+ menu := Menu new.
+ menu addItem:
+ (MenuItem
+ label: (resources string: 'Unavailable - Configure SCM')
+ value: [self openSettingsDialogAndSelectSourceCodeManagement])
+ ] ifFalse:[
+ menu := self class classMenuSCMCommon decodeAsLiteralArray.
+ ].
+ self replaceSourceCodeManagerPlaceholderWith: manager in: menu.
+
+ ^ menu
+
+ "Created: / 07-10-2011 / 16:18:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+classMenuSCMSlice
+
+ <resource: #programMenu>
+
+ ^self
+ commonMenuSCMSliceNamed: #classMenuSCMSlice
+ computeManagerWith:[:managers|
+ self selectedClassesDo: [:cls|
+ | mgr |
+
+ mgr := cls theNonMetaclass sourceCodeManager.
+ mgr notNil ifTrue:[managers add: mgr]
+ ]
+ ].
+
+ "Created: / 19-04-2011 / 14:29:47 / cg"
+ "Created: / 07-10-2011 / 14:53:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 10-01-2012 / 00:26:38 / cg"
+!
+
+commonMenuSCMSliceNamed: sliceName computeManagerWith: managersBlock
+ "Common helper for SCM menu creation. managersBlock
+ is one arg block that should fill a set of managers
+ (passes as arg) for currently selected thingies
+ (classes, projects, ...)"
+
+ <resource: #programMenu>
+
+ | layout menu item managers manager |
+
+ layout := UserPreferences current sourceCodeManagementMenuLayout.
+ menu := self class
+ perform:
+ (sliceName, '_' , layout) asSymbol
+ ifNotUnderstood: [self class perform:(sliceName, '_old') asSymbol].
+ menu := menu decodeAsLiteralArray.
+ managers := Set new.
+ managersBlock value: managers.
+ managers size == 1 ifTrue:[
+ manager := managers anyOne.
+ ] ifFalse:[
+ manager := nil
+ ].
+ item := menu menuItemWithKey:#SCM.
+ (item notNil) ifTrue:[
+ manager notNil ifTrue:[
+ manager := managers anyOne.
+ item label:(resources string:'Repository') , ' ' , (manager managerTypeName asText colorizeAllWith:Color gray).
+ ] ifFalse:[
+ item label:(resources string:'Repository').
+ item enabled: false.
+ ].
+ ].
+ self replaceSourceCodeManagerPlaceholderWith: manager in: menu.
+ (layout = 'inline') ifTrue:[
+ menu itemsDo:[:item|
+ manager notNil ifTrue:[
+ item argument == manager name ifTrue:[
+ item label: (item label , ' ' , ((resources string: '(default)') asText colorizeAllWith: Color gray)).
+ ]
+ ] ifFalse:[
+ item enabled: false
+ ].
+ ]
+ ].
+ ^ menu
+
+ "Created: / 19-04-2011 / 14:29:47 / cg"
+ "Created: / 15-10-2011 / 11:02:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 01-12-2011 / 21:18:20 / cg"
+!
+
+projectMenuSCMCompareBuildSupportFileFor: sourceCodeManagerClassName
+
+ <resource: #programMenu>
+
+ |manager menu |
+
+ sourceCodeManagerClassName isBehavior ifTrue:[
+ manager := sourceCodeManagerClassName
+ ] ifFalse:[
+ manager := Smalltalk at: sourceCodeManagerClassName.
+ ].
+ manager isNil ifTrue:[
+ menu := Menu new.
+ menu addItem:
+ (MenuItem
+ label: (resources string: 'Unavailable - Configure SCM')
+ value: [self openSettingsDialogAndSelectSourceCodeManagement])
+ ] ifFalse:[
+ menu := self class projectMenuSCMCompareBuildSupportFile decodeAsLiteralArray.
+ menu itemsDo:[:item|
+
+ | selector |
+ selector := item value.
+ item value:[self perform: selector with: item argument with: manager]
+ ]
+ ].
+ menu receiver:self.
+ menu findGuiResourcesIn:self.
+ ^ menu
+
+ "Created: / 12-10-2011 / 20:23:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+projectMenuSCMCompareBuildSupportFileForManagerNamed:sourceCodeManagerClassName
+
+ <resource: #programMenu>
+
+ |manager menu |
+
+ sourceCodeManagerClassName isBehavior ifTrue:[
+ manager := sourceCodeManagerClassName
+ ] ifFalse:[
+ manager := Smalltalk at: sourceCodeManagerClassName.
+ ].
+ manager isNil ifTrue:[
+ menu := Menu new.
+ menu addItem:
+ (MenuItem
+ label: (resources string: 'Unavailable - Configure SCM')
+ value: [self openSettingsDialogAndSelectSourceCodeManagement])
+ ] ifFalse:[
+ menu := self class projectMenuSCMCompareBuildSupportFile decodeAsLiteralArray.
+ menu itemsDo:[:item|
+
+ | selector |
+ selector := item value.
+ item value:[self perform: selector with: item argument with: manager]
+ ]
+ ].
+ menu receiver:self.
+ menu findGuiResourcesIn:self.
+ ^ menu
+
+ "Created: / 12-10-2011 / 20:23:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 21-12-2011 / 20:01:10 / cg"
+!
+
+projectMenuSCMExtraFor: sourceCodeManagerClassName
+
+ <resource: #programMenu>
+
+ |manager spec menu |
+
+ sourceCodeManagerClassName isBehavior ifTrue:[
+ manager := sourceCodeManagerClassName
+ ] ifFalse:[
+ manager := Smalltalk at: sourceCodeManagerClassName.
+ manager isNil ifTrue:[
+ ^Menu new
+ ].
+ ].
+ spec := self class perform: ('projectMenuSCMExtra_' , manager managerTypeNameShort) asSymbol ifNotUnderstood:[nil].
+ spec notNil ifTrue:[
+ menu := spec decodeAsLiteralArray.
+ menu receiver:self.
+ menu findGuiResourcesIn:self.
+ menu addItem: (MenuItem separator) beforeIndex: 1
+ ] ifFalse:[
+ menu := Menu new.
+ ].
+ ^menu
+
+ "Created: / 15-10-2011 / 22:42:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+projectMenuSCMFor: sourceCodeManagerClassName
+ "insert the sourcecode manager name"
+
+ <resource: #programMenu>
+
+ |manager menu |
+
+ sourceCodeManagerClassName isBehavior ifTrue:[
+ manager := sourceCodeManagerClassName
+ ] ifFalse:[
+ manager := Smalltalk at: sourceCodeManagerClassName.
+ ].
+ manager isNil ifTrue:[
+ menu := Menu new.
+ menu addItem:
+ (MenuItem
+ label: (resources string: 'Unavailable - Configure SCM')
+ value: [self openSettingsDialogAndSelectSourceCodeManagement])
+ ] ifFalse:[
+ menu := self class projectMenuSCMCommon decodeAsLiteralArray.
+ ].
+ self replaceSourceCodeManagerPlaceholderWith: manager in: menu.
+
+ ^ menu
+
+ "Created: / 12-10-2011 / 20:57:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+projectMenuSCMSlice
+
+ <resource: #programMenu>
+
+ ^self
+ commonMenuSCMSliceNamed: #projectMenuSCMSlice
+ computeManagerWith:
+ [:managers|
+ self selectedProjectsDo:[:pkg|
+ | mgr |
+
+ mgr := AbstractSourceCodeManager managerForPackage:pkg.
+ mgr isNil ifFalse:[managers add: mgr]
+ ]].
+
+ "Created: / 19-04-2011 / 14:29:47 / cg"
+ "Created: / 12-10-2011 / 20:53:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+selectorMenuSCMExtraFor: sourceCodeManagerClassName
+
+ <resource: #programMenu>
+
+ |manager spec menu |
+
+ sourceCodeManagerClassName isBehavior ifTrue:[
+ manager := sourceCodeManagerClassName
+ ] ifFalse:[
+ manager := Smalltalk at: sourceCodeManagerClassName.
+ manager isNil ifTrue:[
+ ^Menu new
+ ].
+ ].
+ spec := self class perform: ('selectorMenuSCMExtra_' , manager managerTypeNameShort) asSymbol ifNotUnderstood:[nil].
+ spec notNil ifTrue:[
+ menu := spec decodeAsLiteralArray.
+ menu receiver:self.
+ menu findGuiResourcesIn:self.
+ menu addItem: (MenuItem separator) beforeIndex: 1
+ ] ifFalse:[
+ menu := Menu new.
+ ].
+ ^menu
+
+ "Created: / 15-10-2011 / 22:42:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+selectorMenuSCMFor: sourceCodeManagerClassName
+ "insert the sourcecode manager name"
+
+ <resource: #programMenu>
+
+ |manager menu |
+
+ sourceCodeManagerClassName isBehavior ifTrue:[
+ manager := sourceCodeManagerClassName
+ ] ifFalse:[
+ manager := Smalltalk at: sourceCodeManagerClassName.
+ ].
+ manager isNil ifTrue:[
+ menu := Menu new.
+ menu addItem:
+ (MenuItem
+ label: (resources string: 'Unavailable - Configure SCM')
+ value: [self openSettingsDialogAndSelectSourceCodeManagement])
+ ] ifFalse:[
+ menu := self class selectorMenuSCMCommon decodeAsLiteralArray.
+ ].
+ self replaceSourceCodeManagerPlaceholderWith: manager in: menu.
+
+ ^ menu
+
+ "Created: / 12-10-2011 / 20:58:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+selectorMenuSCMSlice
+
+ <resource: #programMenu>
+
+ ^self
+ commonMenuSCMSliceNamed: #selectorMenuSCMSlice
+ computeManagerWith:
+ [:managers|
+ self selectedMethodsDo:[:mthd|
+ | mgr |
+
+ mgr := AbstractSourceCodeManager managerForPackage:mthd package.
+ mgr isNil ifFalse:[managers add: mgr].
+ ]].
+
+ "Created: / 19-04-2011 / 14:29:47 / cg"
+ "Created: / 12-10-2011 / 20:54:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 19-10-2011 / 16:48:31 / cg"
+! !
+
+!NewSystemBrowser methodsFor:'menus-dynamic-popup'!
+
+categoryPopUpMenu
+ "return the popUpMenu for the class-category-list view"
+
+ <resource: #programMenu>
+
+ ^[ self categoryMenuWithFind ]
+
+ "Created: / 18-02-2000 / 11:58:25 / cg"
+ "Created: / 15-10-2011 / 12:28:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+classPopUpMenu
+ "return the popUpMenu for the regular class-list view"
+
+ <resource: #programMenu>
+
+ ^[ self classMenu ]
+
+ "Created: / 18-02-2000 / 11:58:25 / cg"
+ "Modified: / 11-10-2011 / 09:18:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+hierarchyPopUpMenu
+ "return the popUpMenu for the class-hierarchy-list view"
+
+ <resource: #programMenu>
+
+ ^ self classPopUpMenu
+
+ "Created: / 18.2.2000 / 11:58:25 / cg"
+!
+
+projectPopUpMenu
+ "return the popUpMenu for the project-list view"
+
+ <resource: #programMenu>
+
+ ^[ self projectMenu ]
+
+ "Created: / 18-02-2000 / 11:58:25 / cg"
+ "Created: / 12-10-2011 / 20:28:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!NewSystemBrowser methodsFor:'menus-dynamic-subversion'!
commonSubversionBranchMenu
@@ -40996,6 +46304,7 @@
<resource: #programMenu >
| menu repository wc branchAspect|
+
menu := Menu new.
repository := self selectedProjectSubversionRepository.
repository ifNil:[^nil].
@@ -41017,6 +46326,7 @@
"Created: / 19-04-2008 / 11:06:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
"Modified: / 24-06-2010 / 14:29:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified (format): / 01-12-2011 / 21:06:52 / cg"
! !
!NewSystemBrowser methodsFor:'navigation'!
@@ -41461,7 +46771,9 @@
(aClass isNameSpace and:[aClass ~~ Smalltalk]) ifTrue:[
orgMode ~~ OrganizerCanvas organizerModeNamespace ifTrue:[
- answer := self confirmWithCancel:('Browser: ' , aClass name , ' is a namespace - switch organizers display mode ?').
+ answer := self
+ confirmWithCancel:(resources string:'Browser: %1 is a namespace - switch organizers display mode ?' with:aClass name)
+ defaultAnswer:false.
answer isNil ifTrue:[
AbortOperationRequest raise.
^ self
@@ -41578,10 +46890,9 @@
self normalLabel.
self enqueueDelayedClassSelectionChange.
- "Modified: / 24-02-2000 / 13:25:28 / cg"
"Created: / 22-02-2008 / 09:05:51 / janfrog"
"Modified: / 27-02-2008 / 16:45:21 / janfrog"
- "Modified (format): / 02-07-2011 / 18:33:00 / cg"
+ "Modified: / 05-10-2011 / 13:49:41 / cg"
!
switchToClassNameMatching:aMatchString
@@ -41746,7 +47057,7 @@
].
category := aMethod category.
- (self selectedProtocolsValue contains:[:p | p string = category]) ifFalse:[
+ (self selectedProtocolsValue contains:[:p | p notNil and:[p string = category]]) ifFalse:[
(self selectedProtocolsValue includes:BrowserList nameListEntryForALL) ifFalse:[
self selectProtocols:(Array with:category).
]
@@ -41754,6 +47065,8 @@
self theSingleSelectedMethod ~~ aMethod ifTrue:[
self selectedMethods value:(Array with:aMethod).
]
+
+ "Modified: / 30-08-2011 / 16:03:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
switchToSearchItemMatching:aMatchString
@@ -42666,7 +47979,9 @@
"/ immediate coloring, if code is not too large;
"/ otherwise, do it in the background.
code size < 2000 " 10000 " ifTrue:[
- Error catch:[
+ Error handle:[:ex |
+ Transcript showCR:'error in syntaxHighlighter: ',ex description.
+ ] do:[
code := self syntaxHighlightedCodeFor:code method:mthd.
].
] ifFalse:[
@@ -42684,6 +47999,7 @@
self showCode:code scrollToTop:doScrollToTop.
].
+ "/ scroll, for file-based classes (java, ruby, etc.)
mthd sourceLineNumber ~~ 1 ifTrue:[
doScrollToTop "ifTrue:" ifFalse:[
codeView scrollToLine:mthd sourceLineNumber
@@ -42695,6 +48011,7 @@
"Created: / 01-03-2000 / 11:38:57 / cg"
"Modified (format): / 29-07-2011 / 11:45:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 21-08-2011 / 08:54:33 / cg"
!
showNothing
@@ -42716,7 +48033,7 @@
cls notNil ifTrue:[
cls := cls theNonMetaclass.
(ownerClass := cls topOwningClass) isNil ifTrue:[ownerClass := cls].
- mgr := SourceCodeManagerUtilities sourceCodeManagerFor:ownerClass.
+ mgr := SourceCodeManagerUtilities default sourceCodeManagerFor:ownerClass.
info := 'Package: ' , ownerClass package.
@@ -42750,6 +48067,33 @@
"Modified: / 12-09-2006 / 14:23:40 / cg"
!
+sourceCodeManagerOfClass:aClass
+ |metaclass nonMetaclass sourceCodeManager|
+
+ "/ metaclass := aClass theMetaclass.
+ nonMetaclass := aClass theNonMetaclass.
+
+ "/ hack:
+ "/ to prevent JAVA-bridge to forward those messages, we check for the presence first,
+ "/ instead of using perform:ifNotUnderstood:
+
+ (nonMetaclass respondsTo:#sourceCodeManagerForSourceAccess) ifTrue:[
+ sourceCodeManager := nonMetaclass sourceCodeManagerForSourceAccess.
+ sourceCodeManager notNil ifTrue:[ ^ sourceCodeManager].
+ ].
+ (nonMetaclass respondsTo:#sourceCodeManagerFromBinaryRevision) ifTrue:[
+ sourceCodeManager := nonMetaclass sourceCodeManagerFromBinaryRevision.
+ sourceCodeManager notNil ifTrue:[ ^ sourceCodeManager].
+ ].
+ (nonMetaclass respondsTo:#sourceCodeManager) ifTrue:[
+ sourceCodeManager := nonMetaclass sourceCodeManager
+ ].
+ ^ sourceCodeManager
+
+ "Modified: / 03-12-2011 / 21:48:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 15-01-2012 / 00:15:05 / cg"
+!
+
sourceOfMethod:mthd
|code|
@@ -42793,23 +48137,79 @@
"'.
!
+updatePackageInfoBarIfSourceCodeManagersDoesNotMatchForClass: aClass
+ "Show a warning in package info bar if configured source code manager
+ does not match the source code manager for source access"
+
+ | cls cnfManager srcManager color showInfoButton |
+
+ navigationState packageInfoButton isNil ifTrue:[
+ "JV@2011-10-03: When a browser is embedded in the inspector,
+ this method is called before the view is set. As a workaround,
+ return here"
+ ^self.
+ ].
+
+
+ color := Label defaultBackgroundColor.
+ showInfoButton := false.
+
+ (aClass notNil and:[aClass isLoaded]) ifTrue:[
+ cls := aClass.
+ [ cls isPrivate ] whileTrue:[cls := cls owningClass].
+ "For libbasic without #sourceCodeManagerFromBinaryRevision..."
+ (cls respondsTo: #sourceCodeManagerFromBinaryRevision) ifTrue:[
+ cnfManager := cls sourceCodeManager.
+ srcManager := cls sourceCodeManagerFromBinaryRevision.
+
+ cnfManager ~~ srcManager ifTrue:[
+ "Color yellow lighter"
+ color := (Color red:100.0 green:100.0 blue:54.5464255741207).
+ showInfoButton := true.
+ navigationState packageInfoButton action:
+ [self
+ informUserAboutPackage: cls package
+ configuredManager: cnfManager
+ sourceManager: srcManager
+ ]
+
+ ]
+ ]
+ ].
+
+ navigationState packageInfoButton isVisible: showInfoButton.
+ navigationState packageInfoBackgroundColorHolder value: color.
+
+ "Created: / 03-10-2011 / 13:54:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
updatePackageInfoForClass:aClass
- |packageLabel loadInfo revisionInfo revision lastUser|
-
- (aClass notNil and:[aClass isClass or:[aClass isMetaclass]]) ifTrue:[
+ |cls packageLabel loadInfo revisionInfo sourceCodeManager sourceCodeManagerInfo revision lastUser|
+
+ (aClass notNil and:[aClass isClass or:[aClass isMetaclass]]) ifTrue:[
"/ packageLabel := 'Base: ' , (aClass package ? '?').
+
+ cls := aClass theNonMetaclass.
packageLabel := (aClass package ? '?') allBold.
aClass isLoaded ifTrue:[
- revisionInfo := aClass theNonMetaclass revisionInfo.
+ sourceCodeManager := self sourceCodeManagerOfClass:aClass.
+
+ sourceCodeManager notNil ifTrue:[
+ sourceCodeManagerInfo := sourceCodeManager managerTypeNameShort , ' '
+ ] ifFalse:[
+ sourceCodeManagerInfo := ''.
+ ].
+
+ revisionInfo := cls revisionInfo.
(revisionInfo notNil and:[(revisionInfo at:#revision) notNil]) ifTrue:[
revision := revisionInfo at:#revision.
- lastUser := ' ',(revisionInfo at:#user).
- ] ifFalse:[
- revision := aClass theNonMetaclass revision.
+ lastUser := ' ',((revisionInfo at:#user) ? '').
+ ] ifFalse:[
+ revision := cls revision.
lastUser := ''.
].
- loadInfo := ' [%1%2]' bindWith:(revision ? 'no revision') with:lastUser.
+ loadInfo := ' [%1%2%3]' bindWith: sourceCodeManagerInfo with:(revision ? 'no revision') with:lastUser.
aClass wasAutoloaded ifTrue:[
loadInfo := loadInfo , ' {Auto}'.
].
@@ -42819,13 +48219,18 @@
packageLabel := packageLabel , loadInfo.
"/ packageLabel := packageLabel,' (Base)'.
].
+
+ self updatePackageInfoBarIfSourceCodeManagersDoesNotMatchForClass: cls.
navigationState packageLabelHolder value:packageLabel.
- "Modified: / 14-08-2010 / 12:04:39 / cg"
+ "Modified: / 06-10-2011 / 09:34:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 22-11-2011 / 16:19:18 / cg"
!
updatePackageInfoForMethod:aMethod
- |mpkg info info2 mClass clsRevision|
+ "update the info-label to show the selected method's version info"
+
+ |mpkg info info2 mClass revision sourceCodeManager sourceCodeManagerInfo prjDef scmInfo extensionOrNot|
aMethod isNil ifTrue:[
^ self updatePackageInfoForClass:self theSingleSelectedClass.
@@ -42837,25 +48242,50 @@
] ifFalse:[
mpkg := aMethod package.
info := mpkg allBold.
+ extensionOrNot := ''.
+
(mpkg ~= mClass package) ifTrue:[
mpkg = PackageId noProjectID ifTrue:[
info2 := ' (Unassigned)'
] ifFalse:[
- info2 := ' (Extension)'
- ].
- ] ifFalse:[
- clsRevision := mClass theNonMetaclass revision printString.
+ extensionOrNot := ' Extension'.
+ prjDef := ProjectDefinition definitionClassForPackage: mpkg.
+ prjDef notNil ifTrue:[
+ sourceCodeManager := self sourceCodeManagerOfClass:prjDef.
+ scmInfo := prjDef extensionsRevisionInfoForManager:nil.
+ scmInfo notNil ifTrue:[
+ revision := scmInfo revision.
+ ]
+ ]
+ ].
+ ] ifFalse:[
+ sourceCodeManager := self sourceCodeManagerOfClass:mClass theNonMetaclass.
+ revision := mClass theNonMetaclass revision printString.
+ ].
+
+ sourceCodeManager notNil ifTrue:[
+ sourceCodeManagerInfo := sourceCodeManager managerTypeNameShort , ' '
+ ] ifFalse:[
+ sourceCodeManagerInfo := ''.
+ ].
+
+ revision notNil ifTrue:[
+ info2 := ' ['.
(ChangeSet current includesChangeForClass:mClass selector:aMethod selector) ifTrue:[
- info2 := ' [derived from ' , clsRevision , ']'.
- ] ifFalse:[
- info2 := ' [' , clsRevision , ']'.
- ]
- ].
- info := info,info2
+ info2 := info2,'derived from '
+ ].
+ info2 := info2,sourceCodeManagerInfo,revision,extensionOrNot,']'.
+ ].
+ info2 notNil ifTrue:[info := info,info2].
+ ].
+
+ mClass notNil ifTrue:[
+ self updatePackageInfoBarIfSourceCodeManagersDoesNotMatchForClass: mClass theNonMetaclass.
].
navigationState packageLabelHolder value:info
- "Modified: / 01-03-2007 / 21:03:22 / cg"
+ "Modified (format): / 25-11-2011 / 14:48:14 / cg"
+ "Modified: / 01-12-2011 / 14:26:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!NewSystemBrowser methodsFor:'private-dialogs'!
@@ -42986,7 +48416,9 @@
askForMethodAndSpawnSearchTitle:title browserLabel:labelHolderOrBlock searchWith:aSelectorOrBlock searchWhat:searchWhat searchArea:whereDefault
withCaseIgnore:withCaseIgnore withTextEntry:withTextEntry withMatch:withMatch withMethodList:withMethodList setSearchPattern:setSearchPatternAction
- "convenient helper method: setup an enterBox with text from codeView or selected
+
+ "convenient common helper method for searches:
+ setup an enterBox with text from codeView or selected
method for browsing based on a selector. Set action and launch box.
SearchArea may be one of
#everywhere,
@@ -42996,7 +48428,13 @@
#classes
#classesWithPrivateClasses
#classHierarchies
- #classHierarchiesWithPrivateClasses"
+ #classHierarchiesWithPrivateClasses
+
+ aSelectorOrBlock is either a search selector (to be sent to SystemBrowser, such as findMethods:...)
+ or a block, or a pair containing class- and methodlist search selectors.
+
+ searchWhat is a symbol such as #selector, #code etc.
+ "
|restart dialog|
@@ -43160,6 +48598,7 @@
].
"Modified: / 11-05-2010 / 16:51:50 / cg"
+ "Modified (comment): / 06-12-2011 / 11:44:27 / cg"
!
askForMethodAndSpawnSearchTitle:title browserLabel:labelHolderOrBlock searchWith:aSelectorOrBlock searchWhat:searchWhat searchArea:whereDefault
@@ -44463,8 +49902,8 @@
!
selectedCodeComponents
-
| mode |
+
mode := self navigationState canvasType.
#(
fullBrowserSpec
@@ -44485,6 +49924,7 @@
"Modified: / 05-02-2010 / 13:21:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 25-08-2010 / 11:22:00 / Jan Vrany <enter your email here>"
+ "Modified (format): / 21-12-2011 / 20:23:13 / cg"
!
selectedCodeComponentsUsing: selectors
@@ -45018,6 +50458,7 @@
^ navigationState projectListApplication
! !
+
!NewSystemBrowser methodsFor:'private-history'!
lastSearchPatterns
@@ -45271,7 +50712,7 @@
explanation :=
[ self explanationForCode:code short:short ]
valueWithWatchDog:[explainTookTooLong := true]
- afterMilliseconds:500.
+ afterMilliseconds:100.
] ifFalse:[
explanation := self explanationForCode:code short:short
].
@@ -45592,6 +51033,25 @@
"Modified: / 18.8.2000 / 21:12:17 / cg"
!
+replaceSourceCodeManagerPlaceholderWith: manager in: menu
+
+ | nm |
+
+ manager isNil ifTrue:[
+ nm := nil
+ ] ifFalse:[
+ nm := manager name.
+ ].
+
+ menu replaceArgument: #SourceCodeManagerPlaceholder with: nm.
+ menu receiver:self.
+ menu findGuiResourcesIn:self.
+ "Must once again after resolve because of slices!!!!!!"
+ menu replaceArgument: #SourceCodeManagerPlaceholder with: nm.
+
+ "Created: / 12-10-2011 / 20:22:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
showActivity:someMessage
"some activityNotification to be forwarded to the user;
show it in the windows title area here
@@ -45752,6 +51212,52 @@
searchCompletionBlock
+ "Returns a class/selector name completion block that
+ is used by the search field in browser's toolbar"
+
+ "Following code allows me (JV) to experiment with different
+ completion blocks as I'm not happy with the standard one
+ (now in searchCompletionBlock_Standard)"
+
+ | sel |
+ sel := UserPreferences current at: #searchCompletionBlock ifAbsent:[nil].
+ sel notNil ifTrue:[
+ ^self perform: ('searchCompletionBlock_' , sel) asSymbol ifNotUnderstood:[
+ self searchCompletionBlock_Standard
+ ].
+ ].
+ ^self searchCompletionBlock_Standard
+
+ "
+ UserPreferences current removeKey: #searchCompletionBlock.
+ UserPreferences current at: #searchCompletionBlock put: #New.
+ UserPreferences current at: #searchCompletionBlock put: #Standard.
+
+ Tools::NewSystemBrowser basicNew searchCompletionBlock
+
+ "
+
+ "Created: / 09-02-2010 / 21:45:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 04-08-2011 / 19:05:28 / cg"
+ "Modified (comment): / 04-12-2011 / 22:39:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+searchCompletionBlock_New
+
+ "This returns a class/selector name completion block that uses
+ standard DoWhatIMeanSupport"
+
+ ^[:patternString|self searchCompletionNew: patternString]
+
+ "Modified: / 04-08-2011 / 19:05:28 / cg"
+ "Created: / 04-12-2011 / 22:13:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+searchCompletionBlock_Standard
+
+ "This returns a class/selector name completion block that uses
+ standard DoWhatIMeanSupport"
+
^[:partialName| | env |
env := self theSingleSelectedNamespace ? #Smalltalk.
env = NavigatorModel nameListEntryForALL
@@ -45767,9 +51273,38 @@
ifFalse:
[DoWhatIMeanSupport selectorCompletion: partialName inEnvironment: env]]]
- "Created: / 09-02-2010 / 21:45:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 10-02-2010 / 08:47:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 04-08-2011 / 19:05:28 / cg"
+ "Created: / 04-12-2011 / 22:11:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+searchCompletionNew: patternString
+
+ | env pattern matches |
+
+ patternString isEmptyOrNil ifTrue:[^#('' #())].
+
+ env := self theSingleSelectedNamespace ? #Smalltalk.
+ env = NavigatorModel nameListEntryForALL ifTrue:[env := #Smalltalk].
+ env := Smalltalk at: env.
+
+ pattern := StringPattern readFrom: patternString onError: [^#('' #())].
+ matches := OrderedCollection new.
+
+ env keysDo:[:nm|
+ | cls nmWihoutPrefix |
+
+ cls := env at: nm.
+ (cls notNil and:[cls isBehavior]) ifTrue:[
+ (pattern match: (nmWihoutPrefix := cls nameWithoutPrefix)) ifTrue:[
+ matches add: nmWihoutPrefix
+ ].
+ ].
+ ].
+ ^ { matches first . matches }
+
+ "Modified: / 04-08-2011 / 19:05:28 / cg"
+ "Created: / 04-12-2011 / 22:22:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!NewSystemBrowser methodsFor:'private-semantic checks'!
@@ -46124,7 +51659,11 @@
assert:(#( #smalllintRulesAll #smalllintRulesFromUser #smalllintRules )
includes:ruleSetSymbol).
rule := self perform:ruleSetSymbol asSymbol.
- rule ifNil:[ ^ self ].
+ rule isNil ifTrue:[ ^ self ].
+ rule isEmpty ifTrue:[
+ rule := self smalllintRulesFromUser.
+ ].
+
self showMessage:'Checking code...'
while:[
self smalllintRunRule:rule onEnvironment:anEnvironment.
@@ -46139,6 +51678,7 @@
"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: / 28-08-2010 / 20:45:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 23-09-2011 / 15:26:48 / cg"
!
smalllintRules
@@ -46186,6 +51726,30 @@
"Modified: / 25-08-2010 / 15:35:16 / Jan Vrany <enter your email here>"
!
+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
+ ]
+
+ "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>"
+!
+
smalllintRunRule: aLintRule onEnvironment: anEnvironment
| rules |
@@ -46853,6 +52417,15 @@
"Modified: / 28-08-2010 / 10:37:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+postBuildPackageInfoButton: aButton
+
+ <resource: #uiCallback>
+
+ navigationState packageInfoButton: aButton
+
+ "Created: / 03-10-2011 / 15:36:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
postBuildSpecialEditor:specialEditorSubcanvas
builder componentAt:#SpecialEditorCanvas put:specialEditorSubcanvas.
!
@@ -48011,18 +53584,21 @@
|navigationState|
navigationState := self navigationState.
+
self codeView modified ifTrue:[
navigationState realModifiedState:true.
- self startSyntaxHighlightProcess.
-
+ self codeView isCodeView2 ifFalse:[
+ self startSyntaxHighlightProcess.
+ ].
self navigationState realModifiedState:true.
self codeView modifiedChannel setValue:false.
].
self enqueueDelayedCheckReallyModified.
self updateBufferLabel.
- "Modified: / 17-08-2011 / 14:34:44 / cg"
+ "Modified (comment): / 27-09-2011 / 19:04:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 29-11-2011 / 13:25:51 / cg"
!
doNotShowInheritedMethods
@@ -48041,6 +53617,46 @@
"Created: / 10.12.2001 / 21:00:13 / cg"
!
+informUserAboutPackage: package configuredManager: cnfManager sourceManager: srcManager
+
+ "Opens a dialog informing user that configured source
+ code manager does not match the source code manager
+ for source access"
+
+ | dialog cnfManagerName srcManagerName |
+
+ cnfManager notNil ifTrue:[
+ cnfManagerName := cnfManager managerTypeName
+ ] ifFalse:[
+ cnfManagerName := self class resources at: 'Not configured'.
+ ].
+ srcManager notNil ifTrue:[
+ srcManagerName := cnfManager managerTypeName
+ ] ifFalse:[
+ srcManagerName := self class resources at: 'Unknown'.
+ ].
+
+ dialog := DialogBox new.
+ dialog label: package, ': source code managers does not match'.
+ (dialog addTextLabel:
+ ('Default configured source manager does match with\' ,
+ 'source code manager for the source. This may mean\' ,
+ 'that you have compiled the package using sources\',
+ 'checked out using different repository and source\',
+ 'code management system that the one you have configured\',
+ 'for the package') withCRs)
+ adjust: #left.
+ (dialog addTextLabel: 'Package: ', package) adjust: #left.
+ (dialog addTextLabel: 'Configured SCM: ', cnfManagerName) adjust: #left.
+ (dialog addTextLabel: 'Source SCM: ', srcManagerName) adjust: #left.
+ dialog addButton:(Button label:'Open SCM Settings' action:[self openSettingsDialogAndSelectSourceCodeManagement]).
+ dialog addOkButton.
+
+ dialog open.
+
+ "Created: / 03-10-2011 / 16:22:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
methodDoubleClicked
|currentMethod|
@@ -48270,6 +53886,7 @@
toolBar := self componentAt:#ToolBar.
bookmarkBar := self componentAt:#BookmarkBar.
topOffset := 0.
+
toolBar isNil ifFalse:[
toolBarVisible := self toolBarVisibleHolder value.
DefaultToolBarVisible := toolBarVisible.
@@ -48277,6 +53894,7 @@
topOffset := topOffset + toolBar height.
]
].
+
bookmarkBar isNil ifFalse:[
bookmarkBarVisible := self bookmarkBarVisibleHolder value.
UserPreferences current showBookmarkBar:bookmarkBarVisible.
@@ -48291,7 +53909,7 @@
]
].
-
+ topOffset := topOffset - 1.
pageContent := (browserPageCanvas notNil or:[builder spec name == #browserPageSpec])
ifTrue:[(self componentAt: #BrowserPageContents)]
ifFalse:[(self componentAt:#NoteBook)].
@@ -48304,6 +53922,7 @@
"Created: / 18-05-2011 / 17:28:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 07-06-2011 / 16:58:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 31-12-2011 / 13:18:24 / cg"
!
toolBarVisibilityChanged
@@ -48375,15 +53994,11 @@
code := codeArg.
returnValue := false.
language := languageOrNil
- ifNotNil:
- [languageOrNil]
- ifNil:
- [self hasMethodSelected
+ ifNotNil: [languageOrNil]
+ ifNil: [self hasMethodSelected
ifTrue:[self selectedMethods value first programmingLanguage]
ifFalse:[cls programmingLanguage]].
-
-
"/ a quick parse for the selector ...
newSelector := self selectorOfMethodFromCode:code in:cls.
existingMethod := cls compiledMethodAt:newSelector ifAbsent:[].
@@ -48393,8 +54008,7 @@
(Class methodRedefinitionNotification) handle:[:ex |
|answer|
- answer := SystemBrowser askForPackageChangeFrom:ex oldPackage
- to:ex newPackage.
+ answer := SystemBrowser askForPackageChangeFrom:ex oldPackage to:ex newPackage.
(answer ~~ #cancel) ifTrue:[
ex proceedWith:answer
].
@@ -48436,9 +54050,7 @@
default:false
onCancel:false.
- answer == false ifTrue:[
- ^ false
- ].
+ answer == false ifTrue:[ ^ false ].
answer == #compare ifTrue:[
self openDiffViewForText:code againstSourceOfMethod:existingMethod.
^ false
@@ -48493,9 +54105,7 @@
]
].
].
- package isNil ifTrue:[
- package := defPackage
- ].
+ package isNil ifTrue:[ package := defPackage ].
].
lang := oldMethod notNil
@@ -48585,6 +54195,7 @@
"/ Icon flushCachedIcons
"/ ].
+ rslt package.
navigationState realModifiedState:false.
codeView modified:false.
@@ -48620,7 +54231,6 @@
self checkAcceptedMethod:rslt inClass:cls.
].
returnValue := true.
-
"/ self updateBufferLabel.
].
] ensure:[
@@ -48632,8 +54242,9 @@
].
^ returnValue.
- "Modified: / 17-07-2010 / 14:54:53 / cg"
"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"
!
askForInitialApplicationCodeFor:aClass
@@ -48793,7 +54404,9 @@
doAcceptClassDefinition:theCode fullClass:thisIsAFullClassesCode usingCompiler:aCompilerClass
"tell the codeView what to do on accept.
- Return false, if NOT accepted (i.e. compilation canceled)"
+ Return false, if NOT accepted (i.e. compilation canceled).
+ Ouch: this shares a lot of duplicate code with setAcceptActionForClass;
+ please refacor"
|codeView returnValue package|
@@ -48847,7 +54460,7 @@
ex proceedWith:ns
] do:[
AbortOperationRequest catch:[
- UndefinedObject createMinimumProtocolInNewSubclassQuery
+ UndefinedObject createMinimumProtocolInNewSubclassQuery
answer:true
do:[
(Class classRedefinitionNotification) handle:[:ex |
@@ -48927,6 +54540,7 @@
"Created: / 13-02-2000 / 22:43:59 / cg"
"Modified: / 30-01-2011 / 17:06:14 / cg"
+ "Modified (comment): / 21-01-2012 / 09:57:49 / cg"
!
doAcceptClassDefinition:theCode usingCompiler:aCompilerClass
@@ -49880,6 +55494,11 @@
|codeView evView key rawKey sensor|
codeView := self codeView.
+ "/JV@2011-08-17: FIXME: remove the typecheck and add isCodeView2
+ "/or something...
+ (codeView isKindOf: Tools::CodeView2) ifTrue:[
+ codeView := codeView textView.
+ ].
evView := anEvent targetView.
evView notNil ifTrue:[
anEvent isKeyPressEvent ifTrue:[
@@ -49940,6 +55559,7 @@
anEvent isButtonReleaseEvent ifTrue:[
anEvent delegatedFrom isNil ifTrue:[
+
evView == codeView ifTrue:[
self codeInfoVisible value ifTrue:[
self doImmediateExplaining value ifTrue:[
@@ -49970,7 +55590,7 @@
"Modified: / 10-12-2001 / 21:02:48 / cg"
"Modified: / 09-08-2009 / 09:40:30 / Jan Vrany <vranyj1@fel.cvut.cz>"
- "Modified: / 09-02-2010 / 19:59:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 17-08-2011 / 13:29:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!NewSystemBrowser methodsFor:'user actions-helpers'!
@@ -50015,6 +55635,10 @@
self messageHolder value: aString.
self showMessagePane: #messageInfoSpec.
+ "
+ WindowGroup activeApplication showMessage: 'Hello'
+ "
+
"Created: / 28-08-2010 / 11:47:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
@@ -50064,7 +55688,8 @@
!
showMessageWhileTest
- self showMessage:'Tools::NewSystemBrowser >> testProgressAction'
+ self
+ showMessage:'Tools::NewSystemBrowser >> testProgressAction'
while:[
(1 to:100) do:[:i |
(ProgressNotification new)
@@ -50078,6 +55703,7 @@
]
"Created: / 28-08-2010 / 10:32:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 29-11-2011 / 15:05:31 / cg"
! !
!NewSystemBrowser methodsFor:'user actions-profiler'!
@@ -50089,23 +55715,25 @@
label:'Visual Profiler'
forSpec:#visualProfilerSpec
setupWith: [:browser|
- browser profilerStatistics value: statistics]
+ browser profilerStatistics value: statistics
+ ]
"Created: / 09-10-2007 / 22:05:36 / janfrog"
+ "Modified (format): / 29-11-2011 / 14:49:08 / cg"
! !
!NewSystemBrowser class methodsFor:'documentation'!
version
- ^ '$Id: Tools__NewSystemBrowser.st 7819 2011-08-19 08:54:18Z vranyj1 $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1702 2012/01/26 13:58:43 cg Exp $'
!
version_CVS
- ^ '§Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1595 2011/08/19 00:33:43 cg Exp §'
+ ^ '§Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1702 2012/01/26 13:58:43 cg Exp §'
!
version_SVN
- ^ '$Id: Tools__NewSystemBrowser.st 7819 2011-08-19 08:54:18Z vranyj1 $'
-! !
-
-NewSystemBrowser initialize!
\ No newline at end of file
+ ^ '$Id: Tools__NewSystemBrowser.st 7851 2012-01-29 15:33:37Z vranyj1 $'
+! !
+
+NewSystemBrowser initialize!