我有一个数据表类,该类在使用table.addclick处理程序处理表头单击的表类中扩展了xDataTable。
SQSEndpoint:
Type: AWS::EC2::VPCEndpoint
Properties:
ServiceName: !Join
- ''
- - com.amazonaws.
- !Ref 'AWS::Region'
- .sqs
SubnetIds:
- !Ref PrivateSubnet
VpcId: !Ref 'VPC'
VpcEndpointType: Interface
SecurityGroupIds:
- !Ref PrivateSubnetInstanceSG # has to allow traffic from your VPC
PrivateDnsEnabled: true
在我的saveLoadMenu类中,我正在使用表格类。
protected void addSortClickHandler() {
table.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent ev) {
在此类中,我需要能够绑定该click事件,因此,如果我单击标题并触发onClick,它将回调saveLoadMenu类。
这是表类的一部分
dataTable = new xSortableDataTable<SavedQuote>() {
protected void onSelectionChanged() {
if(getSelectedItem() != null) {
okButton.setEnabled(true);
if(deleteButton!=null) {
deleteButton.setEnabled(true);
}
} else {
okButton.setEnabled(false);
if(deleteButton!=null) {
deleteButton.setEnabled(false);
}
}
}
};
我不能失去saveLoadMenu类的范围。由于它已经使用传递的面板等创建。有没有办法处理表onclick并回调类?
这可能吗?
更新
我能够做到。我创建了一个抽象类来处理onClick() 我将发布代码,因为它可能会对其他人有所帮助。
public class xSortableDataTable<ItemType> extends xDataTable<ItemType> {
private boolean lastSortWasReverse = false;
private List<Integer> sortableColumns = new ArrayList<Integer>();
private String sortAscImage = "common/image/datatable/uparrow.gif";
private String sortDescImage = "common/image/datatable/downarrow.gif";
private int lastSortedColumn;
private AcceptanceCallback acceptanceCallback;
public xSortableDataTable() {
super();
addSortClickHandler();
}
protected void addSortClickHandler() {
table.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent ev) {
HTMLTable.Cell c = table.getCellForEvent(ev);
if (c != null) {
//handle the callback to the saveLoadMenu class
}
}
});
}
在处理onClick的表类中
public abstract class AcceptanceCallback {
public void onOK(){}
public void onCancel(){}
}
然后在设置表格的类中
public ManageQuoteSortableDataTable(AcceptanceCallback acceptanceCallback) {
super();
this.acceptanceCallback = acceptanceCallback;
}
protected void addSortClickHandler() {
table.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent ev) {
HTMLTable.Cell c = table.getCellForEvent(ev);
if (c != null) {
if (c.getRowIndex() == 0 && isColumnSortable(c.getCellIndex())) {
acceptanceCallback.onOK();
}
}
}
});
}