|
@@ -1,86 +0,0 @@
|
|
|
-EnyoFriend subclass: #Eris
|
|
|
- instanceVariableNames: ''
|
|
|
- category: 'Eris'!
|
|
|
-
|
|
|
-!Eris methodsFor: 'actions'!
|
|
|
-
|
|
|
-doIt
|
|
|
- | result |
|
|
|
- [ result := self eval: self dollar richText getValue ]
|
|
|
- on: Error
|
|
|
- do: [:ex |
|
|
|
- ^self warn: ex messageText title: 'Error' button: 'Ooops...'].
|
|
|
- ^result
|
|
|
-!
|
|
|
-
|
|
|
-clear
|
|
|
- self dollar richText setValue: ''
|
|
|
-!
|
|
|
-
|
|
|
-eval: aString
|
|
|
- | compiler node |
|
|
|
- compiler := Compiler new.
|
|
|
- node := compiler parseExpression: aString.
|
|
|
- node isParseFailure ifTrue: [
|
|
|
- ^self warn: 'Ehrm, you are a Smalltalk n00b, right? That is not valid syntax.' title: 'Parsing Error' button: 'Okidoki...'].
|
|
|
- ^compiler loadExpression: aString.
|
|
|
-!
|
|
|
-
|
|
|
-printString
|
|
|
- ^''
|
|
|
-!
|
|
|
-
|
|
|
-warn: aString title: aTitle button: caption
|
|
|
- | block popup |
|
|
|
- block := [popup close].
|
|
|
- <props = {kind: 'ModalDialog', caption: aTitle, components: [
|
|
|
- {kind: 'Control', content: aString, className: 'enyo-text-error warning-icon'},
|
|
|
- {kind: 'Button', caption: caption, onclick: 'closePopup', style: 'margin-top:10px'}],
|
|
|
- closePopup: block}>.
|
|
|
- popup := enyo create: props.
|
|
|
- popup openAtCenter
|
|
|
-!
|
|
|
-
|
|
|
-print: aString
|
|
|
- self dollar richText setValue: (self dollar richText getValue), ' ', aString
|
|
|
-!
|
|
|
-
|
|
|
-quack
|
|
|
- "(self kind: 'Sound'; src: 'DuckQwaq.wav'; create) play"
|
|
|
- (enyo create: (Dictionary new at: 'kind' put: 'Sound'; at: 'src' put: 'DuckQwaq.wav'; yourself)) play
|
|
|
-!
|
|
|
-
|
|
|
-printIt
|
|
|
- self print: self doIt printString
|
|
|
-! !
|
|
|
-
|
|
|
-!Eris methodsFor: 'initialization'!
|
|
|
-initialize
|
|
|
- | props doItBlock printItBlock quackBlock clearBlock |
|
|
|
- super initialize.
|
|
|
- doItBlock := [self doIt].
|
|
|
- printItBlock := [self printIt].
|
|
|
- quackBlock := [self quack].
|
|
|
- clearBlock := [self clear].
|
|
|
-
|
|
|
- <props = {kind: 'VFlexBox', components: [
|
|
|
- {kind: 'PageHeader', content: 'Eris'},
|
|
|
- {kind: 'RowGroup', caption: 'Workspace', components: [
|
|
|
- {kind: 'RichText', richContent: false,
|
|
|
- value: 'Put some funky Amber code here...',
|
|
|
- autoWordComplete: false, spellcheck: false, autocorrect: false,
|
|
|
- autoCapitalize: 'lowercase', alwaysLooksFocused: true
|
|
|
- },
|
|
|
- {kind: 'Toolbar', components: [
|
|
|
- {caption: 'Do it', onclick: 'doit'},
|
|
|
- {caption: 'Print it', onclick: 'printit'},
|
|
|
- {caption: 'Clear', onclick: 'clear'},
|
|
|
- {kind: 'Spacer'},
|
|
|
- {caption: 'Quack!!', onclick: 'quack'}]}]}],
|
|
|
- doit: doItBlock,
|
|
|
- printit: printItBlock,
|
|
|
- quack: quackBlock,
|
|
|
- clear: clearBlock}>.
|
|
|
- ui := enyo create: props.
|
|
|
-! !
|
|
|
-
|