XPLATFORM 101
엑스플랫폼을 다루면서 강력한 기능이면서 개념을 잘못 잡으면 
이해하기 힘든 부분이 프레임입니다.

프레임은 하나의 어플리케이션 단위가 아니라 전체 어플리케이션 내의 윈도우 배치에 대한
개념으로 이해하는 것이 편할듯 합니다.

프레임을 가장 먼저 만날 수 있는 곳은 UX 스튜디오에서 프로젝트를 새로 만들때입니다.
이전에는 그냥 Default 프레임으로 사용했지만 이제 나머지 프레임에도 조금 관심을 가져보겠습니다.

사이트에서 제공되는 버전에서 제공되는 프레임은 다음과 같습니다.
Default, HFrame_Simple, HFrame_Tab, HFrame_Complex (VFrame 동일)
Tab Frame, Widget 이상 9가지입니다.

기본값은 아무것도 없는 상태이고 일단 HFrame_Simple 을 지정해서
새로운 프로젝트를 만들어보겠습니다.
기본으로 설정한 경우에는 MainFrame 아래에 하나의 ChildFrame 만이 생성되었지만
HFrame_Simple 로 지정한 경우에는 조금 다른 코드가 생성됩니다.

나머지 부분은 동일하지만 MainFrame 아래가 다음과 같이 생성됩니다.
      <MainFrame id="mainframe" ...>
        <HFrameSet id="frameset">
          <Frames>
            <ChildFrame id="f_f2_c1" .../>
            <ChildFrame id="f_f2_c2" .../>
            <ChildFrame id="f_f2_c3" .../>
          </Frames>
        </HFrameSet>
      </MainFrame>
HFrameSet 이라는 것이 추가되었고
그 아래 Frames 태그가 들어가고 N개의 ChildFrame이 배치됩니다.
여기서 실제적인 화면 요소는 ChildFrame에 지정되는 것입니다.

이제 각각의 폼을 생성하고 해당하는 ChildFrame 에 연결해주면 됩니다.
이렇게 생성된 프로젝트는 실행을 하게 되면 기본 프레임 윈도우 안에 3개의 윈도우가 배치된 형태가 보여집니다.



각 ChildFrame 은 마우스 조작으로 이동이 가능합니다. 해당 Frame을 이동시키게 되면
나머지 프레임은 알아서 순서가 바뀌게 됩니다.
실제 업무 상에서 각 프레임을 모듈 단위로 작업하고 사용자의 필요에 따라 배치하게 되는데
FrameSet 개념은 이러한 작업에 있어서 필수적인 사항입니다.
런타임 상에서 이런 부분을 관리해준다는 것은 성능이나 메모리 관리, 구현 이슈등에서
개발자의 수고를 상당부분 덜어줄 수 있습니다.

http://cafe.naver.com/xplatform101/21 
XPLATFORM 101
웹 개발자들의 로망은 데스크톱 어플리케이션 개발이 아닌가 싶습니다.
그래서 잘 보지도 않을 거면서 두꺼운 책들을 사곤 했습니다.
무려 1500페이지가 넘는 책을 부푼 기대를 가지고 뒤적거리기도 하구요.



웹개발자에게 있어 엑스플랫폼과 같이 확장 가능한 플랫폼은
이런 고민 없이 좀 더 쉽게 꿈을 이루게 도와줍니다.
(물론 개발자의 로망은 자신의 힘으로 코어한 소스를 만지는 것이겠지만..)

어찌되었든 엑스플랫폼에서는 어플리케이션을 데스크톱 어플리케이션처럼
트레이에 올리고 조작할 수 있게 지원합니다.
이런 작업은 별도의 옵션으로 추가되기 때문에 기존과 동일하게 폼을 만들고
ADL에 트레이를 등록하기만 하면 됩니다.

프로젝트 탐색기에서 ADL을 선택하고 컨텍스트 메뉴에서
Insert ADL Item > Tray 를 선택하면 끝입니다.


그리고 프로젝트를 실행해보면 (퀵뷰가 아닙니다) 트레이에 기본 아이콘이 올라온 것을 확인할 수 있습니다.
하지만 여기까지만 하면 아무런 기능이 없습니다. 그냥 보일뿐..

일반적인 트레이의 기능을 생각해보면 트레이 아이콘을 클릭했을때 기능과
컨텍스트 메뉴를 생각할 수 있습니다.

트레이 속성에서 이벤트로 가면 3개의 이벤트가 사용가능합니다.
ondblclick, onlbuttonup, onrbuttonup 3가지 입니다.
해당 이벤트에 대한 처리를 ADL 내의 스크립트에서 처리해주면 됩니다.
일단 여기까지만...

http://cafe.naver.com/xplatform101/20 
XPLATFORM 101
개발에 처음 입문하게 되면 가장 먼저 접하게 되는 것중에 하나가 alert 입니다.
디버깅이나 오류를 잡기 위해서 다른 도구를 사용하기 보다 alert 을 즐겨사용하기도 합니다.

alert 이라는 것의 의미를 사전에서 찾아보면
기민한, 정신이 초롱초롱한 이라는 의미를 가지고 있다고 합니다.
일반적으로 '경로'라는 의미만 생각했는데 그렇게 생각하니 흥미롭네요.


엑스플랫폼에서 alert 을 쓰는 것은 두가지 형식이 있습니다.
먼저 일반적으로 알고 있는 메소드로서의 alert 입니다.
Frame 오브젝트 아래 메소드로 포함되어 있으며
경고나 알림 대화상자를 표시하는 메소드입니다.

alert(strText[, strCaption[, strType]])

기본적으로 텍스트를 대화상자에 표시하며
추가적으로 대화상자 제목영역에 다른 문자를 표시하거나
타입에 따라 다른 아이콘을 처리할 수 있습니다.

alert 의 위치는 해당 프레임 중앙에 위치하게 됩니다.


우측 상단에서부터 타이틀이 없을때 기본값으로 Alert 이 표기되고
타입을 지정하는 경우에는 아이콘이 추가됩니다.
(아이콘이 이쁘지는 않네요. ㅎㅎ)

alert 의 스타일은 CSS 에서 지정할 수 있습니다.
그림에 보여지는 것은 기본 테마를 사용한 것이고
버튼의 크기부터 아이콘까지 각 속성을 지정할 수 있습니다.

스타일에 대한 내용은 alert 메소드에 나와있지 않고
Dialog 오브젝트 아래 있는 Alert 에서 확인할 수 있습니다.

메소드 alert 은 제한된 기능만을 제공했다면
Alert 생성자로 생성된 객체는 좀 더 다양한 기능을 추가할 수 있습니다.
툴팁을 보이게 한다든지 크기나 위치를 조정할 수 있고 추가적인 이벤트를 처리할 수 있습니다.

alert 과 비슷한 것으로 confirm 이라는 것이 있습니다.
다른 점은 버튼이 2개입니다. 확인과 취소.
(CSS에서는 okbuttontext, cancelbuttontext 로 지정할 수 있습니다).
버튼의 선택에 따라 다른 리턴값을 만나게 됩니다.
confirm 도 alert 과 마찬가지로 Dialog 오브젝트 아래서 찾아볼 수 있습니다.

일반적으로 ~하시겠습니까? 와 같은 질문에 대한 확인을 하는 겁니다.
confirm 창에 대해서는 UX 적으로 논란이 많습니다. alert 도 마찬가지지만...

confirm or undo

오래전부터 사용해온 기능이지만 사용자 입장에서 한번쯤 고민해볼 문제입니다.

http://cafe.naver.com/xplatform101/19