2012-07-31 4 views
0

, 내 SWT 응용 프로그램에서 발생하는 이런 종류의 일을하고 싶은 document.getElementById("button1");HTML "에서 getElementById"구현은 HTML에서

같은있다.

getElementById(...)과 비슷한 것으로이 객체를 얻을 수있는 곳이 어디 있습니까?

유형을 만들려고하는데, 여기서 String은 객체 (위젯)의 ID를 배치 한 다음 hashMap.getKey(id)을 호출하여 객체 (위젯)에 대한 참조를 반환합니다.

답변

0

아니요, SWT 위젯에는 ID 또는 이와 유사한 것이 없습니다. 물론지도를 사용하여 수동으로 할 수 있습니다.

0

큰 노력 없이도 이러한 기능을 구현할 수있는 몇 가지 방법이 있습니다. SWTBot (SWT 용 GUI 테스팅 API)를 사용할 수있는 구현 예로서 주어진 ID로 위젯을 "검색"하는 여러 가지 방법이 있습니다.

0

당신은 반복적으로 확인 가능 대상 SWTBot의 소스 코드 (http://wiki.eclipse.org/SWTBot/Contributing#Getting_the_source 참조)를 다운로드하고 당신이 구현 될 수 있는지 아이디어를 얻을 것이다 구현을 통해 이동하는 경우 org.eclipse.swtbot.swt.finder.SWTBot.buttonWithId(String, String, int)에서 예를 들어 살펴 이와 같은 방법으로 복합체의 모든 하위 항목을 만들고 Widget.getData()/setData()을 사용하여 ID를 설정합니다.

public <T extends Control> T findChild(Composite parent, String id) { 
    Control found = null; 
    Control[] children = parent.getChildren(); 
    for (int i = 0; i < children .length && found == null; i++) { 
     Control child = children[i]; 
     if (id.equals(child.getData(ID)) { 
      found = child; 
     } else if (child instanceof Composite) { 
      found = findChild((Composite) child, id); 
     } 
    } 
    return (T) found ; 
}