GWT interface的使用例子
一、定義一個接口類
public interface TicketViewModuleListener {
void fieldsChanged();
void positionReceived(double latitude, double longitude);
}
?
二、定義widget類并實現TicketViewModuleListener接口
public class TicketViewWidget extends VOverlay implements OfflineMode,
TicketViewModuleListener {
private InformationLayout informationLayout;
@Override
public void fieldsChanged() {
if (validateFields) {
validateFields();
}
if (listener != null && isApplicationOnline()) {
listener.updateState(getTicket());
}
fieldsChanged = true;
CacheManifestStatusIndicator.setConfirmationRequired(true);
saveTicketButton.setEnabled(true);
}
private boolean isApplicationOnline() {
return OfflineModeEntrypoint.get().getNetworkStatus().isAppOnline();
}
private boolean validateFields() {
resetValidations();
boolean valid = true;
if (!informationLayout.validateFields()) {
valid = false;
}
return valid;
}
private Widget buildSectionWrapper(final Widget content,
final String captionString, final String styleName) {
VCssLayout layout = new VCssLayout();
layout.addStyleName(styleName);
Label caption = new Label(captionString);
caption.addStyleName("sectioncaption");
layout.add(caption);
layout.add(content);
return layout;
}
@Override
public void positionReceived(final double latitude, final double longitude) {
if (listener != null) {
listener.positionReceived(latitude, longitude);
}
}
}
三、定義組件類并調用接口
public class InformationLayout extends VerticalComponentGroupWidget {
?private final TicketViewModuleListener listener;
private void requestUserPosition() {
Geolocation geolocation = Geolocation.getIfSupported();
if (geolocation == null) {
useCurrentLocationSwitch.setValue(false);
} else {
geolocation
.getCurrentPosition(new Callback<com.google.gwt.geolocation.client.Position, PositionError>() {
@Override
public void onSuccess(
final com.google.gwt.geolocation.client.Position result) {
currentPosition = result;
if (listener != null) {
listener.positionReceived(result
.getCoordinates().getLatitude(), result
.getCoordinates().getLongitude());
}
}
@Override
public void onFailure(final PositionError reason) {
useCurrentLocationSwitch.setValue(false, true);
remove(useCurrentLocationSwitch);
}
});
}
}
}
四、應用情況
widget類實現listener接口,并調用組件類,組件類產生事件后調用widget類,達到參數傳遞的目的。
轉載于:https://www.cnblogs.com/wuzg/p/9606111.html
總結
以上是生活随笔為你收集整理的GWT interface的使用例子的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: React Native封装Toast与
- 下一篇: .NET下日志系统的搭建——log4ne