"{ Package: 'stx:goodies/monticello' }"
ApplicationModel subclass:#MCRepositoryBrowser
instanceVariableNames:'repositoriesHolder packagesHolder versionsHolder
selectedVersionHolder worker selectedVersionDetailsHolder
selectedRepositoryHolder targetPackage targetNamespace
lastPackage targetPackageHolder targetNamespaceNameHolder
updateChangefileHolder'
classVariableNames:''
poolDictionaries:''
category:'Monticello-St/X UI'
!
!MCRepositoryBrowser class methodsFor:'help specs'!
flyByHelpSpec
"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:MCRepositoryBrowser
"
<resource: #help>
^ super flyByHelpSpec addPairsFrom:#(
#loadVersion
'Load the selected version'
#targetNamespace
'Namespace override. Change via the "Loading"-Menu'
#targetPackage
'ST/X Package override. Change via the "Loading"-Menu'
)
"Created: / 07-09-2011 / 15:13:00 / cg"
! !
!MCRepositoryBrowser class methodsFor:'interface specs'!
packageDetailsSpec
"This resource specification was automatically generated
by the UIPainter of ST/X."
"Do not manually edit this!! If it is corrupted,
the UIPainter may not be able to read the specification."
"
UIPainter new openOnClass:MCRepositoryBrowser andSelector:#packageDetailsSpec
MCRepositoryBrowser new openInterface:#packageDetailsSpec
"
<resource: #canvas>
^
#(FullSpec
name: packageDetailsSpec
window:
(WindowSpec
label: 'MC Package Details'
name: 'MC Package Details'
min: (Point 10 10)
bounds: (Rectangle 0 0 533 326)
)
component:
(SpecCollection
collection: (
(TextEditorSpec
name: 'PackageDetails'
layout: (LayoutFrame 0 0 0 0 0 1 -30 1)
model: selectedVersionDetailsHolder
hasHorizontalScrollBar: true
hasVerticalScrollBar: true
isReadOnly: true
hasKeyboardFocusInitially: false
)
(LabelSpec
name: 'Label1'
layout: (LayoutFrame 2 0 -30 1 -1 0.5 -2 1)
activeHelpKey: targetNamespace
level: -1
translateLabel: true
labelChannel: targetNamespaceNameHolder
adjust: left
)
(LabelSpec
name: 'Label2'
layout: (LayoutFrame 1 0.5 -30 1 -2 1 -2 1)
activeHelpKey: targetPackage
level: -1
translateLabel: true
labelChannel: targetPackageHolder
adjust: left
)
)
)
)
!
windowSpec
"This resource specification was automatically generated
by the UIPainter of ST/X."
"Do not manually edit this!! If it is corrupted,
the UIPainter may not be able to read the specification."
"
UIPainter new openOnClass:MCRepositoryBrowser andSelector:#windowSpec
MCRepositoryBrowser new openInterface:#windowSpec
MCRepositoryBrowser open
"
<resource: #canvas>
^
#(FullSpec
name: windowSpec
window:
(WindowSpec
label: 'MC Repository Browser'
name: 'MC Repository Browser'
min: (Point 10 10)
bounds: (Rectangle 0 0 796 497)
menu: mainMenu
)
component:
(SpecCollection
collection: (
(VariableVerticalPanelSpec
name: 'VariableVerticalPanel1'
layout: (LayoutFrame 0 0 0 0 0 1 0 1)
component:
(SpecCollection
collection: (
(VariableHorizontalPanelSpec
name: 'VariableHorizontalPanel1'
component:
(SpecCollection
collection: (
(SubCanvasSpec
name: 'RepositoryList'
hasHorizontalScrollBar: false
hasVerticalScrollBar: false
majorKey: MCRepositoryList
subAspectHolders:
(Array
(SubChannelInfoSpec
subAspect: menuHolder
aspect: repositoryListMenu
)
(SubChannelInfoSpec
subAspect: inGeneratorHolder
aspect: repositoriesHolder
)
(SubChannelInfoSpec
subAspect: outGeneratorHolder
aspect: packagesHolder
)
(SubChannelInfoSpec
subAspect: selectionHolder
aspect: selectedRepositoryHolder
)
)
createNewApplication: true
createNewBuilder: true
)
(SubCanvasSpec
name: 'PackageList'
hasHorizontalScrollBar: false
hasVerticalScrollBar: false
majorKey: MCPackageList
subAspectHolders:
(Array
(SubChannelInfoSpec
subAspect: menuHolder
aspect: packageListMenu
)
(SubChannelInfoSpec
subAspect: inGeneratorHolder
aspect: packagesHolder
)
(SubChannelInfoSpec
subAspect: outGeneratorHolder
aspect: versionsHolder
)
(SubChannelInfoSpec
subAspect: selectionHolder
aspect: selectedPackageHolder
)
)
createNewApplication: true
createNewBuilder: true
)
(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
activeHelpKey: loadVersion
)
)
)
)
)
)
handles: (Any 0.333333333333333 0.666666666666667 1.0)
)
(UISubSpecification
name: 'SubSpecification1'
minorKey: packageDetailsSpec
)
)
)
handles: (Any 0.5 1.0)
)
)
)
)
"Modified: / 07-09-2011 / 15:14:55 / cg"
! !
!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
)
(MenuItem
label: '-'
)
(MenuItem
label: 'Update Changefile'
translateLabel: true
indication: updateChangefileHolder
)
)
nil
nil
)
!
mainMenu
"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:#mainMenu
(Menu new fromLiteralArrayEncoding:(MCRepositoryBrowser mainMenu)) startUp
"
<resource: #menu>
^
#(Menu
(
(MenuItem
label: 'File'
translateLabel: true
submenu:
(Menu
(
(MenuItem
label: 'Exit'
itemValue: closeRequest
translateLabel: true
)
)
nil
nil
)
)
(MenuItem
label: 'Repository'
translateLabel: true
submenuChannel: repositoryListMenu
)
(MenuItem
label: 'Package'
translateLabel: true
submenuChannel: packageListMenu
)
(MenuItem
label: 'Version'
translateLabel: true
submenuChannel: versionsMenu
)
(MenuItem
label: 'Loading'
translateLabel: true
submenuChannel: loadingMenu
)
(MenuItem
label: 'Help'
translateLabel: true
startGroup: conditionalRight
submenu:
(Menu
(
(MenuItem
label: 'Documentation'
itemValue: openDocumentation
translateLabel: true
)
(MenuItem
label: '-'
)
(MenuItem
label: 'About this Application...'
itemValue: openAboutThisApplication
translateLabel: true
)
)
nil
nil
)
)
)
nil
nil
)
!
packageListMenu
"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:#packageListMenu
(Menu new fromLiteralArrayEncoding:(MCRepositoryBrowser packageListMenu)) startUp
"
<resource: #menu>
^
#(Menu
(
(MenuItem
enabled: packageSelectedAndOperatingSystemIsWindows
label: 'No Menuentry Yet'
translateLabel: true
)
)
nil
nil
)
"Modified: / 07-09-2011 / 11:44:38 / cg"
!
repositoryListMenu
"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:#repositoryListMenu
(Menu new fromLiteralArrayEncoding:(MCRepositoryBrowser repositoryListMenu)) startUp
"
<resource: #menu>
^
#(Menu
(
(MenuItem
label: 'Add Repository...'
itemValue: repositoryAdd
translateLabel: true
)
(MenuItem
label: '-'
)
(MenuItem
enabled: hasRepositorySelectedHolder
label: 'Flush Cache'
itemValue: repositoryFlushCache
translateLabel: true
)
(MenuItem
label: '-'
)
(MenuItem
enabled: repositoryIsDirectory
label: 'Browse Directory'
itemValue: repositoryBrowseDirectory
translateLabel: true
)
)
nil
nil
)
"Modified: / 07-09-2011 / 15:00:57 / cg"
!
versionsMenu
"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:#versionsMenu
(Menu new fromLiteralArrayEncoding:(MCRepositoryBrowser versionsMenu)) startUp
"
<resource: #menu>
^
#(Menu
(
(MenuItem
enabled: hasVersionSelectedHolder
label: 'Load'
itemValue: versionLoad
translateLabel: true
)
(MenuItem
enabled: hasVersionSelectedHolder
label: 'Load into Package...'
itemValue: versionLoadIntoPackage
translateLabel: true
)
(MenuItem
label: '-'
)
(MenuItem
enabled: hasVersionSelectedHolder
label: 'Browse'
itemValue: versionBrowser
translateLabel: true
)
(MenuItem
enabled: hasVersionSelectedHolder
label: 'Browse Unloadable'
itemValue: versionBrowseUnloadable
translateLabel: true
)
(MenuItem
label: '-'
)
(MenuItem
enabled: hasVersionSelectedAndOperatingSystemIsWindowsHolder
label: 'Show in Winzip'
itemValue: showPackageInWinZip
translateLabel: true
)
(MenuItem
enabled: hasVersionSelectedHolder
label: 'Inspect'
itemValue: versionInspect
translateLabel: true
)
)
nil
nil
)
! !
!MCRepositoryBrowser methodsFor:'accessing'!
selectedVersion
"return the value in 'selectedVersionHolder'"
^ self selectedVersionHolder value
!
selectedVersion: newValue
"set the value in 'selectedVersionHolder'"
self selectedVersionHolder value: newValue
!
selectedVersionAsMCVersion
| entry |
entry := self selectedVersionHolder value.
^entry ifNil:[nil] ifNotNil:[entry asMCVersion].
"Created: / 13-10-2010 / 17:48:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!MCRepositoryBrowser methodsFor:'aspect-queries'!
hasRepositorySelectedHolder
^ BlockValue
with:[:h | h value notNil]
argument:(self selectedRepositoryHolder)
"Created: / 13-10-2010 / 17:08:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 07-09-2011 / 13:14:17 / cg"
"Created: / 07-09-2011 / 15:00:44 / cg"
!
hasVersionSelectedAndOperatingSystemIsWindowsHolder
^[self hasVersionSelectedHolder value
and:[ OperatingSystem isMSWINDOWSlike ]]
"Created: / 25-08-2011 / 08:49:24 / cg"
!
hasVersionSelectedHolder
^ 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
^ BlockValue
with:[:h | h value notNil
and:[ h value repository isKindOf: MCDirectoryRepository ]]
argument:[ self selectedRepositoryHolder ]
"Created: / 31-08-2011 / 09:08:54 / cg"
! !
!MCRepositoryBrowser methodsFor:'aspects'!
packagesHolder
"return/create the 'packagesHolder' value holder (automatically generated)"
packagesHolder isNil ifTrue:[
packagesHolder := ValueHolder new.
].
^ packagesHolder
!
packagesHolder:something
"set the 'packagesHolder' value holder (automatically generated)"
packagesHolder := something.
!
repositoriesHolder
"return/create the 'repositoriesHolder' value holder (automatically generated)"
repositoriesHolder isNil ifTrue:[
repositoriesHolder := ValueHolder with:(MCRepositoryGroup default repositories).
].
^ repositoriesHolder
"Modified: / 16-09-2010 / 18:33:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified (format): / 29-08-2011 / 12:26:04 / cg"
!
repositoriesHolder:something
"set the 'repositoriesHolder' value holder (automatically generated)"
repositoriesHolder := something.
!
selectedRepositoryHolder
"return/create the valueHolder 'selectedVersionHolder'"
selectedRepositoryHolder isNil ifTrue:[
selectedRepositoryHolder := nil asValue.
].
^ selectedRepositoryHolder
"Created: / 31-08-2011 / 09:09:56 / cg"
!
selectedVersionDetailsHolder
<resource: #uiAspect>
"automatically generated by UIPainter ..."
"*** the code below creates a default model when invoked."
"*** (which may not be the one you wanted)"
"*** Please change as required and accept it in the browser."
"*** (and replace this comment by something more useful ;-)"
selectedVersionDetailsHolder isNil ifTrue:[
selectedVersionDetailsHolder := '' asValue.
"/ if your app needs to be notified of changes, uncomment one of the lines below:
"/ selectedPackageDetailsHolder addDependent:self.
"/ selectedPackageDetailsHolder onChangeSend:#selectedPackageDetailsHolderChanged to:self.
].
^ selectedVersionDetailsHolder.
"Modified: / 17-09-2010 / 15:17:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
selectedVersionHolder
"return/create the valueHolder 'selectedVersionHolder'"
selectedVersionHolder isNil ifTrue:[
selectedVersionHolder := ValueHolder with:nil "defaultValue here".
selectedVersionHolder onChangeSend: #updateVersionDetails to: self.
].
^ selectedVersionHolder
"Modified: / 17-09-2010 / 15:23:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
selectedVersionHolder:something
selectedVersionHolder := something.
!
targetNamespaceNameHolder
<resource: #uiAspect>
"automatically generated by UIPainter ..."
"*** the code below creates a default model when invoked."
"*** (which may not be the one you wanted)"
"*** Please change as required and accept it in the browser."
"*** (and replace this comment by something more useful ;-)"
targetNamespaceNameHolder isNil ifTrue:[
targetNamespaceNameHolder := ValueHolder new.
"/ if your app needs to be notified of changes, uncomment one of the lines below:
"/ targetNamespaceNameHolder addDependent:self.
"/ targetNamespaceNameHolder onChangeSend:#targetNamespaceNameHolderChanged to:self.
].
^ targetNamespaceNameHolder.
!
targetPackageHolder
<resource: #uiAspect>
"automatically generated by UIPainter ..."
"*** the code below creates a default model when invoked."
"*** (which may not be the one you wanted)"
"*** Please change as required and accept it in the browser."
"*** (and replace this comment by something more useful ;-)"
targetPackageHolder isNil ifTrue:[
targetPackageHolder := ValueHolder new.
"/ if your app needs to be notified of changes, uncomment one of the lines below:
"/ targetPackageHolder addDependent:self.
"/ targetPackageHolder onChangeSend:#targetPackageHolderChanged to:self.
].
^ targetPackageHolder.
!
updateChangefileHolder
updateChangefileHolder isNil ifTrue:[
updateChangefileHolder := false asValue.
].
^ updateChangefileHolder
"Created: / 07-09-2011 / 15:54:03 / cg"
!
versionsHolder
"return/create the 'versionsHolder' value holder (automatically generated)"
versionsHolder isNil ifTrue:[
versionsHolder := ValueHolder new.
].
^ versionsHolder
!
versionsHolder:something
"set the 'versionsHolder' value holder (automatically generated)"
versionsHolder := something.
! !
!MCRepositoryBrowser methodsFor:'menu actions'!
repositoryAdd
|repStr rep url files|
repStr := Dialog request:'Reporitory to add:'.
repStr isEmptyOrNil ifTrue:[^ self].
url := URL fromString:repStr.
url method = 'http' ifTrue:[
rep := MCHttpRepository
location: repStr
user: ''
password: ''
] ifFalse:[
url isFileScheme ifTrue:[
rep := MCDirectoryRepository directory:repStr.
].
].
rep isNil ifTrue:[
Dialog warn:'cannot figure out access scheme.'.
^ self.
].
Error handle:[:ex |
] do:[
files := rep allFileNames.
].
files isNil ifTrue:[
Dialog warn:'repository does not exist or is inaccessable.'.
^ self.
].
MCRepositoryGroup default addRepository:rep.
self repositoriesHolder value:(MCRepositoryGroup default repositories)
"Created: / 29-08-2011 / 12:25:40 / cg"
!
repositoryBrowseDirectory
"open a filebrowser on the seleccted directory-repository"
|fn|
fn := self selectedRepositoryHolder value repository directory asFilename.
fn exists ifFalse:[
Dialog warn:'No such directory'.
^ self.
].
UserPreferences current fileBrowserClass openIn:fn
"Created: / 31-08-2011 / 09:16:33 / cg"
!
repositoryFlushCache
"flush the repository cache - useful only in case of an aborted file load"
self selectedRepositoryHolder value repository flushCache
"Created: / 07-09-2011 / 15:02:21 / 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.
self targetNamespaceNameHolder value:('Target-Namespace: ',targetNamespace).
"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.
self targetPackageHolder value:('Target-Package: ',targetPackage).
"Created: / 07-09-2011 / 12:47:15 / cg"
!
showPackageInWinZip
| entry tempFile fileStream|
tempFile := Filename newTemporary withSuffix:'zip'.
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
"Created: / 07-09-2011 / 11:46:08 / cg"
!
versionBrowseUnloadable
| version snapshot loader unloadables |
version := self selectedVersionAsMCVersion.
version ifNil:[^self].
snapshot := version snapshot.
loader := MCPackageLoader new
installSnapshot: snapshot;
yourself.
loader analyze.
unloadables := ChangeSet withAll:
(loader unloadableDefinitions collect:
[:def|def asChange]).
(Tools::ChangeSetBrowser2
on: unloadables
label: version info name , ' (unloadable definitions)')
beTwoColumn;
targetNamespace:targetNamespace;
targetPackage:targetPackage;
open
"Modified: / 26-10-2010 / 23:04:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 07-09-2011 / 20:17:15 / cg"
!
versionBrowser
| version snapshot |
self withWaitCursorDo:[
version := self selectedVersionAsMCVersion.
version ifNil:[^self].
snapshot := version snapshot.
(Tools::ChangeSetBrowser2
on: snapshot asChangeSet
label: version info name)
beTwoColumn;
targetNamespace:targetNamespace;
targetPackage:targetPackage;
open
].
"Modified: / 04-08-2011 / 19:03:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 07-09-2011 / 20:17:36 / cg"
!
versionInspect
| v |
v := self selectedVersionAsMCVersion.
v ifNotNil:[v inspect]
"Modified: / 13-10-2010 / 17:48:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
versionLoad
"load into the default (or previously set) package"
| entry |
entry := self selectedVersionHolder value.
entry notNil ifTrue:[
self withWaitCursorDo:[
self versionLoad: entry asMCVersion into:(targetPackage ? PackageId noProjectID)
]
].
"Modified: / 09-11-2010 / 13:26:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 07-09-2011 / 14:51:57 / cg"
!
versionLoad: version into: package
self withWaitCursorDo:[
MCStXNamespaceQuery
answer:(NameSpace name:targetNamespace ? 'Smalltalk')
do: [
MCStXPackageQuery
answer: package
do: [
MCInteractiveLoadingQuery answer: true do:[
updateChangefileHolder value ifTrue:[
version load
] ifFalse:[
Class withoutUpdatingChangesDo:[
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: / 07-09-2011 / 20:16:19 / 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: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'!
updateVersionDetails
| versionEntry version |
worker ifNotNil:[worker terminate. worker := nil].
versionEntry := self selectedVersion.
versionEntry ifNil:[selectedVersionDetailsHolder value:'No version selected'. ^self].
worker :=
[[selectedVersionDetailsHolder value:'Reading ' , versionEntry name.
version := versionEntry asMCVersion.
version ifNotNil:
[selectedVersionDetailsHolder value: version summary]] ensure:[worker := nil]] newProcess.
worker resume.
"Created: / 17-09-2010 / 15:23:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 26-10-2010 / 22:08:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!MCRepositoryBrowser class methodsFor:'documentation'!
version
^ '$Header: /cvs/stx/stx/goodies/monticello/MCRepositoryBrowser.st,v 1.14 2011-09-07 18:25:31 cg Exp $'
!
version_CVS
^ '$Header: /cvs/stx/stx/goodies/monticello/MCRepositoryBrowser.st,v 1.14 2011-09-07 18:25:31 cg Exp $'
!
version_SVN
^ '§Id: MCRepositoryBrowser.st 34 2011-08-04 21:44:46Z vranyj1 §'
! !