[etoys-dev] Etoys Inbox: Skeleton-Richo.5.mcz
karl ramberg
karlramberg at gmail.com
Tue Oct 18 12:19:02 EDT 2011
On Tue, Oct 18, 2011 at 5:59 PM, Ricardo Moran <richi.moran at gmail.com> wrote:
> Hi, it seems my commit notifications are being marked as spam :S
> But anyway, I'm glad to know you took the time to clean the Skeleton
> project. It's one step closer to inclusion :)
> I tried to fix the layout problem that Karl mentioned before and this is my
> first shot. I think the result is nice, although I had to create a new morph
> subclass (which I don't really like much).
> Cheers,
> Richo
Layout is much nicer :-)
Karl
>
> On Tue, Oct 18, 2011 at 12:50 PM, <commits at source.squeak.org> wrote:
>>
>> Spam detection software, running on the system "europa.mgmt.inetu.net",
>> has
>> identified this incoming email as possible spam. The original message
>> has been attached to this so you can view it (if it isn't spam) or label
>> similar future email. If you have any questions, see
>> the administrator of that system for details.
>>
>> Content preview: Ricardo Moran uploaded a new version of Skeleton to
>> project
>> Etoys Inbox: http://source.squeak.org/etoysinbox/Skeleton-Richo.5.mcz
>> ====================
>> Summary ==================== Name: Skeleton-Richo.5 Author: Richo Time:
>> 18
>> October 2011, 12:50:19 pm UUID: 2d68a228-e98a-b64c-af4f-48ae0cb56a9c
>> Ancestors:
>> Skeleton-kfr.4 [...]
>>
>> Content analysis details: (6.5 points, 5.0 required)
>>
>> pts rule name description
>> ---- ----------------------
>> --------------------------------------------------
>> 3.5 BAYES_99 BODY: Bayesian spam probability is 99 to 100%
>> [score: 1.0000]
>> 0.0 MISSING_MID Missing Message-Id: header
>> 1.2 INVALID_DATE Invalid Date: header (not RFC 2822)
>> 1.0 DATE_IN_PAST_12_24 Date: is 12 to 24 hours before Received: date
>> 1.7 TVD_FUZZY_SYMBOL BODY: TVD_FUZZY_SYMBOL
>> 3.8 TVD_STOCK1 BODY: TVD_STOCK1
>> 0.1 RDNS_NONE Delivered to trusted network by a host with no
>> rDNS
>> -4.8 AWL AWL: From: address is in the auto white-list
>>
>>
>>
>>
>> ---------- Forwarded message ----------
>> From: commits at source.squeak.org
>> To: etoys-dev at squeakland.org
>> Date: Tue, 18 Oct 2011 15:50:20.809 0000
>> Subject: Etoys Inbox: Skeleton-Richo.5.mcz
>> Ricardo Moran uploaded a new version of Skeleton to project Etoys Inbox:
>> http://source.squeak.org/etoysinbox/Skeleton-Richo.5.mcz
>>
>> ==================== Summary ====================
>>
>> Name: Skeleton-Richo.5
>> Author: Richo
>> Time: 18 October 2011, 12:50:19 pm
>> UUID: 2d68a228-e98a-b64c-af4f-48ae0cb56a9c
>> Ancestors: Skeleton-kfr.4
>>
>> Trying to fix the layout problem with the tick morph and the sheet's name.
>> I renamed SkSheetMorph to SkBasicSheetMorph and I removed all the code
>> that adds page controls and draws its name. So now it is a simple
>> spreadsheet.
>> I then created a new SkSheetMorph that decorates a SkBasicSheetMorph with
>> the page controls and a title.
>>
>> I also removed the reference to Connectors in
>> Morph>>#showPointArrowFrom:to:label: because it gave a DNU that I didn't
>> knew how to fix it, and because it doesn't seem to be really important
>> behavior.
>>
>> =============== Diff against Skeleton-kfr.4 ===============
>>
>> Item was changed:
>> ----- Method: Morph>>showPointArrowFrom:to:label: (in category
>> '*skeleton-base-arrow') -----
>> showPointArrowFrom: morph1 to: morph2 label: aString
>> "Morph new showPointArrowFrom: (Morph new position: 0 at 0) to: (Morph
>> new position: 200 at 200) label: 'test'"
>> | p1 p2 arrow label connector |
>> p1 := morph1 center.
>> p2 := morph2 center.
>> arrow := PolygonMorph arrowPrototype.
>> arrow
>> borderColor: (TranslucentColor
>> r: 1.0
>> g: 0.3
>> b: 0.0
>> alpha: 0.6).
>> arrow
>> setVertices: (Array with: p1 with: p2).
>> arrow dashedBorder: {30. 30. Color transparent. 0. -10};
>> startStepping.
>> - (Smalltalk
>> - at: #NCAAConnectorMorph
>> - ifAbsent: [])
>> - ifNotNil: [connector := NCAAConnectorMorph fromMorph:
>> morph1 toMorph: morph2.
>> - connector line: arrow.
>> - connector lock.
>> - label := NCLabelMorph new string: aString.
>> - label input: morph1.
>> - label color: Color red.
>> - label openInWorld.
>> - arrow := connector].
>> arrow openInWorld.
>> + arrow addAlarm: #delete after: 500!
>> - arrow addAlarm: #delete after: 500.
>> - label ifNotNil: [label addAlarm: #delete after: 500]
>> - !
>>
>> Item was changed:
>> ----- Method: Player>>setTotalColumns: (in category
>> '*skeleton-spreadsheet') -----
>> setTotalColumns: aNumber
>> + ^ self sheetMorph area: (0 at 0 corner: (aNumber max: 2) @ self
>> getTotalRows)!
>> - ^ self sheetMorph area: (0 at 0 corner: aNumber @ self getTotalRows)!
>>
>> Item was changed:
>> ----- Method: Player>>setTotalRows: (in category '*skeleton-spreadsheet')
>> -----
>> setTotalRows: aNumber
>> + ^ self sheetMorph area: (0 at 0 corner: self getTotalColumns @
>> (aNumber max: 2))!
>> - ^ self sheetMorph area: (0 at 0 corner: self getTotalColumns @
>> aNumber)!
>>
>> Item was added:
>> + SkGridMorph subclass: #SkBasicSheetMorph
>> + instanceVariableNames: 'history model selectionMorph dropZone
>> showFormula'
>> + classVariableNames: ''
>> + poolDictionaries: ''
>> + category: 'Skeleton-Base'!
>> +
>> + !SkBasicSheetMorph commentStamp: 'tak 12/11/2003 19:10' prior: 0!
>> + I am a presentation compornent for showing as 2-D grid.
>> + The contents what I show is depended on a model.
>> + I never access to a cell directly except through model because
>> + a cell doesn't know where he locates. Basically, Position information is
>> + only in model.
>> +
>> + cellArea Rectangle -- the area of cells for drawing. Actual
>> size of table is cellArea extent.
>> + model SkSheet --
>> + !
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph class>>additionsToViewerCategories (in
>> category 'viewer categories') -----
>> + additionsToViewerCategories
>> + ^ #(
>> + (#spreadsheet (
>> + #(command clearTable 'Deletes the contents of all cells')
>> + #(command clearRow 'Deletes the contents of the current row cells' )
>> + #(command clearColumn 'Deletes the contents of the current columns
>> cells' )
>> + #(slot totalRows 'Lets you change the amount of rows in the spreadsheet'
>> Number readWrite Player getTotalRows Player setTotalRows: )
>> + #(slot totalColumns 'Lets you change the amount of columns in the
>> spreadsheet' Number readWrite Player getTotalColumns Player setTotalColumns:
>> )
>> + #(slot rowIndex 'Sets the current row' Number readWrite Player
>> getRowIndex Player setRowIndex: )
>> + #(slot columnIndex 'Sets the current column' Number readWrite Player
>> getColumnIndex Player setColumnIndex: )
>> + #(slot currentCharacters 'Lets you read and modify the characters of the
>> current cell' String readWrite Player getCurrentCharacters Player
>> setCurrentCharacters: )
>> + #(slot currentNumericValue 'Lets you read and modify the numeric value
>> of the current cell' Number readWrite Player getCurrentNumericValue Player
>> setCurrentNumericValue: )
>> + ))
>> +
>> + (#'data i/o' (
>> + #(slot writeMode 'Lets you choose a write mode (overwrite or append)'
>> WriteMode readWrite Player getWriteMode Player setWriteMode: )
>> + #(slot csvSeparator 'Lets you choose a character to act as a separator
>> between cells' String readWrite Player getCsvSeparator Player
>> setCsvSeparator: )
>> + #(slot csvFileName 'Sets the name of the file to import/export data'
>> String readWrite Player getCsvFileName Player setCsvFileName: )
>> + #(command importDataFromFile 'Reads the data from the file and loads it
>> in the spreadsheet')
>> + #(command exportDataToFile 'Writes the data from the spreadsheet into
>> the file')
>> + ))
>> +
>> + )!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph class>>initialize (in category 'class
>> initialization') -----
>> + initialize
>> + "
>> + self initialize.
>> + "
>> + Vocabulary addStandardVocabulary: (SymbolListType new
>> vocabularyName: #WriteMode;
>> + symbols: #(#overwrite #append)).!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph class>>model: (in category 'instance
>> creation') -----
>> + model: aSkObject
>> + ^ super new model: aSkObject!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>acceptDroppingMorph:event: (in category
>> 'drag and drop') -----
>> + acceptDroppingMorph: aMorph event: evt
>> + | cellPos successed |
>> + cellPos _ self screenToCell: aMorph topLeft.
>> + (cellPos x < 1
>> + or: [cellPos y < 1])
>> + ifTrue: [self beep: 'arrow'.
>> + ^ aMorph rejectDropMorphEvent: evt].
>> + successed _ false.
>> + successed _ (aMorph isKindOf: SkGridPartsMorph)
>> + ifTrue: [self acceptRuleMorph: aMorph
>> event: evt]
>> + ifFalse: [aMorph class = PhraseTileMorph
>> + ifTrue: [self
>> acceptPhraseTileMorph: aMorph event: evt]
>> + ifFalse: [aMorph class =
>> TileMorph
>> + ifTrue:
>> [self acceptTileMorph: aMorph event: evt]]].
>> + successed
>> + ifTrue: [self beep: 'cassete']
>> + ifFalse: [self beep: 'arrow'.
>> + aMorph rejectDropMorphEvent: evt]!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>acceptPhraseTileMorph:event: (in
>> category 'drag and drop') -----
>> + acceptPhraseTileMorph: aMorph event: evt
>> + | setter getter |
>> + getter _ aMorph operatorTile operatorOrExpression.
>> + setter _ ('set'
>> + , (getter allButFirst: 3) , ':') asSymbol.
>> + self model
>> + modelAt: (self screenToCell: aMorph topLeft)
>> + for: aMorph actualObject
>> + getter: getter
>> + setter: setter.
>> + ^ true!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>acceptRuleMorph:event: (in category
>> 'drag and drop') -----
>> + acceptRuleMorph: aMorph event: evt
>> + | cellPos card |
>> + model parent adopt: aMorph model rule.
>> + cellPos _ (self screenToCell: aMorph topLeft)
>> + + (aMorph cellOrigin - aMorph area
>> topLeft).
>> + self model textAt: cellPos put: '=' , aMorph model codeString.
>> + card _ self
>> + cardMorphAt: cellPos
>> + ifAbsent: [^ false].
>> + card model rule = aMorph model rule
>> + ifFalse: ["maybe successed"
>> + ^ false].
>> + aMorph halo
>> + ifNotNilDo: [:halo | halo setTarget: card].
>> + ^ true!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>acceptTileMorph:event: (in category
>> 'drag and drop') -----
>> + acceptTileMorph: aMorph event: evt
>> + | object |
>> + object _ aMorph actualObject.
>> + self model
>> + at: (self screenToCell: aMorph topLeft)
>> + put: object.
>> + ^ true!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>areaChanged (in category 'layout')
>> -----
>> + areaChanged
>> + super areaChanged.
>> + self
>> + submorphsDo: [:m | (m isKindOf: SkGridMorph)
>> + ifTrue: [m areaChanged]]!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>cardMorphAt:ifAbsent: (in category
>> 'accessing') -----
>> + cardMorphAt: aPoint ifAbsent: aBlock
>> + ^ self submorphs
>> + detect: [:m | m class = SkCardMorph
>> + and: [m cellOrigin = aPoint]]
>> + ifNone: aBlock!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>cellExtentAt: (in category 'layout')
>> -----
>> + cellExtentAt: aPoint
>> + | cellExtent x y |
>> + ^ (model notNil
>> + and: [(cellExtent _ model findName: self
>> cellExtentName) class == SkSheet ])
>> + ifTrue: [x _ (cellExtent
>> + at: aPoint x @ 1
>> + ifAbsent: [SkGridMorph
>> standardCellExtent]) x.
>> + y _ (cellExtent
>> + at: 1 @ aPoint y
>> + ifAbsent: [SkGridMorph
>> standardCellExtent]) y.
>> + x @ y]
>> + ifFalse: [SkGridMorph standardCellExtent]!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>cellExtentName (in category 'layout')
>> -----
>> + cellExtentName
>> + ^ 'CellExtent'!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>copySelection (in category 'action')
>> -----
>> + copySelection
>> + | text |
>> + text _ Text
>> + streamContents: [:aStream | self selection
>> top
>> + to: self selection bottom
>> - 1
>> + do: [:y |
>> + (self selection
>> left to: self selection right - 1)
>> + do: [:x |
>> aStream
>> +
>> nextPutAll: (model textAt: x @ y)]
>> +
>> separatedBy: [aStream nextPut: Character tab].
>> + aStream nextPut:
>> Character cr]].
>> + Clipboard clipboardText: text!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>cut (in category 'action') -----
>> + cut
>> + self copySelection.
>> + self selection top
>> + to: self selection bottom - 1
>> + do: [:y | self selection left
>> + to: self selection right - 1
>> + do: [:x | model textAt: x @ y put: '']]!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>drawCell:at: (in category 'drawing')
>> -----
>> + drawCell: aCanvas at: aPoint
>> + (aPoint x isZero
>> + or: [aPoint y isZero])
>> + ifTrue: [^ self
>> + drawLabel: aCanvas
>> + string: (self labelAt: aPoint)
>> + at: aPoint].
>> + self flag: #TODO.
>> + self
>> + drawContents: ((showFormula notNil
>> + and: [showFormula])
>> + ifTrue: [model textAt: aPoint]
>> + ifFalse: [ showFormula _ false.model at:
>> aPoint.])
>> + on: aCanvas
>> + at: aPoint!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>drawOn: (in category 'drawing') -----
>> + drawOn: aCanvas
>> + super drawOn: aCanvas.
>> + dropZone
>> + ifNotNil: [aCanvas
>> + fillRectangle: (self
>> + cellAreaToScreen:
>> (dropZone intersect: area))
>> + fillStyle: (SkColorSet labelFor: model)
>> + borderStyle: self borderStyle].
>> + self drawDependMap: aCanvas.
>> + self drawBorder: aCanvas.
>> + self drawContents: aCanvas!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>editContents (in category 'accessing')
>> -----
>> + editContents
>> + self selection ifNil: [^''].
>> + ^ model
>> + ifNil: ['']
>> + ifNotNil: [model textAt: self selection origin]!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>editContents: (in category 'accessing')
>> -----
>> + editContents: aText
>> + "Accept text"
>> + self selection ifNil: [^self].
>> + model
>> + ifNotNil: [model textAt: self selection origin put:
>> aText].
>> + selectionMorph deleteEditor!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>fillStyle (in category 'visual
>> properties') -----
>> + fillStyle
>> + ^ SkColorSet baseFor: model rule!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>goto: (in category 'navigation') -----
>> + goto: aSkObject
>> + | grid |
>> + self beep: 'rice'.
>> + grid _ aSkObject grid.
>> + self replace: grid.
>> + grid history: self.
>> + ^ grid!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>handlesKeyboard: (in category 'event
>> handling') -----
>> + handlesKeyboard: evt
>> + ^ true!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>handlesMouseDown: (in category 'event
>> handling') -----
>> + handlesMouseDown: evt
>> + ^ true!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>handlesMouseOver: (in category 'event
>> handling') -----
>> + handlesMouseOver: evt
>> + ^ true
>> + !
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>handlesMouseOverDragging: (in category
>> 'event handling') -----
>> + handlesMouseOverDragging: evt
>> +
>> + ^ true
>> + !
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>height: (in category 'accessing') -----
>> + height: aNumber
>> + ^ self setExtentFromHalo: self width @ aNumber!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>history: (in category 'navigation')
>> -----
>> + history: aSkSheetMorph
>> + history
>> + ifNil: [history _ aSkSheetMorph]!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>initialize (in category
>> 'initialization') -----
>> + initialize
>> + super initialize.
>> + selectionMorph _ SkGridSelectionMorph new holder: self.
>> + self
>> + area: (1 @ 1 extent: 4 @ 4).
>> + self
>> + borderStyle: (RaisedBorder color: Color black width: 1).
>> + self
>> + fillStyle: (SolidFillStyle
>> + color: (Color
>> + r: 1.0
>> + g: 0.935
>> + b: 0.839)).
>> + self cornerStyle: #rounded.
>> + self selection: nil.
>> + showFormula _ false!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>initializeToStandAlone (in category
>> 'parts bin') -----
>> + initializeToStandAlone
>> + super initializeToStandAlone.
>> + self model: SkSheet new attachProject.
>> + self
>> + area: (0 @ 0 extent: 3 @ 3)!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>isModelStepping (in category 'stepping
>> and presenter') -----
>> + isModelStepping
>> + ^ model isStepping!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>isMorphicModel (in category
>> 'classification') -----
>> + isMorphicModel
>> + ^true!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>keyStroke: (in category 'event
>> handling') -----
>> + keyStroke: evt
>> + selectionMorph keyStroke: evt!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>model (in category 'accessing') -----
>> + model
>> + ^ model!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>model: (in category 'accessing') -----
>> + model: anObject
>> + model
>> + ifNotNil: [model removeDependent: self].
>> + anObject
>> + ifNotNil: [anObject addDependent: self].
>> + model _ anObject.
>> + self update: #all.
>> + !
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>mouseDown: (in category 'event
>> handling') -----
>> + mouseDown: event
>> + self
>> + selectSelection: (self screenToCell: event position).
>> + event yellowButtonPressed
>> + ifTrue: [^ selectionMorph invokeMenu: event].
>> + "For easy doublecilck to selection"
>> + event hand waitForClicksOrDrag: selectionMorph event: event.
>> + event hand mouseFocus: selectionMorph!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>mouseEnter: (in category 'event
>> handling') -----
>> + mouseEnter: evt
>> + | hand tile |
>> + hand _ evt hand.
>> + hand submorphs size = 1
>> + ifFalse: [^ self].
>> + tile _ hand firstSubmorph renderedMorph.
>> + (self wantsDroppedMorph: tile event: evt)
>> + ifFalse: [^ self].
>> + self
>> + startStepping: #trackDropZones
>> + at: Time millisecondClockValue
>> + arguments: nil
>> + stepTime: 20!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>mouseEnterDragging: (in category 'event
>> handling') -----
>> + mouseEnterDragging: evt
>> + "Test button state elsewhere if at all"
>> + ^ self mouseEnter: evt!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>mouseLeave: (in category 'event
>> handling') -----
>> + mouseLeave: evt
>> + dropZone _ nil.
>> + self stopSteppingSelector: #trackDropZones!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>mouseLeaveDragging: (in category 'event
>> handling') -----
>> + mouseLeaveDragging: evt
>> + ^ self mouseLeave: evt!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>mouseUpTick:onItem: (in category 'event
>> handling') -----
>> + mouseUpTick: evt onItem: aMorph
>> + aMorph isTicking
>> + ifTrue: [model stopStepping.
>> + aMorph isTicking: false]
>> + ifFalse: [model startStepping.
>> + aMorph isTicking: true]!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>openLibrary (in category 'action')
>> -----
>> + openLibrary
>> + (SkObject root at: 'Library') grid openInHand!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>paste (in category 'action') -----
>> + paste
>> + | pos selection isJustACell |
>> + selection _ self selection.
>> + isJustACell _ selection extent = (1 @ 1).
>> + pos _ selection origin.
>> + Clipboard clipboardText
>> + split: Character cr
>> + do: [:line |
>> + line
>> + split: Character tab
>> + do: [:field |
>> + (isJustACell
>> + or: [selection
>> containsPoint: pos])
>> + ifTrue: [model textAt: pos
>> put: field].
>> + pos _ pos + (1 @ 0)].
>> + pos _ selection left @ (pos y + 1)]!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>previousPage (in category 'navigation')
>> -----
>> + previousPage
>> + self beep: 'rice'.
>> + ^ history
>> + ifNotNil: [self replace: history]!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>privateRemoveMorph: (in category
>> 'private') -----
>> + privateRemoveMorph: aMorph
>> + aMorph class = SkCardMorph
>> + ifTrue: [self beep: 'cork'.
>> + self model textAt: aMorph cellOrigin put: ''].
>> + super privateRemoveMorph: aMorph!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>replace: (in category 'navigation')
>> -----
>> + replace: aSkSheetMorph
>> + aSkSheetMorph area: self area.
>> + aSkSheetMorph position: self position.
>> + self owner replaceSubmorph: self by: aSkSheetMorph.
>> + ^ aSkSheetMorph!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>selectSelection: (in category 'action')
>> -----
>> + selectSelection: aPoint
>> + "Select at event position"
>> + aPoint
>> + ifNil: [^ self].
>> + self
>> + selection: (aPoint extent: 1 @ 1).
>> + self changed!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>selection (in category 'accessing')
>> -----
>> + selection
>> + ^ selectionMorph area!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>selection: (in category 'accessing')
>> -----
>> + selection: aRectangle
>> + (submorphs indexOf: selectionMorph) = 1
>> + ifFalse: [self addMorphFront: selectionMorph].
>> + selectionMorph area: aRectangle!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>selectionMorph (in category
>> 'accessing') -----
>> + selectionMorph
>> + ^ selectionMorph!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>setCellExtentFromHalo: (in category
>> 'layout') -----
>> + setCellExtentFromHalo: newExtent
>> + | eachExtent cellExtent |
>> + model
>> + ifNil: [^ self].
>> + cellExtent _ model
>> + at: self cellExtentName
>> + ifAbsent: [model
>> + at: self cellExtentName
>> + put: (SkSheet new parent:
>> model)].
>> + eachExtent _ newExtent // self selection extent max: 10 @ 10.
>> + self selection left
>> + to: self selection right - 1
>> + do: [:x | cellExtent at: x @ 1 put: eachExtent].
>> + self selection top
>> + to: self selection bottom - 1
>> + do: [:y | cellExtent at: 1 @ y put: eachExtent].
>> + self areaChanged.
>> + self changed!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>setExtentFromHalo: (in category
>> 'layout') -----
>> + setExtentFromHalo: newExtent
>> + | card cardMorph direction size |
>> + super setExtentFromHalo: newExtent.
>> + direction := nil.
>> + area height = 1
>> + ifTrue:
>> + [direction := #right.
>> + size := area width - 1]
>> + ifFalse:
>> + [area width = 1
>> + ifTrue:
>> + [direction := #down.
>> + size := area height - 1]].
>> + direction ifNotNil:
>> + [card := model new.
>> + card direction: direction.
>> + card size: size.
>> + cardMorph := SkCardMorph model: card.
>> + cardMorph position: self position.
>> + self owner addMorph: cardMorph.
>> + self halo ifNotNilDo: [:helo | helo setTarget:
>> cardMorph].
>> + self delete]!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>showFormula (in category 'accessing')
>> -----
>> + showFormula
>> + ^ showFormula!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>spawn (in category 'action') -----
>> + spawn
>> + model inspectAt: self selection topLeft!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>spawn: (in category 'action') -----
>> + spawn: anObject
>> + self spawn!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>startStepping (in category 'stepping
>> and presenter') -----
>> + startStepping
>> + model
>> + ifNotNil: [model startStepping].
>> + super startStepping.
>> + !
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>step (in category 'stepping and
>> presenter') -----
>> + step
>> + self changed!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>toggleFormula (in category 'accessing')
>> -----
>> + toggleFormula
>> + showFormula _ showFormula not!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>trackDropZones (in category 'event
>> handling') -----
>> + trackDropZones
>> + | hand target |
>> + hand _ self primaryHand.
>> + ((self hasOwner: hand) not
>> + and: [hand submorphCount > 0])
>> + ifTrue: [target _ hand submorphs first.
>> + dropZone _ (self screenToCell: target topLeft)
>> + extent: ((target
>> respondsTo: #area)
>> + ifTrue:
>> [target area extent]
>> + ifFalse:
>> [1 @ 1]).
>> + (dropZone topLeft x < 1
>> + or: [dropZone topLeft y < 1])
>> + ifTrue: [dropZone _ nil].
>> + self changed]
>> + ifFalse: [dropZone _ nil.
>> + self stopSteppingSelector: #trackDropZones]!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>tryToRenameTo: (in category
>> 'accessing') -----
>> + tryToRenameTo: aName
>> + ^ model
>> + ifNotNilDo: [:m | m name: aName]!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>upPage (in category 'navigation') -----
>> + upPage
>> + self beep: 'rice'.
>> + ^ self goto: model up!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>update: (in category 'updating') -----
>> + update: anObject
>> + anObject = #cardList
>> + ifTrue: [self updateCardList].
>> + anObject = #all
>> + ifTrue: [self updateCardList].
>> + self changed!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>updateCardList (in category 'updating')
>> -----
>> + updateCardList
>> + | cardList morph |
>> + cardList _ model cardList: self visibleArea.
>> + self
>> + removeAllMorphsIn: (self submorphs
>> + select: [:m | m class == SkCardMorph]).
>> + cardList
>> + do: [:cardInfo |
>> + morph _ SkCardMorph model: cardInfo value.
>> + morph holder: self.
>> + self addMorph: morph.
>> + morph cellOrigin: cardInfo key].
>> + selectionMorph hide!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>veryDeepInner: (in category 'copying')
>> -----
>> + veryDeepInner: deepCopier
>> + "history is not copied"
>> + model _ model veryDeepCopyWith: deepCopier.
>> + selectionMorph _ (selectionMorph veryDeepCopyWith: deepCopier)
>> holder: self.
>> + dropZone _ dropZone veryDeepCopyWith: deepCopier.
>> + showFormula _ showFormula veryDeepCopyWith: deepCopier.
>> + super veryDeepInner: deepCopier!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>wantsDroppedMorph:event: (in category
>> 'drag and drop') -----
>> + wantsDroppedMorph: aMorph event: anEvent
>> + ^ aMorph class = PhraseTileMorph
>> + or: [aMorph class = TileMorph
>> + or: [aMorph isKindOf: SkGridPartsMorph]]!
>>
>> Item was added:
>> + ----- Method: SkBasicSheetMorph>>width: (in category 'accessing') -----
>> + width: aNumber
>> + ^ self setExtentFromHalo: aNumber @ self height!
>>
>> Item was changed:
>> ----- Method: SkCardMorph>>doubleClick: (in category 'event handling')
>> -----
>> doubleClick: evt
>> | sheet |
>> (holder notNil
>> and: [owner = holder])
>> ifTrue: [^ holder goto: model].
>> self owner = World
>> ifTrue: [self delete].
>> + sheet _ SkBasicSheetMorph allInstances
>> - sheet _ SkSheetMorph allInstances
>> detect: [:each | each world = World
>> and: [each model = model]]
>> ifNone: [model grid].
>> sheet position: self position;
>> openInWorld!
>>
>> Item was changed:
>> ----- Method: SkCardMorph>>replaceToSheet: (in category 'layout') -----
>> replaceToSheet: newCellExtent
>> "Create new spreadsheet for the model. And I will be deleted"
>> | sheetMorph |
>> (newCellExtent y > 1
>> and: [newCellExtent x > 1])
>> + ifTrue: [sheetMorph _ SkBasicSheetMorph new model: model.
>> - ifTrue: [sheetMorph _ SkSheetMorph new model: model.
>> sheetMorph
>> area: (0 @ 0 extent: newCellExtent).
>> sheetMorph position: self position.
>> self owner addMorph: sheetMorph.
>> self halo
>> ifNotNilDo: [:helo | helo setTarget:
>> sheetMorph].
>> ^ self delete]!
>>
>> Item was changed:
>> ----- Method: SkObject class>>grid (in category 'instance creation')
>> -----
>> grid
>> | case grid |
>> + grid _ SkBasicSheetMorph new model: (case _ self new).
>> - grid _ SkSheetMorph new model: (case _ self new).
>> grid area: case defaultArea.
>> ^ grid!
>>
>> Item was changed:
>> ----- Method: SkObject>>grid (in category 'initialization') -----
>> grid
>> | grid |
>> + grid _ SkBasicSheetMorph new model: self.
>> - grid _ SkSheetMorph new model: self.
>> grid area: self defaultArea.
>> ^ grid!
>>
>> Item was changed:
>> + Morph subclass: #SkSheetMorph
>> + instanceVariableNames: 'sheet'
>> - SkGridMorph subclass: #SkSheetMorph
>> - instanceVariableNames: 'history model selectionMorph dropZone
>> showFormula'
>> classVariableNames: ''
>> poolDictionaries: ''
>> category: 'Skeleton-Base'!
>> -
>> - !SkSheetMorph commentStamp: 'tak 12/11/2003 19:10' prior: 0!
>> - I am a presentation compornent for showing as 2-D grid.
>> - The contents what I show is depended on a model.
>> - I never access to a cell directly except through model because
>> - a cell doesn't know where he locates. Basically, Position information is
>> - only in model.
>> -
>> - cellArea Rectangle -- the area of cells for drawing. Actual
>> size of table is cellArea extent.
>> - model SkSheet --
>> - !
>>
>> Item was changed:
>> + ----- Method: SkSheetMorph class>>additionsToViewerCategories (in
>> category 'as yet unclassified') -----
>> - ----- Method: SkSheetMorph class>>additionsToViewerCategories (in
>> category 'viewer categories') -----
>> additionsToViewerCategories
>> + ^(Smalltalk at: #SkRawSheetMorph ifAbsent: [^ #()])
>> + additionsToViewerCategories!
>> - ^ #(
>> - (#spreadsheet (
>> - #(command clearTable 'Deletes the contents of all cells')
>> - #(command clearRow 'Deletes the contents of the current row cells' )
>> - #(command clearColumn 'Deletes the contents of the current columns
>> cells' )
>> - #(slot totalRows 'Lets you change the amount of rows in the spreadsheet'
>> Number readWrite Player getTotalRows Player setTotalRows: )
>> - #(slot totalColumns 'Lets you change the amount of columns in the
>> spreadsheet' Number readWrite Player getTotalColumns Player setTotalColumns:
>> )
>> - #(slot rowIndex 'Sets the current row' Number readWrite Player
>> getRowIndex Player setRowIndex: )
>> - #(slot columnIndex 'Sets the current column' Number readWrite Player
>> getColumnIndex Player setColumnIndex: )
>> - #(slot currentCharacters 'Lets you read and modify the characters of the
>> current cell' String readWrite Player getCurrentCharacters Player
>> setCurrentCharacters: )
>> - #(slot currentNumericValue 'Lets you read and modify the numeric value
>> of the current cell' Number readWrite Player getCurrentNumericValue Player
>> setCurrentNumericValue: )
>> - ))
>> -
>> - (#'data i/o' (
>> - #(slot writeMode 'Lets you choose a write mode (overwrite or append)'
>> WriteMode readWrite Player getWriteMode Player setWriteMode: )
>> - #(slot csvSeparator 'Lets you choose a character to act as a separator
>> between cells' String readWrite Player getCsvSeparator Player
>> setCsvSeparator: )
>> - #(slot csvFileName 'Sets the name of the file to import/export data'
>> String readWrite Player getCsvFileName Player setCsvFileName: )
>> - #(command importDataFromFile 'Reads the data from the file and loads it
>> in the spreadsheet')
>> - #(command exportDataToFile 'Writes the data from the spreadsheet into
>> the file')
>> - ))
>> -
>> - )!
>>
>> Item was changed:
>> + ----- Method: SkSheetMorph class>>descriptionForPartsBin (in category
>> 'as yet unclassified') -----
>> - ----- Method: SkSheetMorph class>>descriptionForPartsBin (in category
>> 'parts bin') -----
>> descriptionForPartsBin
>> + ^ self partName: 'Spreadsheet' translated
>> + categories: {'Skeleton' translated}
>> + documentation: 'A spreadsheet' translated!
>> - ^ self partName: 'Spread Sheet'
>> - categories: #('Skeleton')
>> - documentation: 'A spread sheet'!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph class>>formPreviousPage (in category
>> 'constants') -----
>> - formPreviousPage
>> - ^((ColorForm
>> - extent: 5 at 9
>> - depth: 1
>> - fromArray: #( 4026531840 3758096384 3489660928 2952790016
>> 1879048192 2952790016 3489660928 3758096384 4026531840)
>> - offset: 0 at 0)
>> - colorsFromArray: #(#(0.0 0.0 0.0) #( ) ))
>> - " form storeString "!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph class>>formUpPage (in category 'constants')
>> -----
>> - formUpPage
>> - ^((ColorForm
>> - extent: 9 at 5
>> - depth: 2
>> - fromArray: #( 2859106304 2845474816 2795929600 2326298624
>> 1431650304)
>> - offset: 0 at 0)
>> - colorsFromArray: #(#(0.004 0.004 0.008) #(0.0 0.0 0.004) #( )
>> #(0.0 0.0 0.0) ))
>> - " form storeString "!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph class>>initialize (in category 'class
>> initialization') -----
>> - initialize
>> - "
>> - self initialize.
>> - "
>> - Vocabulary addStandardVocabulary: (SymbolListType new
>> vocabularyName: #WriteMode;
>> - symbols: #(#overwrite #append)).!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph class>>model: (in category 'instance
>> creation') -----
>> - model: aSkObject
>> - ^ super new model: aSkObject!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>acceptDroppingMorph:event: (in category
>> 'drag and drop') -----
>> - acceptDroppingMorph: aMorph event: evt
>> - | cellPos successed |
>> - cellPos _ self screenToCell: aMorph topLeft.
>> - (cellPos x < 1
>> - or: [cellPos y < 1])
>> - ifTrue: [self beep: 'arrow'.
>> - ^ aMorph rejectDropMorphEvent: evt].
>> - successed _ false.
>> - successed _ (aMorph isKindOf: SkGridPartsMorph)
>> - ifTrue: [self acceptRuleMorph: aMorph
>> event: evt]
>> - ifFalse: [aMorph class = PhraseTileMorph
>> - ifTrue: [self
>> acceptPhraseTileMorph: aMorph event: evt]
>> - ifFalse: [aMorph class =
>> TileMorph
>> - ifTrue:
>> [self acceptTileMorph: aMorph event: evt]]].
>> - successed
>> - ifTrue: [self beep: 'cassete']
>> - ifFalse: [self beep: 'arrow'.
>> - aMorph rejectDropMorphEvent: evt]!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>acceptPhraseTileMorph:event: (in category
>> 'drag and drop') -----
>> - acceptPhraseTileMorph: aMorph event: evt
>> - | setter getter |
>> - getter _ aMorph operatorTile operatorOrExpression.
>> - setter _ ('set'
>> - , (getter allButFirst: 3) , ':') asSymbol.
>> - self model
>> - modelAt: (self screenToCell: aMorph topLeft)
>> - for: aMorph actualObject
>> - getter: getter
>> - setter: setter.
>> - ^ true!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>acceptRuleMorph:event: (in category 'drag
>> and drop') -----
>> - acceptRuleMorph: aMorph event: evt
>> - | cellPos card |
>> - model parent adopt: aMorph model rule.
>> - cellPos _ (self screenToCell: aMorph topLeft)
>> - + (aMorph cellOrigin - aMorph area
>> topLeft).
>> - self model textAt: cellPos put: '=' , aMorph model codeString.
>> - card _ self
>> - cardMorphAt: cellPos
>> - ifAbsent: [^ false].
>> - card model rule = aMorph model rule
>> - ifFalse: ["maybe successed"
>> - ^ false].
>> - aMorph halo
>> - ifNotNilDo: [:halo | halo setTarget: card].
>> - ^ true!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>acceptTileMorph:event: (in category 'drag
>> and drop') -----
>> - acceptTileMorph: aMorph event: evt
>> - | object |
>> - object _ aMorph actualObject.
>> - self model
>> - at: (self screenToCell: aMorph topLeft)
>> - put: object.
>> - ^ true!
>>
>> Item was added:
>> + ----- Method: SkSheetMorph>>addPageControls (in category
>> 'initialization') -----
>> + addPageControls
>> + | panel prev up title |
>> +
>> + panel := AlignmentMorph newRow
>> + color: Color transparent;
>> + cellInset: 3;
>> + hResizing: #shrinkWrap;
>> + vResizing: #shrinkWrap.
>> + panel addMorphBack: self tickMorph.
>> + prev := SketchMorph withForm: self prevButtonForm.
>> + prev
>> + on: #mouseDown
>> + send: #previousPage
>> + to: sheet.
>> + prev position: 32 @ 3.
>> + prev setBalloonText: 'View the previous sheet.' translated.
>> + panel addMorphBack: prev.
>> + up := SketchMorph withForm: self upButtonForm.
>> + up
>> + on: #mouseDown
>> + send: #upPage
>> + to: sheet.
>> + up position: 44 @ 4.
>> + up setBalloonText: 'View the definision or the parent rule.'
>> translated.
>> + panel addMorphBack: up.
>> + title := UpdatingStringMorph new useStringFormat
>> + target: self;
>> + putSelector: #setNameTo:;
>> + getSelector: #externalName.
>> + panel addMorphBack: title.
>> + self addMorph: panel!
>>
>> Item was added:
>> + ----- Method: SkSheetMorph>>addSheet: (in category 'initialization')
>> -----
>> + addSheet: aSheet
>> + self addMorph: (sheet := aSheet).
>> + self renameTo: sheet externalName!
>>
>> Item was added:
>> + ----- Method: SkSheetMorph>>area: (in category 'sheet delegation') -----
>> + area: aRectangle
>> + ^ sheet area: aRectangle
>> + !
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>areaChanged (in category 'layout') -----
>> - areaChanged
>> - super areaChanged.
>> - self
>> - submorphsDo: [:m | (m isKindOf: SkGridMorph)
>> - ifTrue: [m areaChanged]]!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>cardMorphAt:ifAbsent: (in category
>> 'accessing') -----
>> - cardMorphAt: aPoint ifAbsent: aBlock
>> - ^ self submorphs
>> - detect: [:m | m class = SkCardMorph
>> - and: [m cellOrigin = aPoint]]
>> - ifNone: aBlock!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>cellExtentAt: (in category 'layout') -----
>> - cellExtentAt: aPoint
>> - | cellExtent x y |
>> - ^ (model notNil
>> - and: [(cellExtent _ model findName: self
>> cellExtentName) class == SkSheet ])
>> - ifTrue: [x _ (cellExtent
>> - at: aPoint x @ 1
>> - ifAbsent: [SkGridMorph
>> standardCellExtent]) x.
>> - y _ (cellExtent
>> - at: 1 @ aPoint y
>> - ifAbsent: [SkGridMorph
>> standardCellExtent]) y.
>> - x @ y]
>> - ifFalse: [SkGridMorph standardCellExtent]!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>cellExtentName (in category 'layout') -----
>> - cellExtentName
>> - ^ 'CellExtent'!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>copySelection (in category 'action') -----
>> - copySelection
>> - | text |
>> - text _ Text
>> - streamContents: [:aStream | self selection
>> top
>> - to: self selection bottom
>> - 1
>> - do: [:y |
>> - (self selection
>> left to: self selection right - 1)
>> - do: [:x |
>> aStream
>> -
>> nextPutAll: (model textAt: x @ y)]
>> -
>> separatedBy: [aStream nextPut: Character tab].
>> - aStream nextPut:
>> Character cr]].
>> - Clipboard clipboardText: text!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>cut (in category 'action') -----
>> - cut
>> - self copySelection.
>> - self selection top
>> - to: self selection bottom - 1
>> - do: [:y | self selection left
>> - to: self selection right - 1
>> - do: [:x | model textAt: x @ y put: '']]!
>>
>> Item was added:
>> + ----- Method: SkSheetMorph>>doesNotUnderstand: (in category 'dnu') -----
>> + doesNotUnderstand: aMessage
>> + "Quick hack to automagically generate missing methods"
>> + self flag: #Richo.
>> + (sheet respondsTo: aMessage selector)
>> + ifTrue: [ | str |
>> + str := aMessage createStubMethod allButLast: 24.
>> + self class compile: str, '^ sheet ', str
>> classified: #'autogenerated'.
>> + ^aMessage sentTo: self.
>> + ]
>> + ifFalse: [^super doesNotUnderstand: aMessage]!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>drawCell:at: (in category 'drawing') -----
>> - drawCell: aCanvas at: aPoint
>> - (aPoint x isZero
>> - or: [aPoint y isZero])
>> - ifTrue: [^ self
>> - drawLabel: aCanvas
>> - string: (self labelAt: aPoint)
>> - at: aPoint].
>> - self flag: #TODO.
>> - self
>> - drawContents: ((showFormula notNil
>> - and: [showFormula])
>> - ifTrue: [model textAt: aPoint]
>> - ifFalse: [ showFormula _ false.model at:
>> aPoint.])
>> - on: aCanvas
>> - at: aPoint!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>drawName: (in category 'drawing') -----
>> - drawName: aCanvas
>> - | name |
>> - name := model ruleName asString.
>> - model isInstance
>> - ifTrue: [name := name , '*'].
>> - aCanvas
>> - clipBy: self bounds
>> - during: [:canvas | canvas
>> - drawString: name
>> - at: self topLeft + (28 @ 6)
>> - font: self class titleStyle
>> - color: Color gray]!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>drawOn: (in category 'drawing') -----
>> - drawOn: aCanvas
>> - super drawOn: aCanvas.
>> - self drawGrabAreaOn: aCanvas.
>> - dropZone
>> - ifNotNil: [aCanvas
>> - fillRectangle: (self
>> - cellAreaToScreen:
>> (dropZone intersect: area))
>> - fillStyle: (SkColorSet labelFor: model)
>> - borderStyle: self borderStyle].
>> - self drawDependMap: aCanvas.
>> - self drawName: aCanvas.
>> - self drawBorder: aCanvas.
>> - self drawContents: aCanvas!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>editContents (in category 'accessing') -----
>> - editContents
>> - self selection ifNil: [^''].
>> - ^ model
>> - ifNil: ['']
>> - ifNotNil: [model textAt: self selection origin]!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>editContents: (in category 'accessing')
>> -----
>> - editContents: aText
>> - "Accept text"
>> - self selection ifNil: [^self].
>> - model
>> - ifNotNil: [model textAt: self selection origin put:
>> aText].
>> - selectionMorph deleteEditor!
>>
>> Item was added:
>> + ----- Method: SkSheetMorph>>extent: (in category 'accessing') -----
>> + extent: newExtent
>> +
>> + sheet setExtentFromHalo: (newExtent max: (165 at 77)) -
>> + (self
>> layoutInset + self cellInset + (0 @ self pageControls height))!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>fillStyle (in category 'visual properties')
>> -----
>> - fillStyle
>> - ^ SkColorSet baseFor: model rule!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>goto: (in category 'navigation') -----
>> - goto: aSkObject
>> - | grid |
>> - self beep: 'rice'.
>> - grid _ aSkObject grid.
>> - self replace: grid.
>> - grid history: self.
>> - ^ grid!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>handlesKeyboard: (in category 'event
>> handling') -----
>> - handlesKeyboard: evt
>> - ^ true!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>handlesMouseDown: (in category 'event
>> handling') -----
>> - handlesMouseDown: evt
>> - ^ (self grabArea containsPoint: evt position) not!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>handlesMouseOver: (in category 'event
>> handling') -----
>> - handlesMouseOver: evt
>> - ^ true
>> - !
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>handlesMouseOverDragging: (in category
>> 'event handling') -----
>> - handlesMouseOverDragging: evt
>> -
>> - ^ true
>> - !
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>height: (in category 'accessing') -----
>> - height: aNumber
>> - ^ self setExtentFromHalo: self width @ aNumber!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>history: (in category 'navigation') -----
>> - history: aSkSheetMorph
>> - history
>> - ifNil: [history _ aSkSheetMorph]!
>>
>> Item was changed:
>> ----- Method: SkSheetMorph>>initialize (in category 'initialization')
>> -----
>> initialize
>> super initialize.
>> + self layoutPolicy: TableLayout new;
>> + cellPositioning: #leftCenter;
>> + cornerStyle: #rounded;
>> + color: (Color r: 0.645 g: 0.645 b: 1.0);
>> + borderWidth: 1;
>> + borderColor: (Color r: 0.516 g: 0.516 b: 1.0);
>> + listDirection: #topToBottom;
>> + hResizing: #shrinkWrap;
>> + vResizing: #shrinkWrap.
>> + self addSheet: SkBasicSheetMorph newStandAlone;
>> + addPageControls!
>> - self showPageControls.
>> - selectionMorph _ SkGridSelectionMorph new holder: self.
>> - self
>> - area: (1 @ 1 extent: 4 @ 4).
>> - self
>> - borderStyle: (RaisedBorder color: Color black width: 1).
>> - self
>> - fillStyle: (SolidFillStyle
>> - color: (Color
>> - r: 1.0
>> - g: 0.935
>> - b: 0.839)).
>> - self cornerStyle: #rounded.
>> - self selection: nil.
>> - showFormula _ false!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>initializeToStandAlone (in category 'parts
>> bin') -----
>> - initializeToStandAlone
>> - super initializeToStandAlone.
>> - self model: SkSheet new attachProject.
>> - self
>> - area: (0 @ 0 extent: 3 @ 3)!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>isModelStepping (in category 'stepping and
>> presenter') -----
>> - isModelStepping
>> - ^ model isStepping!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>isMorphicModel (in category
>> 'classification') -----
>> - isMorphicModel
>> - ^true!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>keyStroke: (in category 'event handling')
>> -----
>> - keyStroke: evt
>> - selectionMorph keyStroke: evt!
>>
>> Item was changed:
>> + ----- Method: SkSheetMorph>>model (in category 'sheet delegation') -----
>> - ----- Method: SkSheetMorph>>model (in category 'accessing') -----
>> model
>> + ^ sheet model!
>> - ^ model!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>model: (in category 'accessing') -----
>> - model: anObject
>> - model
>> - ifNotNil: [model removeDependent: self].
>> - anObject
>> - ifNotNil: [anObject addDependent: self].
>> - model _ anObject.
>> - self update: #all.
>> - !
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>mouseDown: (in category 'event handling')
>> -----
>> - mouseDown: event
>> - self
>> - selectSelection: (self screenToCell: event position).
>> - event yellowButtonPressed
>> - ifTrue: [^ selectionMorph invokeMenu: event].
>> - "For easy doublecilck to selection"
>> - event hand waitForClicksOrDrag: selectionMorph event: event.
>> - event hand mouseFocus: selectionMorph!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>mouseEnter: (in category 'event handling')
>> -----
>> - mouseEnter: evt
>> - | hand tile |
>> - hand _ evt hand.
>> - hand submorphs size = 1
>> - ifFalse: [^ self].
>> - tile _ hand firstSubmorph renderedMorph.
>> - (self wantsDroppedMorph: tile event: evt)
>> - ifFalse: [^ self].
>> - self
>> - startStepping: #trackDropZones
>> - at: Time millisecondClockValue
>> - arguments: nil
>> - stepTime: 20!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>mouseEnterDragging: (in category 'event
>> handling') -----
>> - mouseEnterDragging: evt
>> - "Test button state elsewhere if at all"
>> - ^ self mouseEnter: evt!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>mouseLeave: (in category 'event handling')
>> -----
>> - mouseLeave: evt
>> - dropZone _ nil.
>> - self stopSteppingSelector: #trackDropZones!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>mouseLeaveDragging: (in category 'event
>> handling') -----
>> - mouseLeaveDragging: evt
>> - ^ self mouseLeave: evt!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>mouseUpTick:onItem: (in category 'event
>> handling') -----
>> - mouseUpTick: evt onItem: aMorph
>> - aMorph isTicking
>> - ifTrue: [model stopStepping.
>> - aMorph isTicking: false]
>> - ifFalse: [model startStepping.
>> - aMorph isTicking: true]!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>openLibrary (in category 'action') -----
>> - openLibrary
>> - (SkObject root at: 'Library') grid openInHand!
>>
>> Item was added:
>> + ----- Method: SkSheetMorph>>pageControls (in category 'accessing') -----
>> + pageControls
>> + ^ self submorphs detect: [:each | each ~~ sheet]!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>paste (in category 'action') -----
>> - paste
>> - | pos selection isJustACell |
>> - selection _ self selection.
>> - isJustACell _ selection extent = (1 @ 1).
>> - pos _ selection origin.
>> - Clipboard clipboardText
>> - split: Character cr
>> - do: [:line |
>> - line
>> - split: Character tab
>> - do: [:field |
>> - (isJustACell
>> - or: [selection
>> containsPoint: pos])
>> - ifTrue: [model textAt: pos
>> put: field].
>> - pos _ pos + (1 @ 0)].
>> - pos _ selection left @ (pos y + 1)]!
>>
>> Item was added:
>> + ----- Method: SkSheetMorph>>prevButtonForm (in category 'accessing')
>> -----
>> + prevButtonForm
>> + ^(Form
>> + extent: 9 at 16
>> + depth: 16
>> + fromArray: #( 0 0 0 0 0 0 0 0 0 831258624 0 0 0 12684 831258624 0
>> 0 0 831279775 831258624 0 0 12684 1386173087 831258624 0 0 831279775
>> 1386173087 831258624 0 12684 1386173087 1386173087 831258624 0 831279775
>> 1386173087 1386173087 831258624 12684 1386173087 1386173087 1386173087
>> 831258624 0 831279775 1386173087 1386173087 831258624 0 12684 1386173087
>> 1386173087 831258624 0 0 831279775 1386173087 831258624 0 0 12684 1386173087
>> 831258624 0 0 0 831279775 831258624 0 0 0 12684 831258624 0 0 0 0 831258624)
>> + offset: 522 at 183)!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>previousPage (in category 'navigation')
>> -----
>> - previousPage
>> - self beep: 'rice'.
>> - ^ history
>> - ifNotNil: [self replace: history]!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>privateRemoveMorph: (in category 'private')
>> -----
>> - privateRemoveMorph: aMorph
>> - aMorph class = SkCardMorph
>> - ifTrue: [self beep: 'cork'.
>> - self model textAt: aMorph cellOrigin put: ''].
>> - super privateRemoveMorph: aMorph!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>replace: (in category 'navigation') -----
>> - replace: aSkSheetMorph
>> - aSkSheetMorph area: self area.
>> - aSkSheetMorph position: self position.
>> - self delete.
>> - aSkSheetMorph openInWorld.
>> - ^ aSkSheetMorph!
>>
>> Item was added:
>> + ----- Method: SkSheetMorph>>replaceSubmorph:by: (in category
>> 'submorphs-add/remove') -----
>> + replaceSubmorph: oldMorph by: newMorph
>> + "Update page controls if the sheet gets replaced."
>> + ^ oldMorph == sheet
>> + ifTrue: [self submorphsDo: [:each | each delete];
>> + addSheet: newMorph;
>> + addPageControls]
>> + ifFalse: [super replaceSubmorph: oldMorph by: newMorph]!
>>
>> Item was changed:
>> + ----- Method: SkSheetMorph>>selectSelection: (in category 'sheet
>> delegation') -----
>> - ----- Method: SkSheetMorph>>selectSelection: (in category 'action')
>> -----
>> selectSelection: aPoint
>> + ^ sheet selectSelection: aPoint
>> + !
>> - "Select at event position"
>> - aPoint
>> - ifNil: [^ self].
>> - self
>> - selection: (aPoint extent: 1 @ 1).
>> - self changed!
>>
>> Item was changed:
>> + ----- Method: SkSheetMorph>>selection (in category 'sheet delegation')
>> -----
>> - ----- Method: SkSheetMorph>>selection (in category 'accessing') -----
>> selection
>> + ^ sheet selection
>> + !
>> - ^ selectionMorph area!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>selection: (in category 'accessing') -----
>> - selection: aRectangle
>> - submorphs first == selectionMorph
>> - ifFalse: [self addMorphFront: selectionMorph].
>> - selectionMorph area: aRectangle!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>selectionMorph (in category 'accessing')
>> -----
>> - selectionMorph
>> - ^ selectionMorph!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>setCellExtentFromHalo: (in category
>> 'layout') -----
>> - setCellExtentFromHalo: newExtent
>> - | eachExtent cellExtent |
>> - model
>> - ifNil: [^ self].
>> - cellExtent _ model
>> - at: self cellExtentName
>> - ifAbsent: [model
>> - at: self cellExtentName
>> - put: (SkSheet new parent:
>> model)].
>> - eachExtent _ newExtent // self selection extent max: 10 @ 10.
>> - self selection left
>> - to: self selection right - 1
>> - do: [:x | cellExtent at: x @ 1 put: eachExtent].
>> - self selection top
>> - to: self selection bottom - 1
>> - do: [:y | cellExtent at: 1 @ y put: eachExtent].
>> - self areaChanged.
>> - self changed!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>setExtentFromHalo: (in category 'layout')
>> -----
>> - setExtentFromHalo: newExtent
>> - | card cardMorph direction size |
>> - super setExtentFromHalo: newExtent.
>> - direction := nil.
>> - area height = 1
>> - ifTrue:
>> - [direction := #right.
>> - size := area width - 1]
>> - ifFalse:
>> - [area width = 1
>> - ifTrue:
>> - [direction := #down.
>> - size := area height - 1]].
>> - direction ifNotNil:
>> - [card := model new.
>> - card direction: direction.
>> - card size: size.
>> - cardMorph := SkCardMorph model: card.
>> - cardMorph position: self position.
>> - self owner addMorph: cardMorph.
>> - self halo ifNotNilDo: [:helo | helo setTarget:
>> cardMorph].
>> - self delete]!
>>
>> Item was added:
>> + ----- Method: SkSheetMorph>>setNameTo: (in category 'renaming') -----
>> + setNameTo: aName
>> + sheet tryToRenameTo: aName.
>> + super setNameTo: aName!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>showFormula (in category 'accessing') -----
>> - showFormula
>> - ^ showFormula!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>showPageControls (in category
>> 'initialization') -----
>> - showPageControls
>> - | panel prev up |
>> - panel _ Morph new extent: 80 at 20; color: Color transparent.
>> - panel
>> - on: #mouseDown
>> - send: #yourself
>> - to: self.
>> - panel addMorph: self tickMorph.
>> - prev _ (PolygonMorph new setVertices: {0 @ 7. 7 @ 0. 7 @ 14})
>> borderWidth: 1;
>> - borderColor: Color darkGray;
>> - color: Color transparent.
>> - prev
>> - on: #mouseDown
>> - send: #previousPage
>> - to: self.
>> - prev position: 24 @ 3.
>> - prev setBalloonText: 'View the previous sheet.' translated.
>> - panel addMorph: prev.
>> - up _ prev copy heading: 90.
>> - up
>> - on: #mouseDown
>> - send: #upPage
>> - to: self.
>> - up position: 36 @ 4.
>> - up setBalloonText: 'View the definision or the parent rule.'
>> translated.
>> -
>> - panel addMorph: up.
>> - self addMorph: panel!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>spawn (in category 'action') -----
>> - spawn
>> - model inspectAt: self selection topLeft!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>spawn: (in category 'action') -----
>> - spawn: anObject
>> - self spawn!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>startStepping (in category 'stepping and
>> presenter') -----
>> - startStepping
>> - model
>> - ifNotNil: [model startStepping].
>> - super startStepping.
>> - !
>>
>> Item was changed:
>> + ----- Method: SkSheetMorph>>step (in category 'stepping') -----
>> - ----- Method: SkSheetMorph>>step (in category 'stepping and presenter')
>> -----
>> step
>> + sheet step!
>> - self changed!
>>
>> Item was changed:
>> + ----- Method: SkSheetMorph>>tickMorph (in category 'accessing') -----
>> - ----- Method: SkSheetMorph>>tickMorph (in category 'initialization')
>> -----
>> tickMorph
>> | tick |
>> tick _ SkPluggableTickMorph new.
>> + tick on: sheet isTickingSel: #isModelStepping.
>> - tick position: self position + 1.
>> - tick on: self isTickingSel: #isModelStepping.
>> tick
>> on: #mouseUp
>> send: #mouseUpTick:onItem:
>> + to: sheet.
>> - to: self.
>> tick stepTime: 500.
>> tick startStepping.
>> tick setBalloonText: 'Press to toggle ticking state.' translated.
>> ^ tick!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>toggleFormula (in category 'accessing')
>> -----
>> - toggleFormula
>> - showFormula _ showFormula not!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>trackDropZones (in category 'event
>> handling') -----
>> - trackDropZones
>> - | hand target |
>> - hand _ self primaryHand.
>> - ((self hasOwner: hand) not
>> - and: [hand submorphCount > 0])
>> - ifTrue: [target _ hand submorphs first.
>> - dropZone _ (self screenToCell: target topLeft)
>> - extent: ((target
>> respondsTo: #area)
>> - ifTrue:
>> [target area extent]
>> - ifFalse:
>> [1 @ 1]).
>> - (dropZone topLeft x < 1
>> - or: [dropZone topLeft y < 1])
>> - ifTrue: [dropZone _ nil].
>> - self changed]
>> - ifFalse: [dropZone _ nil.
>> - self stopSteppingSelector: #trackDropZones]!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>tryToRenameTo: (in category 'accessing')
>> -----
>> - tryToRenameTo: aName
>> - ^ model
>> - ifNotNilDo: [:m | m name: aName]!
>>
>> Item was added:
>> + ----- Method: SkSheetMorph>>upButtonForm (in category 'accessing') -----
>> + upButtonForm
>> + ^ self prevButtonForm copy rotateBy: 90!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>upPage (in category 'navigation') -----
>> - upPage
>> - self beep: 'rice'.
>> - ^ self goto: model up!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>update: (in category 'updating') -----
>> - update: anObject
>> - anObject = #cardList
>> - ifTrue: [self updateCardList].
>> - anObject = #all
>> - ifTrue: [self updateCardList].
>> - self changed!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>updateCardList (in category 'updating')
>> -----
>> - updateCardList
>> - | cardList morph |
>> - cardList _ model cardList: self visibleArea.
>> - self
>> - removeAllMorphsIn: (self submorphs
>> - select: [:m | m class == SkCardMorph]).
>> - cardList
>> - do: [:cardInfo |
>> - morph _ SkCardMorph model: cardInfo value.
>> - morph holder: self.
>> - self addMorph: morph.
>> - morph cellOrigin: cardInfo key].
>> - selectionMorph hide!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>veryDeepInner: (in category 'copying') -----
>> - veryDeepInner: deepCopier
>> - "history is not copied"
>> - model _ model veryDeepCopyWith: deepCopier.
>> - selectionMorph _ (selectionMorph veryDeepCopyWith: deepCopier)
>> holder: self.
>> - dropZone _ dropZone veryDeepCopyWith: deepCopier.
>> - showFormula _ showFormula veryDeepCopyWith: deepCopier.
>> - super veryDeepInner: deepCopier!
>>
>> Item was added:
>> + ----- Method: SkSheetMorph>>visibleArea (in category 'sheet delegation')
>> -----
>> + visibleArea
>> + ^ sheet visibleArea
>> + !
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>wantsDroppedMorph:event: (in category 'drag
>> and drop') -----
>> - wantsDroppedMorph: aMorph event: anEvent
>> - ^ aMorph class = PhraseTileMorph
>> - or: [aMorph class = TileMorph
>> - or: [aMorph isKindOf: SkGridPartsMorph]]!
>>
>> Item was removed:
>> - ----- Method: SkSheetMorph>>width: (in category 'accessing') -----
>> - width: aNumber
>> - ^ self setExtentFromHalo: aNumber @ self height!
>>
>> Item was changed:
>> ----- Method: SkValueCell>>slotName (in category 'accessing') -----
>> slotName
>> "See Player>>tearOffFancyWatcherFor:"
>> | info watcherWording anInterface |
>> info _ model slotInfoForGetter: getter.
>> info
>> ifNil: [anInterface _ Vocabulary eToyVocabulary
>> methodInterfaceAt: getter
>> ifAbsent: [].
>> + watcherWording _ anInterface wording]
>> - watcherWording _ anInterface elementWording]
>> ifNotNil: [watcherWording _ Utilities
>> inherentSelectorForGetter: getter].
>> ^ model tileReferringToSelf bePossessive labelMorph contents , ' '
>> , watcherWording!
>>
>>
>> _______________________________________________
>> etoys-dev mailing list
>> etoys-dev at squeakland.org
>> http://lists.squeakland.org/mailman/listinfo/etoys-dev
>>
>
>
> _______________________________________________
> etoys-dev mailing list
> etoys-dev at squeakland.org
> http://lists.squeakland.org/mailman/listinfo/etoys-dev
>
>
More information about the etoys-dev
mailing list