PerforceSourceCodeManagementSettingsAppl.st
changeset 11531 f5f8306664d7
parent 11530 ba6b2f17e30d
child 11546 b1bc718b6e76
equal deleted inserted replaced
11530:ba6b2f17e30d 11531:f5f8306664d7
     8  be provided or otherwise made available to, or used by, any
     8  be provided or otherwise made available to, or used by, any
     9  other person.  No title to or ownership of the software is
     9  other person.  No title to or ownership of the software is
    10  hereby transferred.
    10  hereby transferred.
    11 "
    11 "
    12 AbstractSourceCodeManagementSettingsAppl subclass:#PerforceSourceCodeManagementSettingsAppl
    12 AbstractSourceCodeManagementSettingsAppl subclass:#PerforceSourceCodeManagementSettingsAppl
    13         instanceVariableNames:'selectedPerModuleRoot perforceExecutableHolder
    13 	instanceVariableNames:'selectedPerModuleRoot perforceExecutableHolder
    14                 listOfPerforceModules defaultSettingsHolder tableColumns
    14 		listOfPerforceModules defaultSettingsHolder tableColumns
    15                 defaultSettingsPrototypeList'
    15 		defaultSettingsPrototypeList checkLabel'
    16         classVariableNames:'RecentlyUsedCVSRoots RecentlyUsedStoreHosts
    16 	classVariableNames:'RecentlyUsedCVSRoots RecentlyUsedStoreHosts
    17                 RecentlyUsedSmallTeamHosts LastStoreHost LastStoreUser
    17 		RecentlyUsedSmallTeamHosts LastStoreHost LastStoreUser
    18                 LastStorePassword'
    18 		LastStorePassword'
    19         poolDictionaries:''
    19 	poolDictionaries:''
    20         category:'System-SourceCodeManagement'
    20 	category:'System-SourceCodeManagement'
    21 !
    21 !
    22 
    22 
    23 ApplicationModel subclass:#ManagerPerModuleApp
    23 ApplicationModel subclass:#ManagerPerModuleApp
    24         instanceVariableNames:'moduleHolder acceptChannel settingsHolder
    24 	instanceVariableNames:'moduleHolder acceptChannel settingsHolder
    25                 sourceCodeManagementSettingsApp acceptEnableChannel canceled
    25 		sourceCodeManagementSettingsApp acceptEnableChannel canceled
    26                 defaultSettingsPrototypeList'
    26 		defaultSettingsPrototypeList'
    27         classVariableNames:''
    27 	classVariableNames:''
    28         poolDictionaries:''
    28 	poolDictionaries:''
    29         privateIn:PerforceSourceCodeManagementSettingsAppl
    29 	privateIn:PerforceSourceCodeManagementSettingsAppl
    30 !
    30 !
    31 
    31 
    32 Object subclass:#ModuleManager
    32 Object subclass:#ModuleManager
    33         instanceVariableNames:'manager module settings app check checkIcon'
    33 	instanceVariableNames:'manager module settings app check checkIcon'
    34         classVariableNames:''
    34 	classVariableNames:''
    35         poolDictionaries:''
    35 	poolDictionaries:''
    36         privateIn:PerforceSourceCodeManagementSettingsAppl
    36 	privateIn:PerforceSourceCodeManagementSettingsAppl
    37 !
    37 !
    38 
    38 
    39 !PerforceSourceCodeManagementSettingsAppl class methodsFor:'documentation'!
    39 
    40 
    40 
    41 copyright
    41 
    42 "
    42 
    43  COPYRIGHT (c) 2011 by eXept Software AG
    43 
    44               All Rights Reserved
    44 
    45 
    45 
    46  This software is furnished under a license and may be used
    46 
    47  only in accordance with the terms of that license and with the
    47 
    48  inclusion of the above copyright notice.   This software may not
    48 
    49  be provided or otherwise made available to, or used by, any
    49 
    50  other person.  No title to or ownership of the software is
       
    51  hereby transferred.
       
    52 "
       
    53 ! !
       
    54 
       
    55 !PerforceSourceCodeManagementSettingsAppl class methodsFor:'image specs'!
       
    56 
       
    57 defaultIcon
       
    58     ^ self defaultIcon4.
       
    59     "/ ^ self defaultIcon3
       
    60 
       
    61     "Created: / 21-12-2011 / 12:35:05 / cg"
       
    62 !
       
    63 
       
    64 defaultIcon1
       
    65     "This resource specification was automatically generated
       
    66      by the ImageEditor of ST/X."
       
    67 
       
    68     "Do not manually edit this!! If it is corrupted,
       
    69      the ImageEditor may not be able to read the specification."
       
    70 
       
    71     "
       
    72      self defaultIcon1 inspect
       
    73      ImageEditor openOnClass:self andSelector:#defaultIcon1
       
    74      Icon flushCachedIcons
       
    75     "
       
    76 
       
    77     <resource: #image>
       
    78 
       
    79     ^Icon
       
    80         constantNamed:'PerforceSourceCodeManagementSettingsAppl class defaultIcon1'
       
    81         ifAbsentPut:[(Depth8Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
       
    82 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PHA@PHA@0D@@@D@@@@@@@@@@@@@@ TFA XFA \B@@@C@ HB@ @@@@@@
       
    83 @@HIB (IBP(IA@LB@ $JBPH@@@@@@@@BBP(LCPXJB $N@!!@JB!!@B@@@@@@@@@!!@PCP@@D!!@PA (PBP(P@ @@@@@@@@HPDAH@@ALPDA@PD@(PD@H@@@@@@@@B
       
    84 EQ@VB (WDA@PEQLMEP(B@@@@@@@@@!!TWEQ$ZE1\WEQ@@F1$S@ @@@@@@@@HZEQ@SF1TUEQT\@AXZA H@@@@@@@@BF!!4S@@4ZF!!4Q@@@^G00B@@@@@@@@@!!8^
       
    85 D2@^F!!(G@@@QH"L$IPH@@@@@@@H''G!!TUG" )AR(EJ2L,KR4B@@@@@@@B@!!D/LBL"H#D1LRH2H3L4@ @@@@@@@@@BJ3L6KB0,KB0#H2L#H0H@@@@@@@@@@ HB
       
    86 @ HB@ HBH#(-@ HB@@@@@@@@@@@@@@@@@@@@@#(4KPH@@@@@@@@@@@@@@@@@@@@@@@H=O H@@@@@@@@@@@@@@@@@@@@@@@@B@ HB@@@@@@@@@@@@@@@@@@@@
       
    87 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; colorMapFromArray:#[240 240 240 224 232 250 208 232 250 224 240 250 160 192 210 128 176 200 144 176 200 160 192 220 144 176 210 112 160 180 128 160 180 160 200 220 128 168 200 160 184 210 208 224 240 176 208 220 112 152 180 176 200 220 144 184 210 144 168 200 192 216 240 112 144 170 128 152 180 112 144 180 128 168 180 96 136 170 112 136 170 144 168 180 192 216 220 96 136 160 96 128 160 48 112 140 176 192 220 144 184 220 16 96 130 32 96 130 144 200 220 192 232 250 176 216 250 96 120 140 80 120 140 80 128 160 112 168 200 80 136 170 32 104 140 96 152 180 128 184 210 96 144 170 48 104 140 16 88 120 32 104 130 16 88 130 0 80 100 176 224 250 32 96 140 144 192 220 160 208 240 160 208 220 16 80 120 80 144 170 80 144 180 0 64 100 0 72 100]; mask:((Depth1Image new) width: 22; height: 22; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@G?H@G?O G?? G?? G''? G''? G?? G?7 G?7 G/'' G?O0G??0G??0A??0A??0@@_@@@^@@@^@@@@@@@@@') ; yourself); yourself]
       
    88 !
       
    89 
       
    90 defaultIcon2
       
    91     "This resource specification was automatically generated
       
    92      by the ImageEditor of ST/X."
       
    93 
       
    94     "Do not manually edit this!! If it is corrupted,
       
    95      the ImageEditor may not be able to read the specification."
       
    96 
       
    97     "
       
    98      self defaultIcon2 inspect
       
    99      ImageEditor openOnClass:self andSelector:#defaultIcon2
       
   100      Icon flushCachedIcons
       
   101     "
       
   102 
       
   103     <resource: #image>
       
   104 
       
   105     ^Icon
       
   106         constantNamed:'PerforceSourceCodeManagementSettingsAppl class defaultIcon2'
       
   107         ifAbsentPut:[(Depth4Image new) width: 24; height: 24; photometric:(#palette); bitsPerSample:(#[4]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
       
   108 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH@@@@@@@@@@@@@QUUV@@@@@@@@@@A%UUUUUX@@@@@@BUUUUUUUUUTP@@@HUUUUUUUUUUUU$@@@@@UUUU
       
   109 UUUU$@@@@@@@@FUUUUT@@@@@@@@@@@AUUZ@@)B@@@@@@H@@BL@BUUV @@@BEUU @@HUUZP@@@@YUUUUQ!!%UY@@@@@@@$UUUUUUVP@@@@@@@@@BUUUU@@QUP@
       
   110 @@@@@@@AU@B%UP@@@@@@A0@@@@EUP@@@@@@@UUU@@DUY@@@@@@@UUUUUUUV@@@@@@@JH$VUUUU @@@@@@@@@@@@HYY@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
       
   111 @@@@@@@@@@@@@@@@@@@@@@@@') ; colorMapFromArray:#[255 248 248 240 200 104 255 216 160 255 248 240 240 192 64 240 168 24 240 176 48 255 240 224 255 224 176 255 208 136 255 232 208]; mask:((Depth1Image new) width: 24; height: 24; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@A @@G8@@_?@C??0O??<@?? @O<@@C88@!!#<C<O0G??@C?>@@O8<@A30@PG @>O@C?>@G?<@@A8@@@@@@@@@@@@@') ; yourself); yourself]
       
   112 !
       
   113 
       
   114 defaultIcon3
       
   115     "This resource specification was automatically generated
       
   116      by the ImageEditor of ST/X."
       
   117 
       
   118     "Do not manually edit this!! If it is corrupted,
       
   119      the ImageEditor may not be able to read the specification."
       
   120 
       
   121     "
       
   122      self defaultIcon3 inspect
       
   123      ImageEditor openOnClass:self andSelector:#defaultIcon3
       
   124      Icon flushCachedIcons
       
   125     "
       
   126 
       
   127     <resource: #image>
       
   128 
       
   129     ^Icon
       
   130         constantNamed:'PerforceSourceCodeManagementSettingsAppl class defaultIcon3'
       
   131         ifAbsentPut:[(Depth8Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
       
   132 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PHA@PHA@0D@@@D@@@@@@@@@@@@@@ PEAPTEAPXB@@@C@ HB@ @@@@@@
       
   133 @@HGB@ GA0 GBPLB@ \HA0H@@@@@@@@BA0 JB0THB@\L@ 4HB@4B@@@@@@@@@ 4MB0@@C 4MAP MA0 M@ @@@@@@@@HMCP8@@@<MCP4MCP MCPH@@@@@@@@B
       
   134 D@4QB@ RCP4MD@<KD@ B@@@@@@@@@!!@RDALTD!!HRD@4@EQLO@ @@@@@@@@HTM#X3L1@PDA@V@ADTAPH@@@@@@@@BL3X6M#X3EA\X@@@YF (B@@@@@@@@L#X6
       
   135 C1,YECLF@@@XGA4^G0H@@@@@@CL4L1@PFRD"ABLDIA4%I"XB@@@@L3L6MSX7JA48GB$)JQ0*GR,,@ @@@@@3MSX3IB,8NC %IRT]GQ4]GPH@@@@@@CL<@ H8
       
   136 N3,:N@HBGB8&@ HB@@@@@@@@@@@8NC$8NC @@"8,I H@@@@@@@@8@@@@@@@8N@@@@@H/L@H@@@@@@@@@@C 8NC 8NCD@@@@B@ HB@@@@@@@@@@@@NS 8NCD@
       
   137 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; colorMapFromArray:#[247 247 247 239 243 252 231 243 252 239 247 252 191 215 227 199 215 227 207 223 237 183 207 217 191 207 217 207 223 232 191 211 227 207 219 232 231 239 247 183 203 217 199 219 232 199 211 227 183 199 212 191 203 217 183 199 217 175 195 212 183 195 212 199 211 217 223 235 237 175 195 207 215 227 237 175 191 207 151 183 197 215 223 237 135 175 192 143 175 192 199 227 237 223 243 252 175 187 197 167 187 197 167 191 207 183 211 227 167 195 212 143 179 197 175 203 217 175 199 212 151 179 197 135 171 187 143 179 192 135 171 192 127 167 177 143 175 197 135 167 187 127 159 177 127 163 177 0 0 0 0 64 0 32 96 32 96 192 128 32 128 64 32 160 64 32 128 32 64 64 64 96 96 96 128 128 128 32 32 32 32 64 32]; mask:((Depth1Image new) width: 22; height: 22; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@G?H@G?O G?? G?? G''? G''? G?? G?7 G?7 G?'' G?O0G??0_??0O??0G??0@?_@HL^@G<^@C8@@@@@@') ; yourself); yourself]
       
   138 !
       
   139 
       
   140 defaultIcon4
       
   141     "This resource specification was automatically generated
       
   142      by the ImageEditor of ST/X."
       
   143 
       
   144     "Do not manually edit this!! If it is corrupted,
       
   145      the ImageEditor may not be able to read the specification."
       
   146 
       
   147     "
       
   148      self defaultIcon4 inspect
       
   149      ImageEditor openOnClass:self andSelector:#defaultIcon4
       
   150      Icon flushCachedIcons
       
   151     "
       
   152 
       
   153     <resource: #image>
       
   154 
       
   155     ^Icon
       
   156         constantNamed:'PerforceSourceCodeManagementSettingsAppl class defaultIcon4'
       
   157         ifAbsentPut:[(Depth8Image new) width: 22; height: 22; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
       
   158 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AUUUUUU @@@@@@@@@@@@@@@@@@
       
   159 @@@@U(F.+Y]QJ@@@FB\$(P@@@@@@@@@@@ET)H#U7JS]IFRX)S%\@@@@@@@@@@@@SO6B1E1F+$C5SJSYB@@@@@@@@@@@@D:>MW)>Y_P!!;#8HI\0@@@@@@@@@@
       
   160 @D@)J!!R0& 0])J"CG!!0@@@@@@@@@@@AAJ08J^VM_(1TP_7 G@@@@@@@@@@@@-;^4-J2NM@=5$'':)@@@@@@@@@@@@-K^7-;^4^&T2@C1OK@@@@@@@@@@@,;^7
       
   161 SBB''%+P@''HY/%E$K@@@@@@@@@KR5-@YPHR4A''X]0JU)DSZH@@@@@-KR7-+^8@D"9\WE[CTU!!K0L3@@@@@@B4-+^4@@B9.[$@@C@Z)X0@@@@@@@@@@KR=@@B9
       
   162 /K2;.PBJWT]K@@@@@@@@@@@@@@B9.[*9.[$@@H,[@@@@@@@@@@B9@@@@@@B9.P@@@@@@@@@@@@@@@@@@@K&9.[&9.[H@@@@@@@@@@@@@@@@@@@@@.+&9.[H@
       
   163 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; colorMapFromArray:#[255 207 52 214 168 55 233 238 244 117 121 125 215 219 225 217 222 228 166 169 170 185 189 193 118 113 66 175 127 29 172 137 46 183 143 46 186 146 50 149 132 77 212 161 47 102 106 106 233 202 75 244 197 63 237 243 249 253 208 64 244 197 65 116 121 116 236 242 248 141 145 139 212 219 146 193 198 148 232 179 53 146 149 152 164 168 171 127 97 27 138 106 37 200 204 209 180 136 36 187 140 37 209 152 33 214 218 223 219 166 45 223 228 234 240 194 60 240 194 64 138 131 107 230 183 62 239 191 65 230 184 63 120 122 121 213 164 49 232 237 244 104 109 109 251 215 73 225 231 235 162 166 166 180 184 188 153 111 25 175 126 27 185 134 29 186 141 39 223 228 223 217 221 226 223 227 230 232 237 235 255 235 80 227 199 81 236 241 247 232 185 63 253 216 78 253 217 79 131 135 134 230 234 240 215 159 40 232 182 60 216 221 223 96 97 95 154 158 159 178 183 183 144 110 31 199 204 209 163 130 45 175 133 40 205 150 34 203 156 46 134 121 82 223 172 50 228 233 234 232 183 60 236 243 248 253 216 79 254 241 108 123 127 129 233 184 62 255 196 50 232 182 57 118 122 120 216 220 226 211 164 51 161 167 160 102 81 27 139 107 33 147 120 48 166 132 45 167 134 50 212 217 221 94 100 98 227 233 231 224 229 234 228 183 56 253 208 63 237 243 247 238 243 250 231 235 242 234 239 246 254 208 63 240 194 65 216 168 53 114 120 119 217 221 227 148 152 153 227 232 238 178 182 180 143 110 31 171 125 28 118 105 65 173 137 46 205 150 33 214 159 37 224 166 38 221 167 46 223 170 49 231 179 56 235 239 244 245 203 72 238 190 64 233 181 58 232 184 62 128 131 126 255 230 77 215 162 44 117 121 122 222 227 232 203 152 38 150 153 155 172 176 177 132 102 33 154 121 40 147 118 49 101 101 82 228 233 221 255 235 71 227 233 230 211 164 52 228 233 237 227 181 61 244 196 63 237 242 248 233 182 59 234 184 60 236 241 248 255 205 50 214 166 51 222 226 230 195 202 151 229 233 240 153 156 155 168 172 176 138 101 24 157 117 33 119 99 56 219 225 216 184 158 61 139 130 81 100 101 96 144 149 103 225 175 53 149 154 112 245 200 66 246 202 71 232 184 63 233 183 61 131 134 130 0 0 0 0 64 0 32 96 32 96 192 128 32 128 64 32 160 64 32 128 32 64 64 64 96 96 96 128 128 128 32 32 32 32 64 32]; mask:((Depth1Image new) width: 22; height: 22; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@C@@@C@@@CA<@CA?OCA??CA??CA??CA??CA??CA?>CC?.CG??CG??#_/?#ON^CF_^C@?LCHL@CG<@CC8@C@@@C') ; yourself); yourself]
       
   164 ! !
       
   165 
       
   166 !PerforceSourceCodeManagementSettingsAppl class methodsFor:'interface specs'!
       
   167 
       
   168 windowSpec
       
   169     "This resource specification was automatically generated
       
   170      by the UIPainter of ST/X."
       
   171 
       
   172     "Do not manually edit this!! If it is corrupted,
       
   173      the UIPainter may not be able to read the specification."
       
   174 
       
   175     "
       
   176      UIPainter new openOnClass:PerforceSourceCodeManagementSettingsAppl andSelector:#windowSpec
       
   177      PerforceSourceCodeManagementSettingsAppl new openInterface:#windowSpec
       
   178      PerforceSourceCodeManagementSettingsAppl open
       
   179     "
       
   180 
       
   181     <resource: #canvas>
       
   182 
       
   183     ^ 
       
   184      #(FullSpec
       
   185         name: windowSpec
       
   186         window: 
       
   187        (WindowSpec
       
   188           label: 'Source Code Manager Settings'
       
   189           name: 'Source Code Manager Settings'
       
   190           min: (Point 10 10)
       
   191           bounds: (Rectangle 0 0 767 642)
       
   192         )
       
   193         component: 
       
   194        (SpecCollection
       
   195           collection: (
       
   196            (VerticalPanelViewSpec
       
   197               name: 'VerticalPanel3'
       
   198               layout: (LayoutFrame 0 0 0 0 0 1 0 1)
       
   199               horizontalLayout: fit
       
   200               verticalLayout: topSpace
       
   201               horizontalSpace: 3
       
   202               verticalSpace: 4
       
   203               component: 
       
   204              (SpecCollection
       
   205                 collection: (
       
   206                  (FramedBoxSpec
       
   207                     label: 'Perforce (P4) Sourcecode Manager Settings'
       
   208                     name: 'FramedBox3'
       
   209                     labelPosition: topLeft
       
   210                     translateLabel: true
       
   211                     component: 
       
   212                    (SpecCollection
       
   213                       collection: (
       
   214                        (CheckBoxSpec
       
   215                           label: 'Show in Browser Menus'
       
   216                           name: 'CheckBox1'
       
   217                           layout: (LayoutFrame 0 0 5 0 -150 1 27 0)
       
   218                           activeHelpKey: shownInBrowserMenus
       
   219                           model: shownInBrowserMenusHolder
       
   220                           translateLabel: true
       
   221                         )
       
   222                        (ActionButtonSpec
       
   223                           label: 'Check'
       
   224                           name: 'Button6'
       
   225                           layout: (LayoutFrame -150 1 5 0 -5 1 27 0)
       
   226                           translateLabel: true
       
   227                           labelChannel: checkLabel
       
   228                           model: checkPerforceSettings
       
   229                         )
       
   230                        (ViewSpec
       
   231                           name: 'Box3'
       
   232                           layout: (LayoutFrame 0 0 36 0 0 1 0 1)
       
   233                           component: 
       
   234                          (SpecCollection
       
   235                             collection: (
       
   236                              (LabelSpec
       
   237                                 label: 'Default Perforce Root'
       
   238                                 name: 'Label1'
       
   239                                 layout: (LayoutFrame 0 0.0 1 0 60 0.25 23 0)
       
   240                                 level: 0
       
   241                                 translateLabel: true
       
   242                                 adjust: right
       
   243                               )
       
   244                              (LabelSpec
       
   245                                 label: '(client:user:pass@host:port) '
       
   246                                 name: 'Label18'
       
   247                                 layout: (LayoutFrame 4 0.0 19 0 64 0.25 34 0)
       
   248                                 style: (FontDescription helvetica medium roman 10)
       
   249                                 level: 0
       
   250                                 foregroundColor: (Color 32.9991607537957 32.9991607537957 32.9991607537957)
       
   251                                 translateLabel: true
       
   252                                 adjust: right
       
   253                               )
       
   254                              (ComboBoxSpec
       
   255                                 name: 'cvsRootComboBox'
       
   256                                 layout: (LayoutFrame 66 0.25 7 0 -5 1 29 0)
       
   257                                 tabable: true
       
   258                                 model: defaultSettingsHolder
       
   259                                 immediateAccept: true
       
   260                                 acceptOnLeave: true
       
   261                                 acceptOnReturn: true
       
   262                                 acceptOnTab: true
       
   263                                 acceptOnLostFocus: true
       
   264                                 acceptChannel: acceptChannel
       
   265                                 acceptOnPointerLeave: true
       
   266                                 comboList: defaultSettingsPrototypeList
       
   267                               )
       
   268                              (LabelSpec
       
   269                                 label: 'Perforce Command or Path:'
       
   270                                 name: 'Label22'
       
   271                                 layout: (LayoutFrame 0 0.0 38 0 60 0.25 60 0)
       
   272                                 level: 0
       
   273                                 translateLabel: true
       
   274                                 adjust: right
       
   275                               )
       
   276                              (InputFieldSpec
       
   277                                 name: 'EntryField8'
       
   278                                 layout: (LayoutFrame 66 0.25 38 0 -5 1 60 0)
       
   279                                 tabable: true
       
   280                                 model: perforceExecutableHolder
       
   281                                 immediateAccept: false
       
   282                                 acceptOnLostFocus: true
       
   283                                 acceptChannel: acceptChannel
       
   284                                 acceptOnPointerLeave: true
       
   285                               )
       
   286                              )
       
   287                            
       
   288                           )
       
   289                         )
       
   290                        )
       
   291                      
       
   292                     )
       
   293                     extent: (Point 767 138)
       
   294                   )
       
   295                  (ViewSpec
       
   296                     name: 'ManagerSetupBoxx'
       
   297                     component: 
       
   298                    (SpecCollection
       
   299                       collection: (
       
   300                        (FramedBoxSpec
       
   301                           label: 'Per Module Manager Setup'
       
   302                           name: 'PerModuleManagerSetup'
       
   303                           layout: (LayoutFrame 0 0 -1 0 0 1 -3 1)
       
   304                           labelPosition: topLeft
       
   305                           translateLabel: true
       
   306                           component: 
       
   307                          (SpecCollection
       
   308                             collection: (
       
   309                              (DataSetSpec
       
   310                                 name: 'Table1'
       
   311                                 layout: (LayoutFrame 5 0 5 0 0 1 180 0)
       
   312                                 model: selectedPerModuleRoot
       
   313                                 hasHorizontalScrollBar: true
       
   314                                 hasVerticalScrollBar: true
       
   315                                 dataList: listOfModules
       
   316                                 useIndex: false
       
   317                                 columnHolder: tableColumns
       
   318                                 beDependentOfRows: true
       
   319                               )
       
   320                              (HorizontalPanelViewSpec
       
   321                                 name: 'HorizontalPanel11'
       
   322                                 layout: (LayoutFrame 5 0 -25 1 -1 1 0 1)
       
   323                                 horizontalLayout: fitSpace
       
   324                                 verticalLayout: center
       
   325                                 horizontalSpace: 3
       
   326                                 verticalSpace: 3
       
   327                                 component: 
       
   328                                (SpecCollection
       
   329                                   collection: (
       
   330                                    (ActionButtonSpec
       
   331                                       label: 'Add/Apply'
       
   332                                       name: 'Button2'
       
   333                                       translateLabel: true
       
   334                                       tabable: true
       
   335                                       model: addPerModuleRoot
       
   336                                       extent: (Point 361 22)
       
   337                                     )
       
   338                                    (ActionButtonSpec
       
   339                                       label: 'Remove'
       
   340                                       name: 'Button3'
       
   341                                       translateLabel: true
       
   342                                       tabable: true
       
   343                                       model: removePerModuleRoot
       
   344                                       enableChannel: removeEnabled
       
   345                                       extent: (Point 361 22)
       
   346                                     )
       
   347                                    )
       
   348                                  
       
   349                                 )
       
   350                               )
       
   351                              )
       
   352                            
       
   353                           )
       
   354                         )
       
   355                        )
       
   356                      
       
   357                     )
       
   358                     extent: (Point 767 250)
       
   359                   )
       
   360                  (FramedBoxSpec
       
   361                     label: 'Source Cache'
       
   362                     name: 'FramedBox2'
       
   363                     visibilityChannel: false
       
   364                     labelPosition: topLeft
       
   365                     translateLabel: true
       
   366                     component: 
       
   367                    (SpecCollection
       
   368                       collection: (
       
   369                        (ViewSpec
       
   370                           name: 'Box4'
       
   371                           layout: (LayoutFrame 0 0 0 0 0 1 30 0)
       
   372                           component: 
       
   373                          (SpecCollection
       
   374                             collection: (
       
   375                              (LabelSpec
       
   376                                 label: 'Source Cache Dir:'
       
   377                                 name: 'Label23'
       
   378                                 layout: (LayoutFrame 0 0.0 0 0 60 0.25 22 0)
       
   379                                 translateLabel: true
       
   380                                 adjust: right
       
   381                               )
       
   382                              (InputFieldSpec
       
   383                                 name: 'EntryField9'
       
   384                                 layout: (LayoutFrame 64 0.25 0 0 0 1 22 0)
       
   385                                 model: sourceCacheDir
       
   386                                 immediateAccept: false
       
   387                                 acceptOnReturn: true
       
   388                                 acceptOnTab: true
       
   389                                 acceptOnLostFocus: true
       
   390                                 acceptOnPointerLeave: true
       
   391                               )
       
   392                              )
       
   393                            
       
   394                           )
       
   395                         )
       
   396                        (HorizontalPanelViewSpec
       
   397                           name: 'HorizontalPanel12'
       
   398                           layout: (LayoutFrame 44 0.25 33 0 0 1 67 0)
       
   399                           horizontalLayout: fitSpace
       
   400                           verticalLayout: center
       
   401                           horizontalSpace: 3
       
   402                           verticalSpace: 3
       
   403                           component: 
       
   404                          (SpecCollection
       
   405                             collection: (
       
   406                              (ActionButtonSpec
       
   407                                 label: 'Flush Cache now'
       
   408                                 name: 'Button4'
       
   409                                 translateLabel: true
       
   410                                 tabable: true
       
   411                                 model: flushSourceCache
       
   412                                 extent: (Point 250 22)
       
   413                               )
       
   414                              (ActionButtonSpec
       
   415                                 label: 'Condense Cache now'
       
   416                                 name: 'Button5'
       
   417                                 translateLabel: true
       
   418                                 tabable: true
       
   419                                 model: condenseSourceCache
       
   420                                 extent: (Point 250 22)
       
   421                               )
       
   422                              )
       
   423                            
       
   424                           )
       
   425                         )
       
   426                        )
       
   427                      
       
   428                     )
       
   429                     extent: (Point 767 95)
       
   430                   )
       
   431                  (ViewSpec
       
   432                     name: 'VerboseBox'
       
   433                     component: 
       
   434                    (SpecCollection
       
   435                       collection: (
       
   436                        (CheckBoxSpec
       
   437                           label: 'Verbose (Trace Access on Transcript)'
       
   438                           name: 'CheckBox6'
       
   439                           layout: (LayoutFrame 30 0 5 0 -5 1 27 0)
       
   440                           model: verboseSourceCodeAccess
       
   441                           translateLabel: true
       
   442                         )
       
   443                        )
       
   444                      
       
   445                     )
       
   446                     extent: (Point 767 25)
       
   447                   )
       
   448                  )
       
   449                
       
   450               )
       
   451             )
       
   452            )
       
   453          
       
   454         )
       
   455       )
       
   456 ! !
       
   457 
       
   458 !PerforceSourceCodeManagementSettingsAppl class methodsFor:'menu specs'!
       
   459 
       
   460 menuPerModule
       
   461     "This resource specification was automatically generated
       
   462      by the MenuEditor of ST/X."
       
   463 
       
   464     "Do not manually edit this!! If it is corrupted,
       
   465      the MenuEditor may not be able to read the specification."
       
   466 
       
   467 
       
   468     "
       
   469      MenuEditor new openOnClass:PerforceSourceCodeManagementSettingsAppl andSelector:#menuPerModule
       
   470      (Menu new fromLiteralArrayEncoding:(PerforceSourceCodeManagementSettingsAppl menuPerModule)) startUp
       
   471     "
       
   472 
       
   473     <resource: #menu>
       
   474 
       
   475     ^ 
       
   476      #(Menu
       
   477         (
       
   478          (MenuItem
       
   479             label: 'Check'
       
   480             itemValue: checkPerforceSettings
       
   481             translateLabel: true
       
   482           )
       
   483          )
       
   484         nil
       
   485         nil
       
   486       )
       
   487 ! !
       
   488 
       
   489 !PerforceSourceCodeManagementSettingsAppl class methodsFor:'queries'!
       
   490 
       
   491 managerClass
       
   492     "backlink to my manager class (needed by the settings app)"
       
   493 
       
   494     ^ PerforceSourceCodeManager
       
   495 
       
   496     "Created: / 19-04-2011 / 12:52:02 / cg"
       
   497 ! !
       
   498 
       
   499 !PerforceSourceCodeManagementSettingsAppl class methodsFor:'tableColumns specs'!
       
   500 
       
   501 tableColumns
       
   502     "This resource specification was automatically generated
       
   503      by the DataSetBuilder of ST/X."
       
   504 
       
   505     "Do not manually edit this!! If it is corrupted,
       
   506      the DataSetBuilder may not be able to read the specification."
       
   507 
       
   508     "
       
   509      DataSetBuilder new openOnClass:PerforceSourceCodeManagementSettingsAppl andSelector:#tableColumns
       
   510     "
       
   511 
       
   512     <resource: #tableColumns>
       
   513 
       
   514     ^#(
       
   515       (DataSetColumnSpec
       
   516          label: 'Module'
       
   517          labelButtonType: Button
       
   518          usePreferredWidth: true
       
   519          width: 100
       
   520          minWidth: 100
       
   521          model: module
       
   522          menuFromApplication: false
       
   523        )
       
   524       (DataSetColumnSpec
       
   525          label: 'Settings'
       
   526          labelButtonType: Button
       
   527          editorType: InputField
       
   528          model: settings
       
   529          menuFromApplication: false
       
   530          isResizeable: false
       
   531        )
       
   532       (DataSetColumnSpec
       
   533          label: 'Check'
       
   534          labelButtonType: Button
       
   535          model: check
       
   536          menuFromApplication: false
       
   537          doubleClickedSelector: doubleClick
       
   538          isResizeable: false
       
   539        )
       
   540       )
       
   541     
       
   542 ! !
       
   543 
       
   544 !PerforceSourceCodeManagementSettingsAppl methodsFor:'actions'!
       
   545 
       
   546 addModule:aModuleManager
       
   547 
       
   548     |detectedManager|
       
   549 
       
   550     detectedManager := self listOfModules detect:[:eachModuleManager| eachModuleManager module = aModuleManager module] ifNone:nil.
       
   551     detectedManager isNil ifTrue:[
       
   552         self listOfModules add:aModuleManager; sort.
       
   553         self updateModifiedChannel.
       
   554     ] ifFalse:[
       
   555         Dialog information:'Manager for Module ', aModuleManager module, ' already exists'.
       
   556     ].
       
   557 
       
   558 
       
   559     "Created: / 08-11-2006 / 19:25:21 / cg"
       
   560 !
       
   561 
       
   562 addModule:module withData:data
       
   563     (self listOfModules includes:module) ifFalse:[
       
   564         self listOfModules add:module; sort.
       
   565     ].
       
   566 
       
   567     self updateModifiedChannel.
       
   568 
       
   569     "Created: / 08-11-2006 / 19:25:21 / cg"
       
   570 !
       
   571 
       
   572 addPerModuleRoot
       
   573 
       
   574     |app moduleManager|
       
   575 
       
   576     app := ManagerPerModuleApp openFromSourceCodeManagementSettingsApp:self.
       
   577     app canceled ifFalse:[
       
   578         moduleManager := ModuleManager newForApplication:self.
       
   579         app moduleHolder value isEmptyOrNil ifTrue:[
       
   580             self information:'Adding without module name not allowed'.
       
   581             ^ self.
       
   582         ].
       
   583         moduleManager module:app moduleHolder value.
       
   584         moduleManager settings:app settingsHolder value.
       
   585         self listOfModules add:moduleManager.
       
   586         self updateModifiedChannel.
       
   587     ].
       
   588     "Modified: / 08-11-2006 / 19:27:39 / cg"
       
   589 !
       
   590 
       
   591 basicReadSettings
       
   592     |moduleManager moduleAndSettings|
       
   593 
       
   594     self initialize.
       
   595 
       
   596     self defaultSettingsHolder value:PerforceSourceCodeManager getPerforceDefaultSettingsString.
       
   597     self listOfModules removeAll.
       
   598     moduleAndSettings := PerforceSourceCodeManager repositoryInfoPerModule copy.
       
   599     moduleAndSettings notEmptyOrNil ifTrue:[
       
   600         moduleAndSettings keysAndValuesDo:[:module :settings|
       
   601             moduleManager := ModuleManager newForApplication:self.
       
   602             moduleManager module:module.
       
   603             moduleManager settings:settings.
       
   604             self listOfModules add:moduleManager.
       
   605         ].
       
   606     ].
       
   607     self listOfModules sort.
       
   608 
       
   609     self hasManager ifTrue:[
       
   610         self sourceCacheDir value:(PerforceSourceCodeManager cacheDirectoryName).
       
   611     ].
       
   612 
       
   613     self perforceExecutableHolder value:PerforceSourceCodeManager perforceExecutable.
       
   614     self verboseSourceCodeAccess value:PerforceSourceCodeManager verboseSourceCodeAccess.
       
   615     self shownInBrowserMenusHolder value:PerforceSourceCodeManager shownInBrowserMenus. 
       
   616 
       
   617 "/    self selectedPerModuleRootChanged.
       
   618 
       
   619     "Modified: / 10-01-2012 / 00:21:00 / cg"
       
   620 !
       
   621 
       
   622 basicSaveSettings
       
   623     |client repositoryInfoPerModule|
       
   624 
       
   625     self hasManager ifTrue:[
       
   626         | nm fn|
       
   627 
       
   628         nm := self sourceCacheDir value.
       
   629         nm notEmptyOrNil ifTrue:[
       
   630             (fn := nm asFilename) exists ifFalse:[
       
   631                 (self confirm:('Perforce cache directory ''' , nm , ''' does not exist\create ?' withCRs)) ifTrue:[
       
   632                     fn makeDirectory;
       
   633                        makeReadableForAll;
       
   634                        makeWritableForAll;
       
   635                        makeExecutableForAll.
       
   636                 ]
       
   637             ].
       
   638             (fn isDirectory
       
   639             and:[fn isReadable
       
   640             and:[fn isWritable]]) ifTrue:[
       
   641                 PerforceSourceCodeManager cacheDirectoryName:nm.
       
   642             ] ifFalse:[
       
   643                 self warn:'Invalid sourceCache directory.'
       
   644             ]
       
   645         ].
       
   646         repositoryInfoPerModule := Dictionary new.
       
   647         self listOfModules do:[:aModuleManager|
       
   648             repositoryInfoPerModule at:aModuleManager module put:aModuleManager settings.
       
   649         ].
       
   650 
       
   651         PerforceSourceCodeManager repositoryInfoPerModule:repositoryInfoPerModule.
       
   652         PerforceSourceCodeManager perforceExecutable:((self perforceExecutableHolder value ? '') withoutSeparators).
       
   653         client := self defaultSettingsHolder value.
       
   654         PerforceSourceCodeManager setDefaultPerforceSettingsFromString:client.
       
   655         PerforceSourceCodeManager verboseSourceCodeAccess:self verboseSourceCodeAccess value.
       
   656         PerforceSourceCodeManager shownInBrowserMenus:self shownInBrowserMenusHolder value. 
       
   657     ].
       
   658 
       
   659     self acceptChannel value.
       
   660 
       
   661     "Modified: / 10-01-2012 / 00:21:59 / cg"
       
   662 !
       
   663 
       
   664 checkPerforceSettings
       
   665 
       
   666     |result icon|
       
   667 
       
   668     PerforceSourceCodeManager perforceError handle:[:ex|
       
   669         self warn:ex description.
       
   670         ^false
       
   671     ] do:[
       
   672         result := PerforceSourceCodeManager checkPerforceSettings:(self defaultSettingsHolder value) forPackage:nil.
       
   673         result ifTrue:[
       
   674             icon := GenericToolbarIconLibrary ledGreen14x14.
       
   675         ] ifFalse:[
       
   676             icon := GenericToolbarIconLibrary ledRed14x14.
       
   677         ].
       
   678         self checkLabel value:(LabelAndIcon label:'Check' icon:icon).
       
   679     ].
       
   680     ^false
       
   681 !
       
   682 
       
   683 condenseSourceCache
       
   684     self withWaitCursorDo:[ AbstractSourceCodeManager condenseSourceCache ].
       
   685     Method flushSourceStreamCache.
       
   686 
       
   687     "Modified: / 28-11-2006 / 12:21:33 / cg"
       
   688 !
       
   689 
       
   690 flushSourceCache
       
   691     self withWaitCursorDo:[ AbstractSourceCodeManager flushSourceCache ].
       
   692 
       
   693     "Modified: / 30-09-2011 / 13:33:51 / cg"
       
   694 !
       
   695 
       
   696 removePerModuleRoot
       
   697 
       
   698     |module|
       
   699 
       
   700     acceptChannel value:true.
       
   701     module := self selectedPerModuleRoot value.
       
   702     self listOfModules remove:module ifAbsent:nil.
       
   703     self updateModifiedChannel.
       
   704 ! !
       
   705 
       
   706 !PerforceSourceCodeManagementSettingsAppl methodsFor:'aspects'!
       
   707 
       
   708 checkLabel
       
   709     <resource: #uiAspect>
       
   710 
       
   711     "automatically generated by UIPainter ..."
       
   712 
       
   713     "*** the code below creates a default model when invoked."
       
   714     "*** (which may not be the one you wanted)"
       
   715     "*** Please change as required and accept it in the browser."
       
   716     "*** (and replace this comment by something more useful ;-)"
       
   717 
       
   718     checkLabel isNil ifTrue:[
       
   719         checkLabel := 'Check' asValue.
       
   720 "/ if your app needs to be notified of changes, uncomment one of the lines below:
       
   721 "/       checkLabel addDependent:self.
       
   722 "/       checkLabel onChangeSend:#checkLabelChanged to:self.
       
   723     ].
       
   724     ^ checkLabel.
       
   725 !
       
   726 
       
   727 defaultSettingsHolder
       
   728 
       
   729     defaultSettingsHolder isNil ifTrue:[
       
   730         defaultSettingsHolder := ValueHolder new.
       
   731         defaultSettingsHolder addDependent:self.
       
   732     ].
       
   733     ^ defaultSettingsHolder.
       
   734 !
       
   735 
       
   736 defaultSettingsPrototypeList
       
   737 
       
   738     defaultSettingsPrototypeList isNil ifTrue:[
       
   739         defaultSettingsPrototypeList := self perforcePrototypeList.
       
   740     ].
       
   741     ^ defaultSettingsPrototypeList.
       
   742 !
       
   743 
       
   744 initialListOfModules
       
   745     ^ List new.
       
   746 
       
   747     "Created: / 02-03-2012 / 14:41:40 / cg"
       
   748 !
       
   749 
       
   750 perforceExecutableHolder
       
   751     perforceExecutableHolder isNil ifTrue:[
       
   752         perforceExecutableHolder := ValueHolder new.
       
   753         perforceExecutableHolder onChangeSend:#updateModifiedChannel to:self
       
   754     ].
       
   755     ^ perforceExecutableHolder.
       
   756 
       
   757     "Created: / 21-09-2006 / 15:37:06 / cg"
       
   758 !
       
   759 
       
   760 perforcePrototypeList
       
   761 
       
   762     |first client|
       
   763 
       
   764     client := PerforceSourceCodeManager perforceClient.
       
   765     client isEmptyOrNil ifTrue:[
       
   766         client := 'workspace'.
       
   767     ].
       
   768     first := (client ,':', PerforceSourceCodeManager perforceUser, ':',
       
   769                            (PerforceSourceCodeManager perforcePassword ? 'pass'), '@',
       
   770                            PerforceSourceCodeManager perforcePort).
       
   771     ^ Array with:first.
       
   772 !
       
   773 
       
   774 selectedPerModuleRoot
       
   775     selectedPerModuleRoot isNil ifTrue:[
       
   776         selectedPerModuleRoot := ValueHolder new.
       
   777         selectedPerModuleRoot addDependent:self.
       
   778     ].
       
   779     ^ selectedPerModuleRoot.
       
   780 !
       
   781 
       
   782 tableColumns
       
   783     <resource: #uiAspect>
       
   784 
       
   785     "automatically generated by UIPainter ..."
       
   786 
       
   787     "*** the code below creates a default model when invoked."
       
   788     "*** (which may not be the one you wanted)"
       
   789     "*** Please change as required and accept it in the browser."
       
   790     "*** (and replace this comment by something more useful ;-)"
       
   791 
       
   792     tableColumns isNil ifTrue:[
       
   793         tableColumns := self class tableColumns asValue.
       
   794 "/ if your app needs to be notified of changes, uncomment one of the lines below:
       
   795 "/       tableColumns addDependent:self.
       
   796 "/       tableColumns onChangeSend:#tableColumnsChanged to:self.
       
   797     ].
       
   798     ^ tableColumns.
       
   799 ! !
       
   800 
       
   801 !PerforceSourceCodeManagementSettingsAppl methodsFor:'change & update'!
       
   802 
       
   803 selectedPerModuleRootChanged
       
   804 
       
   805     self removeEnabled value:self selectedPerModuleRoot value notNil.
       
   806 !
       
   807 
       
   808 sourceDirChanged
       
   809     | nm fn|
       
   810 
       
   811     nm := self sourceCacheDir value.
       
   812     nm isEmptyOrNil ifTrue:[^ self].
       
   813 
       
   814     (fn := nm asFilename) exists ifFalse:[
       
   815         (self confirm:('SourceCache directory ''' , nm , ''' does not exist.\Create ?' withCRs)) ifTrue:[
       
   816             fn makeDirectory;
       
   817                makeReadableForAll;
       
   818                makeWritableForAll;
       
   819                makeExecutableForAll.
       
   820         ] ifFalse:[
       
   821             self sourceCacheDir value:(AbstractSourceCodeManager cacheDirectoryName).
       
   822             ^ self.
       
   823         ].
       
   824     ].
       
   825     (fn isDirectory
       
   826     and:[fn isReadable
       
   827     and:[fn isWritable]]) ifTrue:[
       
   828         AbstractSourceCodeManager cacheDirectoryName:nm.
       
   829     ] ifFalse:[
       
   830         self warn:'Invalid sourceCache directory.'.
       
   831         self sourceCacheDir value:(AbstractSourceCodeManager cacheDirectoryName).
       
   832     ].
       
   833 !
       
   834 
       
   835 update:something with:aParameter from:changedObject
       
   836     "/ common
       
   837     changedObject == sourceCacheDir ifTrue:[
       
   838         self sourceDirChanged.
       
   839         self updateModifiedChannel.
       
   840         ^ self
       
   841     ].
       
   842 
       
   843     changedObject == selectedPerModuleRoot ifTrue:[
       
   844         self selectedPerModuleRootChanged.
       
   845         ^ self
       
   846     ].
       
   847 
       
   848     changedObject == defaultSettingsHolder ifTrue:[
       
   849         self updateModifiedChannel.
       
   850     ].
       
   851 
       
   852     super update:something with:aParameter from:changedObject
       
   853 
       
   854     "Modified (format): / 02-03-2012 / 14:42:15 / cg"
       
   855 ! !
       
   856 
       
   857 !PerforceSourceCodeManagementSettingsAppl methodsFor:'help'!
       
   858 
       
   859 helpFilename
       
   860     ^ 'Launcher/perforceSetup.html'
       
   861 
       
   862     "Modified: / 05-08-2011 / 09:10:03 / cg"
       
   863 ! !
       
   864 
       
   865 !PerforceSourceCodeManagementSettingsAppl methodsFor:'initialization & release'!
       
   866 
       
   867 initialize
       
   868     (AbstractSourceCodeManager notNil) ifTrue:[ AbstractSourceCodeManager autoload ].
       
   869 
       
   870     sourceCacheDir := nil asValue.
       
   871     sourceCacheDir addDependent:self.
       
   872 
       
   873     super initialize.
       
   874 
       
   875     "Modified: / 08-11-2006 / 19:20:32 / cg"
       
   876 ! !
       
   877 
       
   878 !PerforceSourceCodeManagementSettingsAppl methodsFor:'queries'!
       
   879 
       
   880 hasManager
       
   881     "true if ANY source code management class is available"
       
   882 
       
   883     ^ PerforceSourceCodeManager notNil and:[PerforceSourceCodeManager isLoaded]
       
   884 !
       
   885 
       
   886 hasUnsavedChanges
       
   887 
       
   888     |repositoryInfoPerModule client settings|
       
   889 
       
   890     (PerforceSourceCodeManager shownInBrowserMenus ~= self shownInBrowserMenusHolder value)
       
   891         ifTrue:[^ true].
       
   892 
       
   893     client := self defaultSettingsHolder value.
       
   894     client notNil ifTrue:[
       
   895         settings := PerforceSourceCodeManager getPerforceSettingsFromString:client.
       
   896         PerforceSourceCodeManager perforceClient ~= (settings at:#client ifAbsent:nil) ifTrue:[
       
   897             ^ true
       
   898         ].
       
   899         PerforceSourceCodeManager perforceUser ~= (settings at:#user ifAbsent:nil) ifTrue:[
       
   900             ^ true
       
   901         ].
       
   902         PerforceSourceCodeManager perforcePort ~= (settings at:#port ifAbsent:nil) ifTrue:[
       
   903             ^ true
       
   904         ].
       
   905         PerforceSourceCodeManager perforcePassword ~= (settings at:#password ifAbsent:nil) ifTrue:[
       
   906             ^ true
       
   907         ].
       
   908     ].
       
   909 
       
   910     repositoryInfoPerModule := Dictionary new.
       
   911     self listOfModules do:[:aModuleManager|
       
   912         repositoryInfoPerModule at:aModuleManager module put:aModuleManager settings.
       
   913     ].
       
   914     PerforceSourceCodeManager verboseSourceCodeAccess ~= self verboseSourceCodeAccess value ifTrue:[
       
   915         ^true
       
   916     ].
       
   917 
       
   918     PerforceSourceCodeManager repositoryInfoPerModule keysAndValuesDo:[:module :info |
       
   919         ((repositoryInfoPerModule includesKey:module) and:[info = (repositoryInfoPerModule at:module)])
       
   920         ifFalse:[^ true].
       
   921     ].
       
   922     repositoryInfoPerModule keysAndValuesDo:[:module :info|
       
   923         ((PerforceSourceCodeManager repositoryInfoPerModule includesKey:module) and:[(PerforceSourceCodeManager repositoryInfoPerModule at:module) = info])
       
   924         ifFalse:[^ true].
       
   925     ].
       
   926     self perforceExecutableHolder value ~= PerforceSourceCodeManager perforceExecutable ifTrue:[
       
   927         ^true
       
   928     ].
       
   929     ^ false
       
   930 
       
   931     "Modified: / 10-01-2012 / 00:31:38 / cg"
       
   932 !
       
   933 
       
   934 repositoryInfoPerModuleFor:sourceCodeManager
       
   935 
       
   936     |repositoryInfoPerModule|
       
   937 
       
   938     repositoryInfoPerModule := Dictionary new.
       
   939     self listOfModules do:[:aModuleManager|
       
   940         repositoryInfoPerModule at:aModuleManager module put:aModuleManager settings.
       
   941     ].
       
   942     ^ repositoryInfoPerModule
       
   943 ! !
       
   944 
    50 
   945 !PerforceSourceCodeManagementSettingsAppl::ManagerPerModuleApp class methodsFor:'instance creation'!
    51 !PerforceSourceCodeManagementSettingsAppl::ManagerPerModuleApp class methodsFor:'instance creation'!
   946 
    52 
   947 openFromSourceCodeManagementSettingsApp:something
    53 openFromSourceCodeManagementSettingsApp:something
   948 
    54 
  1346 managerClass
   452 managerClass
  1347 
   453 
  1348     ^ AbstractSourceCodeManager availableManagers detect:[:cls | cls managerTypeName = manager] ifNone:[nil].
   454     ^ AbstractSourceCodeManager availableManagers detect:[:cls | cls managerTypeName = manager] ifNone:[nil].
  1349 ! !
   455 ! !
  1350 
   456 
  1351 !PerforceSourceCodeManagementSettingsAppl class methodsFor:'documentation'!
       
  1352 
       
  1353 version
       
  1354     ^ '$Header: /cvs/stx/stx/libtool/PerforceSourceCodeManagementSettingsAppl.st,v 1.22 2012-06-01 08:33:29 cg Exp $'
       
  1355 !
       
  1356 
       
  1357 version_CVS
       
  1358     ^ '$Header: /cvs/stx/stx/libtool/PerforceSourceCodeManagementSettingsAppl.st,v 1.22 2012-06-01 08:33:29 cg Exp $'
       
  1359 !
       
  1360 
       
  1361 version_SVN
       
  1362     ^ '§Id§'
       
  1363 ! !