--- a/Tools__ProjectLoader.st Thu Aug 08 10:48:08 2013 +0100
+++ b/Tools__ProjectLoader.st Thu Aug 08 11:08:29 2013 +0100
@@ -93,7 +93,7 @@
projectSites
- ^UserPreferences current projectLoaderProjectSites
+ ^UserPreferences current at:#projectLoaderProjectSites ifAbsent:#()
"Created: / 22-11-2008 / 09:13:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
"Modified: / 26-11-2008 / 10:13:32 / Jan Vrany <vranyj1@fel.cvut.cz>"
@@ -102,14 +102,16 @@
!ProjectLoader class methodsFor:'defaults'!
defaultProjectFile
- ^ (Filename homeDirectory construct:'.smalltalk') construct:'projects.rc'
+ ^ Filename homeDirectory / '.smalltalk' / 'projects.rc'
"Created: / 26-11-2008 / 10:15:02 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 31-07-2013 / 12:44:52 / cg"
!
defaultProjects
^#(
+ "/ cvut projects
(
'CellStore'
('cvut:fel/cellstore/core')
@@ -128,9 +130,26 @@
'IZAR'
('cvut:fel/izar')
)
+
+ "/ exept projects
+ (
+ 'expecco'
+ ('exept:expecco/application')
+ )
+ (
+ 'expeccoNET'
+ ('expeccoNET:server')
+ )
+
+ "/ private projects
+ (
+ 'scheme'
+ ('cg:hdm/scheme2013')
+ )
)
"Created: / 26-11-2008 / 10:06:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 31-07-2013 / 12:40:49 / cg"
! !
!ProjectLoader class methodsFor:'interface specs'!
@@ -143,93 +162,91 @@
the UIPainter may not be able to read the specification."
"
- UIPainter new openOnClass:Tools::ProjectLoadDialog andSelector:#windowSpec
- Tools::ProjectLoadDialog new openInterface:#windowSpec
- Tools::ProjectLoadDialog open
+ UIPainter new openOnClass:Tools::ProjectLoader andSelector:#windowSpec
+ Tools::ProjectLoader new openInterface:#windowSpec
+ Tools::ProjectLoader open
"
<resource: #canvas>
^
- #(FullSpec
- name: windowSpec
- window:
- (WindowSpec
- label: 'Select project'
- name: 'Select project'
- min: (Point 10 10)
- bounds: (Rectangle 0 0 402 301)
- )
- component:
- (SpecCollection
- collection: (
- (VerticalPanelViewSpec
- name: 'Main'
- layout: (LayoutFrame 3 0 3 0 -3 1 -3 1)
- horizontalLayout: fitSpace
- verticalLayout: bottomSpaceFit
- horizontalSpace: 3
- verticalSpace: 3
- component:
- (SpecCollection
- collection: (
- (SelectionInListModelViewSpec
- name: 'ProjectList'
- model: projectSelectionHolder
- hasHorizontalScrollBar: true
- hasVerticalScrollBar: true
- listModel: projectNamesHolder
- highlightMode: line
- doubleClickSelector: doAccept
- extent: (Point 390 240)
- )
- (ActionButtonSpec
- label: 'Update list from network'
- name: 'Update'
- translateLabel: true
- model: doUpdateFromNetwork
- initiallyDisabled: false
- useDefaultExtent: true
- )
- (HorizontalPanelViewSpec
- name: 'ButtonPanel'
- horizontalLayout: fit
- verticalLayout: fitSpace
- horizontalSpace: 3
- verticalSpace: 3
- component:
- (SpecCollection
- collection: (
- (ActionButtonSpec
- label: 'Cancel'
- name: 'CancelButton'
- translateLabel: true
- model: doCancel
- useDefaultExtent: true
- )
- (ActionButtonSpec
- label: 'Load'
- name: 'LoadButton'
- translateLabel: true
- model: doAccept
- enableChannel: canDoAcceptHolder
- useDefaultExtent: true
- )
+ #(FullSpec
+ name: windowSpec
+ window:
+ (WindowSpec
+ label: 'Select project'
+ name: 'Select project'
+ min: (Point 10 10)
+ bounds: (Rectangle 0 0 402 301)
+ )
+ component:
+ (SpecCollection
+ collection: (
+ (VerticalPanelViewSpec
+ name: 'Main'
+ layout: (LayoutFrame 3 0 3 0 -3 1 -3 1)
+ horizontalLayout: fitSpace
+ verticalLayout: bottomSpaceFit
+ horizontalSpace: 3
+ verticalSpace: 3
+ component:
+ (SpecCollection
+ collection: (
+ (SelectionInListModelViewSpec
+ name: 'ProjectList'
+ model: projectSelectionHolder
+ hasHorizontalScrollBar: true
+ hasVerticalScrollBar: true
+ listModel: projectNamesHolder
+ highlightMode: line
+ doubleClickSelector: doAccept
+ extent: (Point 390 237)
+ )
+ (ActionButtonSpec
+ label: 'Update list from network'
+ name: 'Update'
+ translateLabel: true
+ model: doUpdateFromNetwork
+ useDefaultExtent: true
+ )
+ (HorizontalPanelViewSpec
+ name: 'ButtonPanel'
+ horizontalLayout: fit
+ verticalLayout: fitSpace
+ horizontalSpace: 3
+ verticalSpace: 3
+ reverseOrderIfOKAtLeft: true
+ component:
+ (SpecCollection
+ collection: (
+ (ActionButtonSpec
+ label: 'Cancel'
+ name: 'CancelButton'
+ translateLabel: true
+ model: doCancel
+ useDefaultExtent: true
)
-
- )
- useDefaultExtent: true
- )
+ (ActionButtonSpec
+ label: 'Load'
+ name: 'LoadButton'
+ translateLabel: true
+ model: doAccept
+ enableChannel: canDoAcceptHolder
+ useDefaultExtent: true
+ )
+ )
+
+ )
+ useDefaultExtent: true
)
-
- )
- )
+ )
+
+ )
)
-
- )
- )
-
- "Modified: / 26-11-2008 / 09:16:59 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ )
+
+ )
+ )
! !
!ProjectLoader class methodsFor:'load & save'!
@@ -264,50 +281,53 @@
!ProjectLoader methodsFor:'actions'!
doAccept
+ |packages|
- | packages |
- self canDoAcceptHolder value ifFalse:[^self].
- packages := (projectList at: self projectSelectionHolder value) second.
- packages do:
- [:pkg|Smalltalk loadPackage: pkg].
+ self canDoAcceptHolder value ifFalse:[
+ ^ self
+ ].
+ packages := (projectList at:self projectSelectionHolder value) second.
+ packages do:[:pkg |
+ Smalltalk loadPackage:pkg
+ ].
super doAccept.
"Created: / 22-11-2008 / 09:55:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified (format): / 31-07-2013 / 12:51:54 / cg"
!
doUpdateFromNetwork
<resource: #uiCallback>
| projects newProjects |
+
projects := self class loadProjects asOrderedCollection.
- self class projectSites do:
- [:site|
+ self class projectSites do:[:site|
| siteUrl response |
+
siteUrl := site asURL.
response := HTTPInterface get: siteUrl path fromHost: siteUrl host.
newProjects := Compiler evaluate: response data ifFail:[#()].
- newProjects do:
- [:newPrj|
- | oldPrj |
- oldPrj := projects
- detect:[:oldPrj|oldPrj first = newPrj first]
- ifNone:[projects add: newPrj].
- oldPrj at:2 put: newPrj second.
- ]
- ].
+ newProjects do:[:newPrj|
+ | oldPrj |
+ oldPrj := projects
+ detect:[:oldPrj|oldPrj first = newPrj first]
+ ifNone:[projects add: newPrj].
+ oldPrj at:2 put: newPrj second.
+ ]
+ ].
projects := projects asArray.
projectList := projects.
self class saveProjects: projects.
self projectListChanged
-
"
Tools::ProjectLoadDialog new doUpdateFromNetwork
-
"
"Modified: / 26-11-2008 / 10:28:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified (comment): / 31-07-2013 / 12:51:48 / cg"
! !
!ProjectLoader methodsFor:'aspects'!
@@ -315,73 +335,47 @@
canDoAcceptHolder
<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 ;-)"
-
|holder|
(holder := builder bindingAt:#canDoAcceptHolder) isNil ifTrue:[
holder := false asValue.
builder aspectAt:#canDoAcceptHolder put:holder.
-"/ if your app needs to be notified of changes, uncomment one of the lines below:
-"/ holder addDependent:self.
-"/ holder onChangeSend:#canDoAcceptHolderChanged to:self.
].
^ holder.
"Created: / 22-11-2008 / 09:51:34 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified (comment): / 31-07-2013 / 12:52:12 / cg"
!
projectNamesHolder
<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 ;-)"
-
|holder|
(holder := builder bindingAt:#projectNamesHolder) isNil ifTrue:[
holder := #() asValue.
builder aspectAt:#projectNamesHolder put:holder.
-"/ if your app needs to be notified of changes, uncomment one of the lines below:
-"/ holder addDependent:self.
-"/ holder onChangeSend:#projectNamesHolderChanged to:self.
].
^ holder.
"Created: / 22-11-2008 / 08:59:43 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified (comment): / 31-07-2013 / 12:52:21 / cg"
!
projectSelectionHolder
<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 ;-)"
-
|holder|
(holder := builder bindingAt:#projectSelectionHolder) isNil ifTrue:[
holder := ValueHolder new.
builder aspectAt:#projectSelectionHolder put:holder.
-"/ if your app needs to be notified of changes, uncomment one of the lines below:
- holder addDependent:self.
holder onChangeSend:#projectSelectionHolderChanged to:self.
].
^ holder.
"Created: / 22-11-2008 / 08:59:43 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 31-07-2013 / 18:00:28 / cg"
! !
!ProjectLoader methodsFor:'change & update'!
@@ -389,9 +383,18 @@
projectListChanged
self projectNamesHolder value:
- (projectList collect:[:prj|prj first])
+ (projectList collect:[:prj |
+ |name origin|
+
+ name := prj first.
+ origin := prj second first.
+ '%1 %2'
+ bindWith:prj first
+ with:(('(%1)' bindWith:origin) colorizeAllWith:Color grey)
+ ])
"Created: / 22-11-2008 / 09:52:47 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 31-07-2013 / 12:48:34 / cg"
!
projectSelectionHolderChanged
@@ -418,8 +421,12 @@
!ProjectLoader class methodsFor:'documentation'!
+version
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__ProjectLoader.st,v 1.5 2013-07-31 16:00:44 cg Exp $'
+!
+
version_CVS
- ^ '§Header: /cvs/stx/stx/libtool/Tools__ProjectLoader.st,v 1.2 2011/07/03 19:41:59 cg Exp §'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__ProjectLoader.st,v 1.5 2013-07-31 16:00:44 cg Exp $'
!
version_HG
@@ -428,7 +435,7 @@
!
version_SVN
- ^ '$Id: Tools__ProjectLoader.st 7989 2012-05-05 21:28:49Z vranyj1 $'
+ ^ '$Id: Tools__ProjectLoader.st,v 1.5 2013-07-31 16:00:44 cg Exp $'
! !