[squeak-dev] The Inbox: SMLoader-cmm.89.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Aug 16 21:27:30 UTC 2016
Chris Muller uploaded a new version of SMLoader to project The Inbox:
http://source.squeak.org/inbox/SMLoader-cmm.89.mcz
==================== Summary ====================
Name: SMLoader-cmm.89
Author: cmm
Time: 16 August 2016, 4:27:27.421151 pm
UUID: b29bad6b-f9ed-4209-9c85-b3c70d7ea805
Ancestors: SMLoader-mt.88
Make SMReleaseBrowser support a multi-selection of Squeak Version categories, not just one. The SMServer will still pick just one to be the "primary" Squeak version, which is a questionable behavior.
=============== Diff against SMLoader-mt.88 ===============
Item was changed:
----- Method: SMPackageRelease>>httpPostContent (in category '*smloader') -----
httpPostContent
"Answer the url-encoded parameters for this object."
| allCategories |
^ String streamContents:
[ : stream | self isNewObject
ifTrue:
[ "Make the parent release the selected."
self parentReleaseIndex > 0 ifTrue: [ stream nextPutAll: '1-1=' , self parentReleaseIndex , '&' ] ]
ifFalse:
[ "Make this release the selected."
self releaseIndex > 0 ifTrue: [ stream nextPutAll: '1-1=' , self releaseIndex , '&' ] ].
"The following category fields must remain in alphabetical order. Add 1 to category indexes because web-server expects the first item to always be nil."
stream
nextPutAll: '1-3=' , self version asString encodeForHTTP ;
nextPutAll: '&1-4=' , (self compatibilityIndex + 1) ;
nextPutAll: '&1-5=' , (self licenseIndex + 1) ;
nextPutAll: '&1-6=' , (self maturityIndex + 1) ;
nextPutAll: '&1-7=' , (self squeakVersionIndex + 1) ;
nextPutAll: '&1-8=' , self downloadUrl "already http encoded" ;
nextPutAll: '&1-9=1&1-10=&1-11=' "No file selection, 'cool' name or summary".
"Specify only the mandatory categories for 'additional categories', otherwise prior mandatory selections will be reflected in the objects categories, causing the highest-in-the-list to always win. Ugh.."
allCategories := SMSqueakMap default sortedCategories.
{allCategories indexOf: self compatibility.
allCategories indexOf: self license.
+ allCategories indexOf: self maturity} do:
- allCategories indexOf: self maturity.
- allCategories indexOf: self squeakVersion} do:
[ : each | stream nextPutAll: '&1-12=' , each asString ].
+ self squeakVersions do: [ : each | stream nextPutAll: '&1-12=', (allCategories indexOf: each) asString ].
self isCommunitySupported ifTrue: [ stream nextPutAll: '&1-12=', (allCategories indexOf: self communitySupportedCategory) asString ].
stream nextPutAll: '&1-13=' , self note asString encodeForHTTP.
self isNewObject
ifTrue: [ stream nextPutAll: '&1-18=Save+as+new+release' ]
ifFalse: [ stream nextPutAll: '&1-17=Save+changes' ].
self parentRelease ifNotNilDo:
[ : pr | stream nextPutAll: '&1-19=' , pr releaseIndex ] ]!
Item was changed:
----- Method: SMPackageRelease>>initializeMandatoryCategories (in category '*smloader') -----
initializeMandatoryCategories
"Set default mandatory categories."
self
license: self map mit ;
+ squeakVersions: {self map currentSqueakVersion} ;
- squeakVersion: self map currentSqueakVersion ;
compatibility: self map onlyExtensions ;
maturity: self map alpha!
Item was removed:
- ----- Method: SMPackageRelease>>squeakVersion (in category '*smloader') -----
- squeakVersion
- ^ self categories
- detect:
- [ : each | each parent = self map squeakVersions ]
- ifNone: [ ]!
Item was removed:
- ----- Method: SMPackageRelease>>squeakVersion: (in category '*smloader') -----
- squeakVersion: aSMCategory
- | vers |
- aSMCategory parent = self map squeakVersions ifFalse: [ self error: 'Not a squeakVersion category.' ].
- "Remove all squeakVersion-categories."
- [ vers := self squeakVersion.
- vers notNil ] whileTrue: [ self removeCategory: vers ].
- self addCategory: aSMCategory!
Item was changed:
----- Method: SMPackageRelease>>squeakVersionIndex (in category '*smloader') -----
squeakVersionIndex
+ "Answer my last versions position in the list of my maps squeakVersions."
+ ^ self map squeakVersions subCategories indexOf:
+ (self squeakVersions
+ ifEmpty: [ ^ 0 ]
+ ifNotEmpty: [ : versions | versions last ])!
- "Answer my position in the list of my maps squeakVersions."
- ^ self map squeakVersions subCategories indexOf: self squeakVersion!
Item was added:
+ ----- Method: SMPackageRelease>>squeakVersions (in category '*smloader') -----
+ squeakVersions
+ ^ self categories
+ select: [ : each | each parent = self map squeakVersions ]!
Item was added:
+ ----- Method: SMPackageRelease>>squeakVersions: (in category '*smloader') -----
+ squeakVersions: aCollection
+ aCollection do:
+ [ : eachVersion | eachVersion parent = self map squeakVersions ifFalse: [ self error: 'Please specify only squeakVersion categories.' ] ].
+ "Remove all squeakVersion-categories."
+ categories copy do:
+ [ : each | each parent = self map squeakVersions ifTrue: [ self removeCategory: each ] ].
+ aCollection do:
+ [ : each | self addCategory: each ]!
Item was changed:
CodeHolder subclass: #SMReleaseBrowser
+ instanceVariableNames: 'release loadScript smClient squeakVersionsSelections'
- instanceVariableNames: 'release loadScript smClient'
classVariableNames: ''
poolDictionaries: ''
category: 'SMLoader'!
!SMReleaseBrowser commentStamp: 'cmm 1/23/2011 17:44' prior: 0!
A browser for specific SqueakMap packages.
- Across the top:
- version name text input (across the top)
- parent release (uneditable text)
- Four lists across the width:
- license single-select.
- versions multi-select.
- compatibility single-select.
- maturity single-select.
X File to upload | elipsis.
- Load-script paragraph | Release notes paragraph.
- Buttons:
- Save.
- Cancel.
!
Item was added:
+ ----- Method: SMReleaseBrowser>>allSqueakVersions (in category 'model access') -----
+ allSqueakVersions
+ "Answer all the squeak-versions subcategories."
+ ^ SMSqueakMap default squeakVersions subCategories!
Item was added:
+ ----- Method: SMReleaseBrowser>>ensureSqueakVersions (in category 'initialize-release') -----
+ ensureSqueakVersions
+ | versions |
+ versions := self squeakVersions.
+ (squeakVersionsSelections isNil or: [ squeakVersionsSelections size ~= self allSqueakVersions size ]) ifTrue:
+ [ squeakVersionsSelections := self allSqueakVersions collect:
+ [ : each | versions includes: each ] ]!
Item was changed:
----- Method: SMReleaseBrowser>>newSqueakVersionSpec: (in category 'toolbuilder') -----
newSqueakVersionSpec: aToolBuilder
+ ^ aToolBuilder pluggableMultiSelectionListSpec new
+ model: self ;
+ name: #squeakVersions ;
+ help: 'Select the image versions for this release.' ;
+ autoDeselect: false ;
+ list: #allSqueakVersions ;
+ getIndex: #selectedIndex ;
+ setIndex: #selectedIndex: ;
+ getSelectionList: #squeakVersionSelectionAt: ;
+ setSelectionList: #squeakVersionSelectionAt:put: ;
+ yourself!
- ^ aToolBuilder pluggableListSpec new
- model: self ;
- name: #licenses ;
- help: 'Select the image version for this release.' ;
- autoDeselect: false ;
- list: #squeakVersions ;
- getSelected: #squeakVersion ;
- setSelected: #squeakVersion: ;
- yourself!
Item was changed:
----- Method: SMReleaseBrowser>>postInitialize (in category 'initialize-release') -----
postInitialize
+ self ensureSqueakVersions.
(release downloadUrl endsWith: '.st') ifTrue:
[ release ensureInCache ifTrue: [ self loadScript: release contents ] ]!
Item was added:
+ ----- Method: SMReleaseBrowser>>selectedIndex (in category 'model access') -----
+ selectedIndex
+ "Required by widget."
+ ^ 0!
Item was added:
+ ----- Method: SMReleaseBrowser>>selectedIndex: (in category 'model access') -----
+ selectedIndex: anIndex
+ "Required by widget."
+ self changed: #selectedIndex.!
Item was removed:
- ----- Method: SMReleaseBrowser>>squeakVersion (in category 'model access') -----
- squeakVersion
- ^ release squeakVersion!
Item was removed:
- ----- Method: SMReleaseBrowser>>squeakVersion: (in category 'model access') -----
- squeakVersion: aSMCategory
- release squeakVersion: aSMCategory.
- self changed: #squeakVersion!
Item was added:
+ ----- Method: SMReleaseBrowser>>squeakVersionSelectionAt: (in category 'model access') -----
+ squeakVersionSelectionAt: anInteger
+ ^ squeakVersionsSelections at: anInteger!
Item was added:
+ ----- Method: SMReleaseBrowser>>squeakVersionSelectionAt:put: (in category 'model access') -----
+ squeakVersionSelectionAt: anInteger put: aBoolean
+ ^ squeakVersionsSelections at: anInteger put: aBoolean!
Item was changed:
----- Method: SMReleaseBrowser>>squeakVersions (in category 'model access') -----
squeakVersions
+ "Answer the squeak-versions which this release is compatible with."
+ ^ release squeakVersions!
- "Answer the squeak-versions subcategories."
- ^ SMSqueakMap default squeakVersions subCategories!
Item was added:
+ ----- Method: SMReleaseBrowser>>squeakVersionsAt: (in category 'model access') -----
+ squeakVersionsAt: anInteger
+ ^ self squeakVersions at: anInteger!
Item was added:
+ ----- Method: SMReleaseBrowser>>squeakVersionsAt:put: (in category 'model access') -----
+ squeakVersionsAt: anInteger put: aSMCategory
+ self squeakVersions halt
+ at: anInteger
+ put: aSMCategory.
+ self changed: #squeakVersions!
More information about the Squeak-dev
mailing list
|