Soumettre la recherche
Mettre en ligne
Preparing for Pollock
•
0 j'aime
•
136 vues
E
ESUG
Suivre
Preparing for Pollock, ESUG 2002, Douai, France.
Lire moins
Lire la suite
Signaler
Partager
Signaler
Partager
1 sur 67
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Introduction to Android Window System
Introduction to Android Window System
National Cheng Kung University
Micro Object Testing
Micro Object Testing
ESUG
Squeak at NetStyle
Squeak at NetStyle
ESUG
GemStone/S 64bit
GemStone/S 64bit
ESUG
EXCEL Extraction
EXCEL Extraction
ESUG
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
ESUG
Smalltalk Debug Lives in the Matrix
Smalltalk Debug Lives in the Matrix
ESUG
Plopp
Plopp
ESUG
Recommandé
Introduction to Android Window System
Introduction to Android Window System
National Cheng Kung University
Micro Object Testing
Micro Object Testing
ESUG
Squeak at NetStyle
Squeak at NetStyle
ESUG
GemStone/S 64bit
GemStone/S 64bit
ESUG
EXCEL Extraction
EXCEL Extraction
ESUG
NeXTPLAN: Enterprise software that rocks!
NeXTPLAN: Enterprise software that rocks!
ESUG
Smalltalk Debug Lives in the Matrix
Smalltalk Debug Lives in the Matrix
ESUG
Plopp
Plopp
ESUG
Metacello
Metacello
ESUG
Magritte
Magritte
ESUG
Newspeak: Evolving Smalltalk for the Age of the Net
Newspeak: Evolving Smalltalk for the Age of the Net
ESUG
Cincom Smalltalk: Present, Future & Smalltalk Advocacy
Cincom Smalltalk: Present, Future & Smalltalk Advocacy
ESUG
Integration of Cincom Smalltalk Systems
Integration of Cincom Smalltalk Systems
ESUG
Language, Culture, and Software
Language, Culture, and Software
ESUG
SqueakGTK
SqueakGTK
ESUG
Context-Oriented Programming: Beyond Layers
Context-Oriented Programming: Beyond Layers
ESUG
Rethink Smalltalk
Rethink Smalltalk
ESUG
Squeak and Art
Squeak and Art
ESUG
Topologos
Topologos
ESUG
Smalltalk on a CE device
Smalltalk on a CE device
ESUG
A magia do natal sofia
A magia do natal sofia
bloggerfph
Yo estoy alegre
Yo estoy alegre
RFiltrin1
C. naturales olimpiada de conocimiento infantil 2014
C. naturales olimpiada de conocimiento infantil 2014
Edgar Hernandez
Figueira
Figueira
glocorvi
Natural Running Book Ad
Natural Running Book Ad
dongura
Using Edge Animate to Create a Reusable Component Set
Using Edge Animate to Create a Reusable Component Set
Joseph Labrecque
Xebia adobe flash mobile applications
Xebia adobe flash mobile applications
Michael Chaize
Flex4 component lifecycle
Flex4 component lifecycle
RJ Owen
ميهين
ميهين
Ahmed
Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1
benDesigning
Contenu connexe
En vedette
Metacello
Metacello
ESUG
Magritte
Magritte
ESUG
Newspeak: Evolving Smalltalk for the Age of the Net
Newspeak: Evolving Smalltalk for the Age of the Net
ESUG
Cincom Smalltalk: Present, Future & Smalltalk Advocacy
Cincom Smalltalk: Present, Future & Smalltalk Advocacy
ESUG
Integration of Cincom Smalltalk Systems
Integration of Cincom Smalltalk Systems
ESUG
Language, Culture, and Software
Language, Culture, and Software
ESUG
SqueakGTK
SqueakGTK
ESUG
Context-Oriented Programming: Beyond Layers
Context-Oriented Programming: Beyond Layers
ESUG
Rethink Smalltalk
Rethink Smalltalk
ESUG
Squeak and Art
Squeak and Art
ESUG
Topologos
Topologos
ESUG
Smalltalk on a CE device
Smalltalk on a CE device
ESUG
A magia do natal sofia
A magia do natal sofia
bloggerfph
Yo estoy alegre
Yo estoy alegre
RFiltrin1
C. naturales olimpiada de conocimiento infantil 2014
C. naturales olimpiada de conocimiento infantil 2014
Edgar Hernandez
Figueira
Figueira
glocorvi
Natural Running Book Ad
Natural Running Book Ad
dongura
En vedette
(17)
Metacello
Metacello
Magritte
Magritte
Newspeak: Evolving Smalltalk for the Age of the Net
Newspeak: Evolving Smalltalk for the Age of the Net
Cincom Smalltalk: Present, Future & Smalltalk Advocacy
Cincom Smalltalk: Present, Future & Smalltalk Advocacy
Integration of Cincom Smalltalk Systems
Integration of Cincom Smalltalk Systems
Language, Culture, and Software
Language, Culture, and Software
SqueakGTK
SqueakGTK
Context-Oriented Programming: Beyond Layers
Context-Oriented Programming: Beyond Layers
Rethink Smalltalk
Rethink Smalltalk
Squeak and Art
Squeak and Art
Topologos
Topologos
Smalltalk on a CE device
Smalltalk on a CE device
A magia do natal sofia
A magia do natal sofia
Yo estoy alegre
Yo estoy alegre
C. naturales olimpiada de conocimiento infantil 2014
C. naturales olimpiada de conocimiento infantil 2014
Figueira
Figueira
Natural Running Book Ad
Natural Running Book Ad
Similaire à Preparing for Pollock
Using Edge Animate to Create a Reusable Component Set
Using Edge Animate to Create a Reusable Component Set
Joseph Labrecque
Xebia adobe flash mobile applications
Xebia adobe flash mobile applications
Michael Chaize
Flex4 component lifecycle
Flex4 component lifecycle
RJ Owen
ميهين
ميهين
Ahmed
Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1
benDesigning
Flex4 Component Lifecycle
Flex4 Component Lifecycle
Effective
Flex4 Component Lifecycle
Flex4 Component Lifecycle
EffectiveUI
Python_for_Visual_Effects_and_Animation_Pipelines
Python_for_Visual_Effects_and_Animation_Pipelines
Russell Darling
Take your productivity to the next level using Intellij IDEA and powerful uti...
Take your productivity to the next level using Intellij IDEA and powerful uti...
Dominik Poljak
Flash Catalyst at Flex Camp Orange County
Flash Catalyst at Flex Camp Orange County
Juan Sanchez
Cooking security sans@night
Cooking security sans@night
jtimberman
Tizen Window System
Tizen Window System
Eun Young Lee
Windows phone and azure
Windows phone and azure
★ Dovydas Navickas
Open frameworks 101_fitc
Open frameworks 101_fitc
benDesigning
Game Studio
Game Studio
MarinaOpera
Automate Behavior-driven Development | Stanford WebCamp 2022
Automate Behavior-driven Development | Stanford WebCamp 2022
DOCOMO Innovations, Inc.
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?
Albert Mietus
S#01 김영욱
S#01 김영욱
codercay
SynapseIndia dotnet development framework
SynapseIndia dotnet development framework
Synapseindiappsdevelopment
Qditor user guide for windows pc
Qditor user guide for windows pc
Qditor Video Editor
Similaire à Preparing for Pollock
(20)
Using Edge Animate to Create a Reusable Component Set
Using Edge Animate to Create a Reusable Component Set
Xebia adobe flash mobile applications
Xebia adobe flash mobile applications
Flex4 component lifecycle
Flex4 component lifecycle
ميهين
ميهين
Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1
Flex4 Component Lifecycle
Flex4 Component Lifecycle
Flex4 Component Lifecycle
Flex4 Component Lifecycle
Python_for_Visual_Effects_and_Animation_Pipelines
Python_for_Visual_Effects_and_Animation_Pipelines
Take your productivity to the next level using Intellij IDEA and powerful uti...
Take your productivity to the next level using Intellij IDEA and powerful uti...
Flash Catalyst at Flex Camp Orange County
Flash Catalyst at Flex Camp Orange County
Cooking security sans@night
Cooking security sans@night
Tizen Window System
Tizen Window System
Windows phone and azure
Windows phone and azure
Open frameworks 101_fitc
Open frameworks 101_fitc
Game Studio
Game Studio
Automate Behavior-driven Development | Stanford WebCamp 2022
Automate Behavior-driven Development | Stanford WebCamp 2022
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?
S#01 김영욱
S#01 김영욱
SynapseIndia dotnet development framework
SynapseIndia dotnet development framework
Qditor user guide for windows pc
Qditor user guide for windows pc
Plus de ESUG
Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG
Technical documentation support in Pharo
Technical documentation support in Pharo
ESUG
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
ESUG
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
ESUG
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
ESUG
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
ESUG
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
ESUG
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
ESUG
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
ESUG
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
ESUG
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
ESUG
Garbage Collector Tuning
Garbage Collector Tuning
ESUG
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
ESUG
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
thisContext in the Debugger
thisContext in the Debugger
ESUG
Websockets for Fencing Score
Websockets for Fencing Score
ESUG
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ESUG
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
ESUG
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG
Plus de ESUG
(20)
Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
Technical documentation support in Pharo
Technical documentation support in Pharo
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
Garbage Collector Tuning
Garbage Collector Tuning
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
thisContext in the Debugger
thisContext in the Debugger
Websockets for Fencing Score
Websockets for Fencing Score
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
Preparing for Pollock
1.
Pollock
Preparing For Pollock
2.
Number 1, 1950
(Lavender Mist) Jackson Pollock 1912-1956 Copyright © 2002, Cincom Systems, Inc.
3.
Pollock
Why a new GUI Framework Pollock Philosophy and Goals The Path The Metaphor The Basics Pollock & The Trigger Events Framework Models & ValueEvents Copyright © 2002, Cincom Systems, Inc.
4.
Pollock
Pollock & DragDrop Pollock & Edit Keys Coding Today With The Future In Mind Pollock Tools Building A New Widget – An Example Q&A Copyright © 2002, Cincom Systems, Inc.
5.
Pollock
What needs to be obsolete Wrappers Look Specific Widgets Ball Of Mud Controllers Static Edit Keys Fragile & Noisy Change/Updates in the Guts Do Too Much Builder Copyright © 2002, Cincom Systems, Inc.
6.
Pollock
What needs to be added Configurable Hotkeys Dynamic Look Changing Stupid Controllers Full Use of the Trigger Event System Separate Builder and Widget Inventory E-Z Developer Widget Creation E-Z Developer Widget Extension Capability Copyright © 2002, Cincom Systems, Inc.
7.
Pollock
Widgets In General Out of the box they need To Do More To Do It Faster To Do It Better Where Required: To Do It More Platform Faithfully And if not: E-Z To Make Them Do It Copyright © 2002, Cincom Systems, Inc.
8.
Pollock Copyright © 2002,
Cincom Systems, Inc.
9.
Pollock Copyright © 2002,
Cincom Systems, Inc.
10.
Pollock
Wrappers SpecWrappers: Hold on to too much runtime information, waste space with the rest Bounded, Bounding, Bordered… Baloney! Scrollbars : The result of composition run rampant Menus : Not much better Bounds calculation : The progenitor of modern C obfuscation contests Copyright © 2002, Cincom Systems, Inc.
11.
Pollock
Look Specific Widgets Can’t change their look on the fly without rebuilding whole window Complex build rules (<widget>:into:) Forces duplicated build code Commingled common and look specific code Copyright © 2002, Cincom Systems, Inc.
12.
Pollock
Ball Of Mud Controllers Controllers have lost their “MVC” meaning They have become sophomoric Because of wrappers are involved in downcasting & upcasting events Knows too much about view Copyright © 2002, Cincom Systems, Inc.
13.
Pollock
Static Edit Keys Controllers do too much Controllers contain too much feel specific code Dispatch tables are code based The Developer knows best (i.e. least) Copyright © 2002, Cincom Systems, Inc.
14.
Pollock Fragile & Noisy
Change/Updates in the Guts All dependents get all update information, even when they don’t care (which in the guts of the GUI, is most of the time) Updates fling up and down the wrapper hierarchy Changing models and views is fraught with danger, making existing Widgets fragile Debugging is a nightmare Copyright © 2002, Cincom Systems, Inc.
15.
Pollock
Do Too Much Builder Builds then sticks around “self builder componentAt:” (‘nuff said!) Can’t properly get nested components (sub- canvases) Throws out important build time information Copyright © 2002, Cincom Systems, Inc.
16.
Pollock
Configurable Hotkeys Dynamic Look Changing Stupid Controllers Full Use of the Trigger Event System Separate Builder and Widget Inventory E-Z Developer Widget Creation E-Z Developer Widget Extension Capability Copyright © 2002, Cincom Systems, Inc.
17.
Pollock
Goals Must be more accessible to both novice and expert developers Must be more modular Must be more adaptable to new looks and feels Must have tools to migrate from old framework Must have comprehensive unit tests Must be developed “Out In The Open” Copyright © 2002, Cincom Systems, Inc.
18.
Pollock
Philosophy : XP (as much as possible) Make it work, Make it right, Make it fast (in that order) You aren’t going to need it The simplest thing that can possibly work Let the code tell me what to do Test first Continuous integration Copyright © 2002, Cincom Systems, Inc.
19.
Pollock
Window MenuBar Toolbar AdvancedText Copyright © 2002, Cincom Systems, Inc.
20.
Pollock
Beta 1: VW 7 ApplicationWindow, Button, Label & Image Simple layouts (OriginExtent, Alignment) Win9x, MacOSX & Motif looks Build, Read & Write from XML and Array DTD for XML Window opening styles Full Trigger Event usage Builder, UserInterface, WidgetInventory Copyright © 2002, Cincom Systems, Inc.
21.
Pollock
Beta 2 : VW 7.1 CheckBox, Radio, InputField, List, Menu, DropDown (list and menu), AdvancedText, Grid (Table & Dataset combined), Dialog, Toolbar & Toolbar panes, TreeView, TabControl, GroupBox DragDrop Fractional Layouts UIPainter written in Pollock Copyright © 2002, Cincom Systems, Inc.
22.
Pollock
Production 1 : VW 7.2 SubpaneHolder, Resizer, SpinButton, Divider, ClickWidget, Region, Progress, Slider UIPainter, MenuEditor, ToolbarEditor Translation & Conversion tools Co-exist in image with existing framework Existing framework default user interface creation tool Last changes to existing framework All widgets have at least basic functionality Copyright © 2002, Cincom Systems, Inc.
23.
Pollock
Production 2 : VW “7.2” All widgets have full capability WinXP Look & Feel Some internal tools use Pollock Co-exist in image with existing framework Pollock default new user interface creation tool Existing framework “Soft” obsolete Copyright © 2002, Cincom Systems, Inc.
24.
Pollock
Production 3 : VW “7.3” All tools use Pollock Existing framework “Hard” obsolete Only Pollock in image Existing framework fully loadable from Obsolete parcel Copyright © 2002, Cincom Systems, Inc.
25.
Pollock
Panes & Frames, Agents & Artists Pane Like a VisualComponent Some Panes have Subpanes Window is a Pane Screen is a Pane All subclass from AbstractPane Copyright © 2002, Cincom Systems, Inc.
26.
Pollock
Panes & Frames, Agents & Artists (cont.) Frame Like a Layout visible bounds displayable bounds origin [alignment] [fractional positions] [relation positions] [viewport] Copyright © 2002, Cincom Systems, Inc.
27.
Pollock
Panes & Frames, Agents & Artists Agent Offload behavior from controller Tell the artist when to draw Maintain most state (visibility, enablement, selected, pushedness, cursor position) Behavior for mouse and keyboard (keyboard processor, focus, “handler for mouse event”) Copyright © 2002, Cincom Systems, Inc.
28.
Pollock
Panes & Frames, Agents & Artists Artist Does all drawing Interacts with Agent and Pane to get information about what to draw, and when Copyright © 2002, Cincom Systems, Inc.
29.
Pollock
Object AbstractPane AbstractDraw Frame CompositePane DisplayLabel AbstractAgent AbstractArtist LayoutFrame Button ButtonAgent ButtonArtist Radio RadioAgent RadioArtist … … Copyright © 2002, Cincom Systems, Inc.
30.
Pollock
ButtonArtist MacOSXButtonArtist MotifButtonArtist Win95ButtonArtist Copyright © 2002, Cincom Systems, Inc.
31.
Pollock
RadioAgent MacOSXRadioAgent MotifRadioAgent Win95RadioAgent Copyright © 2002, Cincom Systems, Inc.
32.
Pollock
Creating, configuring and opening a window | window | window := Pollock.ScheduledWindow new. window frame: ((WindowFrame new) maximumSize: 400 @ 400; openingPosition: 100 @ 100; yourself). window border: #etched. window open Copyright © 2002, Cincom Systems, Inc.
33.
Pollock
Creating, configuring and adding a Pane | window radio | window := self openWindow. radio := Radio new. radio frame: (OriginExtentFrame origin: 10 @ 10 extent: 30 @ 30). window addComponent: radio. Copyright © 2002, Cincom Systems, Inc.
34.
Pollock
Labels are NOT part of panes, but can be subpanes | window radio displayLabel labelModel | window := self openWindow. radio := self createRadio. displayLabel := Pollock.DisplayLabel new. labelModel := Pollock.Label string: 'Hi&Ho'. displayLabel label: labelModel. displayLabel frame origin: 0 @ 0. radio addComponent: displayLabel. window addComponent: radio Copyright © 2002, Cincom Systems, Inc.
35.
Pollock
CompositePanes Any subclass can have subpanes Can have any number of subpanes Can have any kind of subpanes Common subpanes Buttons : Labels and DisplayImages Radios : Labels Copyright © 2002, Cincom Systems, Inc.
36.
Pollock
Controllers are much more dumb Controllers and Trackers still exist New hierarchy Forward all events to the Agent The Agent holds the Keyboard Processor Because of compatibility, controller passes it to the Agent Copyright © 2002, Cincom Systems, Inc.
37.
Pollock
Decorations and Borders Decorations : Things inside a pane Scrollbars in an Advanced Text pane The “3D Look / Raised” portion of a Button Clip the drawable bounds Borders : Things that surround a pane Effectively clip the visible bounds Most panes have borders Some panes have decorations Borders and Decorations have Artists Copyright © 2002, Cincom Systems, Inc.
38.
Pollock
A Button with a Border (ridged) and a decoration: A Button with a Border (ridged) – No decoration: Copyright © 2002, Cincom Systems, Inc.
39.
Pollock
ActionDisplay pane Action Part “Display Right” Display Action Part “Display Left” Display Part Part Examples: Display Right Spin Button Drop Down Display Left Copyright © 2002, Cincom Systems, Inc.
40.
Pollock
Agents, Artists and Frames are pluggable at runtime Update/Change behavior is banned from the Pollock internals WidgetPolicy, BorderPolicy, LookPolicy FeelPolicy replaced by KeyboardPolicy New Controller hierarchy New ScheduledWindow hierarchy Copyright © 2002, Cincom Systems, Inc.
41.
Pollock
Object PaneController KeyboardController LabelController ToggleController ButtonController ActionDisplayController Copyright © 2002, Cincom Systems, Inc.
42.
Pollock
UI.Window Pollock.ScheduledWindow Pollock.ApplicationWindow Pollock.DialogWindow Copyright © 2002, Cincom Systems, Inc.
43.
Pollock
Grid Combines Dataset & Table Will support Dataset models, as well as Table models Will provide Multi-Column list mode Copyright © 2002, Cincom Systems, Inc.
44.
Pollock
DropDown Combines DropDown, Combo and MenuButton Will support Lists as well as Menus as models Copyright © 2002, Cincom Systems, Inc.
45.
Pollock
TabControl Will exist Should it add “Minor” tabs (right and/or bottom)? Should it add “Stacked” tabs? Notebook Not scheduled to exist (should it?) Copyright © 2002, Cincom Systems, Inc.
46.
Pollock
The Trigger Events Framework Fully fleshed out in VW 7 All events ultimately triggered by “views” Event Checking Ambivalent vs. Strict Object – Default is Ambivalent Views & Panes – Default is Strict Using it now In General ApplicationModel Copyright © 2002, Cincom Systems, Inc.
47.
Pollock
General eventTable canTriggerEvent: anEventNameSymbol hasActionForEvent: anEventNameSymbol actionListForEvent: anEventNameSymbol Copyright © 2002, Cincom Systems, Inc.
48.
Pollock
General when: anEventNameSymbol do: aBlock when: anEventNameSymbol evaluate: anAction when: anEventNameSymbol send: aSelectorSymbol to: anObject when: anEventNameSymbol send: aSelectorSymbol to: anObject with: anArgumentObject when: anEventNameSymbol send: aSelectorSymbol to: anObject with: firstArgumentObject with: secondArgumentObject when: anEventNameSymbol send: aSelectorSymbol to: anObject withArguments: anArgumentCollection whenAny:… Copyright © 2002, Cincom Systems, Inc.
49.
Pollock
General removeAction: anAction forEvent: anEventNameSymbol removeActionsForEvent: anEventNameSymbol Copyright © 2002, Cincom Systems, Inc.
50.
Pollock
ApplicationModel widget: aWidgetIDSymbol when: anEventSymbol do: aBlock widget: aWidgetIDSymbol when: anEventSymbol evaluate: anAction widget: aWidgetIDSymbol when: anEventSymbol send: anAction to: anObject widget: aWidgetIDSymbol when: anEventSymbol send: anAction to: anObject with: anArgument widget: aWidgetIDSymbol when: anEventSymbol send: anAction to: anObject with: firstArgument with: secondArgument widget: aWidgetIDSymbol when: anEventSymbol send: anAction to: anObject withArguments: aCollection Copyright © 2002, Cincom Systems, Inc.
51.
Pollock
New behavior in Object>>changed:with: changed: anAspectSymbol with: aParameter "The receiver changed. The change is denoted by the argument anAspectSymbol. Usually the argument is a Symbol that is part of the dependent's change protocol, that is, some aspect of the object's behavior, and aParameter is additional information. Inform all of the dependents." self myDependents update: anAspectSymbol with: aParameter from: self. anAspectSymbol isSymbol ifTrue: [self triggerEvent: anAspectSymbol] Copyright © 2002, Cincom Systems, Inc.
52.
Pollock
The Model Hierarchy will not be used Replaced by the EventModel Hierarchy “Global” EventHandlers Object local eventHandlers EventModel ValueEvent Events Triggered: #changing “Look ‘ma, No dependents!” #changed Copyright © 2002, Cincom Systems, Inc.
53.
Pollock
State driven engine For single select lists, the following are the rule states. 1) If you click on an unselected item, and you do NOT move the mouse more than 2@2 while you have the mouse down, nothing happens until you release the mouse, at which time the target item is selected. 2) If you click on an unselected item, and you DO move the mouse more than 2@2, the target item is selected, and you are put into Drag mode for that item if it is turned on, if not, the selection changes as you drag the mouse over successive unselected items. 3) If you click on a selected item and do NOT move the mouse more than 2@2, nothing happens until you release the mouse, at which time the target item is unselected. 4) If you click on a selected item and DO move the mouse more than 2@2, you are put into Drag mode for that item if it is turned on, if not, the selection changes as you drag the mouse over successive unselected items (as in rule #2) Copyright © 2002, Cincom Systems, Inc.
54.
Pollock
State driven engine (continued) For multi select lists, the following are the rule states. 1) If you click on an unselected item, and you do NOT move the mouse more than 2@2 while you have the mouse down, nothing happens until you release the mouse, at which time the target item is selected. (Rules of Shift & Ctrl apply to "items" selected) 2) If you click on an unselected item, and you DO move the mouse more than 2@2, the current item is selected and any additional items you drag the mouse over get added to the current selections. (Rules of Shift & Ctrl apply to "items“ selected). 3) If you click on a selected item, and you do NOT move the mouse more than 2@2 while you have the mouse down, nothing happens until you release the mouse, at which time the item is unselected. (Rules of Shift & Ctrl apply to "items“ selected/unselected) 4) If you click on a selected item, and you DO move the mouse more than 2@2, you are now in Drag mode if it is turned on (Rules of Ctrl & Shift apply to move/copy mode of Drag, and not to selection modes), if not, rule #2 kicks in. Copyright © 2002, Cincom Systems, Inc.
55.
Pollock
Trigger Event communication (based on VSE design) “Select When Down” dies a miserable death Configurable Default – Right Button Options : Left Button. Modifier Key Copyright © 2002, Cincom Systems, Inc.
56.
Pollock
“FeelPolicy” and the dispatch table as we know it, goes the way of the dodo KeyboardPolicy Based on MagicKeys from Roel Wuyts (Thank You!) Assignable by “Application”: Transcript – EditPolicy Refactoring Brrowser – CodePolicy MyApplication – MyApplicationPolicy Can have “Platform” versions WindowsEditPolicy, WindowsCodePolicy MacEditPolicy, MacMyApplicationPolicy Copyright © 2002, Cincom Systems, Inc.
57.
Pollock
ApplicationModel Don’t write “self builder componentAt:” Use new (VW 7) protocols #mainWindow #windowMenuBar #controllerAt: aWidgetIDSymbol #widgetAt: aWidgetIDSymbol #wrapperAt: aWidgetIDSymbol Copyright © 2002, Cincom Systems, Inc.
58.
Pollock
Use the Trigger Event system instead of update/change Stay away from the Smalltalk (“Default”) look Stay away from the GUI guts, but if you must: SUBCLASS! Copyright © 2002, Cincom Systems, Inc.
59.
Pollock
ApplicationModel conversion tool WindowSpec conversion tool Enhanced MenuEditor CoolImage replaces ImageEditor (Thank You Travis Griggs!) Toolbar Editor Copyright © 2002, Cincom Systems, Inc.
60.
Pollock
Enhanced UIPainter What is gone: - More than 3 tabs - Special tabs for color - Special tabs for layout - Apply & Cancel buttons What is added: -Event configuring in Painter -Event coding in Painter -Save to XML external file -”Unlimited” Undo/Redo -Undo/Redo list -Widget Morphing -The Kitchen Sink Copyright © 2002, Cincom Systems, Inc.
61.
Pollock
Our Example : The Region Pane What we have to do 1. Write a Test 2. Create the Pane subclass 3. Write a Test 4. Create the Agent subclass 5. Write a Test 6. Create the Artist subclass Copyright © 2002, Cincom Systems, Inc.
62.
Pollock
agentClass artistClass defaultControllerClass frameClass getController (because defaultControllerClass is nil) outerExtentChanged: aPoint Copyright © 2002, Cincom Systems, Inc.
63.
Pollock openWindowWithRegion
self openWindow. region := Region new. region frame: (OriginExtentFrame origin: 10 @ 10 extent: 100 @ 100). window addComponent: region openWindowWithRegionWithBorder self openWindow. region := Region new. region frame: (OriginExtentFrame origin: 10 @ 10 extent: 100 @ 100). region border: #ridged. window addComponent: region Copyright © 2002, Cincom Systems, Inc.
64.
Pollock
rectangle instance variable (Pane) drawOn: (Artist) background (Artist & Pane) lineSize, lineColor, fillColor (Aritist & Pane) visible, beVisible: (Agent & Pane) Copyright © 2002, Cincom Systems, Inc.
65.
Pollock
Platform looks (if any) Additional shapes Copyright © 2002, Cincom Systems, Inc.
66.
Pollock Copyright © 2002,
Cincom Systems, Inc.
67.
Pollock
© 2002 Cincom Systems, Inc. All Rights Reserved Developed in the U.S.A. CINCOM, , and The Smart Choice are trademarks or registered trademarks of Cincom Systems, Inc All other trademarks belong to their respective companies.
Télécharger maintenant