From VisualWorks®, 7.6 of February 1, 2008 on February 1, 2008 at 2:36:41 pm (Dialog confirm: 'You are filing-in a Parcel source file!\\While this is possible it will not have\the same effect as loading the parcel.\None of the Parcel''s prerequisites will\be loaded and none of its load actions\will be performed.\\Are you sure you want to file-in?' withCRs) ifFalse: [self error: 'Parcel file-in abandoned. Choose terminate or close.'] <class> <name>NetRegistration</name> <environment>VisualWorks</environment> <super>UI.ApplicationModel</super> <private>false</private> none action address1 address2 city companyName confirmPassword countries country email firstName jobResponsibilities jobResponsibility key lastName myResult password postalCode stateProvince statesProvinces title userID values workPhone <imports> Net.* </imports> <category>VWNetInstallerNC</category> <attributes> <package>VWInstaller</package> </attributes> </class> <comment> VisualWorks.NetRegistration
Provides UI and behavior for accessing servlets to register a VisualWorks NC user, or to retrieve the key assigned to a previously registered user. Instance Variables: action <ValueHolder> means to programatically trigger default action #getKey or #register during hands-free testing address1 <ValueModel> registration field defined by servlet address2 <ValueModel> registration field defined by servlet city <ValueModel> registration field defined by servlet companyName <ValueModel> registration field defined by servlet confirmPassword <ValueModel> registration field defined by servlet countries <ValueHolder> drop down choices for country country <ValueModel> registration field defined by servlet email <ValueModel> registration field defined by servlet firstName <ValueModel> registration field defined by servlet jobResponsibilities <ValueHolder> drop down choices for jobResponsibility jobResponsibility <ValueModel> registration field defined by servlet key <Object> value answered by servlet lastName <ValueModel> registration field defined by servlet myResult <ValueModel> initialized by client to hold the results from the servlet password <ValueModel> registration field defined by servlet postalCode <ValueModel> registration field defined by servlet stateProvince <ValueModel> registration field defined by servlet statesProvinces <ValueHolder> drop down choices for stateProvince title <ValueModel> registration field defined by servlet userID <ValueModel> registration field defined by servlet values <(Collection of: SequenceableCollection)> means to programatically initialize fields during hands-free testing workPhone <ValueModel> registration field defined by servlet
</comment> <class> <name>SummaryPageVW</name> <environment>VisualWorks</environment> <super>VisualWorks.SummaryPage</super> <private>false</private> none <imports></imports> <category>VisualWorksInstaller</category> <attributes> <package>VWInstaller</package> </attributes> </class> <comment> VisualWorks.SummaryPageVW
Adds summary text for ObjectStudio.
</comment> <class> <name>ThanksPageVW</name> <environment>VisualWorks</environment> <super>VisualWorks.ThanksPage</super> <private>false</private> none <imports></imports> <category>VWInstaller</category> <attributes> <package>VWInstaller</package> </attributes> </class> <comment> VisualWorks.ThanksPageVW
Provides registration button if registration has not already been performed earlier in the installation.
</comment> <class> <name>SeedSelectorPageVW</name> <environment>VisualWorks</environment> <super>VisualWorks.SeedSelectorPage</super> <private>false</private> none <imports></imports> <category>VisualWorksInstaller</category> <attributes> <package>VWInstaller</package> </attributes> </class> <comment> VisualWorks.SeedSelectorPageVW
Specializes the UI of the superclass to include options for selecting VisualWorks, ObjectStudio, or both, as applicable.
</comment> <class> <name>VWInstallerApplication</name> <environment>VisualWorks</environment> <super>VisualWorks.InstallerMainApplication</super> <private>false</private> none installObjectStudio installObjectStudio8 installVisualWorks normalExit registrationResultHolder registrationWindow <imports></imports> <category>VisualWorksInstaller</category> <attributes> <package>VWInstaller</package> </attributes> </class> <comment> VisualWorks.VWInstallerApplication
Version of the main installer application customized for certain options specific to the Cincom Smalltalk distribution. Added behavior includes the ability to launch an external installer / uninstaller for ObjectStudio. To open the Installer, select the launcher menu item 'Tools' -> 'VWInstaller', or evaluate: VisualWorks.VWInstallerApplication open Instance Variables: installObjectStudio <ValueModel> boolean indicates whether to install ObjectStudio installObjectStudio8 <ValueModel> boolean indicates whether to install ObjectStudio8 installVisualWorks <ValueModel> boolean indicates whether to install VisualWorks normalExit <Boolean> indicates whether application is exiting normally or because of user cancel, used to override installObjectStudio on cancel registrationResultHolder <ValueModel> array of userID, key and password from product registration registrationWindow <Window> cache to determine if registration is currently processing
</comment> <class> <name>ComponentSelectorPageVW</name> <environment>VisualWorks</environment> <super>VisualWorks.ComponentSelectorPage</super> <private>false</private> none <imports></imports> <category>VisualWorksInstaller</category> <attributes> <package>VWInstaller</package> </attributes> </class> <comment> VisualWorks.ComponentSelectorPageVW
Customizes the UI of the superclass to provide additional actions for the menu button specific to the packaging of Cincom Smalltalk.
</comment> <class> <name>KeyVerifierPage</name> <environment>VisualWorks</environment> <super>VisualWorks.AbstractWizardPage</super> <private>false</private> none key password userName <imports></imports> <category>VisualWorksInstaller</category> <attributes> <package>VWInstaller</package> </attributes> </class> <comment> VisualWorks.KeyVerifierPage
Provides the UI for verifying product key, if required before proceeding with installation. Instance Variables: key <ValueModel> holds encrypted key provided by user password <Object> registered password userName <ValueModel> holds registered userName
</comment> <class> <name>InstallerPageVW</name> <environment>VisualWorks</environment> <super>VisualWorks.InstallerPage</super> <private>false</private> none <imports></imports> <category>VWInstaller</category> <attributes> <package>VWInstaller</package> </attributes> </class> <comment> VisualWorks.InstallerPageVW
Specializes the UI and behavior for installing selected components by presenting the option of registering the product.
</comment> <class> <name>InstallOptionsVW</name> <environment>VisualWorks</environment> <super>VisualWorks.InstallOptions</super> <private>false</private> none installObjectStudio installObjectStudio8 <imports></imports> <category>VisualWorksInstaller</category> <attributes> <package>VWInstaller</package> </attributes> </class> <methods> VisualWorks.NetRegistration <category>accessing</category>
key ^key
key: aString key := aString
resultValueHolder: aValueHolder myResult := aValueHolder
values ^values ifNil: [values := OrderedCollection new]
values: aspectValuePairs values := aspectValuePairs
</methods> <methods> VisualWorks.NetRegistration <category>interface opening</category>
postBuildWith: aBuilder | registerButton getKeyButton | super postBuildWith: aBuilder. (self widgetAt: #cancel) loseDefault. (registerButton := self widgetAt: #register) notNil ifTrue: [registerButton beDefault]. (getKeyButton := self widgetAt: #getKey) notNil ifTrue: [getKeyButton beDefault]
postOpenWith: aBuilder super postOpenWith: aBuilder. self values do: [:array | (self perform: array first) value: array last]
</methods> <methods> VisualWorks.NetRegistration <category>gui testing</category>
action ^action ifNil: [action := (ValueHolder new) onChangeSend: #triggerAction to: self; yourself]
triggerAction self perform: self action value
</methods> <methods> VisualWorks.NetRegistration <category>validation</category>
changedWorkPhone | newString | newString := self workPhone value select: [:char | char isDigit]. newString = self workPhone value ifFalse: [self workPhone value: newString]
constructRegistrationDataString | dataStream regLabels regValues | regLabels := self registrationLabels. regValues := self registrationValues. dataStream := String new writeStream. ((1 to: regValues size) select: [:i | (regValues at: i) isEmpty not]) do: [:i | dataStream nextPutAll: (regLabels at: i); nextPut: $=; nextPutAll: (regValues at: i)] separatedBy: [dataStream nextPut: $&]. ^dataStream contents
registrationLabels ^#('username' 'password' 'password2' 'reqfirst_name' 'reqlast_name' 'reqemail' 'reqwork_phone' 'title' 'company_name' 'reqaddress1' 'address2' 'reqcity' 'state' 'reqzip' 'reqcountry' 'jobResponsibility')
registrationValues ^(OrderedCollection new) add: self userID value; add: self password value; add: self confirmPassword value; add: self firstName value; add: self lastName value; add: self email value; add: self workPhone value; add: self title value; add: self companyName value; add: self address1 value; add: self address2 value; add: self city value; add: (self provinceIDs at: (self provinceNames indexOf: self stateProvince value ifAbsent: 1)); add: self postalCode value; add: (self countryIDs at: (self countryNames indexOf: self country value ifAbsent: 1)); add: (self jobIDs at: (self jobNames indexOf: self jobResponsibility value ifAbsent: 1)); yourself
requiredFieldsMissing | emptyLabels prompt | emptyLabels := OrderedCollection new. self userID value isEmpty ifTrue: [emptyLabels add: #UserID << #installer >> 'User ID']. self password value isEmpty ifTrue: [emptyLabels add: #Password << #installer >> 'Password']. self confirmPassword value isEmpty ifTrue: [emptyLabels add: #ConfirmPassword << #installer >> 'Confirm password']. self firstName value isEmpty ifTrue: [emptyLabels add: #FirstName << #installer >> 'First Name']. self lastName value isEmpty ifTrue: [emptyLabels add: #LastName << #installer >> 'Last Name']. self email value isEmpty ifTrue: [emptyLabels add: #Email << #installer >> 'E-mail']. self workPhone value isEmpty ifTrue: [emptyLabels add: #WorkPhone << #installer >> 'Work Phone']. emptyLabels isEmpty ifTrue: [^false]. prompt := String new writeStream. prompt nextPutAll: (#fillInRequiredFieldsPrompt << #installer >> 'Please fill in the following required fields:') asString. emptyLabels do: [:string | prompt crtab; nextPutAll: string asString]. Dialog warn: prompt contents. ^true
validateEmail self email value isEmpty ifFalse: [^true]. Dialog warn: #enterEmailAddress << #installer >> 'Please enter your registered email address.'. ^false
validatePassword | same | same := self password value = self confirmPassword value. same ifFalse: [Dialog warn: #passwordsDoNotMatch << #installer >> 'The ''Password'' and ''Confirm password'' values do not match. Please re-enter.']. ^same
validateUserID | longEnough | longEnough := self userID value size >= 7. longEnough ifFalse: [Dialog warn: #userNeedsSevenCharacters << #installer >> 'The ''User ID'' value must be at least 7 characters. Please re-enter.']. ^longEnough
</methods> <methods> VisualWorks.NetRegistration <category>dialogs</category>
registrationErrorDialog: anFTPResponseOrNil Dialog warn: (#registrationErrorDialog << #installer >> 'An error occurred while trying to access the server. <1s>Please try again. If this error persists, please try registering from a web browser at the following address:<nt>http://www.cincomsmalltalk.com/scripts/ProductRegistration.ssp' expandMacrosWith: (anFTPResponseOrNil isNil ifTrue: [String new] ifFalse: [#crTabTemplate << #installer >> '<nt><1s>' expandMacrosWith: anFTPResponseOrNil displayString])). ^nil
</methods> <methods> VisualWorks.NetRegistration <category>values and labels</category>
countryIDs ^#('' 'AFG' 'ALB' 'DZA' 'ASM' 'AND' 'AGO' 'AIA' 'ATA' 'ATG' 'ARG' 'ARM' 'ABW' 'AUS' 'AUT' 'AZE' 'BHS' 'BHR' 'BGD' 'BRB' 'BLR' 'BEL' 'BLZ' 'BEN' 'BMU' 'BTN' 'BOL' 'BIH' 'BWA' 'BVT' 'BRA' 'IOT' 'BRN' 'BGR' 'BFA' 'BDI' 'KHM' 'CMR' 'CAN' 'CPV' 'CYM' 'CAF' 'TCD' 'CHL' 'CHN' 'CXR' 'CCK' 'COL' 'COM' 'COG' 'COD' 'COK' 'CRI' 'CIV' 'HRV' 'CUB' 'CYP' 'CZE' 'DNK' 'DJI' 'DMA' 'DOM' 'TMP' 'ECU' 'EGY' 'SLV' 'ELB' 'GNQ' 'ERI' 'EST' 'ETH' 'FLK' 'FRO' 'FJI' 'FIN' 'FRA' 'FXX' 'GUF' 'PYF' 'ATF' 'GAB' 'GMB' 'GEO' 'DEU' 'GHA' 'GIB' 'GRC' 'GRL' 'GRD' 'GLP' 'GUM' 'GTM' 'GIN' 'GNB' 'GUY' 'HTI' 'HMD' 'VAT' 'HND' 'HKG' 'HUN' 'ISL' 'IND' 'IDN' 'IRN' 'IRQ' 'IRL' 'ISR' 'ITA' 'JAM' 'JPN' 'JOR' 'KAZ' 'KEN' 'KIR' 'PRK' 'KOR' 'KWT' 'KGZ' 'LAO' 'LVA' 'LBN' 'LSO' 'LBR' 'LBY' 'LIE' 'LTU' 'LUX' 'MAC' 'MKD' 'MDG' 'MWI' 'MYS' 'MDV' 'MLI' 'MLT' 'MHL' 'MTQ' 'MRT' 'MUS' 'MYT' 'MEX' 'FSM' 'MDA' 'MCO' 'MNG' 'MSR' 'MAR' 'MOZ' 'MMR' 'NAM' 'NRU' 'NPL' 'NLD' 'ANT' 'NCL' 'NZL' 'NIC' 'NER' 'NGA' 'NIU' 'NFK' 'MNP' 'NOR' 'OMN' 'INVALID' 'PAK' 'PLW' 'PSE' 'PAN' 'PNG' 'PRY' 'PER' 'PHL' 'PCN' 'POL' 'PRT' 'PRI' 'QAT' 'REU' 'ROM' 'RUS' 'RWA' 'KNA' 'LCA' 'VCT' 'WSM' 'SMR' 'STP' 'SAU' 'SEN' 'SYC' 'SLE' 'SGP' 'SVK' 'SVN' 'SLB' 'SOM' 'ZAF' 'SGS' 'ESP' 'LKA' 'SHN' 'SPM' 'SDN' 'SUR' 'SJM' 'SWZ' 'SWE' 'CHE' 'SYR' 'TWN' 'TJK' 'TZA' 'THA' 'TGO' 'TKL' 'TON' 'TTO' 'TUN' 'TUR' 'TKM' 'TCA' 'TUV' 'UGA' 'UKR' 'ARE' 'GBR' 'USA' 'UMI' 'UNK' 'URY' 'UZB' 'VUT' 'VEN' 'VNM' 'VGB' 'VIR' 'WLF' 'ESH' 'YEM' 'YUG' 'ZMB' 'ZWE')
countryNames ^#('' 'Afghanistan' 'Albania' 'Algeria' 'American Samoa' 'Andorra' 'Angola' 'Anguilla' 'Antarctica' 'Antigua And Barbuda' 'Argentina' 'Armenia' 'Aruba' 'Australia' 'Austria' 'Azerbaijan' 'Bahamas' 'Bahrain' 'Bangladesh' 'Barbados' 'Belarus' 'Belgium' 'Belize' 'Benin' 'Bermuda' 'Bhutan' 'Bolivia' 'Bosnia And Herzegowina' 'Botswana' 'Bouvet Island' 'Brazil' 'British Indian Ocean Territory' 'Brunei Darussalam' 'Bulgaria' 'Burkina Faso' 'Burundi' 'Cambodia' 'Cameroon' 'Canada' 'Cape Verde' 'Cayman Islands' 'Central African Republic' 'Chad' 'Chile' 'China' 'Christmas Island' 'Cocos (Keeling) Islands' 'Colombia' 'Comoros' 'Congo' 'Congo The Democratic Republic Of The' 'Cook Islands' 'Costa Rica' 'Cote D''ivoire' 'Croatia (local name: Hrvatska)' 'Cuba' 'Cyprus' 'Czech Republic' 'Denmark' 'Djibouti' 'Dominica' 'Dominican Republic' 'East Timor' 'Ecuador' 'Egypt' 'El Salvador' 'Elbonia' 'Equatorial Guinea' 'Eritrea' 'Estonia' 'Ethiopia' 'Falkland Islands (Malvinas)' 'Faroe Islands' 'Fiji' 'Finland' 'France' 'France Metropolitan' 'French Guiana' 'French Polynesia' 'French Southern Territories' 'Gabon' 'Gambia' 'Georgia' 'Germany' 'Ghana' 'Gibraltar' 'Greece' 'Greenland' 'Grenada' 'Guadeloupe' 'Guam' 'Guatemala' 'Guinea' 'Guinea-bissau' 'Guyana' 'Haiti' 'Heard And Mc Donald Islands' 'Holy See (Vatican City State)' 'Honduras' 'Hong Kong' 'Hungary' 'Iceland' 'India' 'Indonesia' 'Iran (Islamic Republic Of)' 'Iraq' 'Ireland' 'Israel' 'Italy' 'Jamaica' 'Japan' 'Jordan' 'Kazakhstan' 'Kenya' 'Kiribati' 'Korea Democratic People''s Republic Of' 'Korea Republic Of' 'Kuwait' 'Kyrgyzstan' 'Lao People''s Democratic Republic' 'Latvia' 'Lebanon' 'Lesotho' 'Liberia' 'Libyan Arab Jamahiriya' 'Liechtenstein' 'Lithuania' 'Luxembourg' 'Macau' 'Macedonia' 'Madagascar' 'Malawi' 'Malaysia' 'Maldives' 'Mali' 'Malta' 'Marshall Islands' 'Martinique' 'Mauritania' 'Mauritius' 'Mayotte' 'Mexico' 'Micronesia' 'Moldova Republic Of' 'Monaco' 'Mongolia' 'Montserrat' 'Morocco' 'Mozambique' 'Myanmar' 'Namibia' 'Nauru' 'Nepal' 'Netherlands' 'Netherlands Antilles' 'New Caledonia' 'New Zealand' 'Nicaragua' 'Niger' 'Nigeria' 'Niue' 'Norfolk Island' 'Northern Mariana Islands' 'Norway' 'Oman' 'OTHER' 'Pakistan' 'Palau' 'Palestinian Territory' 'Panama' 'Papua New Guinea' 'Paraguay' 'Peru' 'Philippines' 'Pitcairn' 'Poland' 'Portugal' 'Puerto Rico' 'Qatar' 'Reunion' 'Romania' 'Russian Federation' 'Rwanda' 'Saint Kitts And Nevis' 'Saint Lucia' 'Saint Vincent And The Grenadines' 'Samoa' 'San Marino' 'Sao Tome And Principe' 'Saudi Arabia' 'Senegal' 'Seychelles' 'Sierra Leone' 'Singapore' 'Slovakia (Slovak Republic)' 'Slovenia' 'Solomon Islands' 'Somalia' 'South Africa' 'South Georgia And The South Sandwich Islands' 'Spain' 'Sri Lanka' 'St. Helena' 'St. Pierre And Miquelon' 'Sudan' 'Suriname' 'Svalbard And Jan Mayen Islands' 'Swaziland' 'Sweden' 'Switzerland' 'Syrian Arab Republic' 'Taiwan Province Of China' 'Tajikistan' 'Tanzania United Republic Of' 'Thailand' 'Togo' 'Tokelau' 'Tonga' 'Trinidad And Tobago' 'Tunisia' 'Turkey' 'Turkmenistan' 'Turks And Caicos Islands' 'Tuvalu' 'Uganda' 'Ukraine' 'United Arab Emirates' 'United Kingdom' 'United States' 'United States Minor Outlying Islands' 'Unknown' 'Uruguay' 'Uzbekistan' 'Vanuatu' 'Venezuela' 'Viet Nam' 'Virgin Islands (British)' 'Virgin Islands (U.S.)' 'Wallis And Futuna Islands' 'Western Sahara' 'Yemen' 'Yugoslavia' 'Zambia' 'Zimbabwe')
jobIDs ^#('' '66' '67' '68' '69' '70' '71' '72' '73')
jobNames ^#('' 'Application Developer' 'CEO/CIO/President' 'IT Consulting' 'IT Management' 'Management Consulting' 'Professor/Research' 'Student' 'Other')
provinceIDs ^#('ABERS' 'Aguas' 'AL' 'AK' 'AB' 'Andam' 'Andhr' 'ANGLE' 'ANGUS' 'ARGLY' 'AZ' 'AR' 'Aruna' 'Assam' 'ACT' 'AYRSH' 'BajaC' 'BajaS' 'BANFF' 'BEDS' 'BERKS' 'BERWS' 'Bihar' 'BRECK' 'BC' 'BUCKS' 'CAERN' 'CAITH' 'CA' 'CAMBS' 'Campe' 'CARDS' 'CARMS' 'Chand' 'CHI' 'CHES' 'Chhat' 'Chiap' 'Chihu' 'CLACK' 'Coahu' 'Colim' 'CO' 'CT' 'CORN' 'ANTRI' 'ARMAG' 'DOWN' 'DURHM' 'FERMA' 'LNDRY' 'TYRON' 'CUMBE' 'Dadra' 'Daman' 'DE' 'Delhi' 'DENGS' 'DERBY' 'DEVON' 'DC' 'Distr' 'DORS' 'DUMFS' 'DUNBS' 'Duran' 'ELOTH' 'ESSEX' 'FIFE' 'FLINT' 'FL' 'GA' 'GLAM' 'GLOS' 'Goa' 'Guana' 'Guerr' 'Gujar' 'HANTS' 'Harya' 'HI' 'HERES' 'HERTS' 'Hidal' 'Himac' 'HUNTS' 'ID' 'IL' 'IN' 'IVERS' 'IA' 'IOARR' 'IOBAR' 'IOBUT' 'IOCUM' 'IOHAR' 'IOISL' 'IOJUR' 'IOLEW' 'IOMAN' 'IONU' 'IOSKY' 'IOSU' 'IOTIR' 'IOW' 'IOSCI' 'Jalis' 'Jammu' 'Jhark' 'KS' 'Karna' 'KENT' 'KY' 'Keral' 'KINCS' 'KINRS' 'KIRKS' 'Laksh' 'LANKS' 'LANCS' 'LEICS' 'LINCS' 'G LON' 'LA' 'Madhy' 'Mahar' 'ME' 'Manip' 'MB' 'MD' 'MA' 'Megha' 'MERIO' 'Mexic' 'MI' 'Micho' 'MIDLX' 'MIDLO' 'MN' 'MS' 'MO' 'Mizor' 'MONMO' 'MT' 'MONTG' 'MORAY' 'Morel' 'Nagal' 'NAIRN' 'Nayar' 'NE' 'NV' 'NB' 'NH' 'NJ' 'NM' 'NSW' 'NY' 'NF' 'NORFK' 'NC' 'ND' 'NYORK' 'NORTS' 'NT' 'NORTL' 'NT' 'NOTTS' 'NS' 'Nuevo' 'NU' 'Oaxac' 'OH' 'OK' 'ON' 'OR' 'Oriss' 'ORKNY' 'OXONS' 'PEEBS' 'PEMBS' 'PA' 'PERTH' 'Pondi' 'PE' 'Puebl' 'Punja' 'QC' 'QLD' 'Quint' 'RADNS' 'Rajas' 'RENFS' 'RI' 'ROSS' 'ROXBS' 'RUTLD' 'SK' 'SELKS' 'SHETL' 'SHROP' 'Sikki' 'Sinal' 'SOMST' 'Sonor' 'SA' 'SC' 'SD' 'SYORK' 'STAFF' 'STIRS' 'SUFFK' 'SURRY' 'SUSSX' 'SUTHE' 'Tabas' 'Tamau' 'Tamil' 'TAS' 'TAYS' 'TN' 'TX' 'Tlaxc' 'Tripu' 'TYNEW' 'UT' 'UAnch' 'UPrad' 'Verac' 'VT' 'VIC' 'VA' 'WARKS' 'WA' 'WBeng' 'WLOTH' 'WV' 'WYORK' 'WA' 'WMORL' 'WIGTS' 'WILTS' 'WI' 'WORCS' 'WY' 'YORKS' 'Yucat' 'YT' 'Zacat')
provinceNames ^#('Aberdeenshire' 'Aguascalientes' 'Alabama' 'Alaska' 'Alberta' 'Andaman and Nicobar' 'Andhra Pradesh' 'Anglesey' 'Angus' 'Argyllshire' 'Arizona' 'Arkansas' 'Arunachal Pradesh' 'Assam' 'Aust. Capital Terr.' 'Ayrshire' 'Baja California' 'Baja California Sur' 'Banffshire' 'Bedfordshire' 'Berkshire' 'Berwickshire' 'Bihar' 'Brecknockshire' 'British Columbia' 'Buckinghamshire' 'Caernarfonshire' 'Caithness' 'California' 'Cambridgeshire' 'Campeche' 'Cardiganshire' 'Carmarthenshire' 'Chandigarh' 'Channel Isles' 'Cheshire' 'Chhattisgarh' 'Chiapas' 'Chihuahua' 'Clackmannanshire' 'Coahuila' 'Colima' 'Colorado' 'Connecticut' 'Cornwall' 'County Antrim' 'County Armagh' 'County Down' 'County Durham' 'County Fermanagh' 'County Londonderry' 'County Tyrone' 'Cumberland' 'Dadra and Nagar' 'Daman and Diu' 'Delaware' 'Delhi' 'Denbighshire' 'Derbyshire' 'Devon' 'District of Columbia' 'Distrito Federal' 'Dorset' 'Dumfriesshire' 'Dunbartonshire' 'Durango' 'East Lothian' 'Essex' 'Fife' 'Flintshire' 'Florida' 'Georgia' 'Glamorgan' 'Gloucestershire' 'Goa' 'Guanajuato' 'Guerrero' 'Gujarat' 'Hampshire' 'Haryana' 'Hawaii' 'Herefordshire' 'Hertfordshire' 'Hidalgo' 'Himachal Pradesh' 'Huntingdonshire' 'Idaho' 'Illinois' 'Indiana' 'Inverness-shire' 'Iowa' 'Isle of Arran' 'Isle of Barra' 'Isle of Bute' 'Isle of Cumbrae' 'Isle of Harris' 'Isle of Islay' 'Isle of Jura' 'Isle of Lewis' 'Isle of Man' 'Isle of North Uist' 'Isle of Skye' 'Isle of South Uist' 'Isle of Tiree' 'Isle of Wight' 'Isles of Scilly' 'Jalisco' 'Jammu and Kashmir' 'Jharkhand' 'Kansas' 'Karnataka' 'Kent' 'Kentucky' 'Kerala' 'Kincardineshire' 'Kinross-Shire' 'Kirkcudbrightshire' 'Lakshadweep' 'Lanarkshire' 'Lancashire' 'Leicestershire' 'Lincolnshire' 'London' 'Louisiana' 'Madhya Pradesh' 'Maharashtra' 'Maine' 'Manipur' 'Manitoba' 'Maryland' 'Massachusetts' 'Meghalaya' 'Merionethshire' 'Mexico' 'Michigan' 'Michoacan de Ocampo' 'Middlesex' 'Midlothian' 'Minnesota' 'Mississippi' 'Missouri' 'Mizoram' 'Monmouthshire' 'Montana' 'Montgomeryshire' 'Morayshire' 'Morelos' 'Nagaland' 'Nairnshire' 'Nayarit' 'Nebraska' 'Nevada' 'New Brunswick' 'New Hampshire' 'New Jersey' 'New Mexico' 'New South Wales' 'New York' 'Newfoundland' 'Norfolk' 'North Carolina' 'North Dakota' 'North Yorkshire' 'Northamptonshire' 'Northern Territory' 'Northumberland' 'Northwest Terr.' 'Nottinghamshire' 'Nova Scotia' 'Nuevo Leo' 'Nunavut' 'Oaxaca' 'Ohio' 'Oklahoma' 'Ontario' 'Oregon' 'Orissa' 'Orkney' 'Oxfordshire' 'Peeblesshire' 'Pembrokeshire' 'Pennsylvania' 'Perthshire' 'Pondicherry' 'Prince Edward Island' 'Puebla' 'Punjab' 'Quebec' 'Queensland' 'Quintana Roo' 'Radnorshire' 'Rajasthan' 'Renfrewshire' 'Rhode Island' 'Ross-shire' 'Roxburghshire' 'Rutland' 'Saskatchewan' 'Selkirkshire' 'Shetland' 'Shropshire' 'Sikkim' 'Sinaloa' 'Somerset' 'Sonora' 'South Australia' 'South Carolina' 'South Dakota' 'South Yorksire' 'Staffordshire' 'Stirlingshire' 'Suffolk' 'Surrey' 'Sussex' 'Sutherland' 'Tabasco' 'Tamaulipas' 'Tamil Nadu' 'Tasmania' 'Tayshire' 'Tennessee' 'Texas' 'Tlaxcala' 'Tripura' 'Tyne & Wear' 'Utah' 'Uttar Pradesh' 'Uttaranchal' 'Veracruz-Llave' 'Vermont' 'Victoria' 'Virginia' 'Warwickshire' 'Washington' 'West Bengal' 'West Lothian' 'West Virginia' 'West Yorkshire' 'Western Australia' 'Westmorland' 'Wigtownshire' 'Wiltshire' 'Wisconsin' 'Worcestershire' 'Wyoming' 'Yorkshire' 'Yucatan' 'Yukon' 'Zacatecas')
</methods> <methods> VisualWorks.NetRegistration <category>private</category>
parseGetKeyResponse: anHttpResponse | cr stream | (anHttpResponse isNil or: [anHttpResponse code = '500']) ifTrue: [^self registrationErrorDialog: anHttpResponse]. cr := Character cr. stream := anHttpResponse decodedContents readStream. stream throughAll: 'username='. self userID value: (stream upTo: cr). stream throughAll: 'password='. self password value: (stream upTo: cr). stream throughAll: 'key='. key := stream upTo: cr
parseRegisterResponse: anHttpResponse | stream | (anHttpResponse isNil or: [anHttpResponse code = '500']) ifTrue: [^self registrationErrorDialog: anHttpResponse]. stream := anHttpResponse decodedContents readStream. stream throughAll: 'key='. self key: stream upToEnd
post: servletName contents: contentString | request | request := (HttpRequest post: 'http://www.cincomsmalltalk.com/scripts/servlet/' , servletName) contentType: 'application/x-www-form-urlencoded'; contents: contentString; yourself. ^[HttpClient new executeRequest: request] on: self class httpExceptions do: [:ex | ex return: nil]
prepareResult myResult value: (Array with: self userID value with: self key with: self password value)
</methods> <methods> VisualWorks.NetRegistration <category>actions</category>
cancel self closeRequest. self mainWindow isOpen ifFalse: [^self]. (Delay forSeconds: 1) wait
getKey | response | self validateEmail ifFalse: [^self]. response := Cursor execute showWhile: [self post: 'InstallerKeyServlet' contents: 'email=' , self email value]. response = false ifTrue: [^self]. (self parseGetKeyResponse: response) ifNil: [^self]. self prepareResult. self closeRequest
register | response | self requiredFieldsMissing ifTrue: [^self]. self validateUserID ifFalse: [^self]. self validatePassword ifFalse: [^self]. response := Cursor execute showWhile: [self post: 'InstallerRegistration' contents: self constructRegistrationDataString]. (self parseRegisterResponse: response) ifNil: [^self]. self prepareResult. self closeRequest
</methods> <methods> VisualWorks.NetRegistration <category>aspects</category>
address1 ^address1 ifNil: [address1 := String new asValue]
address2 ^address2 ifNil: [address2 := String new asValue]
city ^city ifNil: [city := String new asValue]
companyName ^companyName ifNil: [companyName := String new asValue]
confirmPassword ^confirmPassword ifNil: [confirmPassword := String new asValue]
countries ^countries ifNil: [countries := (List withAll: self countryNames asSortedCollection) asValue]
country ^country ifNil: [country := String new asValue]
email ^email ifNil: [email := String new asValue]
firstName ^firstName ifNil: [firstName := String new asValue]
jobResponsibilities ^jobResponsibilities ifNil: [jobResponsibilities := (List withAll: self jobNames asSortedCollection) asValue]
jobResponsibility ^jobResponsibility ifNil: [jobResponsibility := String new asValue]
lastName ^lastName ifNil: [lastName := String new asValue]
password ^password ifNil: [password := String new asValue]
postalCode ^postalCode ifNil: [postalCode := String new asValue]
stateProvince ^stateProvince ifNil: [stateProvince := String new asValue]
statesProvinces ^statesProvinces ifNil: [statesProvinces := (List withAll: self provinceNames asSortedCollection) asValue]
title ^title ifNil: [title := String new asValue]
userID ^userID ifNil: [userID := String new asValue]
workPhone ^workPhone ifNil: [workPhone := (String new asValue) onChangeSend: #changedWorkPhone to: self; yourself]
</methods> <methods> VisualWorks.NetRegistration class <category>exception-handling</category>
httpExceptions ^(ExceptionSet new) add: #{Net.HttpRedirectionError} bindingOrNil value; add: #{Net.HttpObjectNotFound} bindingOrNil value; add: OS.OSErrorHolder notReadySignal; add: OS.OSErrorHolder peerFaultSignal; add: OS.OSErrorHolder inaccessibleSignal; add: #{OS.OsTransferFaultError} bindingOrNil value; add: #{Net.HttpServerError} bindingOrNil value; add: #{Net.HttpTimeout} bindingOrNil value; add: #{Net.HttpStatusLineError} bindingOrNil value; add: #{Security.SSLBadCertificate} bindingOrNil value; yourself
</methods> <methods> VisualWorks.SummaryPageVW <category>private</category>
installerStatus ^self parent forInstall ifTrue: [#threeMacros << #installer >> '<1s><2s><3s>' expandMacrosWith: super installerStatus with: self statusObjectStudio with: self statusObjectStudio8] ifFalse: [super installerStatus]
statusObjectStudio ^self parent canInstallObjectStudio ifTrue: [(self parent installObjectStudio value ifTrue: [#statusInstallObjectStudio << #installer >> '<n>Run <1s> installer (after VisualWorks is installed).'] ifFalse: [#statusDoNotInstallObjectStudio << #installer >> '<n>Do not run <1s> installer.']) expandMacrosWith: self versionStringObjectStudio] ifFalse: [String new]
statusObjectStudio8 ^self parent canInstallObjectStudio8 ifTrue: [(self parent installObjectStudio8 value ifTrue: [#statusInstallObjectStudio8 << #installer >> '<n>Run <1s> installer (after VisualWorks is installed).'] ifFalse: [#statusDoNotInstallObjectStudio8 << #installer >> '<n>Do not run <1s> installer.']) expandMacrosWith: self versionStringObjectStudio8] ifFalse: [String new]
versionStringObjectStudio | tagFile writeStream readStream | tagFile := (self parent osSetupPathFor: self parent seedFile) directory construct: 'DATA.TAG'. writeStream := String new writeStream. readStream := tagFile contentsOfEntireFile readStream. writeStream nextPutAll: (readStream throughAll: 'Application='; upTo: Character cr). writeStream space. writeStream nextPutAll: (readStream throughAll: 'Version='; upTo: Character cr). ^writeStream contents
versionStringObjectStudio8 | tagFile writeStream readStream | tagFile := (self parent os8SetupPathFor: self parent seedFile) directory construct: 'DATA.TAG'. writeStream := String new writeStream. readStream := tagFile contentsOfEntireFile readStream. writeStream nextPutAll: (readStream throughAll: 'Application='; upTo: Character cr). writeStream space. writeStream nextPutAll: (readStream throughAll: 'Version='; upTo: Character cr). ^writeStream contents
</methods> <methods> VisualWorks.ThanksPageVW <category>interface opening</category>
postOpenWith: aBuilder super postOpenWith: aBuilder. (self parent wrapperAt: #register) ifNotNil: [:wrapper | | visibility enablement | enablement := self parent isRegistrationWindowOpen not. visibility := self parent seedMap value requestRegistration and: [self parent isRegistered not]. (wrapper isEnabled xor: enablement) ifTrue: [wrapper isEnabled: enablement]. (wrapper isVisible xor: visibility) ifTrue: [wrapper isVisible: visibility]]
</methods> <methods> VisualWorks.ThanksPageVW <category>private</category>
generateText ^#threeMacros << #installer >> '<1s><2s><3s>' expandMacrosWith: self thanksText with: self registrationText with: self ostudioText
ostudioText ^(self parent installObjectStudio value or: [self parent installObjectStudio8 value]) ifTrue: [(#ostudioText << #installer >> '<nn>ObjectStudio installation will proceed after you click <b>Exit<e>.') expandMacros] ifFalse: [String new]
registrationText ^(self parent seedMap value requestRegistration and: [self parent isRegistered not]) ifTrue: [(#registrationText << #installer >> '<nn>To receive information about Cincom Smalltalk and developer resources please click <b>Register<e>.') expandMacros] ifFalse: [String new]
thanksText ^#thanksText << #installer >> 'Thank you for using <1s>.<nn>To find the latest information about Cincom Smalltalk and links to Smalltalk developer resources please visit the Cincom Smalltalk Developer Pages at:<nnt>http://www.cincomsmalltalk.com' expandMacrosWith: self parent seedFile printString
</methods> <methods> VisualWorks.SeedSelectorPageVW <category>updating</category>
refreshProductOptions | vwEnablement os8Enablement osEnablement | self builder ifNil: [^self]. (self parent forInstall and: [self parent canInstallObjectStudio or: [self parent canInstallObjectStudio8]]) ifFalse: [^self setProductOptionVisibility: false]. self setProductOptionVisibility: true. vwEnablement := self parent forInstall and: [self seedFile value notNil]. osEnablement := vwEnablement and: [self parent canInstallObjectStudio]. os8Enablement := vwEnablement and: [self parent canInstallObjectStudio8]. (vwEnablement and: [osEnablement not]) ifTrue: [self installVW value ifFalse: [self installVW value: true]]. self parent setDefaultButtonLabel. (self wrapperAt: #installVW) ifNotNil: [:wrapper | (wrapper isEnabled xor: vwEnablement) ifTrue: [wrapper isEnabled: vwEnablement]]. (self wrapperAt: #installOS) ifNotNil: [:wrapper | (wrapper isEnabled xor: osEnablement) ifTrue: [wrapper isEnabled: osEnablement]]. (self wrapperAt: #installOS8) ifNotNil: [:wrapper | (wrapper isEnabled xor: os8Enablement) ifTrue: [wrapper isEnabled: os8Enablement]]
setProductOptionVisibility: aBoolean self builder ifNil: [^self]. (self wrapperAt: #installVW) isVisible: aBoolean. (self wrapperAt: #installOS) isVisible: aBoolean. (self wrapperAt: #installOS8) isVisible: (aBoolean and: [self parent canInstallObjectStudio8])
updateDefaultButtonLabel self parent setDefaultButtonLabel
updateSeedFileDisplay super updateSeedFileDisplay. self refreshProductOptions. self updateText
</methods> <methods> VisualWorks.SeedSelectorPageVW <category>dialogs</category>
warnSelectProductDialog Dialog warn: (self parent forInstall ifTrue: [#warnSelectProductToInstall << #installer >> 'Please select a product to install.'] ifFalse: [#warnSelectProductToUninstall << #installer >> 'Please select a product to uninstall.'])
</methods> <methods> VisualWorks.SeedSelectorPageVW <category>aspects</category>
installOS ^self parent installObjectStudio
installOS8 ^self parent installObjectStudio8
installVW ^self parent installVisualWorks
</methods> <methods> VisualWorks.SeedSelectorPageVW <category>private</category>
generateText ^super generateText , self objectStudioText
objectStudioText (self parent forInstall and: [self parent canInstallObjectStudio]) ifFalse: [^String new]. ^#objectStudioText << #installer >> '<nnb>VisualWorks<e> (cross-platform) and <b>ObjectStudio Classic<e> (Windows only) <1x>are separate Smalltalk products. Check the boxes for the products you wish to install. See the readme files on the CD for more details.' expandMacrosWith: ((self parent canInstallObjectStudio8) ifTrue: ['and <b>ObjectStudio 8<e> (Windows only) ' expandMacros] ifFalse: [String new])
</methods> <methods> VisualWorks.SeedSelectorPageVW <category>interface opening</category>
defaultButtonLabel self parent forInstall ifTrue: [(self installVW value not and: [self installOS value or: [self installOS value]]) ifTrue: [^(#Install << #installer >> 'Install') asString]] ifFalse: [(self seedFile value notNil and: [self seedFile value external]) ifTrue: [^(#Uninstall << #installer >> 'Uninstall') asString]]. ^super defaultButtonLabel
postOpenWith: aBuilder super postOpenWith: aBuilder. self updateDefaultButtonLabel
</methods> <methods> VisualWorks.SeedSelectorPageVW <category>accessing</category>
parent: anObject super parent: anObject. anObject installObjectStudio onChangeSend: #updateSeedFileDisplay to: self. anObject installObjectStudio8 onChangeSend: #updateSeedFileDisplay to: self. anObject installVisualWorks onChangeSend: #updateSeedFileDisplay to: self
</methods> <methods> VisualWorks.SeedSelectorPageVW <category>synchronization</category>
okToProceed super okToProceed ifFalse: [^false]. (self parent forUninstall and: [self seedFile value external]) ifTrue: [(self parent) uninstallObjectStudio; quit]. (self installVW value or: [self installOS value or: [(self installOS8 value)]]) ifTrue: [ ^true]. self warnSelectProductDialog. ^false
</methods> <methods> VisualWorks.VWInstallerApplication <category>private-source files</category>
expectedLogs ^self expectedRegisteredLogs , self expectedRelativeLogs , self expectedObjectStudioLogs
expectedMaps ^(super expectedMaps) addIfAbsent: self mapFromGrandparentDirectory; copyWithout: nil
expectedObjectStudioLogs | oss path subkeys | OSHandle currentOS = #win32 ifFalse: [^Array new]. oss := OSSystemSupport concreteClass new. subkeys := oss getSubkeysOfPath: #('SOFTWARE' 'Cincom Systems, Inc.' 'ObjectStudio') ifAbsent: [Array new]. path := #('SOFTWARE' 'Microsoft' 'Windows' 'CurrentVersion' 'Uninstall'). ^subkeys collect: [:verString | | appName | appName := 'ObjectStudio ' , verString. (oss getVariableWithPath: (path copyWith: appName) name: 'UninstallString' ifAbsent: nil) ifNotNil: [:uninstallString | InstallLog on: uninstallString named: appName external: true]]
expectedRegisteredLogs | oss path registeredLogs | OSHandle currentOS = #win32 ifFalse: [^Array new]. oss := OSSystemSupport concreteClass new. path := #('SOFTWARE' 'Cincom Systems, Inc.' 'VisualWorks'). registeredLogs := OrderedCollection new. (oss getSubkeysOfPath: path ifAbsent: [Array new]) do: [:versionString | | directoryOrNil | directoryOrNil := nil. [directoryOrNil := (oss getVariableWithPath: (path copyWith: versionString) name: 'VISUALWORKS' ifAbsent: [nil]) asFilename construct: 'removals'] on: Error do: [:ex | nil]. directoryOrNil ifNotNil: [registeredLogs add: (InstallLog oldIn: directoryOrNil directory named: versionString); add: (InstallLog oldIn: directoryOrNil named: versionString)]]. ^registeredLogs
expectedRelativeLogs "Answer log files found relative to the installer's working directory, and to the installer's source environment variable." | possibleDirectories | possibleDirectories := List with: Filename defaultDirectory with: Filename defaultDirectory directory. ^(List new) addAll: (possibleDirectories collect: [:aDirectory | [InstallLog oldIn: aDirectory] on: Error do: [:ex | nil]]); addAll: (possibleDirectories collect: [:aDirectory | [InstallLog oldIn: (aDirectory construct: 'removals')] on: Error do: [:ex | nil]]); yourself
mapFromGrandparentDirectory "Look for install.map two directories above the current directory. This is reasonable for a VisualWorks distribution CD if the installer was started in the image directory instead of the root of the CD, such as by double clicking install.im." ^self mapFromDirectory: Filename defaultDirectory directory directory checkNotReady: true
</methods> <methods> VisualWorks.VWInstallerApplication <category>interface opening</category>
postBuildWith: aBuilder super postBuildWith: aBuilder. self mainWindow when: #close send: #aboutToCancel to: self
subapplicationsForInstall ^self installVisualWorks value ifTrue: [super subapplicationsForInstall] ifFalse: [self subapplicationsForOSInstall]
subapplicationsForInteractiveInstall ^(List new) add: ActionSelectorPage; add: CheckServerPage; add: SeedSelectorPageVW; add: ChooseDirectoryPage; add: ComponentSelectorPageVW; add: SummaryPageVW; add: LicenseVerifierPage; add: InstallerPage; add: ThanksPageVW; yourself
subapplicationsForInteractiveUninstall ^(List new) add: ActionSelectorPage; add: CheckServerPage; add: SeedSelectorPageVW; add: ComponentSelectorPageVW; add: SummaryPage; add: UninstallerPage; add: ThanksPage; yourself
subapplicationsForOSInstall ^(List new) add: ActionSelectorPage; add: CheckServerPage; add: SeedSelectorPageVW; add: LicenseVerifierPage; yourself
summarySubapplication ^SummaryPageVW
</methods> <methods> VisualWorks.VWInstallerApplication <category>accessing</category>
configFileLocation ^('ftp://ftp.cincomsmalltalk.com//pub/cstnc/visualworks' asURI construct: self defaultConfigFileTail) setServerPassive; ensureInstallerLogin; yourself
normalExit ^normalExit ifNil: [true]
normalExit: aBoolean normalExit := aBoolean
os8SetupPathFor: aSeedFile ^(self setupDirectoryFor: aSeedFile) ifNotNil: [:dir | dir construct: '\ostudio8\disk1\SETUP.EXE']
osSetupPathFor: aSeedFile ^(self setupDirectoryFor: aSeedFile) ifNotNil: [:dir | dir construct: '\ostudio\disk1\SETUP.EXE']
setupDirectoryFor: aSeedFile | srcString | srcString := (self installSourceFor: aSeedFile) asString. ^srcString isEmpty ifTrue: [Filename defaultDirectory] ifFalse: [[srcString asRemoteOrLocalFile] warnFileErrorsUsing: self mainWindow]
setupFlagFile | tempString file stream | tempString := WinProcess new executeSingleCommand: 'set temp'. file := (tempString copyFrom: 6 to: tempString size) asFilename construct: 'installOS8.txt'. stream := file writeStream. [stream nextPutAll: 'install OS 8'] ensure: [stream close]. ^file isWritable
</methods> <methods> VisualWorks.VWInstallerApplication <category>actions</category>
cancel self normalExit: false. super cancel
quit self normalExit: true. super quit
register registrationWindow := ((NetRegistration new) resultValueHolder: self registrationResultHolder; openInterface: #registerSpec; yourself) mainWindow
uninstallObjectStudio WinProcess shOne: self seedLog value location asString
</methods> <methods> VisualWorks.VWInstallerApplication <category>testing</category>
canInstallObjectStudio ^self shouldInvokeExternalInstallers and: [self canInstallObjectStudioFrom: (self osSetupPathFor: self seedFile)]
canInstallObjectStudio8 ^self shouldInvokeExternalInstallers and: [self canInstallObjectStudioFrom: (self os8SetupPathFor: self seedFile)]
isRegistered ^self registrationResultHolder value notNil
isRegistrationWindowOpen ^registrationWindow notNil and: [registrationWindow isOpen]
</methods> <methods> VisualWorks.VWInstallerApplication <category>gui testing</category>
dynamicReferencesTest "(NetRegistration new resultValueHolder: nil asValue) values: ((OrderedCollection new) add: #(#address1 '3350 Scott Blvd Ste B'); add: #(#city 'Santa Clara'); add: #(#companyName 'Cincom Systems, Inc.'); add: #(#confirmPassword 'weeklyPackaging'); add: #(#country 'USA'); add: #(#email 'packingList@cincom.com'); add: #(#firstName 'Packing'); add: #(#jobResponsibility 'Other'); add: #(#lastName 'List'); add: #(#password 'weeklyPackaging'); add: #(#postalCode '95054'); add: #(#stateProvince 'CA'); add: #(#userID 'PackingList'); add: #(#workPhone '408 216 4600'); add: #(#action #register); add: #(#action #cancel); yourself); openInterface: #registerSpec" ^self commentOnly
</methods> <methods> VisualWorks.VWInstallerApplication <category>private-testing</category>
canInstallObjectStudioFrom: path ^self canInstallObjectStudioFromPath: path seed: self seedFile
canInstallObjectStudioFromPath: path seed: aSeedMap ^path notNil and: [OSHandle currentOS == #win32 and: [aSeedMap notNil and: [path isURI not and: [path asFilename exists]]]]
shouldInstallObjectStudio ^self installObjectStudio value and: [self canInstallObjectStudio]
shouldInstallObjectStudio8 ^self installObjectStudio8 value and: [self canInstallObjectStudio8]
shouldInvokeExternalInstallers ^self forInstall and: [self normalExit and: [self handsFree not and: [self isHeadless not]]]
</methods> <methods> VisualWorks.VWInstallerApplication <category>aspects</category>
installObjectStudio ^installObjectStudio ifNil: [installObjectStudio := (LazyValueHolder with: self canInstallObjectStudio) onChangeSend: #changedInstallObjectStudio to: self; yourself]
installObjectStudio8 ^installObjectStudio8 ifNil: [installObjectStudio8 := (LazyValueHolder with: self canInstallObjectStudio8) onChangeSend: #changedInstallObjectStudio8 to: self; yourself]
installVisualWorks ^installVisualWorks ifNil: [installVisualWorks := true asValue]
registrationResultHolder ^registrationResultHolder ifNil: [registrationResultHolder := ValueHolder new]
</methods> <methods> VisualWorks.VWInstallerApplication <category>events</category>
aboutToCancel normalExit ifNil: [self normalExit: false]
noticeOfWindowClose: aWindow (self shouldInstallObjectStudio and: [self shouldInstallObjectStudio8 not]) ifTrue: [OSSystemSupport concreteClass CreateDetachedProcess: nil arguments: (self osSetupPathFor: self seedFile) asString]. (self shouldInstallObjectStudio8 and: [self shouldInstallObjectStudio not]) ifTrue: [OSSystemSupport concreteClass CreateDetachedProcess: nil arguments: (self os8SetupPathFor: self seedFile) asString]. (self shouldInstallObjectStudio and: [self shouldInstallObjectStudio8]) ifTrue: [self setupFlagFile. OSSystemSupport concreteClass CreateDetachedProcess: nil arguments: (self osSetupPathFor: self seedFile) asString]. ^super noticeOfWindowClose: aWindow
</methods> <methods> VisualWorks.VWInstallerApplication <category>options</category>
readCurrentSeedOptions super readCurrentSeedOptions. self readInstallObjectStudioFromOptions. self readInstallObjectStudio8FromOptions
readInstallObjectStudio8FromOptions self installObjectStudio8 value: (self currentSeedOptions installObjectStudio8Or: [self canInstallObjectStudio8])
readInstallObjectStudioFromOptions self installObjectStudio value: (self currentSeedOptions installObjectStudioOr: [self canInstallObjectStudio])
suggestInstallObjectStudio8For: aSeedFile ^aSeedFile forInstall and: [self normalExit and: [self handsFree not and: [self isHeadless not and: [self canInstallObjectStudioFromPath: (self os8SetupPathFor: aSeedFile) seed: aSeedFile]]]]
suggestSeedOptionsFor: aSeedFile | options | options := super suggestSeedOptionsFor: aSeedFile. options installObjectStudio: (self suggestInstallObjectStudioFor: aSeedFile). options installObjectStudio8: (self suggestInstallObjectStudio8For: aSeedFile). ^options
writeCurrentSeedOptions self canWriteOptions ifFalse: [^self]. super writeCurrentSeedOptions. self writeInstallObjectStudioToOptions. self writeInstallObjectStudio8ToOptions
writeInstallObjectStudio8ToOptions self currentSeedOptions installObjectStudio8: self installObjectStudio8 value
writeInstallObjectStudioToOptions self currentSeedOptions installObjectStudio: self installObjectStudio value
</methods> <methods> VisualWorks.VWInstallerApplication <category>initialize-release</category>
newOptions ^InstallOptionsVW new
</methods> <methods> VisualWorks.VWInstallerApplication <category>updating</category>
changedInstallObjectStudio self canWriteOptions ifTrue: [self writeInstallObjectStudioToOptions]
changedInstallObjectStudio8 self canWriteOptions ifTrue: [self writeInstallObjectStudio8ToOptions]
</methods> <methods> VisualWorks.VWInstallerApplication class <category>subclass defaults</category>
applicationVersion ^Win95SystemSupport currentVersion last
baseApplicationName ^'VisualWorks'
installDirectory ^self cleanUpInstallDirectoryString: self applicationVersion
</methods> <methods> VisualWorks.VWInstallerApplication class <category>util</category>
cleanUpInstallDirectoryString: aString | rStr wStr lastWasAlpha n thisIsAlpha | rStr := aString readStream. wStr := String new writeStream. wStr nextPutAll: 'vw'. lastWasAlpha := false. [rStr atEnd] whileFalse: [n := rStr next. thisIsAlpha := n isLetter. lastWasAlpha not & thisIsAlpha ifTrue: [n := n asUppercase]. (thisIsAlpha or: [n == $. or: [n isDigit]]) ifTrue: [wStr nextPut: n]. lastWasAlpha := thisIsAlpha]. ^wStr contents
</methods> <methods> VisualWorks.VWInstallerApplication class <category>defaults</category>
classesToKeep "Don't strip these classes." ^(super classesToKeep) addAll: (OS organization thingsAtCategoryNamed: #'OS-Sockets'); yourself
</methods> <methods> VisualWorks.ComponentSelectorPageVW <category>actions</category>
selectAllComponentsForPlatform self components selections: ((self parent seedFile nonVMComponents asSet) addAll: self parent seedFile vmComponentsForPlatform; yourself)
</methods> <methods> VisualWorks.KeyVerifierPage <category>actions</category>
getKeyDialog ^self getKeyDialogValues: OrderedCollection new
getKeyDialogValues: aspectValuePairs | resultHolder | resultHolder := self openDialog: #getKeySpec with: aspectValuePairs. (self resultFrom: resultHolder) ifNil: [^self]. self key value isEmpty ifTrue: [^self userNameCDKeyNotFound]. ^resultHolder value
registrationDialog ^self registrationDialogValues: OrderedCollection new
registrationDialogValues: aspectValuePairs | resultHolder | resultHolder := self openDialog: #registerSpec with: aspectValuePairs. (self resultFrom: resultHolder) ifNil: [^self]. ^resultHolder value
</methods> <methods> VisualWorks.KeyVerifierPage <category>private</category>
generateText ^(#registrationInstructions << #installer >> 'Please enter your non-commercial User ID and Product Key exactly as they were provided to you. These are case-sensitive.<nn>To obtain a User Name and Product Key, click on: <b>Register Now<e>.<nn>If you forgot your User Name or Product Key, click on: <b>Forgot Key<e>.') expandMacros
openDialog: aSymbol with: aspectValuePairs | result | result := nil asValue. (NetRegistration new resultValueHolder: result) values: aspectValuePairs; openInterface: aSymbol. ^result
pageTitleText ^(#ProductKeyRequired << #installer >> '<bl>Product Key Required') expandMacros
resultFrom: aValueHolder aValueHolder value ifNil: [^nil]. self userName value: aValueHolder value first. self key value: (aValueHolder value at: 2). self password: aValueHolder value last
verifyKey "^self key value trimBlanks = (CDKey keyFor: self userName value trimBlanks)" ^6 < self userName value size and: [22 = self key value size]
</methods> <methods> VisualWorks.KeyVerifierPage <category>interface opening</category>
postBuildWith: aBuilder super postBuildWith: aBuilder. (self widgetAt: #userName) controller continuousAccept: true. (self widgetAt: #key) controller continuousAccept: true
postOpenWith: aBuilder super postOpenWith: aBuilder. (self wrapperAt: #userName) takeKeyboardFocus
</methods> <methods> VisualWorks.KeyVerifierPage <category>dialogs</category>
userNameCDKeyNotFound Dialog warn: (#userNameCDKeyNotFound << #installer >> 'Warning: User Name / CD Key not found.<n>Please try again with the registered email address,<n>or register now.') expandMacros. ^nil
</methods> <methods> VisualWorks.KeyVerifierPage <category>synchronization</category>
okToBuild ^self parent seedMap value ifNil: [false] ifNotNil: [:map | map readStateNow ifNil: [true] ifNotNil: [map requiresKey]]
okToProceed | keyValid | keyValid := self verifyKey. keyValid ifFalse: [Dialog warn: #userKeyInvalidDialog << #installer >> 'Please enter a valid User name and Product Key.']. ^keyValid
</methods> <methods> VisualWorks.KeyVerifierPage <category>accessing</category>
password ^password
password: anObject password := anObject
</methods> <methods> VisualWorks.KeyVerifierPage <category>aspects</category>
key ^key ifNil: [key := String new asValue]
userName ^userName ifNil: [userName := String new asValue]
</methods> <methods> VisualWorks.InstallerPageVW <category>private</category>
generateText ^super generateText , (self parent seedMap value requestRegistration ifTrue: [(#installerRegistrationText << #installer >> '<nn>To receive information about Cincom Smalltalk and developer resources please click <b>Register<e>.') expandMacros] ifFalse: [String new])
</methods> <methods> VisualWorks.InstallerPageVW <category>interface opening</category>
postOpenWith: aBuilder (self parent wrapperAt: #register) isVisible: self parent seedMap value requestRegistration. super postOpenWith: aBuilder
</methods> <methods> VisualWorks.InstallOptionsVW <category>accessing</category>
installObjectStudio ^installObjectStudio
installObjectStudio8 ^installObjectStudio8
installObjectStudio8: aBoolean installObjectStudio8 := aBoolean
installObjectStudio8Or: anEvaluableObject ^self installObjectStudio8 ifNil: [installObjectStudio8 := anEvaluableObject value]
installObjectStudio: aBoolean installObjectStudio := aBoolean
installObjectStudioOr: anEvaluableObject ^self installObjectStudio ifNil: [installObjectStudio := anEvaluableObject value]
</methods> <methods> VisualWorks.InstallOptionsVW <category>testing</category>
isInitialized ^super isInitialized and: [self installObjectStudio notNil and: [self installObjectStudio8 notNil]]
</methods> <methods> VisualWorks.NetRegistration class <category>interface specs</category>
getKeySpec "Tools.UIPainter new openOnClass: self andSelector: #getKeySpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #(#{Kernel.UserMessage} #key: #CSTKeyLookupWindowTitle #defaultString: ' Cincom Smalltalk Key Lookup' #catalogID: #installer ) #min: #(#{Core.Point} 400 135 ) #bounds: #(#{Graphics.Rectangle} 539 420 939 555 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 10 0 30 0 0 1 ) #name: #retrieveKeyForCincomSmalltalk #label: #(#{Kernel.UserMessage} #key: #retrieveProductKeyForCincomSmalltalk #defaultString: '<bl>Retrieve Product Key For Cincom Smalltalk' #catalogID: #installer ) ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 10 0 60 0 0 1 ) #name: #emailLabel #label: #(#{Kernel.UserMessage} #key: #pleaseEnterYourEmailAddress #defaultString: 'Please enter your e-mail address:' #catalogID: #installer ) ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 10 0 60 0 -10 1 85 0 ) #name: #email #model: #email ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -200 1 95 0 -110 1 125 0 ) #name: #cancel #model: #cancel #label: #(#{Kernel.UserMessage} #key: #cancelLabel #defaultString: 'Cancel' #catalogID: #installer ) #isDefault: false ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -100 1 95 0 -10 1 125 0 ) #name: #getKey #model: #getKey #label: #(#{Kernel.UserMessage} #key: #getKeyLabel #defaultString: 'Get Key' #catalogID: #installer ) #isDefault: true #defaultable: true ) ) ) )
registerSpec "Tools.UIPainter new openOnClass: self andSelector: #registerSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #(#{Kernel.UserMessage} #key: #CSTRegistrationWindowTitle #defaultString: ' Cincom Smalltalk Registration' #catalogID: #installer ) #min: #(#{Core.Point} 512 575 ) #max: #(#{Core.Point} 512 575 ) #bounds: #(#{Graphics.Rectangle} 814 355 1326 930 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 5 0.333333 25 0 0 1 ) #name: #RegisterForCincomSmalltalk #label: #(#{Kernel.UserMessage} #key: #RegisterForCincomSmalltalk #defaultString: '<bl>Register For Cincom Smalltalk' #catalogID: #installer ) ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.333333 60 0 1 1 ) #name: #userIDLabel #label: #(#{Kernel.UserMessage} #key: #userIdLabel #defaultString: '*User ID:' #catalogID: #installer ) ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 5 0.333333 35 0 -10 1 60 0 ) #name: #userID #model: #userID ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.333333 90 0 1 1 ) #name: #passwordLabel #label: #(#{Kernel.UserMessage} #key: #passwordLabel #defaultString: '*Password:' #catalogID: #installer ) ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 5 0.333333 65 0 -10 1 90 0 ) #name: #password #model: #password #type: #password ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.333333 120 0 1 1 ) #name: #confirmPasswordLabel #label: #(#{Kernel.UserMessage} #key: #confirmPasswordLabel #defaultString: '*Confirm password:' #catalogID: #installer ) ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 5 0.333333 95 0 -10 1 120 0 ) #name: #confirmPassword #model: #confirmPassword #type: #password ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.333333 150 0 1 1 ) #name: #firstNameLabel #label: #(#{Kernel.UserMessage} #key: #firstNameLabel #defaultString: '*First Name:' #catalogID: #installer ) ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 5 0.333333 125 0 -10 1 150 0 ) #name: #firstName #model: #firstName ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.333333 180 0 1 1 ) #name: #lastNameLabel #label: #(#{Kernel.UserMessage} #key: #lastNameLabel #defaultString: '*Last Name:' #catalogID: #installer ) ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 5 0.333333 155 0 -10 1 180 0 ) #name: #lastName #model: #lastName ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.333333 210 0 1 1 ) #name: #titleLabel #label: #(#{Kernel.UserMessage} #key: #titleLabel #defaultString: 'Title:' #catalogID: #installer ) ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 5 0.333333 185 0 -10 1 210 0 ) #name: #title #model: #title ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.333333 240 0 1 1 ) #name: #companyNameLabel #label: #(#{Kernel.UserMessage} #key: #companyNameLabel #defaultString: 'Company Name:' #catalogID: #installer ) ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 5 0.333333 215 0 -10 1 240 0 ) #name: #companyName #model: #companyName ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.333333 270 0 1 1 ) #name: #emailLabel #label: #(#{Kernel.UserMessage} #key: #asteriskEmailLabel #defaultString: '*E-mail:' #catalogID: #installer ) ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 5 0.333333 245 0 -10 1 270 0 ) #name: #email #model: #email ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.333333 300 0 1 1 ) #name: #address1Label #label: #(#{Kernel.UserMessage} #key: #address1Label #defaultString: 'Address 1:' #catalogID: #installer ) ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 5 0.333333 275 0 -10 1 300 0 ) #name: #address1 #model: #address1 ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.333333 330 0 1 1 ) #name: #address2Label #label: #(#{Kernel.UserMessage} #key: #address2Label #defaultString: 'Address 2:' #catalogID: #installer ) ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 5 0.333333 305 0 -10 1 330 0 ) #name: #address2 #model: #address2 ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.333333 360 0 1 1 ) #name: #cityLabel #label: #(#{Kernel.UserMessage} #key: #cityLabel #defaultString: 'City:' #catalogID: #installer ) ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 5 0.333333 335 0 -10 1 360 0 ) #name: #city #model: #city ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.333333 390 0 1 1 ) #name: #stateProvinceLabel #label: #(#{Kernel.UserMessage} #key: #stateProvinceLabel #defaultString: 'State/Province:' #catalogID: #installer ) ) #(#{UI.ComboBoxSpec} #layout: #(#{Graphics.LayoutFrame} 5 0.333333 365 0 -10 1 390 0 ) #name: #stateProvince #model: #stateProvince #comboList: #statesProvinces ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.333333 420 0 1 1 ) #name: #postalCodeLabel #label: #(#{Kernel.UserMessage} #key: #postalCodeLabel #defaultString: 'Postal Code:' #catalogID: #installer ) ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 5 0.333333 395 0 -10 1 420 0 ) #name: #postalCode #model: #postalCode ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.333333 450 0 1 1 ) #name: #countryLabel #label: #(#{Kernel.UserMessage} #key: #countryLabel #defaultString: 'Country:' #catalogID: #installer ) ) #(#{UI.ComboBoxSpec} #layout: #(#{Graphics.LayoutFrame} 5 0.333333 425 0 -10 1 450 0 ) #name: #country #model: #country #comboList: #countries ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.333333 480 0 1 1 ) #name: #workPhoneLabel #label: #(#{Kernel.UserMessage} #key: #workPhoneLabel #defaultString: '*Work Phone:' #catalogID: #installer ) ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 5 0.333333 455 0 -10 1 480 0 ) #name: #workPhone #model: #workPhone #formatString: '(@@@) @@@-@@@@' ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.333333 510 0 1 1 ) #name: #jobResponsibilityLabel #label: #(#{Kernel.UserMessage} #key: #jobResponsibilityLabel #defaultString: 'Job Responsibility:' #catalogID: #installer ) ) #(#{UI.ComboBoxSpec} #layout: #(#{Graphics.LayoutFrame} 5 0.333333 485 0 -10 1 510 0 ) #name: #jobResponsibility #model: #jobResponsibility #comboList: #jobResponsibilities ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.333333 -25 1 1 1 ) #name: #requiredFieldLabel #label: #(#{Kernel.UserMessage} #key: #requiredFieldLabel #defaultString: '* Denotes required field' #catalogID: #installer ) ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -200 1 -50 1 -110 1 -20 1 ) #name: #cancel #model: #cancel #label: #(#{Kernel.UserMessage} #key: #cancelLabel #defaultString: 'Cancel' #catalogID: #installer ) #isDefault: false ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -100 1 -50 1 -10 1 -20 1 ) #name: #register #model: #register #label: #(#{Kernel.UserMessage} #key: #Submit #defaultString: 'Submit' #catalogID: #installer ) #isDefault: true #defaultable: true ) ) ) )
</methods> <methods> VisualWorks.SeedSelectorPageVW class <category>interface specs</category>
subcanvasSpec "Tools.UIPainter new openOnClass: self andSelector: #subcanvasSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #(#{Kernel.UserMessage} #key: #SeedSelectorPageVW #defaultString: 'SeedSelectorPageVW' #catalogID: #installer ) #bounds: #(#{Graphics.Rectangle} 0 0 620 310 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 25 0 ) #name: #pageTitle #flags: 0 #model: #pageTitle #tabable: false #isReadOnly: true #type: #text ) #(#{UI.TextEditorSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 30 0 0 1 -140 1 ) #name: #text #flags: 4 #model: #text #tabable: false #style: #system #isReadOnly: true #tabRequiresControl: false ) #(#{UI.ComboBoxSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 -130 1 -100 1 -105 1 ) #name: #seedFile #model: #seedFile #type: #object #comboList: #seedFiles #readSelector: #readSeedFileFromString: #printSelector: #printSeedFile: ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -90 1 -130 1 0 1 -105 1 ) #name: #getOtherSeedLocation #model: #getOtherSeedLocation #label: #(#{Kernel.UserMessage} #key: #otherEllipsis #defaultString: 'Other...' #catalogID: #installer ) #defaultable: true ) #(#{UI.TextEditorSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 -105 1 -170 1 0 1 ) #name: #location #flags: 4 #model: #location #tabable: false #style: #system #isReadOnly: true #tabRequiresControl: false ) #(#{UI.CheckBoxSpec} #layout: #(#{UI.AlignmentOrigin} -150 1 -55 1 0 1 ) #name: #installVW #model: #installVW #label: #(#{Kernel.UserMessage} #key: #VisualWorks #defaultString: 'VisualWorks' #catalogID: #installer ) ) #(#{UI.CheckBoxSpec} #layout: #(#{UI.AlignmentOrigin} -150 1 -30 1 0 1 ) #name: #installOS #model: #installOS #label: #(#{Kernel.UserMessage} #key: #ObjectStudio #defaultString: 'ObjectStudio' #catalogID: #installer ) ) #(#{UI.CheckBoxSpec} #layout: #(#{UI.AlignmentOrigin} -149 1 -6 1 0 1) #name: #installOS8 #model: #installOS8 #label: #(#{Kernel.UserMessage} #key: #ObjectStudio8 #defaultString: 'ObjectStudio 8' #catalogID: #installer ) ) ) ) )
</methods> <methods> VisualWorks.ComponentSelectorPageVW class <category>resources</category>
selectMenuInstall "Tools.MenuEditor new openOnClass: self andSelector: #selectMenuInstall" <resource: #menu> ^#(#{UI.Menu} #( #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #typicallyInstalledComponentsLabel #defaultString: 'Typically Installed Components' #catalogID: #installer ) #nameKey: #selectDefaultComponents #value: #selectDefaultComponents ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #allForThisPlatformLabel #defaultString: 'All for this Platform' #catalogID: #installer ) #nameKey: #selectAllComponentsForPlatform #value: #selectAllComponentsForPlatform ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #allLabel #defaultString: 'All' #catalogID: #installer ) #nameKey: #selectAllComponents #value: #selectAllComponents ) #(#{UI.MenuItem} #rawLabel: #(#{Kernel.UserMessage} #key: #noneLabel #defaultString: 'None' #catalogID: #installer ) #nameKey: #selectNoComponents #value: #selectNoComponents ) ) #(1 3 ) nil ) decodeAsLiteralArray
</methods> <methods> VisualWorks.KeyVerifierPage class <category>interface specs</category>
subcanvasSpec "Tools.UIPainter new openOnClass: self andSelector: #subcanvasSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #(#{Kernel.UserMessage} #key: #KeyVerifierPage #defaultString: 'KeyVerifierPage' #catalogID: #installer ) #bounds: #(#{Graphics.Rectangle} 1252 456 1872 766 ) #isEventDriven: true ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 -200 1 25 0 ) #name: #pageTitle #flags: 0 #model: #pageTitle #tabable: false #isReadOnly: true #type: #text ) #(#{UI.TextEditorSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 40 0 0 1 -110 1 ) #name: #text #flags: 4 #model: #text #tabable: false #style: #system #isReadOnly: true #tabRequiresControl: false ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} -150 0.5 -100 1 -5 0.5 -70 1 ) #name: #registrationDialog #model: #registrationDialog #label: #(#{Kernel.UserMessage} #key: #RegisterNow #defaultString: 'Register Now' #catalogID: #installer ) #defaultable: true ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 5 0.5 -100 1 150 0.5 -70 1 ) #name: #getKeyDialog #model: #getKeyDialog #label: #(#{Kernel.UserMessage} #key: #ForgotKey #defaultString: 'Forgot Key' #catalogID: #installer ) #defaultable: true ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} -155 0.5 -35 1 1 1 ) #name: #userNameLabel #label: #(#{Kernel.UserMessage} #key: #userNameLabel #defaultString: 'User name:' #catalogID: #installer ) ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} -150 0.5 -60 1 0 1 -35 1 ) #name: #userName #model: #userName ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} -155 0.5 0 1 1 1 ) #name: #keyLabel #label: #(#{Kernel.UserMessage} #key: #keyLabel #defaultString: 'Key:' #catalogID: #installer ) ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} -150 0.5 -25 1 0 1 0 1 ) #name: #key #model: #key ) ) ) )
</methods> <methods> Tools.VisualLauncher <category>actions</category>
openVWInstaller <menuItem: #(#VWInstaller #installer 'VWInstaller') nameKey: nil menu: #(#menuBar #tools) position: 21.533> Processor activeProcess environmentAt: #WindowManagerUsagePolicy put: MakeNewWindowManagerUsagePolicy new. self applicationForClassNamed: #{VisualWorks.VWInstallerApplication} do: [:class | class open]
</methods> "Imported Classes:" self error: 'Attempting to file-in parcel imports. Choose terminate or close' <class> <name>ApplicationModel</name> <environment>UI</environment> <super>UI.Model</super> <private>false</private> none builder uiSession eventHandlers savedWindowInformation <imports></imports> <category>UIBuilder-Framework</category> <attributes> <package>UIBuilder-Framework</package> </attributes> </class> <class> <name>AbstractWizardPage</name> <environment>VisualWorks</environment> <super>UI.ApplicationModel</super> <private>false</private> none pageTitle parent scrollTextToBottom text <imports></imports> <category>VisualWorksInstaller</category> <attributes> <package>VWInstallerFramework</package> </attributes> </class> <class> <name>SeedSelectorPage</name> <environment>VisualWorks</environment> <super>VisualWorks.AbstractWizardPage</super> <private>false</private> none location seedFile seedFiles <imports></imports> <category>VisualWorksInstaller</category> <attributes> <package>VWInstallerFramework</package> </attributes> </class> <class> <name>SummaryPage</name> <environment>VisualWorks</environment> <super>VisualWorks.AbstractWizardPage</super> <private>false</private> none verbose <imports></imports> <category>VisualWorksInstaller</category> <attributes> <package>VWInstallerFramework</package> </attributes> </class> <class> <name>VisualLauncher</name> <environment>Tools</environment> <super>UI.ApplicationModel</super> <private>false</private> none menuBar toolBar textCollector toolDock <imports></imports> <category>Tools-Misc</category> <attributes> <package>Tools-Misc</package> </attributes> </class> <class> <name>InstallerPage</name> <environment>VisualWorks</environment> <super>VisualWorks.AbstractWizardPage</super> <private>false</private> none archiver cannotMakeDirectory cannotWriteFile componentProgress currentComponent information maxProgressCount privatizeUnwritableCommonShortcutPolicy retryCount status statusUpdateProcess targetFile totalProgress workProcess workSemaphore <imports> Smalltalk.Shortcut Smalltalk.ProgressWidgetSpec </imports> <category>VisualWorksInstaller</category> <attributes> <package>VWInstallerFramework</package> </attributes> </class> <class> <name>ComponentSelectorPage</name> <environment>VisualWorks</environment> <super>VisualWorks.AbstractWizardPage</super> <private>false</private> none componentName description selectMenuChannel showDescriptionInterrupt spaceRequired <imports></imports> <category>VisualWorksInstaller</category> <attributes> <package>VWInstallerFramework</package> </attributes> </class> <class> <name>InstallOptions</name> <environment>VisualWorks</environment> <super>Core.Object</super> <private>false</private> none installDirectory selections <imports></imports> <category>VisualWorksInstaller</category> <attributes> <package>VWInstallerFramework</package> </attributes> </class> <class> <name>InstallerMainApplication</name> <environment>VisualWorks</environment> <super>UI.ApplicationModel</super> <private>false</private> none components configuration desktopShortcut expressInstall installAction installDirectory installOptions scanProcesses scanQueue screens serverChecked seedLog seedLogs seedMap seedMaps subApps tgtDir updateApplied <imports></imports> <category>VisualWorksInstaller</category> <attributes> <package>VWInstallerFramework</package> </attributes> </class> <class> <name>ThanksPage</name> <environment>VisualWorks</environment> <super>VisualWorks.AbstractWizardPage</super> <private>false</private> none <imports></imports> <category>VisualWorksInstaller</category> <attributes> <package>VWInstallerFramework</package> </attributes> </class>