org.kwis.msp.lwc
Class ComboComponent

java.lang.Object
  |
  +--org.kwis.msp.lwc.Component
        |
        +--org.kwis.msp.lwc.ComboComponent

public class ComboComponent
extends Component

ComboComponent는 팝업메뉴 기능을 제공하는 클래스입니다.

ComboComponent는 팝업 메뉴 항목 중 선택된 항목를 보여주는 영역과 팝업 메뉴의 리스트를 보여주는 영역으로 나뉘어 있습니다. 선택항목을 보여주는 화면에서 SELECT키 입력시 팝업 메뉴 리스트가 보여지며 이 중 어떤 항목를 선택하면 팝업 메뉴 리스트는 화면에서 제거되고 새로운 선택 항목만이 보여지게 됩니다.

ComboComponent에서는 선택항목의 변경을 감시할 수 있는 ChangeListener를 등록하여 사용할 수 있으며, 팝업메뉴에서 새로운 항목을 선택시 ChangeListenerchanged 메소드를 호출하게됩니다.


Fields inherited from class org.kwis.msp.lwc.Component
bg, evtListener, evtListenerObj, fg, FOCUS_NOTIFY, h, HAS_FOCUS_MASK, INPUT_MASK, KEY_NOTIFY, KEY_PRESSED, KEY_RELEASED, KEY_REPEATED, KEY_TYPED, LAYOUT_BOTTOM, LAYOUT_HCENTER, LAYOUT_LEFT, LAYOUT_RIGHT, LAYOUT_TOP, LAYOUT_VCENTER, mask, parent, POINT_DRAGGED, POINT_PRESSED, POINT_RELEASED, POINTER_NOTIFY, POS_MASK, PREFER_SIZE_MASK, prefH, prefW, SHOW_NOTIFY, SIZE_MASK, VALID_MASK, w, x, y
 
Constructor Summary
ComboComponent()
          ComboComponent의 인스턴스를 생성합니다.
 
Method Summary
 int append(String str)
          주어진 문자데이타로 팝업메뉴의 새로운 항목을 생성하여 팝업메뉴 리스트의 맨 아래 위치에 추가합니다.
 void delete(int index)
          팝업메뉴 리스트의 주어진 index 위치에 있는 항목을 삭제합니다.
 int getPreferredHeight()
          컴포넌트의 적절한 높이를 결정합니다.
 int getPreferredHeight(int w)
          컴포넌트의 적절한 높이를 결정합니다.
 int getPreferredWidth()
          컴포넌트의 적절한 폭을 결정합니다.
 int getSelectedIndex()
          팝업메뉴 리스트의 항목들 중 선택되어 있는 항목의 인덱스를 구합니다
 int getSize()
          ComboComponent의 팝업메뉴 리스트 항목들의 개수를 구합니다.
 String getString()
          현재 선택되어 있는 항목의 문자열을 구합니다.
 int insert(int index, String str)
          주어진 index 위치에 주어진 문자데이타로 팝업메뉴의 새로운 항목을 생성하여 팝업메뉴 리스트에 삽입합니다.
protected  boolean keyNotify(int type, int key)
          키 입력을 받으면 호출됩니다.
 void paintContent(Graphics g)
          내부를 칠합니다.
 void select(int index)
          팝업메뉴 리스트에서 주어진 index의 항목을 선택합니다.
 void set(int index, String str)
          주어진 index 위치에 주어진 문자데이타로 팝업메뉴 항목을 생성하여 새로 지정합니다.
 void setChangeListener(ChangeListener listener, Object obj)
          ComboComponent에서 팝업메뉴 리스트의 항목들 중 선택된 항목이 변경된 경우, 변경상태를 감시할 ChangeListener를 설정합니다.
 
Methods inherited from class org.kwis.msp.lwc.Component
calcPreferredSize, canHandleInput, configure, focusNotify, getBackground, getCard, getForeground, getHeight, getWidth, getX, getXOnScreen, getY, getYOnScreen, hasFocus, invalidate, isShown, isValid, layout, pointerNotify, processEvent, repaint, repaint, serviceRepaints, setBackground, setEventListener, setFocus, setForeground, showNotify, toString, validate
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ComboComponent

public ComboComponent()
ComboComponent의 인스턴스를 생성합니다.
Method Detail

append

public int append(String str)
주어진 문자데이타로 팝업메뉴의 새로운 항목을 생성하여 팝업메뉴 리스트의 맨 아래 위치에 추가합니다.
Parameters:
str - 추가될 문자열
Returns:
추가된 문자열의 인덱스
Throws:
IllegalArgumentException - str이 null 일 경우 발생.

insert

public int insert(int index,
                  String str)
주어진 index 위치에 주어진 문자데이타로 팝업메뉴의 새로운 항목을 생성하여 팝업메뉴 리스트에 삽입합니다. 인덱스값이 '0'보다 작거나 ListItemComponent에 추가된 엘리먼트의 갯수보다 큰 경우 IndexOutOfBoundsException이 발생합니다.
Parameters:
index - 삽입할 항목의 인덱스
Returns:
삽입된 인덱스값
Throws:
IndexOutOfBoundsException - 인덱스 값이 잘못 지정된 경우
See Also:
ListComponent.insert(int, java.lang.String, org.kwis.msp.lcdui.Image)

set

public void set(int index,
                String str)
주어진 index 위치에 주어진 문자데이타로 팝업메뉴 항목을 생성하여 새로 지정합니다. 인덱스값이 '0'보다 작거나 ListItemComponent에 추가된 엘리먼트의 갯수조다 큰 경우 IndexOutOfBoundsException이 발생합니다.
Parameters:
index - 대치할 항목의 인덱스
Throws:
IndexOutOfBoundsException - 인덱스 값이 잘못 지정된 경우

delete

public void delete(int index)
팝업메뉴 리스트의 주어진 index 위치에 있는 항목을 삭제합니다. 인덱스값이 '0'보다 작거나 ListItemComponent에 추가된 엘리먼트의 갯수조다 큰 경우 IndexOutOfBoundsException이 발생합니다.
Parameters:
index - 삭제할 항목의 인덱스
Throws:
IndexOutOfBoundsException - 인덱스 값이 잘못 지정된 경우

getString

public String getString()
현재 선택되어 있는 항목의 문자열을 구합니다.
Returns:
선택된 항목의 문자열, 선택되지 않은경우 null이 리턴.

getSize

public int getSize()
ComboComponent의 팝업메뉴 리스트 항목들의 개수를 구합니다.
Returns:
가지고 있는 항목들의 개수

getSelectedIndex

public int getSelectedIndex()
팝업메뉴 리스트의 항목들 중 선택되어 있는 항목의 인덱스를 구합니다
Returns:
선택되어있는 항목의 인덱스. 선택된것이 없는 경우 -1을 리턴.

getPreferredHeight

public int getPreferredHeight()
Description copied from class: Component
컴포넌트의 적절한 높이를 결정합니다. ContainerComponent에서 컴포넌트의 크기를 결정할 때에 이 함수가 돌려주는 값을 참조하여 결정합니다.
Overrides:
getPreferredHeight in class Component
Following copied from class: org.kwis.msp.lwc.Component
Returns:
컴포넌트의 높이

getPreferredHeight

public int getPreferredHeight(int w)
Description copied from class: Component
컴포넌트의 적절한 높이를 결정합니다. 지정된 제한된 폭을 가질 경우의 컴포넌트의 높이를 돌려줍니다. 만일 LabelComponentTextFieldComponent, TextAreaComponent와 같이 포맷팅이 가능한 컴포넌트인 경우에는 가변 폭을 가질수가 있습니다. 가변 폭을 가지게 되면, 폭에 따라서 높이가 달라지게 됩니다. 이때 이 함수를 통해서 컴포넌트의 높이를 얻어 옵니다. 만일, w가 -1이 면 폭에 제한이 없는 것으로 계산됩니다.
Overrides:
getPreferredHeight in class Component
Following copied from class: org.kwis.msp.lwc.Component
Parameters:
w - 가변폭.
Returns:
컴포넌트의 높이.

getPreferredWidth

public int getPreferredWidth()
Description copied from class: Component
컴포넌트의 적절한 폭을 결정합니다. Container에서 컴포넌트의 크기를 결정할 때에 이 함수가 돌려주는 값을 참조하여 결정합니다.
Overrides:
getPreferredWidth in class Component
Following copied from class: org.kwis.msp.lwc.Component
Returns:
컴포넌트의 폭.

paintContent

public void paintContent(Graphics g)
Description copied from class: Component
내부를 칠합니다. 먼저 validate함수를 호출하여, 컴포넌트의 위치를 유효화(컴포넌트의 위치와 크기 재 계산)한 후 내부의 색상으로 화면을 칠하게 됩니다. 색상이 -1이면, 칠하진 않습니다.
Overrides:
paintContent in class Component
Following copied from class: org.kwis.msp.lwc.Component
Parameters:
g - 칠할 Graphics.
See Also:
Graphics

keyNotify

protected boolean keyNotify(int type,
                            int key)
Description copied from class: Component
키 입력을 받으면 호출됩니다. 사용자가 키를 입력하면, setFocus함수에 의해서 입력 포커스를 가지는 컴포넌트의 이 함수가 호출됩니다. typeKEY_PRESSED, KEY_RELEASED, KEY_REPEATED, KEY_TYPED이며, chr는 키 입력값이 됩니다.
Overrides:
keyNotify in class Component
Following copied from class: org.kwis.msp.lwc.Component
Parameters:
type - 키 입력의 타입; 키를 누르는 경우 KEY_PRESSED, 키를 떼면 KEY_RELEASED, 키를 연속적으로 누르면 KEY_REPEATED, 한번 눌려서 떼인 경우라면 KEY_TYPED이 됨
chr - 눌린 키의 문자; '0'-'9'와 '*', '#'은 기본이며 이외의 문자도 넘어 올 수 있습니다.
Returns:
만일 컴포넌트가 인수로 넘오는 키를 이 컴포넌트가 처리했다면, true를 넘겨 줍니다. 그렇지 않았다면 false를 돌려줍니다.

setChangeListener

public void setChangeListener(ChangeListener listener,
                              Object obj)
ComboComponent에서 팝업메뉴 리스트의 항목들 중 선택된 항목이 변경된 경우, 변경상태를 감시할 ChangeListener를 설정합니다.
Parameters:
listener - 구현된 ChangeListener, 이 값이 null인 경우 등록된 Listener가 취소됩니다.
obj - 설정할 Object ,사용하지 않을때는 null을 넣는다. 이 Object는 Change이벤트가 발생되어 ChangeListener의 changed 함수가 불려질때 인자로 넘겨집니다.

select

public void select(int index)
팝업메뉴 리스트에서 주어진 index의 항목을 선택합니다.
Parameters:
index - 선택할 항목의 인덱스
Throws:
IndexOutOfBoundsException - 인덱스 값이 잘못 지정된 경우