1. 개요

     Widget 개발자에게 단말기의 interface를 제어할 수 있는 방법을 제공하는 모듈이다.
     Widget 개발자가 User Interface 모듈의 Method와 Property를 사용하여 제어할 수 있는
     것들은 아래와 같다.
     – Navigation Mechanisms : 버튼을 통해 제어하는 방법과 직접 버튼을 클릭하는 방식으로 나뉜다.
     – soft-key와 menu 제어
     – Vibration, Sound, Screen Brightness : 진동, 소리, LCD밝기를 제어할 수 있다.
     – LCD Display를 portrait / landscapde
     – Widget이 active될때나 deactive될 때의 설정
2. Interface
     1) UIManager (User Interface Manager)
         * Constant Property
               – LEFT_SOFT_KEY = 0     : getSoftKey() method의 인자로 사용되어 soft key를 반환 받는데 사용된다.
               – RIGHT_SOFT_KEY = 1    : getSoftKey() method의 인자로 사용되어 soft key를 반환 받는데 사용된다.
               – NAVIGATION_CURSOR = 0   : Pointer Based navigation mode를 의미한다.
               – NAVIGATION_TABBED = 1   : Keypad Based navigation mode를 의미한다.
               – INFINITE_DURATION = 0      : startVibrate의 인자로 사용된다.
               – ORIENTATION_0     = 0     : Display Orientation을 위한 상수값
               – ORIENTATION_90   = 90    : Display Orientation을 위한 상수값
               – ORIENTATION_180  = 180  : Display Orientation을 위한 상수값
               – ORIENTATION_270  = 270  : Display Orientation을 위한 상수값
         * ReadOnly Attribute
            – isRotationSupported : 단말기의 Display가 Rotation을 지원하는지를 나타내는 Attribute
         * Read/Write Attribute
            – boolean isActive : 현재 Widget이 활성화됐는지 나타내는 Attribute. 값을 set하게 되면 Widget을 
                                             활성화/비활성화 시킬 수 있다.
               – unsigned short navigationMode : 현재의 navigationMode를 나타내는 Attribute. NAVIGATION_CURSOR
                                                                    나 TABBED를 이용하여 navigationMode를 변경할 수도 있다.
            – unsigned short displayOrientation : 현재 Display의 orientation(Rotation)을 얻어오는 Attribute. 
                                                                       ORIENTATION_0/90/180/270을 이용하여 Display의 orientation을 
                                                                       변경할  수도 있다.
            – boolean softKeysVisible : 단말기 SoftKey의 visibility를 설정하는 Attribute.
               – boolean statusBarVisible : 단말기 StatusBar의 visibility를 설정하는 Attribute.
         * Method
            – getSoftKey (id);
                  단말기의 soft-key에 해당하는 id를 사용하여 접근하여 이에 대응하는 top-level menuitem을 반환하는 함수
                  ex) var left_menu = bondi.ui.getSoftKey(bondi.ui.LEFT_SOFT_KEY);
                        left_menu는 menuitem Object의 구조를 갖는다.
            – setOnActivate (ActivateCallback);
                  Widget이 Background에서 Foreground로 올라올 때 호출되는 Callback을 등록하는 함수.
                  ex) function goToForeground () {
                          // Widget is now in the foreground.
                        }
                        bondi.ui.setOnActivate (goToForeground);
                        인자로 Callback함수의 이름을 전달한다.
            – setOnDeactivate (DeactivateCallback);
                  setOnActivate함수와 반대로 Widget이 Foreground에서 실행되다가 Background로 밀려날때
                  호출되는 Callback을 등록하는 함수.
                  ex) function goToBackground () {
                          // Widget is now in the background.
                        }
                        bondi.ui.setOnDeactivate (goToBackground);
            – setOnKeyPress (KeyPressCallback);
                  Key_Press Event가 발생했을때 호출되는 Callback을 등록하는 함수.
                  ex) function KeyPress (keyValue) {
                           alert (keyValue);
                        }
                        bondi.ui.setOnKeyPress (KeyPress);
                   KeyPress의 Callback의 인자로는 눌린 Key의 값이 전달된다.
 
            – beep (duration, frequency);
                  단말기의 소리를 발생시키는 함수.
                  duration : 소리가 지속되는 시간을 milliseconds 단위로 전달한다.
                  frequency : 음을 Hz로 표현한다.
                  ex) bondi.ui.beep (2000, 100);
             
            – startVibrate (duration, intensity);
                  단말기의 진동을 발생시키는 함수.
                  duration : 진동의 지속시간을 milliseconds 단위로 전달한다.
                  intensity : 진동의 강도 (0 ~ 100)
                  ex) bondi.ui.startVibrate (2000, 50);
            – stopVibrate ();
                  진동을 종료시키는 함수.
                  ex) bondi.ui.stopVibrate ();
            – setOnOrientationChange (OrientationChangeCallback);
                  Display의 Orientation이 변경될 때 호출되는 Callback 함수를 등록하는 함수
                  ex) function changeOrientationCallback () {
                        }
                        bondi.ui.setOnOrientationChange (changeOrientationCallback);
            – lightOn (duration, intensity, fadein)
                  LCD Display를 켜는 함수
                  duration : LCD를 켜는 시간을 milliseconds 단위로 전달한다.
                  intensity : 빛의 강도 (0 ~ 100)
                  fadeIn : fadein을 적용할 것인지 아닌지를 boolean으로 표현한다.
            – lightOff (fadeOut)
                  LCD Display를 끄는 함수
                  fadeOut : fadeout을 적용할 것인지 아닌지를 boolean으로 표현한다.