Event Flow

XPLATFORM 응용프로그램은 EDA(Event-Driven Architecture)를 기본으로 하고 있습니다. 즉, XPLATFORM 응용프로그램에서 개발자가 개발하는 부분의 시작점은 모두 Event Function부터 시작합니다.

Event의 개요

Event 처리 대상

XPLATFORM 응용프로그램에서 모든 Object들이 Event처리 대상은 아닙니다. 주로 동적으로 상태가 변하는 Object들이 Event 처리 대상이 됩니다. Event처리를 위하여 개발자가 Script처리하는 부분을 Event Function이라고 합니다.

다음은 UX-Studio상에서 Event Function을 등록할 수 Object입니다.

Project Explorer

분류

Event를 등록할 수 있는 Object

설명

ADL

ADL

- application의 로딩/시작/종료 등에 대한 Event를 처리하는 Function들을 등록합니다.

Frame들

- MainFrame, Frameset, ChildFrame등 Frame Object들에서 발생하는 Event들을 처리하는 Function들을 등록합니다.

Tray

- Tray에서 발생하는 Event들을 처리하는 Event들을 등록합니다.

Application Menu

- Application Menu에서 발생하는 Event들을 처리하는 Event들을 등록합니다.

Global Variable

Datasets

- Global Variable에 등록한 Dataset의 Event들을 처리하는 Event들을 등록합니다.

Service

Form

- Form이 작동하면 발생하는 Event들을 처리하는 Event들을 등록합니다.

컴포넌트들

- Form내의 컴포넌트들이 작동하면 발생하는 Event들을 처리하는 Event들을 등록합니다.

Invisible Object들

- Form내의 Invisible Object들이 작동하면 발생하는 Event들을 처리하는 Event들을 등록합니다.

Parent-Child간 Event 전이

parent-child과 관계를 갖는 object들은 event가 상위 parent로 전이되는 것을 기본으로 합니다.

즉, 어떤 Form에 속한 컴포넌트에서 Event가 발생하면, 그 컴포넌트가 포함된 Form에서도 동일한 Event가 발생합니다. 그러나 parent가 해당 Event를 취급하지 않는 경우는 발생하지 않습니다.

다음은 parent로 Event를 전이하는 Event들입니다.

분류

Event들

Default가 parent발생?

키보드 Key

onkeyup()

O

마우스 Moving

onmousemove()

onmouseleave()

onmouseenter()

O

O

O

마우스 Button

onmousewheel()

onrbuttondown()

onrbuttonup()

onlbuttondown()

onlbuttonup()

onmousedown()

onmouseup()

O

O

O

O

O

O

O

마우스 drag

ondrag()

ondragenter()

ondragleave()

ondrop()

X

O

O

O

표기법

Key event Flow”부터는 컴포넌트별 Event발생 순서를 흐름도로 나타냅니다. 여기서는 그 흐름도의 표기법을 설명합니다.

Event Flow에서 사용하는 도형

도 형

정 의

사용자 입력

Event

Return value없는 event

true return시, 상위 컴포넌트에서 해당 event가 발생하지 않는 Event

default return값은 false이다.

true return시, 상위 컴포넌트에서 해당 event가 발생하는 Event

default return값은 true이다.

조건/판단

Return value

Default return value

조건 흐름

이후 작업 없음

Event Module

Key event Flow

KeyPush module 정의

ApplicationMenu,Button,Calendar,CheckBox,Combo,Div,Edit,Form,ImageViewer,ListBox,MaskEdit,Menu,PopupDiv,PopupMenu,Radio,Spin,Tab,TabPage,TextArea

Grid

Edit event Flow

Edit module 정의

Edit기능이 있는 컴포넌트

Edit / MaskEdit / TextArea / Combo / Calendar / Spin

Grid

Edit, MaskEdit, TextArea, Combo, Calendar, Spin

Grid

Edit중 Focus Out Flow

Calendar/Combo/Spin, Edit/MaskEdit/TextArea

Mouse Move event Flow

Edit/MaskEdit/TextArea, Calendar/Combo/Spin, Tab/TabPage, ListBox/Radio, PopupMenu/ Menu, Button, CheckBox, GraphicPath, GroupBox, ImageViewer, Panel, ProgressBar, Shape, Splitter, Static, Div, Form, Grid, PopupDiv

Mouse Click event Flow

MouseClick Module

MouseLbuttonDown Module

Button,CheckBox,Form,GraphicPath,ImageViewer,Panel,PopupDiv,ProgressBar,Shape,Static, Div/TabPage

Edit/MaskEdit/TextArea, Menu

Calendar

Combo

Spin

Tab

ListBox

Radio

Splitter

PopupDiv / PopupMenu

Focus가 밖으로 나가면 자동 close되는 component들

Grid

Drag event Flow

ApplicationMenu,Button,Calendar,CheckBox,Combo,Div,Edit,Form,Grid,ImageViewer,ListBox,MaskEdit,Menu,PopupDiv,PopupMenu,ProgressBar,Radio,Sign,Spin,Tab,TabPage,TextArea

Component Move event Flow

ApplicationMenu,Button,Calendar,Chart,CheckBox,Combo,Div,Edit,Form,GraphicPath,Grid,GroupBox,ImageViewer,ListBox,MaskEdit,Menu,Panel,PopupDiv,PopupMenu,ProgressBar,Radio,ScrollBar,Shape,Sign,Spin,Splitter,Static,Tab,TabPage,TextArea

Component Resize event Flow

ApplicationMenu,Button,Calendar,CheckBox,Combo,Div,Edit,Form,GraphicPath,Grid,GroupBox,ImageViewer,ListBox,MaskEdit,Menu,Panel,PopupDiv,PopupMenu,ProgressBar,Radio,ScrollBar,Shape,Sign,Spin,Splitter,Static,Tab,TabPage,TextArea

Dataset, Filtered Dataset Flow

Form event Flow

Form load / unload

Scroll event Flow

Div,Form,Grid,ListBox,PopupDiv,TabPage,TextArea