2009-07-08 5 views
0

GWT 1.6을 사용하고 있습니다.테이블 셀로 사용되는 패널의 버튼 이벤트 가져 오기

Button 및 Label이 포함 된 패널을 만들고 FlexTable에 셀 중 하나를 추가합니다.

버튼에 클릭 이벤트가 발생하지 않습니다. 테이블이 어떤 셀을 클릭했는지 결정하는 것을 지원하지만,이 경우 마우스 이벤트가 셀 내부의 다양한 위젯에 전파되기를 원합니다. 어떻게하는지에 대한 아이디어가 있습니까?

답변

1

그래, 나도 그걸 명중했다. 테이블에있는 위젯은 이벤트를받지 못할 것이다. 당신은 아마 같은 뭔가를 시작할 수


FixedWidthGrid dataTable = createDataTable(); 
... 
dataTable.addTableListener(new TableListener() { 

    public void onCellClicked(SourcesTableEvents sender, int row, int cell) { 
     storyViewer.showStory(table.getRowValue(row)); 
    } 

}); 

, 다음 프로그램 클릭의 모양을 확인하기 위해 버튼 위젯에 이벤트를 전송 :이 같은 코드를 사용하여 끝났다.

+0

궁극적으로 셀에 클릭 가능한 위젯이 두 개 이상 있습니다. 내가 구현하려고하는 것은 정렬 할 버튼과 필터를 설정하는 또 다른 버튼이있는 테이블 헤더입니다. 그래서 나는 위젯 중 어느 것이 실제로 셀 내에서 클릭하고 있는지를 알아야한다. – mjeffw

+0

흠. 따라서 클릭 위치를 알아야합니다. 그것이 그곳에 있을지 확신하지 못합니다. BTW - 당신은 FixedWidthGrid를 사용하고 있습니까? 그것은 정렬을 지원합니다. –

+0

FixedWidthGrid를 한번도 본적이 없습니다. 제 3 자 라이브러리에서 가정합니다. – mjeffw

0

표가 얼마나 큰지 알고 있다면 대신 표를 사용하십시오. 모든 위젯이 이벤트를 수신합니다. 나는 이것을하고 내 자신의 sortable 테이블을 만들었습니다.

+0

또 다른 한 가지. FlexTable 내의 위젯이 이벤트를 수신하지 않는다는 내용은 어디에 있습니까? 위젯을위한 핸들러를 추가하지 않았습니까? – Carnell

0

Button google 클래스를 서브 클래스 화하고 두 개의 추가 인수 (int col, int row)가있는 생성자를 추가해야합니다. 예 :

public class RuleButton extends Button { 

private int row; 
private int col; 

public RuleButton(String html, ClickListener listener, int row, int col) { 
    super(html, listener); 
    setRow(row); 
       setCol(col); 
} 
     // getters and setters for row and col attributes. 
} 

버튼을 추가 할 때이 생성자를 호출하고 행 및 col 색인을 전달합니다.

관련 문제