이번에는 클릭이벤트를 이용하여 윈도우 창을 출력하는 포스팅을 다뤄보도록 하겠습니다.
윈도우창은 레이어팝업 혹은 모달이라고 불리우고 있는 패널창입니다.
지난시간에 포스팅한 다이얼로그도 윈도우 창의 일부가 되겠습니다.
윈도우를 띄우는것은 미리 정의되있는 속성만으로도 충분히 훌륭한 화면출력이 가능합니다
버튼클릭이벤트를 이용하여 윈도우 창을 띄워보도록 하겠습니다.
우선은 panel 도화지에 버튼 컴포넌트를 만들어 준 다음 handler 이벤트 정의까지 해보겠습니다
Ext.onReady(function(){ Ext.create("Ext.panel.Panel",{ renderTo : Ext.getBody(), title : 'test', width : 300, height : 300, items : [{ xtype : 'button', text : '윈도우창띄우기', handler : function(){ // window open code here // 여기에 윈도우창 띄우는 코드를 작성해보겠습니다. } }] }) })
위와같이 기본적인 껍데기를 생성하였습니다.
이제는 윈도우창띄우기 버튼 클릭을 이용하여 윈도우 창을 띄워보도록 하는 코드를 작성해보겠습니다.
하단 코드는 handler 버튼 클릭이벤트에 작성해주시면 되겠습니다.
var win = Ext.create('Ext.window.Window',{ width : 300, height : 300 }); win.show();
Ext.create('Ext.window.Window',{ autoShow : true, width : 300, height : 300 });
위와같이 2가지 방법으로 윈도우창을 출력할 수 있습니다.
물론 출력결과는 동일합니다.
메서드를 이용하느냐 아니면 속성값을 이용하느냐의 차이일 뿐이랍니다.
위처럼 버튼 클릭 후 빈껍데기의 윈도우 창이 출력되는 것을 확인하실 수가 있겠습니다.
이제 window컴포넌트의 속성값을 적용하여 꾸며보도록 해보겠습니다.
간단하게 적용해볼 속성은 다음과 같습니다.
1. 최대버튼생성
2. esc 버튼을 이용하여 창 닫기
3. 윈도우창을 모달을 적용하여 부모창 비활성 시키기
4. 버튼클릭시 애니메이션 기능으로 버튼으로부터 윈도우창 튀어나오는 효과 적용하기
5. 리사이즈제어
6. 드래그앤드롭제어
위에 모든기능들이 속성값들 추가로 인해서 출력이 가능합니다.
Ext.onReady(function(){ Ext.create("Ext.panel.Panel",{ renderTo : Ext.getBody(), title : 'test', width : 300, height : 300, items : [{ xtype : 'button', text : '윈도우창띄우기', handler : function(btn){ // window open code here // 여기에 윈도우창 띄우는 코드를 작성해보겠습니다. Ext.create('Ext.window.Window',{ autoShow : true, width : 300, height : 300, title : '윈도우제목', html : '윈도우 몸통에 들어가는 HTML코드', //드래그기능제어(true/false) draggable : true, //윈도우창 리사이즈기능(true/false) resizable : true, //브라우저화면을 채우는 기능(true/false) maximizable : true, //cloasAction을 정의하면 키보드의 esc클릭시 자동 닫힘 closeAction : 'destroy', //모달창으로 부모창비활성(true/false) modal : true, //윈도우창이 화면에 보여질때 타겟을 지정하게되면 해당 타겟으로부터 나타나는 효과 animateTarget : btn }) } }] }) })
위코드의 모든 속성값 적용된 실행코드입니다.
실제로 실행하시면 더 화려한 결과를 보실 수 있으실 겁니다.
윈도우은 별개의 panel 도화지라고 생각하시고 자식컴포넌트들을 생성하실경우
기존 panel 도화지에서 만드셨던것처럼 동일하게 items내에 정의해주시면 되겠습니다.
by 개발로짜
ExtJS 강좌 - 파일필드를 이용하여 파일업로드하기(html5를 이용한 다중파일 포함) (17) | 2014.10.28 |
---|---|
ExtJS 강좌 - xtype을 이용하여 html의 입력태그들과 HTML에디터 컴포넌트를 출력시켜보자 (0) | 2014.10.27 |
ExtJS 강좌 - 다이얼로그창을 이용하여 깔끔하게 종류별로 메시지창 띄워보기 (4) | 2014.10.23 |
ExtJS 강좌 - 메뉴버튼을 포함한 다양한 버튼컴포넌트 구현해보기 (4) | 2014.10.22 |
ExtJS 강좌 - 툴바위치 및 버튼 클릭 이벤트 알아보기 (0) | 2014.10.21 |