넥사크로플랫폼으로 실행되는 그룹 단위를 Project라고 부르며, xprj 확장자를 가진 파일로 생성되어 관리 됩니다. Project는 기본적으로 ADL, TypeDefinition, Global Variables, FDL로 관리되며 이 단락에서는 각각의 항목에 대해 설명합니다.
Project 생성 마법사
Project 생성 마법사를 이용하여 새로운 Project를 생성할 수 있습니다. 메뉴 File[New – Project]에서 Project 생성 마법사를 시작합니다.
1단계 Location
생성될 Project의 Frame Template와 생성될 경로 및 Project명을 입력하는 단계입니다. Project명은 반드시 입력해야 하는 필수 항목이며, 생성될 경로에 동일한 Project명이 존재할 경우에는 생성할 수 없습니다.
속성 | 설명 | |
---|---|---|
1 | Frame Template | • Default Default Frame으로 생성 |
2 | Project Template | 기존 Project Template를 선택 |
3 | Show List Icon | Project Icon 표시 방법을 결정 |
4 | Project Information | 현재 선택된 Template를 표시 |
5 | • Add to Current Project 현재 작업중인 Project에 추가 • Create a new Project 새 Project를 생성 | |
6 | Name | Project 이름 |
7 | Location | Project의 Root 폴더 |
같은 폴더 내에 같은 이름으로 프로젝트를 생성할 수 없습니다. 다른 폴더 또는 다른 이름으로 프로젝트를 생성해야 합니다.
프로젝트, Form, 오브젝트 id 등 이름을 지정하는 항목에서는 아래 특수문자를 사용할 수 없습니다. 해당 문자를 입력하고 다음 단계로 넘어가려 시도하면 오류 메시지가 나타나고 처리가 되지 않습니다.
tab new-line return \ / : ‘ * ? “ < > | ! @ # $ % ^ & ( ) - + = ~ [ ] { } , `
특수 문자 외 아래 항목의 문자도 사용할 수 없습니다. 해당 문자는 입력이 제한되거나 입력 시 오류 메시지가 나타납니다.
Null 문자열, .(Dot), 숫자로 시작하는 문자열, 2바이트 문자
윈도우 환경에서는 특정 이름으로 새 폴더나 파일을 만들 수 없습니다. 프로젝트명으로 새로운 폴더가 만들어지는 넥사크로플랫폼 역시 해당 이름을 사용할 수 없습니다.
사용할 수 없는 이름은 아래 링크를 참고하세요.
http://msdn.microsoft.com/en-us/library/aa365247.aspx#naming_conventions
2단계 Definition
Project의 TypeDefinition을 설정합니다.
기본 Character Set은 UTF-8로 지정됩니다.
속성 | 설명 | |
---|---|---|
1 | TypeDefinition XML 선택 | • Create new TypeDefinition from default Default TypeDefinition으로 새로운 TypeDefinition 생성 • Existing TypeDefinition 기존 TypeDefinition을 적용 |
2 | TypeDefinition XML 경로 | TypeDefinition XML의 경로 |
3단계 Screen
Project의 Screen Info를 설정합니다. Screen이란 Application 구동 시 필요한 화면 크기등과 관련된 정보들의 모음입니다.
설명 | |
---|---|
1 | Screen 정보를 편집합니다. |
2 | Template 목록에서 Screen 정보를 가져옵니다. |
3 | Screen을 추가합니다. |
4 | Screen을 삭제합니다. |
5 | Screen 정보가 포함된 ADL 파일을 생성합니다. |
Screen 속성 | 설명 |
---|---|
name | Screen 이름 (고유 식별자) |
type | 사용 장비 형태 - 'desktop', 'phone', 'tablet' 중 여러 항목을 선택할 수 있습니다. |
screenwidth | Screen 너비 (입력 제한: 0~65536) |
sizeorientation | screenwidth 속성을 처리하는 방향을 지정합니다. - 'landscape', 'portrait' 중 한 가지 항목을 선택합니다. - 기본값 'landscape' (type 속성에 'desktop' 또는 'tablet' 항목이 포함된 경우) - 기본값 'portrait' (type 속성이 'phone'인 경우) |
autozoom | 자동 확대, 축소 기능 사용 여부를 지정합니다. - true, false 중 한 가지 항목을 선택합니다. (기본값은 false) - type 속성에 'desktop'일 경우에는 autozoom 설정은 적용하지 않습니다. |
zoommin | autozoom 기능 사용 시 최솟값 정보를 지정합니다. - 음수 지정 시 무제한, 기본값은 -1 |
zoommax | autozoom 기능 사용시 최댓값 정보를 지정합니다. - 음수 지정 시 무제한, 기본값은 -1 |
systemos | Screen에서 사용할 OS 정보 - 'windows', 'android', 'ios' 중 여러 항목을 선택할 수 있습니다. - 기본값은 모든 OS 속성값을 포함합니다. |
systemlocale | Screen에서 사용할 Locale 정보 - 'af_ZA' … "zh_TW" 중 여러 항목을 선택할 수 있습니다. - 기본값은 모든 Locale 속성값을 포함합니다. |
formlayoutwidth | Screen에서 사용할 Form Layout의 너비를 지정합니다. |
formlayoutheight | Screen에서 사용할 Form Layout의 높이를 지정합니다. |
themeid는 Screen별 Application 속성으로 ADL 생성 후 별도 편집기에서 지정할 수 있습니다.
Application Definition Language(ADL)
Project에 전반적으로 적용되는 Style이나 Theme, MainFrame 등을 관리합니다. Launch Project시 활성화된 ADL로 Project의 Style, Theme등이 적용됩니다.
메뉴 | 기능 |
---|---|
Edit Source | 선택된 ADL의 XML을 편집하는 Source 편집 창으로 이동 |
Edit Script | 선택된 ADL의 Script를 편집하는 Script 편집 창으로 이동 |
Insert ADL Item | • Style 스타일 CSS파일을 추가 • Tray Tray 추가 • Theme Xtheme 파일 추가 • Screen Screen 정보 추가 |
Set as Active ADL | 선택된 ADL을 활성화 활성화된 ADL에서 해당 메뉴 기능이 비활성화됨 |
Copy | 지원되지 않는 기능 |
Cut | 지원되지 않는 기능 |
Paste | 지원되지 않는 기능 |
Collapse All | ADL 하위 Tree Item을 감춤 |
Expand All | ADL 하위 Tree Item을 펼침 |
Screen Template | Screen Template 목록 편집 |
Copy Full Path | 선택된 ADL 파일이 저장된 경로를 클립보드에 복사 |
Open Containing Folder | 선택된 ADL 파일 위치를 윈도우 탐색기에서 열어서 보여줌 |
Close | 지원되지 않는 기능 |
Save | 선택된 ADL의 정보를 저장 |
Save As… | 선택된 ADL의 정보를 다른 이름으로 저장 |
Rename | 선택된 ADL의 이름을 변경 |
Generate | 선택된 프로젝트 Build • Generate Application • Generate Themes • Generate File |
Refresh | ADL XML을 Reload |
Delete | 선택된 ADL을 삭제 |
MainFrame
넥사크로플랫폼 애플리케이션의 기본 화면을 구성하는 요소입니다. 하위 구성 요소로 ChildFrame을 가지고 있으며 프로젝트와 함께 기본 생성됩니다.
메뉴 | 기능 |
---|---|
Edit | MainFrame 하위 Tree Item 편집 |
Insert Frame | MainFrame 하위 Tree Item 추가 |
Copy | 지원되지 않는 기능 |
Cut | 지원되지 않는 기능 |
Paste | 지원되지 않는 기능 |
Collapse All | MainFrame의 하위 Tree Item을 감춤 |
Expand All | MainFrame의 하위 Tree Item을 펼침 |
Copy Full Path | 선택된 MainFrame 파일이 저장된 경로를 클립보드에 복사 |
Open Containing Folder | 선택된 MainFrame 파일 위치를 윈도우 탐색기에서 열어서 보여줌 |
Close | 지원되지 않는 기능 |
Save | 편집 중인 MainFrame을 저장 |
Save As… | Main Menu에서는 지원되지 않는 기능 |
Rename | Main Menu에서는 지원되지 않는 기능 |
Generate | 선택된 프로젝트 Build • Generate Application • Generate Themes |
Refresh | 지원되지 않는 기능 |
Delete | MainFrame 삭제 |
ChildFrame은 MainFrame 하위에 올 수 있는 프레임으로 Form 정보를 Url 형태로 가지고 있어 해당 Form을 화면에 표시합니다. 기본적으로 Form이 로딩될 수 있는 기본 단위 화면을 의미합니다.
Theme
사용자가 제작한 Theme를 적용하여 Project의 스타일을 쉽게 변경할 수 있습니다.
메뉴 | 기능 |
---|---|
Edit | Theme Editor를 호출 |
New Theme | 새 Theme를 추가 |
Insert Theme | Theme 삽입 |
Copy | 지원되지 않는 기능 |
Cut | 지원되지 않는 기능 |
Paste | 지원되지 않는 기능 |
Collapse All | Themes 하위 Tree Item을 감춤 |
Expand All | Themes 하위 Tree Item을 펼침 |
Copy Full Path | 활성화된 테마 파일이 저장된 경로를 클립보드에 복사 |
Open Containing Folder | 활성화된 테마 파일 위치를 윈도우 탐색기에서 열어서 보여줌 |
Close | 지원되지 않는 기능 |
Save | 지원되지 않는 기능 |
Save As… | 지원되지 않는 기능 |
Rename | 지원되지 않는 기능 |
Generate | 선택된 프로젝트 Build • Generate Application • Generate Themes |
Refresh | 지원되지 않는 기능 |
메뉴 | 기능 |
---|---|
Edit | Theme Editor를 호출 |
Set as Active Theme | Project가 실행될 때 선택된 Theme가 적용되도록 설정 선택된 테마에서는 비활성화 |
Copy | 지원되지 않는 기능 |
Cut | 지원되지 않는 기능 |
Paste | 지원되지 않는 기능 |
Collapse All | 지원되지 않는 기능 |
Expand All | 지원되지 않는 기능 |
Copy Full Path | 테마 파일이 저장된 경로를 클립보드에 복사 |
Open Containing Folder | 테마 파일 위치를 윈도우 탐색기에서 열어서 보여줌 |
Close | Theme Editor 닫기 |
Save | 편집 중인 Theme를 저장 |
Save As… | 편집 중인 Theme를 다른 이름으로 저장 |
Rename | 테마 파일 이름 변경 |
Generate | 선택된 프로젝트 Build • Generate Application • Generate Themes |
Refresh | 지원되지 않는 기능 |
Delete | 선택된 테마 파일를 삭제 |
이미지 파일을 확인하는 경우에는 이미지 미리보기 창 아래에 이미지 파일 관련 정보가 추가적으로 보입니다.
메뉴 | 기능 |
---|---|
Edit | CSS를 편집할 수 있는 CSS Editor를 호출 (CSS Editor의 상세설명은 Style의 설명을 참조) |
New Folder | Theme안에 새 Folder를 생성 |
Insert File | 그림 파일 또는 CSS 파일 추가 |
Remove File | Tree에서 선택된 파일을 목록에서 제거 |
Rename | Tree에서 선택된 파일의 이름을 수정 |
Set Extern | Deploy Theme기능에서 Extern File로 저장 될 Image를 선택. CheckBox가 Uncheck상태로 설정됨 (단, default.xtheme등의 기본제공 Theme선택 시에는 나타나지 않음) |
Unset Extern | 위 Set Extern으로 설정된 Extern File을 해제. CheckBox가 Check상태로 설정됨 (단, default.xtheme등의 기본제공 Theme선택 시에는 나타나지 않음) |
ScreenInfo
‘New Project Wizard’에서 입력한 Screen정보를 수정하거나 새로운 Screen정보를 입력할 수 있는 Editor기능이 추가되었습니다.
‘Project Explorer’에서 ADL Item에서 제공되는 Popup메뉴를 사용하여 새로운 Screen정보를 추가하거나 ADL Item의 하위 정보로 표시되는 ‘ScreenInfo’등을 선택하여 편집할 수 있습니다.
메뉴 | 기능 |
---|---|
Edit | Screen Editor를 호출 |
Insert Screen | 새로운 Screen정보 추가 |
Copy | 지원되지 않는 기능 |
Cut | 지원되지 않는 기능 |
Paste | 지원되지 않는 기능 |
Collapse All | ScreenInfo 하위 Tree Item을 감춤 |
Expand All | ScreenInfo 하위 Tree Item을 펼침 |
Copy Full Path | 선택된 ADL 파일이 저장된 경로를 클립보드에 복사 (ScreenInfo 정보는 ADL 파일에 포함되어 있습니다) |
Open Containing Folder | 선택된 ADL 파일 위치를 윈도우 탐색기에서 열어서 보여줌 |
Close | 지원되지 않는 기능 |
Save | 편집 중인 ScreenInfo 를 저장 |
Save As… | 지원되지 않는 기능 |
Rename | 지원되지 않는 기능 |
Generate | 선택된 프로젝트 Build • Generate Application • Generate Themes |
Refresh | 지원되지 않는 기능 |
‘ScreenInfo Editor’는 기존에 제공되던 ‘Variable Editor’와 같은 방식으로 편집기능을 제공합니다.
속성 | 설명 | |
---|---|---|
1 | Add | 새 Screen정보를 추가하는 버튼 |
2 | Del | ScreenInfo그리드에서 선택된 Screen정보를 삭제하는 버튼 |
3 | Screen정보 그리드 | Project가 사용할 Screen정보를 보여주는 그리드 |
4 | Property Window | ScreenInfo그리드에서 선택된 Screen정보는 Properties Windows에서 동일하게 표시되며 수정할 수 있습니다. |
5 | Add Application Property | Screen 정보에 애플리케이션 속성 정보를 추가하는 버튼 |
Add Application Property
속성 창에서 'Add Application Property' 항목 선택 시 애플리케이션 속성 정보를 추가할 수 있는 대화상자가 나타납니다.
속성 | 설명 | |
---|---|---|
1 | Screen name | 선택된 Screen name 표시 |
2 | 정렬 방식 | 속성 목록 정렬 방식을 선택합니다 (Group/Alphabet) |
3 | 애플리케이션 속성 목록 | Screen 정보에 추가할 수 있는 애플리케이션 속성 정보가 표시됩니다. 값을 입력하고 'OK' 버튼을 클릭하면 속성 창에 'Application' 그룹이 생성되고 지정한 속성 항목이 추가됩니다.
|
추가된 애플리케이션 속성 정보는 컨텍스트 메뉴에서 삭제할 수 있습니다.
Tray
윈도우 시스템 트레이에 하나 이상의 애플리케이션 아이콘을 추가하고 팝업 메뉴 등을 사용해 애플리케이션을 제어할 수 있습니다.
트레이 추가
ADL 메뉴에서 'Insert ADL Item'을 선택하고 'Tray' 항목을 선택하면 새로운 트레이 아이템을 추가할 수 있습니다. 트레이 아이템이 추가되면 'Trays'라는 그룹이 생성되고 추가한 트레이를 확인할 수 있습니다. 새로운 트레이 항목을 추가하려면 'Trays' 그룹 메뉴에서 'Insert Tray' 항목을 선택하거나 트레이 아이템 편집창에서 추가 버튼을 선택합니다.
하나 이상의 트레이를 추가한 경우에는 애플리케이션이 시작되면서 시스템 트레이에 여러 개 아이콘을 표시합니다.
아이템 추가
시스템 트레이에서 애플리케이션 아이콘 클릭 시 한가지 동작만 처리하도록 할 수 있습니다. 하지만 더 많은 기능을 사용하려면 팝업 메뉴 형태로 기능을 표시하고 사용자가 원하는 기능을 선택할 수 있도록 지원합니다.
트레이를 선택하고 속성창에서 items 항목을 선택하면 트레이팝업메뉴아이템을 편집할 수 있는 창이 나타납니다. 새로운 아이템을 추가하고 innerdataset에 원하는 항목을 추가합니다.
innerdataset에 항목을 추가하는 것은 Menu 컴포넌트나 PopupMenu 컴포넌트에서 사용하는 형식과 같습니다. levelcolumn 값은 0부터 시작하며 captioncolumn에 '&'문자를 추가하면 단축키로 사용할 수 있습니다.
트레이 실행
런타임으로 애플리케이션 실행 시 등록한 트레이는 자동으로 실행되어 시스템 트레이에 아이콘으로 표시됩니다. 해당 트레이를 마우스로 클릭해 등록한 아이템을 팝업 메뉴로 실행하려면 아래와 같이 이벤트를 추가합니다.
this.Tray0_onlbuttonup = function(obj:Tray, e:nexacro.MouseEventInfo) { obj.items['item00'].trackPopup(); }
Type Definition의 편집
넥사크로 스튜디오에서는 Component, Service, Update를 Type Definition에 등록해서 Prefix로 사용할 수 있습니다. Type Definition에 등록된 각각의 항목은 Edit TypeDefinition에서 기존 항목의 수정, 삭제 및 신규 항목을 추가할 수 있습니다.
메뉴 | 기능 |
---|---|
Edit | TypeDefinition을 편집할 수 있는 편집창 호출 |
Insert Typedefinition Item | TypeDefinition의 Protocols에 새로 프로토콜을 추가할 수 있는 프로토콜 추가 마법사 호출 |
Copy | 지원되지 않는 기능 |
Cut | 지원되지 않는 기능 |
Paste | 지원되지 않는 기능 |
Collapse All | TypeDefinition의 하위 트리 아이템을 감춤 |
Expand All | TypeDefinition의 하위 트리 아이템을 펼침 |
Copy Full Path | TypeDefinition 파일이 저장된 경로를 클립보드에 복사 |
Open Containing Folder | TypeDefinition 파일 위치를 윈도우 탐색기에서 열어서 보여줌 |
Close | 지원되지 않는 기능 |
Save | 지원되지 않는 기능 |
Save As… | 지원되지 않는 기능 |
Rename | 지원되지 않는 기능 |
Generate | 선택된 프로젝트 Build • Generate Application • Generate Themes • Generate Service • Generate File |
Refresh | TypeDefinition XML을 Reload |
Edit TypeDefinition
Edit TypeDefinition은 Project Explorer창에서 TypeDefinition 항목을 더블 클릭하거나 메뉴에서 편집창을 호출해 사용할 수 있습니다.
Objects
넥사크로플랫폼에서 사용하는 Button, CheckBox등 Design으로 표현되는 컴포넌트들과 Dataset등과 같은 Invisible 컴포넌트는 모듈에 등록된 라이브러리에서 관리합니다. 애플리케이션이 정상적으로 동작하기 위해서는 사용하는 라이브러리 폴더가 접근 가능한 경로에 설정되어 있어야 합니다.
Column | 설명 |
---|---|
Type | Component의 Type |
ID | Component의 ID |
ClassName | Component의 ClassName |
Image | Component 툴바에서 사용될 이미지 |
Default Width | Component 기본 넓이 |
Default Height | Component 기본 높이 |
Modules
추가로 개발된 컴포넌트를 사용하기 위해서는 관련된 모듈을 등록하고 연결된 컴포넌트를 사용할 수 있습니다.
Protocols
Protocol Definition에서는 새로운 프로토콜을 등록/삭제하고 프로토콜을 사용할 장치 타입을 관리합니다. 또한 선택한 장치 타입에 맞게 각각 모듈 정보와 클래스 정보를 등록할 수 있습니다.
디바이스 타입 | Column | 설명 |
---|---|---|
Runtime | ModuleName | 바이너리 모듈의 이름입니다. TargetPath의 경로로부터 [ModuleName].dll 파일을 찾아서 등록합니다. |
TargetPath | 바이너리 모듈을 받아올 경로입니다. | |
HTML5 | Classname | HTML5 환경에서 사용할 프로토콜의 클래스 이름입니다. |
Android | Classname | Android 환경에서 사용할 프로토콜의 클래스 이름입니다. |
iOS | Classname | iOS 환경에서 사용할 프로토콜의 클래스 이름입니다. |
Services
Service Definition에서는 넥사크로 스튜디오에서 사용되는 Folder Path나 Internet URL등을 관리합니다. Add, Delete버튼을 사용하여 새 Service를 추가하거나, 선택된 Service를 삭제할 수 있습니다.
Column | 설명 |
---|---|
PrefixID | Service의 PrefixID |
Type | Service의 Type |
Url | Service 경로 |
CacheLevel | Cache 기능사용 여부 |
Codepage | Code Page 이름 |
Language | 사용 언어 |
Version | Service의 버전 정보 |
Communication version | Communication 버전 정보 |
ServiceList | Service List 호출 경로 (Type을 'bs', 'metadata'로 지정한 경우 사용) |
DatasetLayout | Model Service Layout 호출 경로 (Type을 'bs', 'metadata'로 지정한 경우 사용) |
ExecuteUrl | Business Service가 실행될 경로 (Type을 'bs'로 지정한 경우 사용) |
File Extension | 서비스에 관리할 대상 파일 확장자 목록 (Type을 'file'로 지정한 경우 사용) 세미콜론(;)으로 확장자를 구분해 입력 (예, js;txt;xfdl;xml) |
Include Sub-directory | 하위 디렉토리 포함 여부 (Type을 'file'로 지정한 경우 사용) |
Search Column | Metadata 편집기에서 데이터 탐색 시 탐색 범위 컬럼을 지정 (Type을 'metadata'로 지정한 경우 사용) 세미콜론(;)으로 확장자를 구분해 입력하며 입력하지 않은 경우 모든 컬럼을 탐색 범위로 지정 |
PrefixID 지정 시 아래 항목은 사용하지 않을 것을 권장합니다. 사용 시 오류가 발생할 수 있습니다.
- 빈 문자열
- 숫자로 시작하는 문자열
- 이미 지정된 PrefixID와 중복된 문자열
- 특수문자를 포함한 문자열
space(' '), \t, \n, \r, \, /, :, ;, *, ?, ', ", <, >, |, !, @, #, $, %, ^, &, (, ) , -, +, =, ~, [, ], {, }, `, comma(,), dot(.)
선택한 Type 값에 따라 [Project Explorer]에 표시하는 파일 형식이 제한됩니다.
Service Type | File extension |
---|---|
form | *.xfdl, *.xjs, *.js |
js | *.js, *.xjs |
file | 제한 없음 File Extension에 확장자를 지정한 경우에는 해당 확장자로 제한 |
css | *.css |
JSP | PrefixID로만 사용하며 [Project Explorer]에 표시하지 않습니다. |
ASP | PrefixID로만 사용하며 [Project Explorer]에 표시하지 않습니다. |
SAP | PrefixID로만 사용하며 [Project Explorer]에 표시하지 않습니다. |
bs | business service dataset |
metadata | metadata service dataset |
각 서비스는 Type에 따라 허용된 확장자 파일만 관리합니다. 허용되지 않는 파일은 [Project Explorer]에 표시하지 않습니다.
Generate, Deploy 처리 시 허용된 파일 형식 외 파일은 복사되지 않습니다. 예를 들어 Type이 'form'인 서비스 디렉토리에 *.json 파일이 있다면 해당 파일은 복사되지 않습니다.
Type이 'JSP', 'ASP', 'SAP'인 서비스는 디렉토리 자체가 복사되지 않습니다.
Type이 'JSP', 'ASP', 'SAP'인 경우에는 넥사크로 스튜디오에서 파일 목록을 표시하지 않습니다. PrefixID로 사용하는 용도로만 사용합니다.
Update
Update Definition에서는 Web 또는 이미 개발된 Application상에서의 넥사크로플랫폼에 필요한 파일 배포 및 버전을 관리합니다. Add, Delete 버튼을 사용하여 새 Update를 추가하거나, 선택된 Update를 삭제할 수 있습니다
Column | 설명 |
---|---|
SystemType | 시스템 타입 선택 (Windows, Android, iOS) |
OS | 운영체제 타입 선택 |
Device | 기기 타입 선택 |
UpdateUrl | Component를 업데이트할 서버 경로 |
EngineUrl | Engine 설치 URL |
EngineSetupKey | Engine 설치키 |
EngineVersion | Engine 버전 |
Timeout | 대기시간 (SystemType을 'Android', 'iOS'로 지정한 경우 사용) |
Retry | 재시도 횟수 (SystemType을 'Android', 'iOS'로 지정한 경우 사용) |
AutoUpdate | auto, manual 중 선택 (SystemType을 'Android', 'iOS'로 지정한 경우 사용) |
Description | 기타 메모 (시스템 실행에는 영향을 미치지 않습니다) |
Resource | |
Type | 리소스 파일 타입 (Object, Theme, File, Engine) |
File | 파일명 (확장자 포함) |
TargetPath | 업데이트 경로 (Destination) |
Version | 업데이트 파일 버전 |
UpdateUrl 경로로 지정한 도메인이 XADL 경로와 일치하지 않는 경우에는 업데이트하지 않습니다.
XADL 경로가 로컬로 지정된 경우에는 도메인 정보와 상관없이 업데이트합니다.
모바일 디바이스 앱 개발 시 필요한 옵션에 대한 설명은 관리자 가이드 문서를 참조해주세요.
14.0.1.3200 이후 버전에서는 보안 취약점 보완에 따라 아래와 같은 제약 사항이 추가되었습니다.
• Targetpath 항목값은 Alias 경로로 지정한 경우에만 업데이트할 수 있습니다.
- 사용할 수 있는 Alias 경로는 아래 문서를 참고하세요.
- http://docs.tobesoft.com/admin_guide_nexacro_14_ko#29a8bc0eb7c0e7ff
• Targetpath 항목값이 시작메뉴 폴더인 경우에는 업데이트를 허용하지 않습니다.
• Targetpath 항목값으로 "../" 와 같은 상대경로를 입력할 수 없습니다.
Service Refactoring
Type Definition에서 사용중인 Service의 PrefixID를 변경할 경우에 사용중인 부분을 자동으로 변경된 PrefixID로 변경해주는 Refactoring 기능이 수행됩니다.
현재 Project에서 사용중인 변경 전 PrefixID를 모두 리스트로 보여주며 ‘Rename’을 클릭할 때 체크되어 있는 항목을 자동으로 변경해 줍니다.
Metadata
Metadata 시스템에서 관리하는 데이터를 넥사크로 스튜디오에 연동하는 기능입니다. 처리된 Metadata는 Dataset으로 사용하거나 id 또는 text 속성값으로 가져와 사용할 수 있습니다.
Metadata 등록
[TypeDefinition > Services] 탭에서 등록합니다.
하나의 프로젝트에 Metadata 서비스는 하나만 등록할 수 있습니다. 하나 이상 항목을 등록하려 하는 경우 아래와 같은 메시지가 출력되며 저장되지 않습니다.
실제 서비스를 처리하기 위해서는 기본 항목 외에 'Service List', 'DatasetLayout' 항목을 지정해주어야 합니다.
Service List
서비스 데이터셋 파일을 지정합니다. 제공되는 파일 형태는 아래와 같습니다. Metadata 처리를 위해 컬럼 데이터 중 'DOMAIN', 'MODEL' 항목은 'metadata'로 입력해야 합니다.
Column ID | 설명 (고정값) | |
---|---|---|
1 | DOMAIN | metadata |
2 | MODEL | metadata |
3 | DESCRIPTION | 설명 |
4 | DATASOURCE | 사용한 데이터소스 |
<?xml version="1.0" encoding="utf-8"?> <Root xmlns='http://www.nexacroplatform.com/platform/Dataset' ver='4000'> <Parameters> <Parameter id="ErrorCode" type="int">0</Parameter> <Parameter id="ErrorMsg" type="string">success</Parameter> </Parameters> <Dataset id="termService"> <ColumnInfo> <Column id="DOMAIN" type="string" size="255"/> <Column id="MODEL" type="string" size="255"/> <Column id="DESCRIPTION" type="string" size="255"/> <Column id="DATASOURCE" type="string" size="255"/> </ColumnInfo> <Rows> <Row> <Col id="DOMAIN">metadata</Col> <Col id="MODEL">metadata</Col> <Col id="DESCRIPTION">description</Col> <Col id="DATASOURCE">DB</Col> </Row> </Rows> </Dataset> </Root>
DatasetLayout
Dataset Layout에 담길 정보를 지정합니다. 제공되는 파일 형태는 아래와 같습니다. Dataset Layout에는 output Dataset과 metadata Dataset 정보를 기술합니다. output Dataset에서 제공하는 컬럼 중 'name' 항목은 'metadata'로 입력해야 하며 metadata Dataset의 id 항목도 'metadata'로 입력해야 합니다.
Column ID | 설명 (고정값) | |
---|---|---|
1 | name | metadata |
2 | type | dataset |
3 | description | 데이터에 대한 설명 |
<?xml version='1.0' encoding='utf-8'?> <Root xmlns='http://www.nexacroplatform.com/platform/Dataset' ver='4000'> <Parameters> <Parameter id='svcid' type='string'></Parameter> <Parameter id='ErrorCode' type='int'>0</Parameter> </Parameters> <Dataset id='output'> <ColumnInfo> <Column id='name' type='STRING' size='50'/> <Column id='type' type='STRING' size='50'/> <Column id='description' type='STRING' size='256'/> </ColumnInfo> <Rows> <Row> <Col id='name'>metadata</Col> <Col id='type'>dataset</Col> <Col id='description'>Color code</Col> </Row> </Rows> </Dataset> <Dataset id='metadata'> <ColumnInfo> <Column id='CODE' type='STRING' size='50'/> <Column id='NAME' type='STRING' size='50'/> </ColumnInfo> <Rows> <Row> <Col id='CODE'>0048BA</Col> <Col id='NAME'>Absolute Zero</Col> </Row> <Row> <Col id='CODE'>4C2F27</Col> <Col id='NAME'>Acajou</Col> </Row> <Row> <Col id='CODE'>B0BF1A</Col> <Col id='NAME'>Acid green</Col> </Row> <Row> <Col id='CODE'>C9FFE5</Col> <Col id='NAME'>Aero</Col> </Row> </Rows> </Dataset> </Root>
DatasetLayout 서비스 호출은 아래와 같은 형식으로 처리됩니다.
'서비스URL' + '서비스리스트' + &domain=도메인명&model=모델명
고정된 XML 파일을 작성해 메타데이터로 사용한다면 아래와 같이 DatasetLayout 값을 입력해야 합니다.
ServiceModelData.xml?service=serviceInfo
옵션 설정
Metadata를 id 또는 text 속성값으로 가져와 사용하려면 옵션에서 별도 설정이 필요합니다. 메뉴에서 [Tools > Options > Environment > Business Service] 'Use user-defined metadata' 항목을 사용함으로 체크합니다.
해당 옵션에서 'Load business service layout information on Startup' 항목을 사용함으로 체크하면 프로젝트를 불러올때 Metadata 정보도 같이 가져옵니다. 해당 옵션을 사용하지 않는다면 수작업으로 Metadata를 선택하고 'Refresh' 메뉴를 선택해 정보를 가져올 수 있습니다.
속성값으로 적용
'Use user-defined metadata' 항목을 사용함으로 체크한 경우에는 id, text 속성창에서 Metadata 정보를 호출할 수 있는 버튼이 보입니다. 해당 버튼을 클릭하고 원하는 항목을 선택해 속성값으로 적용할 수 있습니다.
데이터가 많은 경우에는 컬럼값을 필터링해서 선택할 수 있습니다. 필러팅 대상 컬럼은 서비스 등록 시 'Search Column' 항목에서 지정할 수 있습니다.
속성값으로 적용한 값은 실제 속성값으로 적용됩니다. Metadata와 바인딩되는 것은 아니기 때문에 Metadata가 변경되더라도 해당 속성값은 변경되지 않습니다.
Dataset으로 적용
[Project Explorer]에서 Metadata을 선택하고 'Invisible Objects' 영역으로 마우스 드래그앤드롭으로 옮기면 Dataset으로 만들어집니다.
Global Variables
GlobalVariables에서는 ADL과 Form에는 포함되지 않으나 Project 전체에 걸쳐 사용되는 여러 Global 항목이 표시됩니다. 또한 각각의 편집기를 사용하여 GlobalVariables에 항목을 추가하거나 수정할 수 있습니다.
GlobalVariables Item으로 Dataset, Variable, Image 항목이 입력 가능합니다.
메뉴 | 기능 |
---|---|
Edit Source | GlobalVariables를 XML 편집 창에서 직접수정 |
Insert Global Variables Item | • Dataset Dataset Editor에 새로운 Dataset을 추가 • Variable Variable Editor에 새로운 Variable을 추가 • Image Image를 추가 |
Copy | 지원되지 않는 기능 |
Cut | 지원되지 않는 기능 |
Paste | 지원되지 않는 기능 |
Collapse All | GlobalVariables 하위 Tree Item을 감춤 |
Expand All | GlobalVariables 하위 Tree Item을 펼침 |
Copy Full Path | GlobalVariables 파일이 저장된 경로를 클립보드에 복사 |
Open Containing Folder | GlobalVariables 파일 위치를 윈도우 탐색기에서 열어서 보여줌 |
Close | 지원되지 않는 기능 |
Save | 편집 중인 GlobalVariables를 저장 |
Save As… | 지원되지 않는 기능 |
Rename | 지원되지 않는 기능 |
Generate | 선택된 프로젝트 Build • Generate Application • Generate Themes • Generate File |
Refresh | GlobalVariables XML을 Reload |
Datasets
Dataset은 Data를 처리하는 Table형태의 기억장소입니다. Presentation용 컴포넌트와 Dataset이 Bind된 경우 Data변경사항이 해당 컴포넌트에 자동으로 동기화 되는 기능도 제공합니다.
메뉴 | 기능 |
---|---|
Edit | Dataset Editor 호출 |
Insert Dataset | Dataset Editor에 새로운 Dataset을 추가 |
Copy | 지원되지 않는 기능 |
Cut | 지원되지 않는 기능 |
Paste | 지원되지 않는 기능 |
Collapse All | Datasets 하위 Tree Item을 감춤 |
Expand All | Datasets 하위 Tree Item을 펼침 |
Copy Full Path | GlobalVariables 파일이 저장된 경로를 클립보드에 복사 |
Open Containing Folder | GlobalVariables 파일 위치를 윈도우 탐색기에서 열어서 보여줌 |
Close | 지원되지 않는 기능 |
Save | 편집 중인 Dataset을 저장 |
Save As… | 지원되지 않는 기능 |
Rename | 지원되지 않는 기능 |
Generate | 선택된 프로젝트 Build • Generate Application • Generate Themes |
Refresh | 지원되지 않는 기능 |
Dataset편집 창에서 Dataset항목을 추가, 삭제하거나 구성을 변경할 수 있습니다.
속성 | 설명 | |
---|---|---|
1 | Import Datasets | 저장된 파일에서 Dataset을 Load |
2 | Export Datasets | 현재 Dataset을 파일로 Save |
3 | Add a New Dataset | Dataset 추가 |
4 | Delete selected Datasets | Dataset 삭제 |
5 | Const | Constant Data의 Columns 설정 |
6 | Add a new Const Column | Constant Column 추가 |
7 | Insert a new Const Column | 커서가 위치한 상단에 Constant Column 삽입 |
8 | Delete selected Const Columns | Constant Column 삭제 |
9 | Columns | Dataset의 Columns 설정 |
10 | Add a new Column | Dataset의 Column 추가 |
11 | Insert a new Column | 커서가 위치한 상단에 Column 삽입 |
12 | Delete selected Columns | Dataset의 Column 삭제 |
13 | Rows | Dataset의 Row 설정 |
14 | Add a new Row | Dataset의 Row 추가 |
15 | Insert a new Row | 커서가 위치한 상단에 Row 삽입 |
16 | Delete selected Rows | Dataset의 Row 삭제 |
Variables
Variables는 Project 내에서 전역적으로 사용하는 변수입니다.
메뉴 | 기능 |
---|---|
Edit | Variable Editor 호출 |
Insert Variable | Variable Editor에 새로운 Variable을 추가 |
Copy | 지원되지 않는 기능 |
Cut | 지원되지 않는 기능 |
Paste | 지원되지 않는 기능 |
Collapse All | Variables 하위 Tree Item을 감춤 |
Expand All | Variables 하위 Tree Item을 펼침 |
Copy Full Path | GlobalVariables 파일이 저장된 경로를 클립보드에 복사 |
Open Containing Folder | GlobalVariables 파일 위치를 윈도우 탐색기에서 열어서 보여줌 |
Close | 지원되지 않는 기능 |
Save | 편집 중인 Variable을 저장 |
Save As… | 지원되지 않는 기능 |
Rename | 지원되지 않는 기능 |
Generate | 선택된 프로젝트 Build • Generate Application • Generate Themes |
Refresh | 지원되지 않는 기능 |
Variable편집 창에서 Variable항목을 추가, 삭제하거나 구성을 변경할 수 있습니다.
속성 | 설명 | |
---|---|---|
1 | ID | Variable명 |
2 | Initval | 초기값 |
3 | Usecookie | Cookie의 사용여부 설정 |
4 | Add Variable | Variable 추가 |
5 | Delete Variable | 선택된 Variable 삭제 |
Image
Project내에서 사용되는 Image를 새롭게 추가하거나 삭제할 수 있습니다.
Project Explorer의 Images항목에서는 Image를 추가할 수 있는 팝업메뉴가 호출되며, Images항목의 하위 Item인 Image항목에서는 선택된 Image를 삭제할 수 있는 팝업 메뉴가 호출됩니다.
메뉴 | 기능 |
---|---|
Edit | 지원되지 않는 기능 |
Insert Image | 이미지 파일을 추가할 수 있는 File Dialog를 호출 |
Copy | 지원되지 않는 기능 |
Cut | 지원되지 않는 기능 |
Paste | 지원되지 않는 기능 |
Collapse All | Images 하위 Tree Item을 감춤 |
Expand All | Images 하위 Tree Item을 펼침 |
Copy Full Path | GlobalVariables 파일이 저장된 경로를 클립보드에 복사 |
Open Containing Folder | GlobalVariables 파일 위치를 윈도우 탐색기에서 열어서 보여줌 |
Close | 지원되지 않는 기능 |
Save | 편집 중인 Image를 저장 |
Save As… | 지원되지 않는 기능 |
Rename | 지원되지 않는 기능 |
Generate | 선택된 프로젝트 Build • Generate Application • Generate Themes |
Refresh | 지원되지 않는 기능 |
Delete | 선택된 이미지 파일을 Image 그룹에서 삭제 (개별 이미지 파일 선택 시) |
Project Explorer에서 Image항목이 선택될 경우, Image Preview가 자동으로 호출됩니다.
프로젝트를 생성한 드라이브와 다른 드라이브를 사용하는 경우에는 경로가 정상적으로 처리되지 않습니다.
예를 들어 D 드라이브에 생성한 프로젝트에서 C 드라이브에 저장된 이미지를 가져오게 되면 상대경로를 정상적으로 처리할 수 없습니다.
서비스그룹에 file 유형으로 등록한 경로에 저장된 이미지가 아니라면 제너레이트 과정에서 파일을 복사하지 않습니다.
해당 서버에 같은 경로로 파일을 복사해주어야 하며 해당 파일에 접근 권한이 있어야 합니다.
FDL 생성 마법사
Form 생성 마법사를 이용하여 새로운 Form을 생성할 수 있습니다. 메뉴 File[New – Item – Form]에서 Form 생성 마법사를 시작합니다.
1단계 Location
생성될 Form의 경로와 이름을 입력하는 단계입니다. Form명은 반드시 입력해야 하는 필수 항목이며, 생성될 경로에 동일한 Form명이 존재할 경우에는 생성할 수 없습니다.
속성 | 설명 |
---|---|
Name | 생성될 form의 이름 |
Location | 생성될 form의 위치 |
2단계 Dimension
Form의 Width, Height를 정합니다. 최초 Width, Height는 메뉴 Tool[Options]의 Design에서 정해진 값을 표시합니다.
3단계 Position
form에서 컴포넌트 생성 시 적용되는 Position 속성값 단위를 설정합니다. 기본값은 Option에서 지정한 값으로 표시됩니다.
각 속성값의 단위를 변경하고 왼쪽 아래에 있는 'Save position in options' 항목을 체크하면 지정된 단위가 Option에 저장됩니다.
4단계 Layout
Form에서 사용할 Layout을 설정합니다. Layout이란 각각 다른 크기를 가진 화면을 의미합니다.
프로젝트 생성 시 지정한 Screen 정보를 기준으로 Layout 정보를 자동 구성해줍니다. 이전 단계에서 'Finish' 버튼을 클릭해 Form을 생성한 경우에는 Layout 정보를 추가 구성하지 않고 기본 설정인 Defaut Layout만 생성됩니다.
설명 | |
---|---|
1 | Layout 정보 편집 화면 |
2 | Screen Template에서 Layout 정보를 가져오는 버튼 |
3 | Form에서 사용할 Layout 정보를 추가하는 버튼 |
4 | 선택된 Layout정보를 삭제하는 버튼 |
Layout 속성 | 설명 |
---|---|
name | Layout 이름 (고유 식별자) |
screenid | Layout이 사용할 Screen 이름을 설정합니다. - ADL Screen 목록 중 여러 개 선택할 수 있습니다. |
width | Layout 너비 |
height | Layout 높이 |
description | Layout 설명 |
Template 버튼을 누르면 Screen Template 창이 뜹니다.
설명 | |
---|---|
1 | Screen Template에 지정된 User/Basic Template 목록 중에서 사용할 Screen 항목을 선택합니다. 여러 항목을 선택할 수 있습니다. |
2 | User Template을 추가, 변경, 삭제할 수 있는 창을 띄웁니다. 수정한 정보는 User Template에 즉시 반영됩니다. |
Screen Template에서 선택한 목록으로 Layout을 생성할 수 있으며, 생성시 Layout의 name과 width 속성은 Screen 정보의 name과 screenwidth 속성에 따라 자동 적용됩니다.
FDL (Form Definition Language)
FDL Drag&Drop
프로젝트에서 생성된 폼은 서비스 그룹 단위로 관리되며, 각 그룹에 속한 폼은 드래그앤드롭으로 다른 그룹으로 이동할 수 있습니다. <Ctrl>키를 누른 채 드래그앤드롭을 사용하면 폼이 복사되어 생성됩니다.
FDL 항목
Form항목은 하위 Tree Item으로 Layout, Objects, Script, Bind를 가집니다.
아이콘 | 이름 | 설명 |
---|---|---|
Layout | Form에 생성된 Component를 하위 Item으로 표시 | |
Objects | Design이 없는 Invisible Component를 표시 | |
Script | Form이 가진 Function 목록을 표시 | |
Bind | Form에 Bind된 정보를 표시 |
Form 항목에서는 아래와 같은 기능을 지원합니다.
Form을 넥사크로 스튜디오에서 편집할 때와 그렇지 않을때 보여지는 컨텍스트 메뉴가 달라집니다. 편집 중일 때는 BindItem, Layout List와 같은 메뉴가 활성화되고 그렇지 않을 때는 Edit, Insert Style, Rename과 같은 메뉴가 활성화됩니다.
메뉴 | 기능 |
---|---|
Edit | 선택된 Form을 편집하는 Design창을 호출 |
Insert Style | CSS 파일을 추가, Load 되지 않은 Form에만 적용 |
BindItem | Bind Item 대화상자 호출 |
Copy | 선택된 Form을 Copy |
Cut | 선택된 Form을 Cut |
Paste | Copy또는 Cut된 Form을 현재 Service에 Paste |
Collapse All | Form 하위 Tree Item을 감춤 |
Expand All | Form 하위 Tree Item을 펼침 |
Layout List | Layout List 대화상자 호출 |
Copy Full Path | Form 파일이 저장된 경로를 클립보드에 복사 |
Open Containing Folder | Form 파일 위치를 윈도우 탐색기에서 열어서 보여줌 |
Close | 현재 편집중인 Project 닫기 |
Save | 선택된 Form 저장 |
Save As… | 선택된 Form을 다른 이름으로 저장 |
Rename | 선택된 Form 이름 바꾸기 |
Generate | 선택된 프로젝트 Build • Generate Application • Generate Themes • Generate File |
Refresh | 선택된 Form XML을 Reload |
Delete | 선택된 Form 삭제 |
QuickView | 선택된 Form을 QuickView기능으로 Launch합니다 |
템플릿 사용
Make a Project Template
현재 작업 중인 Project를 Template로 등록하는 기능입니다. Project Explorer에서Project선택 > 마우스 우측버튼 클릭 > Project Template을 클릭하면 됩니다.
속성 | 설명 | |
---|---|---|
1 | Project Template Name | 생성될 Template의 이름 |
2 | Select ADL to include | Project Template에 포함될 ADL을 선택 |
3 | Select a Service Group and Files to include | Project Template에 포함될 파일을 선택 |
Template으로 등록된 Project는 이후에 신규 Project생성시 New Project wizard에서 선택하여 사용할 수 있습니다.
Screen Template
기본적으로 제공되는 Screen Template를 사용할 수 있습니다. Screen Template 기능을 사용하면 자주 사용되는 Screen 정보를 사용자가 Template으로 등록 할 수 있습니다.
14.0.0.40 버전부터는 기능 변경으로 인해 Layout Template 기능이 삭제됐습니다.
설명 | |
---|---|
1 | 사용자 정의 Screen 정보를 추가하는 버튼 |
2 | 사용자 정의 Screen 정보를 삭제하는 버튼 |
3 | 사용자 정의 Screen 정보 편집 화면 |
Basic Template의 정보는 기본값으로 사용자가 직접 편집할 수 없습니다. Basic Template의 목록은 nexacro 설치 경로 디렉토리 내 "nexacro_os_device.xml" 파일에서 관리합니다.
기타 파일 생성
File > New > File 메뉴에서 추가로 필요한 스타일 파일(CSS), XML 파일, 스크립트 파일, 테마 파일을 생성할 수 있습니다.
Create a new XML file
속성 | 설명 |
---|---|
File name | 생성될 XML 파일명 |
Location | 생성될 XML 파일의 위치 |
Create a new Java script file
속성 | 설명 |
---|---|
File name | 생성될 스크립트 파일명 |
Location | 생성될 스크립트 파일의 위치 |
Auto Recover
Tools > Options 메뉴에서 AutoRecover 기능 사용 유무와 시간을 설정하면 넥사크로 스튜디오에서 편집하는 파일들을 설정한 시간단위로 임시파일에 저장하는 기능을 수행합니다.
파일을 편집하는 중에 넥사크로 스튜디오가 비정상 종료된 후에 넥사크로 스튜디오를 다시 실행하면 임시파일을 확인하여 파일 복구 유무를 묻는 메시지 창이 뜹니다.
AutoRecover는 복구 대상 목록을 리스트로 표시 해주고 해당 파일을 편집 당시에 저장된 임시파일을 사용해 복구합니다.
프로토콜 추가 마법사
프로토콜 추가 마법사를 이용하여 TypeDefinition에 새로운 프로토콜을 추가할 수 있습니다. 프로토콜 추가 마법사를 시작하는 방법은 두 가지가 있습니다.
Project Explorer에서 Project의 TypeDefinition 선택 > 마우스 우측버튼 클릭 > Insert Typedefinition Item > Protocol을 클릭
Project Explorer의 TypeDefinition > Protocols 선택 > 마우스 우측버튼 클릭 > Insert Protocol을 클릭
사용자는 둘 중 편한 방법을 택하여 프로토콜 추가 마법사를 시작합니다.
1단계 Protocol
새로운 프로토콜 등록/삭제하고 프로토콜을 사용할 장치 타입을 선택합니다. 또한 선택한 장치 타입에 맞게 각각 모듈 정보와 클래스 정보를 등록합니다.
항목 | 설명 | |
---|---|---|
1 | Add | 프로토콜을 등록합니다. |
2 | Delete | 선택한 프로토콜을 삭제합니다. |
3 | Protocol ID | 프로토콜의 ID입니다. Protocol ID는 서비스의 URL로 사용됩니다. [Protocol ID]:// |
4 | Device Type | 등록한 프로토콜을 사용할 장치 타입을 결정합니다. 프로토콜은 중복으로 사용이 가능하며 각 장치별 Class Name은 다른 값으로 저장됩니다. HTML5, Android, iOS을 선택한 경우에는 각 장치에서 사용할 Classname을 등록할 수 있습니다. |
5 | Runtime: ModuleName | 바이너리 모듈의 이름입니다. TargetPath의 경로로부터 [ModuleName].dll 파일을 찾아서 등록합니다. ModuleName은 start.json에 추가됩니다. |
6 | Runtime; TargetPath | 바이너리 모듈을 받아올 경로입니다. TargetPath는 start.json에 추가됩니다. |
7 | HTML5: Classname | HTML5 환경에서 사용할 프로토콜의 클래스 이름입니다. adl.js의 registerclass 배열에 등록되며, 다른 컴포넌트와 함께 로드됩니다. |
8 | Android: Classname | Android 환경에서 사용할 프로토콜의 클래스 이름입니다. start_android.json 파일에 Protocol ID와 Classname이 등록됩니다. |
9 | iOS: Classname | iOS 환경에서 사용할 프로토콜의 클래스 이름입니다. start_ios.json 파일에 Protocol ID와 Classname이 등록됩니다. |
다음은 각 장치 타입별로 프로토콜 정보가 어떻게 설정되는지에 대한 예제입니다.
$r_title(start.json) "version" : "15.0.0.1", "runtime" : { "target" : { "os" : "windows" }, "framework" : [ [framework js path] ], "component" : [ [component js path] ], "form" : [ ], "xadl" : { }, "protocol" : { "adaptors" : [ { "protocolname" : "[Protocol ID]", "modulename" : "[modulename].dll", "targetpath" : "[Target Path]" }, { } ] } "resource" : { },
$r_title(adl.xadl.js)
// load components
var registerclass = [
{"id":"Div", "classname":"nexacro.Div", "type":"JavaScript"},
{"id":"Button", "classname":"nexacro.Button", "type":"JavaScript"},
{"id":"PopupDiv", "classname":"nexacro.PopupDiv", "type":"JavaScript"},
{"id":"Combo", "classname":"nexacro.Combo", "type":"JavaScript"},
{"id":"CheckBox", "classname":"nexacro.CheckBox", "type":"JavaScript"},
{"id":"ListBox", "classname":"nexacro.ListBox", "type":"JavaScript"},
{"id":"Edit", "classname":"nexacro.Edit", "type":"JavaScript"},
{"id":"MaskEdit", "classname":"nexacro.MaskEdit", "type":"JavaScript"},
{"id":"TextArea", "classname":"nexacro.TextArea", "type":"JavaScript"},
{"id":"Menu", "classname":"nexacro.Menu", "type":"JavaScript"},
{"id":"Tab", "classname":"nexacro.Tab", "type":"JavaScript"},
{"id":"ImageViewer", "classname":"nexacro.ImageViewer", "type":"JavaScript"},
{"id":"Radio", "classname":"nexacro.Radio", "type":"JavaScript"},
{"id":"Calendar", "classname":"nexacro.Calendar", "type":"JavaScript"},
{"id":"Static", "classname":"nexacro.Static", "type":"JavaScript"},
{"id":"Grid", "classname":"nexacro.Grid", "type":"JavaScript"},
{"id":"Spin", "classname":"nexacro.Spin", "type":"JavaScript"},
{"id":"PopupMenu", "classname":"nexacro.PopupMenu", "type":"JavaScript"},
{"id":"GroupBox", "classname":"nexacro.GroupBox", "type":"JavaScript"},
{"id":"ProgressBar", "classname":"nexacro.ProgressBar", "type":"JavaScript"},
{"id":"Plugin", "classname":"nexacro.Plugin", "type":"JavaScript"},
{"id":"Dataset", "classname":"nexacro.NormalDataset", "type":"JavaScript"},
{"id":"Protocol00", "classname":"test_HTML5", "type":"Protocol"},
{"id":"Protocol01", "classname":"Protocol01", "type":"Protocol"}
];
$r_title(start_android.json) "version" : "15.0.0.1", "runtime" : { "target" : { "os" : "android" }, "framework" : [ [framework js path] ], "component" : [ [component js path] ], "form" : [ ], "xadl" : { }, "protocol" : { "adaptors" : [ { "protocolname" : "[Protocol ID]", "classname" : "[Android_ClassName]", }, { } ] } "resource" : { },
$r_title(start_ios.json) "version" : "15.0.0.1", "runtime" : { "target" : { "os" : "ios" }, "framework" : [ [framework js path] ], "component" : [ [component js path] ], "form" : [ ], "xadl" : { }, "protocol" : { "adaptors" : [ { "protocolname" : "[Protocol ID]", "classname" : "[iOS_ClassName]", }, { } ] } "resource" : { },
2단계 Service
등록한 Protocol ID에 해당하는 서비스를 자동으로 생성해줍니다.
항목 | 설명 | |
---|---|---|
1 | PrefixID | 서비스 Prefix ID로 사용할 ID입니다. |
2 | Type | 서비스 타입입니다. JSP, ASP 중에 선택할 수 있습니다. |
3 | Url | 서비스 URL입니다. Step 1에서 입력했던 Protocol ID 값이 [Protocol ID]:// 형태로 자동으로 설정되며 수정은 불가합니다. |
3단계 Resource
앞 단계에서 추가한 프로토콜 중 등록된 장치 타입이 Runtime인 항목에 대하여 Resource를 자동으로 추가해 줍니다.
항목 | 설명 | |
---|---|---|
1 | File | Step 1에서 설정한 ModuleName 값으로 명명된 [ModuleName].dll 파일이 자동 설정됩니다. File 항목은 필수 항목이라 아무런 정보가 없을 경우 Finish로 진행할 수 없습니다. |
2 | TargetPath | Step 1에서 설정한 TargetPath 값으로 자동 설정됩니다. |
자동으로 설정된 Resource 값을 변경할 수는 있으나 start.json에 사용되는 정보이므로 변경하지 않는 것이 좋습니다.
4단계 Finish
3단계에서 Finish를 누르면 프로토콜 추가 마법사를 통해 추가한 프로토콜, 서비스, 업데이트(Resource)가 TypeDefinition에 새로 추가된 것을 확인할 수 있습니다.
프로토콜 추가 마법사 1단계에서 입력했던 프로토콜 정보가 TypeDefinition의 Protocols에 등록된 모습
프로토콜 추가 마법사 2단계에서 입력했던 서비스 정보가 TypeDefinition의 Services에 등록된 모습
프로토콜 추가 마법사 3단계에서 입력했던 Resource(Update) 정보가 TypeDefinition의 Update에 등록된 모습
다음은 프로토콜 추가 마법사를 수행한 후에 업데이트된 TypeDefinition 예제를 보여줍니다. 빨간색으로 표시된 부분이 프로토콜 추가 마법사를 통해 추가된 프로토콜, 서비스, 리소스입니다.
$r_title(default_typedef.xml) <?xml version="1.0" encoding="utf-8"?> <TypeDefinition version="1.2"> <Modules> <Module url="CompBase.json"/> <Module url="ComComp.json"/> <Module url="Grid.json"/> <Module url="DeviceAPI.json"/> </Modules> <Components> <Component type="JavaScript" id="Div" classname="nexacro.Div"/> <Component type="JavaScript" id="Button" classname="nexacro.Button"/> <Component type="JavaScript" id="PopupDiv" classname="nexacro.PopupDiv"/> <Component type="JavaScript" id="Combo" classname="nexacro.Combo"/> <Component type="JavaScript" id="CheckBox" classname="nexacro.CheckBox"/> <Component type="JavaScript" id="ListBox" classname="nexacro.ListBox"/> <Component type="JavaScript" id="Edit" classname="nexacro.Edit"/> <Component type="JavaScript" id="MaskEdit" classname="nexacro.MaskEdit"/> <Component type="JavaScript" id="TextArea" classname="nexacro.TextArea"/> <Component type="JavaScript" id="Menu" classname="nexacro.Menu"/> <Component type="JavaScript" id="Tab" classname="nexacro.Tab"/> <Component type="JavaScript" id="ImageViewer" classname="nexacro.ImageViewer"/> <Component type="JavaScript" id="Radio" classname="nexacro.Radio"/> <Component type="JavaScript" id="Calendar" classname="nexacro.Calendar"/> <Component type="JavaScript" id="Static" classname="nexacro.Static"/> <Component type="JavaScript" id="Grid" classname="nexacro.Grid"/> <Component type="JavaScript" id="Spin" classname="nexacro.Spin"/> <Component type="JavaScript" id="PopupMenu" classname="nexacro.PopupMenu"/> <Component type="JavaScript" id="GroupBox" classname="nexacro.GroupBox"/> <Component type="JavaScript" id="ProgressBar" classname="nexacro.ProgressBar"/> <Component type="JavaScript" id="Plugin" classname="nexacro.Plugin"/> <Component type="JavaScript" id="Dataset" classname="nexacro.NormalDataset"/> </Components> <Services> <Service prefixid="Base" type="form" url="./Base/" version="0" communicationversion="0"/> <Service prefixid="Service00" type="JSP" url="Protocol00://" version="0" communicationversion="0"/> <Service prefixid="Service01" type="JSP" url="Protocol01://" version="0" communicationversion="0"/> <Service prefixid="Service02" type="JSP" url="Protocol02://" version="0" communicationversion="0"/> </Services> <Update> <Item systemtype="Windows" url=""> <Os type="default" url="" engineurl="" enginesetupkey="" engineversion=""> <Device type="default" url="" engineurl="" enginesetupkey="" engineversion="" desc=""> <Resource type="Object" file="aa" failpass="false"/> <Resource type="File" file="test.dll" targetpath="" version="" failpass="false" desc=""/> <Resource type="File" file="protocolAdp.dll" targetpath="C:\Base" version="" failpass="false" desc=""/> </Device> </Os> </Item> <Item systemtype="Android" url=""> <Os type="default" url="" engineurl="" enginesetupkey="" engineversion=""> <Device type="default" url="" engineurl="" enginesetupkey="" engineversion="" desc=""> <Resource type="File" file="default.zip" targetpath="C:\Users\user\Documents\nexacro\outputs" failpass="false"/> </Device> </Os> </Item> <Item systemtype="iOS" url=""> <Os type="default" url="" engineurl="" enginesetupkey="" engineversion=""> <Device type="default" url="" engineurl="" enginesetupkey="" engineversion="" desc=""> <Resource type="File" file="Archive00.xzip" failpass="false"/> </Device> </Os> </Item> </Update> <Protocols> <Protocol id="Protocol00" classname="test_HTML5" targetpath="C:\apache-tomcat-6.0.36\webapps" devicetype="Runtime,HTML5,Android,iOS" modulename="test_runtime" android_classname="test_android" ios_classname="test_ios"/> <Protocol id="Protocol01" classname="Protocol01" devicetype="HTML5,iOS" file=""/> <Protocol id="Protocol02" devicetype="Runtime,HTML5,Android,iOS" modulename="protocolAdp" targetpath="C:\Base" classname="nexacro.Protocol02" android_classname="test_android" ios_classname="test_ios"/> </Protocols> </TypeDefinition>