automated seaside interface to a visualworks and gemstone application framework – bob nemec

30
Seaside Interface to Legacy Smalltalk App Bob Nemec Cherniak Software 1

Upload: smalltalk-solutions

Post on 28-Jul-2015

90 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

1

Seaside Interface to Legacy Smalltalk App

Bob NemecCherniak Software

Page 2: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

2

RequirementsProvide a web based interface to existing VW views with minimal additional effort by the domain developer.

A web interface for free.

Page 3: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

3

A Seaside builderThis is not a general solutionIt uses framework meta data to build Seaside

components

Page 4: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

4

Page 5: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

5

Page 6: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

6

Page 7: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

7

Page 8: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

8

Page 9: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

9

Page 10: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

10

BuilderReads the window spec identified by the meta dataCreates a ‘widget component’ for each type of widgetEach component has the widget’s window spec detailsFramework metadata defines widget behavior

ButtonCheck boxCombo boxDividerGroup boxInput fieldLabel

NotebookRadio buttonListSubcanvasTableText editor

Page 11: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

11

ContainerLayout the generated components using the size and

position information in the window spec

Page 12: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

12

Component layoutAdd to new line

Add to a group box

Add to same line

Page 13: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

13

Component layout

Add tall component

Add to tall row

Page 14: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

14

Widget position and sizeAdded convenience methods to Array

#specElementAfter:#specElementAfter:ifAbsent:

Extract origin and corner as offset from parentTranslate proportional values to fixed points

Page 15: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

15

AdjustmentsIt’s easier to have a small adjustment than to make the

layout code perfect

Page 16: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

16

Dialog promptsSemaphore handoff to forked process

Page 17: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

17

Reporting Print preview in VW client

Page 18: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

18

Reporting Print preview in browser

Page 19: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

19

ReportingWrite output to a Pixmap Render result in lightbox

image := pixmap asGif.…image gifBytes seasideMimeDocument

mimeType: Seaside.WAMimeType imageGif

Full report would be printed to a PDF

Page 20: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

20

Mobile devicesSimplified views will be used for mobile devicesFlag is set on launcher entries and window specs

Page 21: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

21

Diagnostic toolsWindow spec view – build window spec from components

Page 22: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

22

Load balancingA dispatcher image uses OpenTalk to find idle client

imageA cookie with port number & millisecond clock value is

used to bind session to client image

Page 23: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

23

Dispatcher

Page 24: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

24

Client portalsUsing both domain and coded Seaside components

Page 25: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

25

More SeasideIssue LibraryPatch ManagerMediaWiki contentIVR VXML serveriCal serverXML data for MS Office

Page 26: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

26

Issue Library

Page 27: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

27

Patch Manager

Page 28: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

28

MediaWiki content

{{#webservice:cslx4.cherniaksoftware.com:48197/Issues?wiki=problems:summary| %//div%}}

{{#webservice:cslx4.cherniaksoftware.com:48197/Issues?wiki=sidebar| %//div%}}

Page 29: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

29

IVR VXML Server

Page 30: Automated Seaside Interface to a VisualWorks and GemStone Application Framework – Bob Nemec

30

Next stepsLots of javascript Mobile devicesIntegration with client web sites

Thank you to everyone that has contributed to Seaside