8.프로젝트 편집 | TypeDefinition

Edit

TypeDefinition은 넥사크로플랫폼을 포함하여 넥사크로스튜디오에서 실행할 Prefix 정보들을 포함하고 있습니다. 프로젝트를 편집하고 구동하는데 실체가 되는 파일이며, 대화상자 형태의 편집기에서 신규 항목 추가, 기존 항목의 수정 및 삭제 등의 편집 작업을 할 수 있습니다. TypeDefinition 편집기에서 편집한 내용은 XML로 변환되어 파일에 저장됩니다.

TypeDefinition 편집기는 Project Explorer의 컨텍스트 메뉴에서 [TypeDefinition] 하위 메뉴를 더블클릭하거나 마우스 오른쪽 버튼을 클릭하고 메뉴에서 [Edit] 항목을 선택해 팝업 창으로 띄울 수 있습니다.

8.1Objects

넥사크로플랫폼을 구동하는 라이브러리와 Form에서 사용할 오브젝트를 관리합니다.

8.1.1모듈 정보 편집

Module의 Module Name은 반드시 입력해야 하는 필수 항목이며, 고유한 값을 가집니다. 등록된 Module 파일은 Options창에 입력된 "Base Lib Path" 기준으로 상대 경로로 관리됩니다. 만약, 입력한 Module 파일이 존재하지 않을 때는 경고 메시지가 호출되고 편집이 취소됩니다.

8.1.2순서 변경

Module을 등록할 때에는 순서가 중요합니다. Application 로드 전에 Module을 등록하기 때문에 Module이 순서대로 등록되지 않는다면 넥사크로스튜디오에서 프로젝트 로드 시에도 영향을 줍니다. 따라서, 등록한 Module의 순서를 변경하고자 하는 경우 Up / Down 버튼으로 변경합니다.

8.1.3파일 소스 보기

Module을 선택하고 "Show Json"을 클릭하면 새로운 창에서 해당 파일 코드를 표시해줍니다. 소스는 읽기 전용으로 제공되며, 편집할 수 없습니다.

8.1.4Objects 목록

항목

설명

ID

필수항목이며, 고유한 값을 가집니다.

ClassName

필수항목이며, 고유한 값을 가집니다.

Image

툴바에서 오브젝트의 아이콘으로 사용합니다.

Width

Form 편집 화면에 컴포넌트의 크기를 따로 지정하지 않고 마우스를 클릭해 배치하는 경우 설정되는 너비, 높이값입니다.

Height

PrefixID

오브젝트 생성 시 id 속성값으로 사용되는 값입니다.

[PrefixID]+"00", [PrefixID]+"01" 순으로 생성됩니다.

Dataset과 같이 눈에 보이지 않는 오브젝트의 경우 Width와 Height의 값은 무의미합니다.

Objects 목록에는 자주 사용하는 오브젝트만 등록되어 있습니다. 모듈 정보중에서 ComComp, Grid, DeviceAPI 항목에 포함된 오브젝트는 목록을 펼친 후에 추가할 오브젝트를 선택하고 [+] 버튼을 클릭하면 Objects 목록에 추가됩니다.

8.1.5오브젝트 리팩토링

TypeDefinition에 정의된 오브젝트의 ID를 변경할 때 사용 중인 파일을 탐색하여 자동으로 변경된 오브젝트 ID로 변경해주는 리팩토링 기능이 수행됩니다.

Objects 목록에서 [Button] 항목의 ID를 [Button2]로 변경했다면 전체 프로젝트 내에서 [Button]을 사용하고 있는 모든 Form 목록을 출력합니다. [Rename] 버튼을 클릭하면 ID값을 모두 변경하고 변경할 Form을 열어 변경된 내용을 저장하도록 합니다.

8.1.6PrefixID

프로젝트 내 네이밍 규칙에 따라 각 컴포넌트나 오브젝트의 PrefixID를 지정할 수 있습니다. 예를 들어 Button 컴포넌트의 PrefixID를 'Btn'으로 수정하면 화면에 배치한 Button 컴포넌트의 id는 'Btn00'으로 시작합니다.

8.2Services

Service Definition에서는 넥사크로 스튜디오에서 사용되는 Folder Path나 Internet URL 등을 관리합니다. Add, Delete버튼을 사용하여 새 Service를 추가하거나, 선택된 Service를 삭제할 수 있습니다.

8.2.1서비스 정보 편집

서비스의 PrefixID와 Type, URL은 반드시 입력해야 하는 필수 항목이며, PrefixID는 고유한 값을 가집니다.

표 8-1Service Definition

Column

설명

Default

PrefixID

Service의 PrefixID

Type

Service의 Type

URL

Service의 url

CacheLevel

Cache 기능사용 여부

Codepage

Code Page 이름

Language

사용 언어

Version

Service의 버전 정보

Communication

version

Communication 버전 정보

Extension

ServiceList

Type이 bs, metadata 인 경우 사용

DatasetLayout

Type이 bs, metadata 인 경우 사용

FileExtension

서비스에서 관리할 대상 파일 확장자 목록

(Type이 file인 경우에 사용. 예시: js;txt;xfdl,xml)

Include

Sub-directory

Type이 form, file, js인 경우 URL에 해당하는 하위 디렉터리 표시 여부

Resource Service에서 theme, imagerc 항목은 true로 설정되어 있으며 변경할 수 없음

Search Column

Type이 metadata 인 경우 사용됨

메타데이터 에디터에서 데이터 탐색 시 탐색범위 컬럼 지정

입력하지 않는 경우 탐색 범위에 모든 컬럼 포함

구분자로 콤마(,), 세미콜론(;) 사용

Include Sub-directory 항목값을 true로 설정하면 Project Explorer 컨텍스트 메뉴에서 [New Folder] 항목이 활성화됩니다.

서비스 정보 편집 시 Type 별 지원되는 파일 확장자는 아래와 같습니다.

표 8-2Service Definition

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에서 특정 파일을 더블 클릭 시 연결되는 편집기는 아래와 같습니다.

표 8-3Service Definition

편집기

파일 확장자

ADL 편집기

*xadl

FDL 편집기

*.xfdl

Theme 편집기

테마 항목 더블클릭 시

스크립트 편집기

*.js, *.xjs

XML 편집기

*.xml

XCSS 편집기

*.xcss

이미지 뷰어

*.bmp, *.jpg, *.jpeg, *.gif, *.png, *.jfif, *.tif, *.tiff

텍스트 편집기

*.txt, *.html, *.jsp, *.asp, *.json, *.css

선택한 파일 확장자와 연결된 편집기가 없는 경우에는 텍스트 편집기로 실행할 것인지 확인하는 창이 나타납니다.

8.2.2서비스 리팩토링

Type Definition에서 사용 중인 Service의 PrefixID 또는 URL을 변경할 경우에 사용 중인 부분을 자동으로 변경된 항목으로 변경해주는 리팩토링 기능이 수행됩니다.

8.3ProtocolAdaptors

프로토콜 어댑터를 등록하는 화면입니다. 넥사크로플랫폼에서 제공하는 데이터 처리는 데이터 자체를 변환해 처리하지는 않습니다. 기본 프로토콜인 HTTP를 사용해 요청과 응답을 처리합니다. 하지만 사용자 환경에 따라 데이터를 암호화해서 통신하거나 원하는 형식으로 변환해 처리하는 과정이 필요할 수 있습니다.

프로토콜 어댑터는 다른 데이터 구조를 필요로 하는 관계를 서로 연결해 원하는 형태로 동작하게 만드는 도구입니다. 간단한 설정만으로 원하는 기능을 쉽게 만들 수 있습니다.

8.3.1프로토콜 정보 편집

프로토콜을 추가하고 넥사크로플랫폼 실행 환경별로 다르게 적용할 수 있습니다. 실행 환경마다 프로토콜을 불러올 Module 또는 Class 정보를 각각 입력할 수 있습니다.

8.3.2프로토콜 추가 마법사

프로토콜 추가 마법사를 이용하여 Typedefinition에 새로운 프로토콜을 추가할 수 있습니다. 프로토콜 추가 마법사를 시작하는 방법은 두 가지가 있습니다.

사용자는 둘 중 편한 방법을 택하여 프로토콜을 추가합니다.

항목

설명

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

모듈 파일 버전입니다.

항목

설명

HTML5

Classname

HTML5 환경에서 사용할 프로토콜의 클래스 이름입니다.

environment.xml.js의 registerclass 배열에 등록되며, 다른 컴포넌트와 함께 로드됩니다.

Android

Classname

Android 환경에서 사용할 프로토콜의 클래스 이름입니다.

start_android.json 파일에 Protocol ID와 Classname이 등록됩니다.

iOS

Classname

iOS 환경에서 사용할 프로토콜의 클래스 이름입니다.

start_ios.json 파일에 Protocol ID와 Classname이 등록됩니다.

8.4DeviceAdaptors

DeviceAdaptor 타입의 모듈 설치 시 해당 모듈의 속성값을 설정할 수 있습니다.

항목

설명

Adaptor ID

모듈 ID 속성값입니다. 모듈 설치 시 변경할 수 있습니다.

ClassName

모듈 Class name을 표시합니다. 해당 값은 변경할 수 없습니다.

Configuration

모듈에서 설정할 수 있는 속성 목록을 표시합니다. 속성값을 설정할 수 있습니다.

스크립트에서 Adaptor ID 값을 사용해 디바이스 오브젝트 정보를 얻을 수 있습니다.

var voicerecognition = nexacro.getEnvironment().getDeviceAdaptor("VoiceRecognition");