Tôi đang sử dụng khung công tác biên tập gwt để liên kết biểu mẫu trong gwt. Tôi đã có thể ràng buộc biểu mẫu thành công, nhưng vấn đề của tôi là tôi cần phải viết quá nhiều mã. Tôi nghĩ việc sử dụng chung sẽ rút ngắn mã của tôi nhưng tôi không thể làm được.áp dụng java generic trong trình soạn thảo gwt
Mã cho EditVendorWorkflow
là gần như giống nhau, sự khác biệt duy nhất là hai dòng này
interface Driver extends SimpleBeanEditorDriver<Vendor, VendorEditor>{}
private VendorEditor editor;
Ví dụ, Nếu tôi viết một PersonEditor
các EditPersonWorkflow
mã tương ứng sẽ có
interface Driver extends SimpleBeanEditorDriver<Person, PersonEditor>{}
private PersonEditor editor;
Vì vậy, về cơ bản có một sự lặp lại.
Mọi trợ giúp đều đáng được đánh giá cao.
public class EditVendorWorkflow{
interface Driver extends SimpleBeanEditorDriver<Vendor, VendorEditor>{}
Driver driver = GWT.create(Driver.class);
private VendorEditor editor;
void edit(Vendor p) {
driver.initialize(editor);
driver.edit(p);
}
void save() {
Vendor edited = driver.flush();
//doSomethingWithEditedVendor(edited);
}
public void initialize(VendorEditor editor) {
this.editor = editor;
}
}
public class VendorEditor extends Composite implements Editor<Vendor> {
private static VendorEditorUiBinder uiBinder = GWT
.create(VendorEditorUiBinder.class);
@UiField Button save;
@UiField TextBox address;
@UiField TextBox contactName;
@UiField ValueBoxEditorDecorator<String> contactMobileNo;
@Path("department.name")
@UiField TextBox deptName;
interface VendorEditorUiBinder extends UiBinder<Widget, VendorEditor> {
}
private final EditVendorWorkflow vendorDriver;
public VendorEditor(Vendor p) {
initWidget(uiBinder.createAndBindUi(this));
vendorDriver = GWT.create(EditVendorWorkflow.class);
vendorDriver.initialize(this);
vendorDriver.edit(p);
}
@UiHandler("save")
void onSaveClick(ClickEvent event) {
vendorDriver.save();
}
}
nhờ nó làm việc – user510783