GWT&x27;s编辑器框架与GWTP
在此基础上,我尝试将GWT编辑器集成到弹出式presenter小部件中。正确的方法是什么 我的观点是这样的:GWT&x27;s编辑器框架与GWTP,gwt,gwt-platform,Gwt,Gwt Platform,在此基础上,我尝试将GWT编辑器集成到弹出式presenter小部件中。正确的方法是什么 我的观点是这样的: public class DeviceEditorDialogView extends PopupViewWithUiHandlers<DeviceEditorDialogUiHandlers> implements DeviceEditorDialogPresenterWidget.MyView { interface Binder
public class DeviceEditorDialogView extends
PopupViewWithUiHandlers<DeviceEditorDialogUiHandlers> implements
DeviceEditorDialogPresenterWidget.MyView {
interface Binder extends UiBinder<PopupPanel, DeviceEditorDialogView> {
}
public interface Driver extends SimpleBeanEditorDriver<DeviceDto, DeviceEditorDialogView> {
}
@Inject
DeviceEditorDialogView(Binder uiBinder, EventBus eventBus) {
super(eventBus);
initWidget(uiBinder.createAndBindUi(this));
}
@Override
public SimpleBeanEditorDriver<DeviceDto, ?> createEditorDriver() {
Driver driver = GWT.create(Driver.class);
driver.initialize(this);
return driver;
}
}
public class DeviceEditorDialogPresenterWidget extends PresenterWidget<DeviceEditorDialogPresenterWidget.MyView> implements
DeviceEditorDialogUiHandlers {
@Inject
DeviceEditorDialogPresenterWidget(EventBus eventBus,
MyView view) {
super(eventBus, view);
getView().setUiHandlers(this);
}
/**
* {@link LocalDialogPresenterWidget}'s PopupView.
*/
public interface MyView extends PopupView, DevicesEditView<DeviceDto>, HasUiHandlers<DeviceEditorDialogUiHandlers> {
}
private DeviceDto currentDeviceDTO = null;
private SimpleBeanEditorDriver<DeviceDto, ?> driver;
public DeviceDto getCurrentDeviceDTO() {
return currentDeviceDTO;
}
public void setCurrentDeviceDTO(DeviceDto currentDeviceDTO) {
this.currentDeviceDTO = currentDeviceDTO;
}
@Override
protected void onBind() {
super.onBind();
driver = getView().createEditorDriver();
}
//UiHandler Method: Person person = driver.flush();
}
@Override
public void showDeviceDialog() {
deviceEditorDialog.setCurrentDeviceDTO(new DeviceDto());
addToPopupSlot(deviceEditorDialog);
}
@Override
public void onReveal() {
super.onReveal();
driver.edit(currentDeviceDTO); // this will populate your view with the data from your POJO
}
showDeviceDialog位于父演示器中,当单击该父演示器中的按钮时调用,该按钮实例化带有专用最终设备EditorDialogPresenterWidget deviceEditorDialog的对话框
谢谢 以上代码中缺少几个关键点:
- 您的
应该实现设备editordialgview
。这是必需的,以便使用来自POJO的数据填充编辑器
的字段DeviceEditorDialogView
- 您的
应该具有映射到POJO中字段的子编辑器。例如,给定字段deviceeditordialgview
(键入deviceDto.modelName
),您可以在String
中有一个名为DeviceEditorDialogView
的GWTmodelName
标签。此
实现标签
,当您调用编辑器
driver.edit(DeviceTo)
- 您应该在
的构造函数中只调用deviceeditordialgview
driver.initialize(this)
onReveal()
:
public class DeviceEditorDialogView extends
PopupViewWithUiHandlers<DeviceEditorDialogUiHandlers> implements
DeviceEditorDialogPresenterWidget.MyView {
interface Binder extends UiBinder<PopupPanel, DeviceEditorDialogView> {
}
public interface Driver extends SimpleBeanEditorDriver<DeviceDto, DeviceEditorDialogView> {
}
@Inject
DeviceEditorDialogView(Binder uiBinder, EventBus eventBus) {
super(eventBus);
initWidget(uiBinder.createAndBindUi(this));
}
@Override
public SimpleBeanEditorDriver<DeviceDto, ?> createEditorDriver() {
Driver driver = GWT.create(Driver.class);
driver.initialize(this);
return driver;
}
}
public class DeviceEditorDialogPresenterWidget extends PresenterWidget<DeviceEditorDialogPresenterWidget.MyView> implements
DeviceEditorDialogUiHandlers {
@Inject
DeviceEditorDialogPresenterWidget(EventBus eventBus,
MyView view) {
super(eventBus, view);
getView().setUiHandlers(this);
}
/**
* {@link LocalDialogPresenterWidget}'s PopupView.
*/
public interface MyView extends PopupView, DevicesEditView<DeviceDto>, HasUiHandlers<DeviceEditorDialogUiHandlers> {
}
private DeviceDto currentDeviceDTO = null;
private SimpleBeanEditorDriver<DeviceDto, ?> driver;
public DeviceDto getCurrentDeviceDTO() {
return currentDeviceDTO;
}
public void setCurrentDeviceDTO(DeviceDto currentDeviceDTO) {
this.currentDeviceDTO = currentDeviceDTO;
}
@Override
protected void onBind() {
super.onBind();
driver = getView().createEditorDriver();
}
//UiHandler Method: Person person = driver.flush();
}
@Override
public void showDeviceDialog() {
deviceEditorDialog.setCurrentDeviceDTO(new DeviceDto());
addToPopupSlot(deviceEditorDialog);
}
@Override
public void onReveal() {
super.onReveal();
driver.edit(currentDeviceDTO); // this will populate your view with the data from your POJO
}
当弹出窗口显示时,在您的
DeviceEditorDialogPresenterWidget
被添加到addToPopupSlot
之后,将调用此方法。以下是上面代码中缺少的几个关键点:
- 您的
应该实现设备editordialgview
。这是必需的,以便使用来自POJO的数据填充编辑器
的字段DeviceEditorDialogView
- 您的
应该具有映射到POJO中字段的子编辑器。例如,给定字段deviceeditordialgview
(键入deviceDto.modelName
),您可以在String
中有一个名为DeviceEditorDialogView
的GWTmodelName
标签。此
实现标签
,当您调用编辑器
driver.edit(DeviceTo)
- 您应该在
的构造函数中只调用deviceeditordialgview
driver.initialize(this)
onReveal()
:
public class DeviceEditorDialogView extends
PopupViewWithUiHandlers<DeviceEditorDialogUiHandlers> implements
DeviceEditorDialogPresenterWidget.MyView {
interface Binder extends UiBinder<PopupPanel, DeviceEditorDialogView> {
}
public interface Driver extends SimpleBeanEditorDriver<DeviceDto, DeviceEditorDialogView> {
}
@Inject
DeviceEditorDialogView(Binder uiBinder, EventBus eventBus) {
super(eventBus);
initWidget(uiBinder.createAndBindUi(this));
}
@Override
public SimpleBeanEditorDriver<DeviceDto, ?> createEditorDriver() {
Driver driver = GWT.create(Driver.class);
driver.initialize(this);
return driver;
}
}
public class DeviceEditorDialogPresenterWidget extends PresenterWidget<DeviceEditorDialogPresenterWidget.MyView> implements
DeviceEditorDialogUiHandlers {
@Inject
DeviceEditorDialogPresenterWidget(EventBus eventBus,
MyView view) {
super(eventBus, view);
getView().setUiHandlers(this);
}
/**
* {@link LocalDialogPresenterWidget}'s PopupView.
*/
public interface MyView extends PopupView, DevicesEditView<DeviceDto>, HasUiHandlers<DeviceEditorDialogUiHandlers> {
}
private DeviceDto currentDeviceDTO = null;
private SimpleBeanEditorDriver<DeviceDto, ?> driver;
public DeviceDto getCurrentDeviceDTO() {
return currentDeviceDTO;
}
public void setCurrentDeviceDTO(DeviceDto currentDeviceDTO) {
this.currentDeviceDTO = currentDeviceDTO;
}
@Override
protected void onBind() {
super.onBind();
driver = getView().createEditorDriver();
}
//UiHandler Method: Person person = driver.flush();
}
@Override
public void showDeviceDialog() {
deviceEditorDialog.setCurrentDeviceDTO(new DeviceDto());
addToPopupSlot(deviceEditorDialog);
}
@Override
public void onReveal() {
super.onReveal();
driver.edit(currentDeviceDTO); // this will populate your view with the data from your POJO
}
当弹出窗口显示时,在您的
DeviceEditorDialogPresenterWidget
被添加到addToPopupSlot
之后,将调用此方法。以下是上面代码中缺少的几个关键点:
- 您的
应该实现设备editordialgview
。这是必需的,以便使用来自POJO的数据填充编辑器
的字段DeviceEditorDialogView
- 您的
应该具有映射到POJO中字段的子编辑器。例如,给定字段deviceeditordialgview
(键入deviceDto.modelName
),您可以在String
中有一个名为DeviceEditorDialogView
的GWTmodelName
标签。此
实现标签
,当您调用编辑器
driver.edit(DeviceTo)
- 您应该在
的构造函数中只调用deviceeditordialgview
driver.initialize(this)
onReveal()
:
public class DeviceEditorDialogView extends
PopupViewWithUiHandlers<DeviceEditorDialogUiHandlers> implements
DeviceEditorDialogPresenterWidget.MyView {
interface Binder extends UiBinder<PopupPanel, DeviceEditorDialogView> {
}
public interface Driver extends SimpleBeanEditorDriver<DeviceDto, DeviceEditorDialogView> {
}
@Inject
DeviceEditorDialogView(Binder uiBinder, EventBus eventBus) {
super(eventBus);
initWidget(uiBinder.createAndBindUi(this));
}
@Override
public SimpleBeanEditorDriver<DeviceDto, ?> createEditorDriver() {
Driver driver = GWT.create(Driver.class);
driver.initialize(this);
return driver;
}
}
public class DeviceEditorDialogPresenterWidget extends PresenterWidget<DeviceEditorDialogPresenterWidget.MyView> implements
DeviceEditorDialogUiHandlers {
@Inject
DeviceEditorDialogPresenterWidget(EventBus eventBus,
MyView view) {
super(eventBus, view);
getView().setUiHandlers(this);
}
/**
* {@link LocalDialogPresenterWidget}'s PopupView.
*/
public interface MyView extends PopupView, DevicesEditView<DeviceDto>, HasUiHandlers<DeviceEditorDialogUiHandlers> {
}
private DeviceDto currentDeviceDTO = null;
private SimpleBeanEditorDriver<DeviceDto, ?> driver;
public DeviceDto getCurrentDeviceDTO() {
return currentDeviceDTO;
}
public void setCurrentDeviceDTO(DeviceDto currentDeviceDTO) {
this.currentDeviceDTO = currentDeviceDTO;
}
@Override
protected void onBind() {
super.onBind();
driver = getView().createEditorDriver();
}
//UiHandler Method: Person person = driver.flush();
}
@Override
public void showDeviceDialog() {
deviceEditorDialog.setCurrentDeviceDTO(new DeviceDto());
addToPopupSlot(deviceEditorDialog);
}
@Override
public void onReveal() {
super.onReveal();
driver.edit(currentDeviceDTO); // this will populate your view with the data from your POJO
}
当弹出窗口显示时,在您的
DeviceEditorDialogPresenterWidget
被添加到addToPopupSlot
之后,将调用此方法。以下是上面代码中缺少的几个关键点:
- 您的
应该实现设备editordialgview
。这是必需的,以便使用来自POJO的数据填充编辑器
的字段DeviceEditorDialogView
- 您的
应该具有映射到POJO中字段的子编辑器。例如,给定字段deviceeditordialgview
(键入deviceDto.modelName
),您可以在String
中有一个名为DeviceEditorDialogView
的GWTmodelName
标签。此
实现标签
,当您调用编辑器
driver.edit(DeviceTo)
- 您应该在
的构造函数中只调用deviceeditordialgview
driver.initialize(this)
onReveal()
:
public class DeviceEditorDialogView extends
PopupViewWithUiHandlers<DeviceEditorDialogUiHandlers> implements
DeviceEditorDialogPresenterWidget.MyView {
interface Binder extends UiBinder<PopupPanel, DeviceEditorDialogView> {
}
public interface Driver extends SimpleBeanEditorDriver<DeviceDto, DeviceEditorDialogView> {
}
@Inject
DeviceEditorDialogView(Binder uiBinder, EventBus eventBus) {
super(eventBus);
initWidget(uiBinder.createAndBindUi(this));
}
@Override
public SimpleBeanEditorDriver<DeviceDto, ?> createEditorDriver() {
Driver driver = GWT.create(Driver.class);
driver.initialize(this);
return driver;
}
}
public class DeviceEditorDialogPresenterWidget extends PresenterWidget<DeviceEditorDialogPresenterWidget.MyView> implements
DeviceEditorDialogUiHandlers {
@Inject
DeviceEditorDialogPresenterWidget(EventBus eventBus,
MyView view) {
super(eventBus, view);
getView().setUiHandlers(this);
}
/**
* {@link LocalDialogPresenterWidget}'s PopupView.
*/
public interface MyView extends PopupView, DevicesEditView<DeviceDto>, HasUiHandlers<DeviceEditorDialogUiHandlers> {
}
private DeviceDto currentDeviceDTO = null;
private SimpleBeanEditorDriver<DeviceDto, ?> driver;
public DeviceDto getCurrentDeviceDTO() {
return currentDeviceDTO;
}
public void setCurrentDeviceDTO(DeviceDto currentDeviceDTO) {
this.currentDeviceDTO = currentDeviceDTO;
}
@Override
protected void onBind() {
super.onBind();
driver = getView().createEditorDriver();
}
//UiHandler Method: Person person = driver.flush();
}
@Override
public void showDeviceDialog() {
deviceEditorDialog.setCurrentDeviceDTO(new DeviceDto());
addToPopupSlot(deviceEditorDialog);
}
@Override
public void onReveal() {
super.onReveal();
driver.edit(currentDeviceDTO); // this will populate your view with the data from your POJO
}
显示弹出窗口时将调用此方法,就在您的
设备EditorDialogPresenterWidget
被添加到PupSlot
之后,您可以发布GinInjector
错误吗?很抱歉,我犯了一个新手错误,忘了在ApplicationModule中绑定视图和演示者。我重新表述了上面的问题,因为我不知道这样做是否正确。你能发布GinInjector
错误吗?很抱歉,我犯了一个新手错误,忘了在ApplicationModule中绑定视图和演示者。我重新表述了上面的问题,因为我不知道这样做是否正确。你能发布GinInjector
错误吗?很抱歉,我犯了一个新手错误,忘了在ApplicationModule中绑定视图和演示者。我重新表述了上面的问题,因为我不知道这样做是否正确。你能发布GinInjector
错误吗?很抱歉,我犯了一个新手错误,忘了在ApplicationModule中绑定视图和演示者。我重新表述了上面的问题,因为我不知道这样做是否正确。谢谢你的建议