--- a/MCRepositoryBrowser.st Wed Sep 07 14:04:38 2011 +0200
+++ b/MCRepositoryBrowser.st Wed Sep 07 14:04:54 2011 +0200
@@ -3,7 +3,8 @@
ApplicationModel subclass:#MCRepositoryBrowser
instanceVariableNames:'repositoriesHolder packagesHolder versionsHolder
selectedVersionHolder worker selectedVersionDetailsHolder
- selectedRepositoryHolder'
+ selectedRepositoryHolder targetPackage targetNamespace
+ lastPackage'
classVariableNames:''
poolDictionaries:''
category:'Monticello-St/X UI'
@@ -20,15 +21,15 @@
the UIPainter may not be able to read the specification."
"
- UIPainter new openOnClass:MCRepositoryBrowser andSelector:#psckageDetailsSpec
- MCRepositoryBrowser new openInterface:#psckageDetailsSpec
+ UIPainter new openOnClass:MCRepositoryBrowser andSelector:#packageDetailsSpec
+ MCRepositoryBrowser new openInterface:#packageDetailsSpec
"
<resource: #canvas>
^
#(FullSpec
- name: psckageDetailsSpec
+ name: packageDetailsSpec
window:
(WindowSpec
label: 'MC Package Details'
@@ -48,19 +49,10 @@
isReadOnly: true
hasKeyboardFocusInitially: false
)
- (ActionButtonSpec
- label: 'Load'
- name: 'LoadButton'
- layout: (LayoutFrame 0 0 -30 1 0 1 0 1)
- translateLabel: true
- model: versionLoad
- )
)
)
)
-
- "Modified: / 26-10-2010 / 21:57:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
windowSpec
@@ -161,30 +153,48 @@
createNewApplication: true
createNewBuilder: true
)
- (SubCanvasSpec
- name: 'VersionList'
- hasHorizontalScrollBar: false
- hasVerticalScrollBar: false
- majorKey: MCVersionList
- subAspectHolders:
- (Array
-
- (SubChannelInfoSpec
- subAspect: inGeneratorHolder
- aspect: versionsHolder
- )
- (SubChannelInfoSpec
- subAspect: menuHolder
- aspect: versionsMenu
- )
-
- (SubChannelInfoSpec
- subAspect: selectionHolder
- aspect: selectedVersionHolder
- )
+ (ViewSpec
+ name: 'Box1'
+ component:
+ (SpecCollection
+ collection: (
+ (SubCanvasSpec
+ name: 'VersionList'
+ layout: (LayoutFrame 0 0 0 0 0 1 -30 1)
+ hasHorizontalScrollBar: false
+ hasVerticalScrollBar: false
+ majorKey: MCVersionList
+ subAspectHolders:
+ (Array
+
+ (SubChannelInfoSpec
+ subAspect: inGeneratorHolder
+ aspect: versionsHolder
+ )
+ (SubChannelInfoSpec
+ subAspect: menuHolder
+ aspect: versionsMenu
+ )
+
+ (SubChannelInfoSpec
+ subAspect: selectionHolder
+ aspect: selectedVersionHolder
+ )
+ )
+ createNewApplication: true
+ createNewBuilder: true
+ )
+ (ActionButtonSpec
+ label: 'Load'
+ name: 'LoadButton'
+ layout: (LayoutFrame 0 0 -30 1 0 1 0 1)
+ translateLabel: true
+ model: versionLoad
+ enableChannel: hasVersionSelectedHolder
+ )
+ )
+
)
- createNewApplication: true
- createNewBuilder: true
)
)
@@ -208,6 +218,40 @@
!MCRepositoryBrowser class methodsFor:'menu specs'!
+loadingMenu
+ "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:MCRepositoryBrowser andSelector:#loadingMenu
+ (Menu new fromLiteralArrayEncoding:(MCRepositoryBrowser loadingMenu)) startUp
+ "
+
+ <resource: #menu>
+
+ ^
+ #(Menu
+ (
+ (MenuItem
+ label: 'Set Target Package...'
+ itemValue: setTargetPackage
+ translateLabel: true
+ )
+ (MenuItem
+ label: 'Set Target Namespace...'
+ itemValue: setTargetNamespace
+ translateLabel: true
+ )
+ )
+ nil
+ nil
+ )
+!
+
mainMenu
"This resource specification was automatically generated
by the MenuEditor of ST/X."
@@ -258,6 +302,11 @@
submenuChannel: versionsMenu
)
(MenuItem
+ label: 'Loading'
+ translateLabel: true
+ submenuChannel: loadingMenu
+ )
+ (MenuItem
label: 'Help'
translateLabel: true
startGroup: conditionalRight
@@ -376,11 +425,13 @@
#(Menu
(
(MenuItem
+ enabled: hasVersionSelectedHolder
label: 'Load'
itemValue: versionLoad
translateLabel: true
)
(MenuItem
+ enabled: hasVersionSelectedHolder
label: 'Load into Package...'
itemValue: versionLoadIntoPackage
translateLabel: true
@@ -395,6 +446,7 @@
translateLabel: true
)
(MenuItem
+ enabled: hasVersionSelectedHolder
label: 'Browse Unloadable'
itemValue: versionBrowseUnloadable
translateLabel: true
@@ -418,8 +470,6 @@
nil
nil
)
-
- "Modified: / 07-09-2011 / 11:44:59 / cg"
! !
!MCRepositoryBrowser methodsFor:'accessing'!
@@ -455,10 +505,12 @@
!
hasVersionSelectedHolder
-
- ^[self selectedVersionHolder value notNil]
+ ^ BlockValue
+ with:[:h | h value notNil]
+ argument:(self selectedVersionHolder)
"Created: / 13-10-2010 / 17:08:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 07-09-2011 / 13:14:17 / cg"
!
repositoryIsDirectory
@@ -620,19 +672,52 @@
"Created: / 31-08-2011 / 09:16:33 / cg"
!
+setTargetNamespace
+ "specify an st/x namespace to be used as default"
+
+ | nsName |
+
+ nsName := Dialog
+ requestNameSpace:'Namepace to load code into:'
+ initialAnswer:targetNamespace.
+ nsName isEmptyOrNil ifTrue:[^self].
+
+ targetNamespace := nsName.
+
+ "Created: / 07-09-2011 / 12:49:42 / cg"
+!
+
+setTargetPackage
+ "specify an st/x package identifier to be used as default"
+
+ | package |
+
+ package := Dialog
+ requestProject:'Default Smalltalk/X package to load code into:'
+ initialAnswer:targetPackage
+ suggestions:#().
+ package ifNil:[^self].
+
+ targetPackage := lastPackage := package.
+
+ "Created: / 07-09-2011 / 12:47:15 / cg"
+!
+
showPackageInWinZip
| entry tempFile fileStream|
tempFile := Filename newTemporary withSuffix:'zip'.
- entry := self selectedVersionHolder value.
- entry repository
- readStreamForFileNamed:entry name do:[:s |
- fileStream := tempFile writeStream.
- s reset.
- s copyToEndInto:fileStream.
- fileStream close.
- ].
+ self withReadCursorDo:[
+ entry := self selectedVersionHolder value.
+ entry repository
+ readStreamForFileNamed:entry name do:[:s |
+ fileStream := tempFile writeStream.
+ s reset.
+ s copyToEndInto:fileStream.
+ fileStream close.
+ ].
+ ].
Win32OperatingSystem
openApplicationForDocument:tempFile operation:#open
@@ -693,43 +778,59 @@
!
versionLoad
+ "load into the default (or previously set) package"
| entry |
entry := self selectedVersionHolder value.
- entry ifNotNil:[self versionLoad: entry asMCVersion into: PackageId noProjectID].
+ entry notNil ifTrue:[
+ self versionLoad: entry asMCVersion into:(targetPackage ? PackageId noProjectID)
+ ].
"Modified: / 09-11-2010 / 13:26:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 29-08-2011 / 08:22:17 / cg"
+ "Modified (comment): / 07-09-2011 / 12:45:31 / cg"
!
versionLoad: version into: package
self withWaitCursorDo:[
- MCStXPackageQuery answer: package do: [
- MCInteractiveLoadingQuery answer: true do:[
- version load
- ]
- ].
+ MCStXNamespaceQuery
+ answer:(NameSpace name:targetNamespace)
+ do: [
+ MCStXPackageQuery
+ answer: package
+ do: [
+ MCInteractiveLoadingQuery answer: true do:[
+ version load
+ ]
+ ].
+ ].
].
"Created: / 09-11-2010 / 13:25:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 06-03-2011 / 20:44:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 29-08-2011 / 08:22:30 / cg"
+ "Modified: / 07-09-2011 / 12:50:06 / cg"
!
versionLoadIntoPackage
+ "specify an st/x package identifier"
| version package |
+
version := self selectedVersionAsMCVersion.
version ifNil:[^self].
+
package := Dialog
requestProject:'Smalltalk/X package to load code into'
- initialAnswer:nil suggestions:#().
+ initialAnswer:lastPackage
+ suggestions:#().
package ifNil:[^self].
+
+ lastPackage := package.
self versionLoad: version into: package
"Modified: / 09-11-2010 / 13:33:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 07-09-2011 / 12:47:51 / cg"
! !
!MCRepositoryBrowser methodsFor:'updating'!
@@ -754,11 +855,11 @@
!MCRepositoryBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/goodies/monticello/MCRepositoryBrowser.st,v 1.8 2011-09-07 10:29:16 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/goodies/monticello/MCRepositoryBrowser.st,v 1.9 2011-09-07 12:04:54 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/goodies/monticello/MCRepositoryBrowser.st,v 1.8 2011-09-07 10:29:16 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/goodies/monticello/MCRepositoryBrowser.st,v 1.9 2011-09-07 12:04:54 cg Exp $'
!
version_SVN