TypeDefinition은 넥사크로를 포함하여 넥사크로스튜디오에서 실행할 Prefix 정보들을 포함하고 있습니다. 프로젝트를 편집하고 구동하는데 실체가 되는 파일이며, 대화상자 형태의 편집기에서 신규 항목 추가, 기존 항목의 수정 및 삭제 등의 편집 작업을 할 수 있습니다. TypeDefinition 편집기에서 편집한 내용은 XML로 변환되어 파일에 저장됩니다.
TypeDefinition 편집기는 Project Explorer의 컨텍스트 메뉴에서 [TypeDefinition] 하위 메뉴를 더블클릭하거나 마우스 오른쪽 버튼을 클릭하고 메뉴에서 [Edit] 항목을 선택해 팝업 창으로 띄울 수 있습니다.
Objects
넥사크로를 구동하는 라이브러리와 Form에서 사용할 오브젝트를 관리합니다.
모듈 정보 편집
Module의 Module Name은 반드시 입력해야 하는 필수 항목이며, 고유한 값을 가집니다. 등록된 Module 파일은 Options창에 입력된 "Base Lib Path" 기준으로 상대 경로로 관리됩니다. 만약, 입력한 Module 파일이 존재하지 않을 때는 경고 메시지가 호출되고 편집이 취소됩니다.
순서 변경
Module을 등록할 때에는 순서가 중요합니다. Application 로드 전에 Module을 등록하기 때문에 Module이 순서대로 등록되지 않는다면 넥사크로스튜디오에서 프로젝트 로드 시에도 영향을 줍니다. 따라서, 등록한 Module의 순서를 변경하고자 하는 경우 Up / Down 버튼으로 변경합니다.
파일 소스 보기
Module을 선택하고 "Show Json"을 클릭하면 새로운 창에서 해당 파일 코드를 표시해줍니다. 소스는 읽기 전용으로 제공되며, 편집할 수 없습니다.
Objects 목록
항목 | 설명 |
---|---|
ID | 필수항목이며, 고유한 값을 가집니다. |
ClassName | 필수항목이며, 고유한 값을 가집니다. |
Image | 툴바에서 오브젝트의 아이콘으로 사용합니다. |
Width | Form 편집 화면에 컴포넌트의 크기를 따로 지정하지 않고 마우스를 클릭해 배치하는 경우 설정되는 너비, 높이값입니다. |
Height | |
PrefixID | 오브젝트 생성 시 id 속성값으로 사용되는 값입니다. [PrefixID]+"00", [PrefixID]+"01" 순으로 생성됩니다. |
Dataset과 같이 눈에 보이지 않는 오브젝트의 경우 Width와 Height의 값은 무의미합니다.
Width, Height 항목에 유효하지 않은 값을 입력하면 0으로 처리합니다.
디자인 화면에 배치할 수 있는 컴포넌트는 TypeDefinition에서 컴포넌트의 Width, Height 항목값을 0으로 설정했더라도 컴포넌트를 배치하면 화면 디자인 편의를 위해 width, height 속성값을 100으로 처리합니다.
Objects 목록에는 자주 사용하는 오브젝트만 등록되어 있습니다. 모듈 정보중에서 ComComp, Grid, DeviceAPI 항목에 포함된 오브젝트는 목록을 펼친 후에 추가할 오브젝트를 선택하고 [+] 버튼을 클릭하면 Objects 목록에 추가됩니다.
오브젝트 리팩토링
TypeDefinition에 정의된 오브젝트의 ID를 변경할 때 사용 중인 파일을 탐색하여 자동으로 변경된 오브젝트 ID로 변경해주는 리팩토링 기능이 수행됩니다.
Objects 목록에서 [Button] 항목의 ID를 [Button2]로 변경했다면 전체 프로젝트 내에서 [Button]을 사용하고 있는 모든 Form 목록을 출력합니다. [Rename] 버튼을 클릭하면 ID값을 모두 변경하고 변경할 Form을 열어 변경된 내용을 저장하도록 합니다.
PrefixID
프로젝트 내 네이밍 규칙에 따라 각 컴포넌트나 오브젝트의 PrefixID를 지정할 수 있습니다. 예를 들어 Button 컴포넌트의 PrefixID를 'Btn'으로 수정하면 화면에 배치한 Button 컴포넌트의 id는 'Btn00'으로 시작합니다.
Services
Service Definition에서는 넥사크로 스튜디오에서 사용되는 Folder Path나 Internet URL 등을 관리합니다. Add, Delete버튼을 사용하여 새 Service를 추가하거나, 선택된 Service를 삭제할 수 있습니다.
User Service에 등록한 항목은 항목 앞에 표시된 아이콘을 끌어다 놓는 방식으로 순서를 변경할 수 있습니다.
서비스 정보 편집
서비스의 PrefixID와 Type, URL은 반드시 입력해야 하는 필수 항목이며, PrefixID는 고유한 값을 가집니다.
Column | 설명 | |
---|---|---|
Default | PrefixID | Service의 PrefixID |
Type | Service의 Type | |
URL | Service의 url | |
CacheLevel | Cache 기능사용 여부 | |
Version | Service의 버전 정보 | |
Communication version | Communication 버전 정보 | |
Extension | Include Sub-directory | Type이 form, file, js인 경우 URL에 해당하는 하위 디렉터리 표시 여부 Resource Service에서 theme, imagerc, extlib 항목은 true로 설정되어 있으며 변경할 수 없음 |
FileExtension | 서비스에서 관리할 대상 파일 확장자 목록 (Type이 file인 경우에 사용. 예시: js;txt;xfdl,xml) | |
ServiceList | Type이 bs, metadata, model 인 경우 활성화 | |
DataSchema | Type이 bs, metadata, model 인 경우 활성화 | |
Search Column | Type이 metadata 인 경우 활성화 메타데이터 에디터에서 데이터 탐색 시 탐색범위 컬럼 지정 입력하지 않는 경우 탐색 범위에 모든 컬럼 포함 구분자로 콤마(,), 세미콜론(;) 사용 |
Include Sub-directory 항목값을 true로 설정하면 Project Explorer 컨텍스트 메뉴에서 [New Folder] 항목이 활성화됩니다.
서비스 정보 편집 시 Type 별 지원되는 파일 확장자는 아래와 같습니다.
Type | 파일 확장자 |
---|---|
none | nothing |
form | *.xfdl, *.xjs, *.js |
js | *.js, *.xjs |
file | *.* |
JSP | nothing |
ASP | nothing |
SAP | nothing |
bs | XML |
metadata | XML |
model | *.xmodel |
Project Explorer에서 특정 파일을 더블 클릭 시 연결되는 편집기는 아래와 같습니다.
편집기 | 파일 확장자 |
---|---|
ADL 편집기 | *xadl |
FDL 편집기 | *.xfdl |
Theme 편집기 | 테마 항목 더블클릭 시 |
스크립트 편집기 | *.js, *.xjs |
XML 편집기 | *.xml |
XCSS 편집기 | *.xcss |
이미지 뷰어 | *.bmp, *.jpg, *.jpeg, *.gif, *.png, *.jfif, *.tif, *.tiff, *.svg |
텍스트 편집기 | *.txt, *.html, *.jsp, *.asp, *.json, *.css |
선택한 파일 확장자와 연결된 편집기가 없는 경우에는 텍스트 편집기로 실행할 것인지 확인하는 창이 나타납니다.
서비스 리팩토링
Type Definition에서 사용 중인 Service의 PrefixID 또는 URL을 변경할 경우에 사용 중인 부분을 자동으로 변경된 항목으로 변경해주는 리팩토링 기능이 수행됩니다.
ProtocolAdaptors
프로토콜 어댑터를 등록하는 화면입니다. 넥사크로에서 제공하는 데이터 처리는 데이터 자체를 변환해 처리하지는 않습니다. 기본 프로토콜인 HTTP를 사용해 요청과 응답을 처리합니다. 하지만 사용자 환경에 따라 데이터를 암호화해서 통신하거나 원하는 형식으로 변환해 처리하는 과정이 필요할 수 있습니다.
프로토콜 어댑터는 다른 데이터 구조를 필요로 하는 관계를 서로 연결해 원하는 형태로 동작하게 만드는 도구입니다. 간단한 설정만으로 원하는 기능을 쉽게 만들 수 있습니다.
프로토콜 정보 편집
프로토콜을 추가하고 넥사크로 실행 환경별로 다르게 적용할 수 있습니다. 실행 환경마다 프로토콜을 불러올 Module 또는 Class 정보를 각각 입력할 수 있습니다.
프로토콜 추가 마법사
프로토콜 추가 마법사를 이용하여 Typedefinition에 새로운 프로토콜을 추가할 수 있습니다. 프로토콜 추가 마법사를 시작하는 방법은 두 가지가 있습니다.
Project Explorer에서 Project의 TypeDefinition 선택 > 마우스 우측버튼 클릭 > Add > Protocol을 클릭
Project Explorer의 TypeDefinition > Protocols 선택 > 마우스 우측버튼 클릭 > Add Protocol을 클릭
사용자는 둘 중 편한 방법을 택하여 프로토콜을 추가합니다.
항목 | 설명 |
---|---|
Protocol ID | 프로토콜의 ID입니다. Protocol ID는 서비스의 URL로 사용됩니다. [Protocol ID]:// |
PrefixID | 서비스 Prefix ID로 사용할 ID입니다. |
Type | 서비스 타입입니다. JSP, ASP 중에 선택할 수 있습니다. |
사용할 System Type을 선택하고 필요한 항목을 입력할 수 있습니다. 체크박스를 클릭하면 해당 시스템에 필요한 항목을 입력할 수 있습니다.
항목 | 설명 | |
---|---|---|
Windows | ModuleName | 바이너리 모듈의 이름입니다. TargetPath의 경로로부터 [ModuleName].dll 파일을 찾아서 등록합니다. ModuleName은 start.json에 추가됩니다. |
TargetPath | 바이너리 모듈을 받아올 경로입니다. TargetPath는 start.json에 추가됩니다. | |
Windows > Update | File | 모듈 파일명입니다 (TypeDefinition > Updates에 등록되는 정보) |
TargetPath | 디바이스 내 업데이트 경로입니다. | |
Version | 모듈 파일 버전입니다. | |
macOS | ModuleName | macOS용 모듈의 파일명입니다. |
TargetPath | 모듈의 위치입니다. TargetPath의 경로로부터 모듈을 찾아서 등록합니다. | |
macOS > Update | File | 모듈 파일명입니다 (TypeDefinition > Updates에 등록되는 정보) |
TargetPath | 디바이스 내 업데이트 경로입니다. | |
Version | 모듈 파일 버전입니다. |
항목 | 설명 | |
---|---|---|
Web Browser | Classname | Web Browser 환경에서 사용할 프로토콜의 클래스 이름입니다. environment.xml.js의 registerclass 배열에 등록되며, 다른 컴포넌트와 함께 로드됩니다. |
Android | Classname | Android 환경에서 사용할 프로토콜의 클래스 이름입니다. start_android.json 파일에 Protocol ID와 Classname이 등록됩니다. |
iOS | Classname | iOS 환경에서 사용할 프로토콜의 클래스 이름입니다. start_ios.json 파일에 Protocol ID와 Classname이 등록됩니다. |
DeviceAdaptors
DeviceAdaptor 타입의 모듈 설치 시 해당 모듈의 속성값을 설정할 수 있습니다.
항목 | 설명 |
---|---|
Adaptor ID | 모듈 ID 속성값입니다. 모듈 설치 시 변경할 수 있습니다. |
ClassName | 모듈 Class name을 표시합니다. 해당 값은 변경할 수 없습니다. |
Configuration | 모듈에서 설정할 수 있는 속성 목록을 표시합니다. 속성값을 설정할 수 있습니다. |
스크립트에서 Adaptor ID 값을 사용해 디바이스 오브젝트 정보를 얻을 수 있습니다.
var voicerecognition = nexacro.getEnvironment().getDeviceAdaptor("VoiceRecognition");