Create single Presenter with some Views and realization switching between Views
shut_desert Feb 10, 2014 10:08 PMI have single Presenter
@Page(path = "/configuration/system")
@Dependent
public class SystemConfigurationPagePresenter implements Presenter {
private static final Logger logger = LoggerFactory.getLogger(SystemConfigurationPagePresenter.class);
public interface EventLogView {
EventLogParams getModel();
void setModel(EventLogParams eventLogParams);
Element getPageTitle();
FormWidget getMinTermStorage();
FormWidget isAutoClearLog();
HasClickHandlers getSaveButton();
HasClickHandlers getCancelButton();
Widget asWidget();
}
public interface FunctionalSubsystem {
FunctionalSubsystemParams getModel();
void setModel(FunctionalSubsystemParams eventLogParams);
Element getPageTitle();
Widget asWidget();
}
public interface DateExpluatation {
DateExpluatation getModel();
void setModel(DateExpluatation eventLogParams);
Element getPageTitle();
FormWidget getDateExpluatation();
Widget asWidget();
}
@Inject
private Instance<EventLogView> eventLogViews;
@Inject
private Instance<FunctionalSubsystem> functionalSubsystems;
@Inject
private Instance<DateExpluatation> dateExpluatations;
@Override
public Widget asWidget() {
return view.asWidget();
}
}
and Pages that are identical in structure :
@Templated
@Dependent
public class EventLogConfigurationPage extends Composite implements SystemConfigurationPagePresenter.EventLogView{
@Inject
@AutoBound
private DataBinder<EventLogParams> eventLogParamsDataBinder;
@DataField
private HeadingElement title = Document.get().createHElement(4);
@DataField
@Bound
private LabeledWidget<TextBox> minTermStorage = new LabeledWidget("Срок минимального хранения информации в журнале событий(в днях)", false, new TextBox() {{
setMaxLength(2);
}});
@Inject
@DataField
private Button saveButton;
@Inject
@DataField
private Button cancelButton;
@DataField
@Bound
private ConfigLabeledWidget<CheckBox> autoClearLog = new ConfigLabeledWidget("Автоматическая чистка журнала", new CheckBox());
@Override
public EventLogParams getModel() {
return eventLogParamsDataBinder.getModel();
}
@Override
public void setModel(EventLogParams eventLogParams) {
eventLogParamsDataBinder.setModel(eventLogParams);
}
@Override
public Element getPageTitle() {
return title;
}
@Override
public FormWidget getMinTermStorage() {
return minTermStorage;
}
@Override
public FormWidget isAutoClearLog() {
return autoClearLog;
}
@Override
public HasClickHandlers getSaveButton() {
return saveButton;
}
@Override
public HasClickHandlers getCancelButton() {
return cancelButton;
}
}
I want to boot when switching tabs in TabLayoutPabel another View?!