이제 좌측을 구현하겠습니다.
좌측 패널은 프로그램 메뉴가 나오는 영역입니다.
로그인 한 이후 화면을 코딩하는 것이므로 사용자가 가지고 있는 즉 권한에 해당되는 프로그램들이
보여지게 되면 되겠습니다.
panel을 사용하고 layout은 accodion을 이용합니다.
// app/view/Viewport.js를 수정합니다. Ext.define('ria.view.Viewport', { extend: 'Ext.container.Viewport', layout : 'border', items: [ { region: 'center', xtype: 'panel', title : '중간' },{ region: 'west', xtype : 'WestMenuPanel', width: 200 }] }); // app/view/frame/WestMenuPanel.js를 추가합니다. Ext.define('ria.view.frame.WestMenuPanel',{ extend : 'Ext.panel.Panel', alias : 'widget.WestMenuPanel', layout:'accordion', collapsible: true, margins:'5 0 5 5', split:true, title : 'Navigation', activeItem: 0, margins: '5 5 5 5', initComponent: function() { this.callParent(arguments); } }); // 이제 이 뷰를 사용하려면 컨트롤러에 위의 뷰가 명시되어 있어야합니다. Ext.define('ria.controller.FrameController', { extend: 'Ext.app.Controller', views: ['ria.view.frame.WestMenuPanel'], // 꼭 명시되어야함, 명시하지 않을 경우 require를 이용해야합. init: function() { this.control({ }); } });
여기까지 하고 재실행 해보면 크게 바뀐게 없습니다.
이제 좌측 패널의 accodion레이아웃에 맞게 들어갈 패널을 코딩합니다. 이 패널은 dataview를 가지고 있고 이 dataview에
하나의 서브시스템과 해당 서브시스템 아래의 프로그램이 표현되게 됩니다.
그리고 이 패널은 최초 컨트롤러가 로드될 때 WestMenuPanel의 item으로 자동 추가 되게 구현합니다.
// app/view/frame/WestMenuDataViewPanel.js 를 생성한다. Ext.define('ria.view.frame.WestMenuDataViewPanel',{ extend: 'Ext.panel.Panel', alias: 'widget.WestMenuDataViewPanel', animCollapse : true, collapsible : true, collapsed : true, useArrows: true, rootVisible: false, store: this.store, multiSelect: false, initComponent: function() { Ext.apply(this, { items: [{ xtype: 'dataview', trackOver: true, store: this.store, cls: 'feed-list', itemSelector: '.feed-list-item', overItemCls: 'feed-list-item-hover', tpl: ' {pgm_nm}' }], header: { toolFirst: true } }); this.callParent(arguments); } }); // app/controller/FrameController.js 를 수정한다. // views, refs, onLaunch를 확인하자. Ext.define('ria.controller.FrameController', { extend: 'Ext.app.Controller', views: ['ria.view.frame.WestMenuPanel', 'ria.view.frame.WestMenuDataViewPanel'], // 꼭 명시되어야함, 명시하지 않을 경우 require를 이용해야합. refs: [ {ref: 'westMenu', selector: 'WestMenuPanel'} ], init: function() { this.control({ }); }, onLaunch: function() { // refs의 ref명으로 뷰를 찾아온다. var menu = this.getWestMenu(); menu.add({ xtype : 'WestMenuDataViewPanel', title:'사용자관리' }); console.log(menu); } });
여기까지 하고 실행해보자.
자 이제 동적으로 accondion layout형태로 panel을 추가한것을 볼 수 있다 . 이제 이 것을 응용해서
디비에서 데이터를 불러와 자신이 가지고 있는 권한에 맞게끔 시스템을 불러오도록 하면 되겠습니다.
우선 디비에서 데이터를 줬다고 생각하고 json형태로 파일을 만들고 먼저 작업하도록 하겠습니다.
'자바스크립트 > Ext JS' 카테고리의 다른 글
ExtJS를 활용한 Ria 어플리케이션 구축하기 - 5 (0) | 2012.12.07 |
---|---|
ExtJS를 활용한 Ria 어플리케이션 구축하기 - 4 (4) | 2012.11.30 |
ExtJS를 활용한 Ria 어플리케이션 구축하기 - 2 (3) | 2012.07.22 |
ExtJS를 활용한 Ria Application 만들기 (1) | 2012.07.21 |
ExtJS 4를 활용한 Ria Application 만들기 (0) | 2012.07.20 |