Tools__ProjectLoader.st
author Jan Vrany <jan.vrany@labware.com>
Wed, 05 Oct 2022 11:57:26 +0100
branchjv
changeset 19637 28f5bfaa093d
parent 16571 cf319f2e56d0
permissions -rw-r--r--
`NewSystemBrowser`: avoid updating package info when changed class is not selected This speeds up loading of packages when browser is open as it does not (needlessly) update package info which may involve scm round-trip.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
10098
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
     2
 Copyright (c) 2007-2010 Jan Vrany, SWING Research Group, Czech Technical University in Prague
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
     3
 Copyright (c) 2009-2010 eXept Software AG
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
10098
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
     5
 Permission is hereby granted, free of charge, to any person
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
     6
 obtaining a copy of this software and associated documentation
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
     7
 files (the 'Software'), to deal in the Software without
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
     8
 restriction, including without limitation the rights to use,
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
     9
 copy, modify, merge, publish, distribute, sublicense, and/or sell
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    10
 copies of the Software, and to permit persons to whom the
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    11
 Software is furnished to do so, subject to the following
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    12
 conditions:
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    13
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    14
 The above copyright notice and this permission notice shall be
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    15
 included in all copies or substantial portions of the Software.
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    16
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    17
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    18
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    19
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    20
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    21
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    22
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    23
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    24
 OTHER DEALINGS IN THE SOFTWARE.
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
"
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
"{ Package: 'stx:libtool' }"
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
"{ NameSpace: Tools }"
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
SimpleDialog subclass:#ProjectLoader
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
	instanceVariableNames:'projectList'
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
	classVariableNames:''
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
	poolDictionaries:''
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
	category:'Interface-Tools'
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
!
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
!ProjectLoader class methodsFor:'documentation'!
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
copyright
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
"
10098
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    41
 Copyright (c) 2007-2010 Jan Vrany, SWING Research Group, Czech Technical University in Prague
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    42
 Copyright (c) 2009-2010 eXept Software AG
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    43
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    44
 Permission is hereby granted, free of charge, to any person
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    45
 obtaining a copy of this software and associated documentation
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    46
 files (the 'Software'), to deal in the Software without
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    47
 restriction, including without limitation the rights to use,
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    48
 copy, modify, merge, publish, distribute, sublicense, and/or sell
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    49
 copies of the Software, and to permit persons to whom the
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    50
 Software is furnished to do so, subject to the following
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    51
 conditions:
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
10098
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    53
 The above copyright notice and this permission notice shall be
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    54
 included in all copies or substantial portions of the Software.
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    55
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    56
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    57
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    58
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    59
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    60
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    61
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    62
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
c837d8825b74 changed: #copyright
Claus Gittinger <cg@exept.de>
parents: 10016
diff changeset
    63
 OTHER DEALINGS IN THE SOFTWARE.
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
"
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
! !
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
!ProjectLoader class methodsFor:'initialization'!
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
initialize
13380
6edba26e3484 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13379
diff changeset
    70
    | item |
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
13779
65c5b77e754a class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13380
diff changeset
    72
    item := (MenuItem label:(self resources string:'Load Project from Web...'))
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
                nameKey:'LoadProject';
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
                value:[(Smalltalk at: self fullName asSymbol) open].
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
    NewLauncher
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
        addMenuItem: item
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
        from: nil
13277
29932566ebb7 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13275
diff changeset
    79
        in: 'menu.file'
29932566ebb7 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13275
diff changeset
    80
        position: #(#after #fileBrowser)
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
        space: true.
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
    "
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
        self initialize 
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
    "
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
    "Created: / 22-11-2008 / 09:58:03 / Jan Vrany <vranyj1@fel.cvut.cz>"
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
    "Modified: / 26-11-2008 / 10:00:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
! !
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
!ProjectLoader class methodsFor:'accessing'!
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
projectSites
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
13275
273e040abd33 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 10098
diff changeset
    95
    ^UserPreferences current at:#projectLoaderProjectSites ifAbsent:#()
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
    "Created: / 22-11-2008 / 09:13:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
    "Modified: / 26-11-2008 / 10:13:32 / Jan Vrany <vranyj1@fel.cvut.cz>"
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
! !
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
!ProjectLoader class methodsFor:'defaults'!
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
defaultProjectFile
13281
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   104
    ^ Filename homeDirectory / '.smalltalk' / 'projects.rc'
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
    "Created: / 26-11-2008 / 10:15:02 / Jan Vrany <vranyj1@fel.cvut.cz>"
13281
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   107
    "Modified: / 31-07-2013 / 12:44:52 / cg"
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
!
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
defaultProjects
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
    ^#(
13281
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   113
        "/ cvut projects
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
        (
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
                'CellStore'
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
                ('cvut:fel/cellstore/core')
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
        )
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
        (
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
                'Perseus'
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
                ('cvut:fel/perseus/core'
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
                 'cvut:fel/perseus/core_ui'
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
                 'cvut:fel/perseus/smallscript'
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
                 'cvut:fel/perseus/pascal'
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
                 'stx:goodies/xmlsuite/xquery')
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
        )
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
        (
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
                'IZAR'
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
                ('cvut:fel/izar')
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
        )
13281
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   132
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   133
        "/ exept projects
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   134
        (
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   135
                'expecco'
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   136
                ('exept:expecco/application')
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   137
        )
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   138
        (
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   139
                'expeccoNET'
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   140
                ('expeccoNET:server')
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   141
        )
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   142
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   143
        "/ private projects
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   144
        (
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   145
                'scheme'
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   146
                ('cg:hdm/scheme2013')
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   147
        )
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
)
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
    "Created: / 26-11-2008 / 10:06:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
13281
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   151
    "Modified: / 31-07-2013 / 12:40:49 / cg"
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
! !
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
!ProjectLoader class methodsFor:'interface specs'!
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
windowSpec
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
    "This resource specification was automatically generated
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
     by the UIPainter of ST/X."
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
    "Do not manually edit this!! If it is corrupted,
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
     the UIPainter may not be able to read the specification."
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
    "
13281
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   164
     UIPainter new openOnClass:Tools::ProjectLoader andSelector:#windowSpec
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   165
     Tools::ProjectLoader new openInterface:#windowSpec
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   166
     Tools::ProjectLoader open
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
    "
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
    <resource: #canvas>
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
    ^ 
13281
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   172
    #(FullSpec
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   173
       name: windowSpec
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   174
       window: 
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   175
      (WindowSpec
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   176
         label: 'Select project'
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   177
         name: 'Select project'
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   178
         min: (Point 10 10)
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   179
         bounds: (Rectangle 0 0 402 301)
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   180
       )
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   181
       component: 
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   182
      (SpecCollection
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   183
         collection: (
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   184
          (VerticalPanelViewSpec
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   185
             name: 'Main'
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   186
             layout: (LayoutFrame 3 0 3 0 -3 1 -3 1)
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   187
             horizontalLayout: fitSpace
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   188
             verticalLayout: bottomSpaceFit
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   189
             horizontalSpace: 3
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   190
             verticalSpace: 3
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   191
             component: 
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   192
            (SpecCollection
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   193
               collection: (
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   194
                (SelectionInListModelViewSpec
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   195
                   name: 'ProjectList'
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   196
                   model: projectSelectionHolder
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   197
                   hasHorizontalScrollBar: true
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   198
                   hasVerticalScrollBar: true
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   199
                   listModel: projectNamesHolder
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   200
                   highlightMode: line
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   201
                   doubleClickSelector: doAccept
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   202
                   extent: (Point 390 237)
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   203
                 )
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   204
                (ActionButtonSpec
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   205
                   label: 'Update list from network'
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   206
                   name: 'Update'
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   207
                   translateLabel: true
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   208
                   model: doUpdateFromNetwork
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   209
                   useDefaultExtent: true
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   210
                 )
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   211
                (HorizontalPanelViewSpec
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   212
                   name: 'ButtonPanel'
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   213
                   horizontalLayout: fit
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   214
                   verticalLayout: fitSpace
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   215
                   horizontalSpace: 3
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   216
                   verticalSpace: 3
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   217
                   reverseOrderIfOKAtLeft: true
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   218
                   component: 
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   219
                  (SpecCollection
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   220
                     collection: (
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   221
                      (ActionButtonSpec
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   222
                         label: 'Cancel'
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   223
                         name: 'CancelButton'
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   224
                         translateLabel: true
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   225
                         model: doCancel
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   226
                         useDefaultExtent: true
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
                       )
13281
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   228
                      (ActionButtonSpec
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   229
                         label: 'Load'
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   230
                         name: 'LoadButton'
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   231
                         translateLabel: true
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   232
                         model: doAccept
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   233
                         enableChannel: canDoAcceptHolder
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   234
                         useDefaultExtent: true
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   235
                       )
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   236
                      )
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   237
                    
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   238
                   )
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   239
                   useDefaultExtent: true
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
                 )
13281
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   241
                )
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   242
              
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   243
             )
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
           )
13281
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   245
          )
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   246
        
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   247
       )
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   248
     )
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
! !
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
!ProjectLoader class methodsFor:'load & save'!
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
loadProjects
13378
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   254
    |projectFile projects|
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   255
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   256
    projectFile := self defaultProjectFile.
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   257
    projectFile exists ifFalse:[
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   258
        ^ self defaultProjects
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   259
    ].
13378
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   260
    projects := Compiler 
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   261
        evaluate:projectFile contents asString
13378
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   262
        ifFail:[ 
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   263
            Dialog information:(self resources 
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   264
                                    stringWithCRs:'Syntax error in "%1".\Showing default projects.' 
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   265
                                    with:projectFile pathName).
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   266
            self defaultProjects 
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   267
        ].
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   268
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   269
    projects isEmptyOrNil ifTrue:[
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   270
        Dialog information:(self resources 
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   271
                                stringWithCRs:'Projects file "%1" is empty.\Showing default projects.' 
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   272
                                with:projectFile pathName).
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   273
        projects := self defaultProjects.
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   274
    ].
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   275
    ^ projects
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   276
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   277
    "
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   278
        self projectList"
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   279
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   280
    "Created: / 22-11-2008 / 09:41:22 / Jan Vrany <vranyj1@fel.cvut.cz>"
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   281
    "Modified: / 26-11-2008 / 10:17:23 / Jan Vrany <vranyj1@fel.cvut.cz>"
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   282
!
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   283
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   284
saveProjects:projects 
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   285
    |projectFile|
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   286
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   287
    projectFile := self defaultProjectFile.
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   288
    projectFile writeStream nextPutAll:projects storeString
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   289
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   290
    "Created: / 26-11-2008 / 10:07:42 / Jan Vrany <vranyj1@fel.cvut.cz>"
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   291
! !
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   292
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   293
!ProjectLoader methodsFor:'actions'!
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   294
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   295
doAccept
13281
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   296
    |packages|
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   297
13281
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   298
    self canDoAcceptHolder value ifFalse:[
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   299
        ^ self
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   300
    ].
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   301
    packages := (projectList at:self projectSelectionHolder value) second.
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   302
    packages do:[:pkg | 
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   303
        Smalltalk loadPackage:pkg
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   304
    ].
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   305
    super doAccept.
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   306
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   307
    "Created: / 22-11-2008 / 09:55:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
13281
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   308
    "Modified (format): / 31-07-2013 / 12:51:54 / cg"
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   309
!
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   310
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   311
doUpdateFromNetwork
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   312
    <resource: #uiCallback>
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   313
13378
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   314
    | sites projects newProjects |
13281
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   315
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   316
    projects := self class loadProjects asOrderedCollection.
13378
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   317
    sites := self class projectSites.
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   318
    sites isEmpty ifTrue:[
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   319
        Dialog information:'No project sites defined (see ProjectLoader>>projectSites).'.
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   320
    ] ifFalse:[
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   321
        sites do:[:site|
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   322
            | siteUrl response |
13281
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   323
13378
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   324
            siteUrl := site asURL.
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   325
            Transcript showCR:'asking ',siteUrl asString,'...'.
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   326
            response := HTTPInterface get: siteUrl path fromHost: siteUrl host.
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   327
            newProjects := Compiler evaluate: response data ifFail:[#()].
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   328
            newProjects do:[:newPrj|
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   329
                | oldPrj |
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   330
                oldPrj := projects 
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   331
                            detect:[:oldPrj|oldPrj first = newPrj first] 
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   332
                            ifNone:[projects add: newPrj].
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   333
                oldPrj at:2 put: newPrj second.
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   334
            ]
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   335
        ].
13281
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   336
    ].
13378
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   337
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   338
    projects isEmpty ifTrue:[
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   339
        Dialog information:'No projects found in web.'.
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   340
        ^ self
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   341
    ].
93daf696c53f class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13281
diff changeset
   342
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   343
    projects := projects asArray.
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   344
    projectList := projects.
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   345
    self class saveProjects: projects.
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   346
    self projectListChanged
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   347
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   348
    "
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   349
        Tools::ProjectLoadDialog new doUpdateFromNetwork
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   350
    "
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   351
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   352
    "Modified: / 26-11-2008 / 10:28:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
13281
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   353
    "Modified (comment): / 31-07-2013 / 12:51:48 / cg"
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   354
! !
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   355
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   356
!ProjectLoader methodsFor:'aspects'!
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   357
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   358
canDoAcceptHolder
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   359
    <resource: #uiAspect>
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   360
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   361
    |holder|
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   362
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   363
    (holder := builder bindingAt:#canDoAcceptHolder) isNil ifTrue:[
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   364
        holder := false asValue.
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   365
        builder aspectAt:#canDoAcceptHolder put:holder.
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   366
    ].
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   367
    ^ holder.
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   368
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   369
    "Created: / 22-11-2008 / 09:51:34 / Jan Vrany <vranyj1@fel.cvut.cz>"
13281
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   370
    "Modified (comment): / 31-07-2013 / 12:52:12 / cg"
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   371
!
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   372
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   373
projectNamesHolder
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   374
    <resource: #uiAspect>
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   375
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   376
    |holder|
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   377
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   378
    (holder := builder bindingAt:#projectNamesHolder) isNil ifTrue:[
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   379
        holder := #() asValue.
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   380
        builder aspectAt:#projectNamesHolder put:holder.
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   381
    ].
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   382
    ^ holder.
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   383
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   384
    "Created: / 22-11-2008 / 08:59:43 / Jan Vrany <vranyj1@fel.cvut.cz>"
13281
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   385
    "Modified (comment): / 31-07-2013 / 12:52:21 / cg"
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   386
!
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   387
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   388
projectSelectionHolder
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   389
    <resource: #uiAspect>
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   390
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   391
    |holder|
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   392
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   393
    (holder := builder bindingAt:#projectSelectionHolder) isNil ifTrue:[
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   394
        holder := ValueHolder new.
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   395
        builder aspectAt:#projectSelectionHolder put:holder.
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   396
        holder onChangeSend:#projectSelectionHolderChanged to:self.
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   397
    ].
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   398
    ^ holder.
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   399
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   400
    "Created: / 22-11-2008 / 08:59:43 / Jan Vrany <vranyj1@fel.cvut.cz>"
13281
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   401
    "Modified: / 31-07-2013 / 18:00:28 / cg"
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   402
! !
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   403
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   404
!ProjectLoader methodsFor:'change & update'!
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   405
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   406
projectListChanged
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   407
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   408
    self projectNamesHolder value:
13281
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   409
        (projectList collect:[:prj |
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   410
            |name origin|
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   411
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   412
            name := prj first.
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   413
            origin := prj second first.
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   414
            '%1 %2' 
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   415
                bindWith:prj first
16510
55dc7652db5e #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 14613
diff changeset
   416
                with:(('(%1)' bindWith:origin) withColor:Color gray)
13281
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   417
        ])
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   418
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   419
    "Created: / 22-11-2008 / 09:52:47 / Jan Vrany <vranyj1@fel.cvut.cz>"
13281
0c6a72cc4858 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13277
diff changeset
   420
    "Modified: / 31-07-2013 / 12:48:34 / cg"
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   421
!
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   422
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   423
projectSelectionHolderChanged
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   424
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   425
    | selection |
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   426
    selection := self projectSelectionHolder value.
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   427
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   428
    self canDoAcceptHolder value:
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   429
        (selection notNil and:[selection ~= 0])
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   430
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   431
    "Created: / 22-11-2008 / 09:52:20 / Jan Vrany <vranyj1@fel.cvut.cz>"
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   432
! !
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   433
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   434
!ProjectLoader methodsFor:'hooks'!
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   435
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   436
commonPostOpen
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   437
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   438
    projectList := self class loadProjects.
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   439
    self projectListChanged
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   440
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   441
    "Created: / 22-11-2008 / 09:43:04 / Jan Vrany <vranyj1@fel.cvut.cz>"
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   442
    "Modified: / 26-11-2008 / 10:16:30 / Jan Vrany <vranyj1@fel.cvut.cz>"
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   443
! !
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   444
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   445
!ProjectLoader class methodsFor:'documentation'!
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   446
13277
29932566ebb7 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13275
diff changeset
   447
version
16510
55dc7652db5e #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 14613
diff changeset
   448
    ^ '$Header$'
13277
29932566ebb7 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13275
diff changeset
   449
!
29932566ebb7 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 13275
diff changeset
   450
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   451
version_CVS
16510
55dc7652db5e #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 14613
diff changeset
   452
    ^ '$Header$'
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   453
!
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   454
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   455
version_SVN
16510
55dc7652db5e #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 14613
diff changeset
   456
    ^ '$Id$'
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   457
! !
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   458
13275
273e040abd33 class: Tools::ProjectLoader
Claus Gittinger <cg@exept.de>
parents: 10098
diff changeset
   459
10016
eb6e76a20fc3 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   460
ProjectLoader initialize!