GWT Popup с редактором Framework - PullRequest
0 голосов
/ 28 января 2012

В простом приложении для управления запасами у меня есть действие по назначению типов оборудования сотрудникам (если пользователь что-то проверяет). Что мне интересно, так это:

В настоящее время у меня есть перетаскивание туда, где оборудование может быть перенесено на сотрудника. Что я хочу получить, так это то, что как только оборудование перетаскивается, открывается всплывающее окно, запрашивающее у пользователя подтверждение, а также сумму, которую он желает назначить. По сути, он будет редактором двух сущностей (equipmentCheckin и equipmentCheckout).

Вот проблемы, с которыми я сталкиваюсь:
1. если всплывающее окно будет инициализировано в представлении, а затем установлено видимым в событии перетаскивания (это то, что я планировал сделать) - при этом, как вы на самом деле правильно инициализируете редактор (если в отбрасывании существует отдельное действие - Я не думаю, что это будет, но часть редактора смущает меня)

2. должно ли каждое всплывающее окно иметь свой собственный класс и файл ui.xml - это то, как я собирался идти изначально, а затем просто вызывать набор, видимый в true, при событии отбрасывания (я думаю, что это правильный путь)

Я предполагаю, что я спрашиваю здесь, в основном, просто подтверждение того, как сделать что-то из этого, я не могу найти достойный пример для этого материала.

для всех, кто использовал музыку Google, прежде чем я хочу делать именно то, что они делают, когда вы идете редактировать информацию об альбоме или песне - я представляю, что за кулисами они используют редактор с всплывающим окном - я просто хочу знать, что правильно способ сделать это, прежде чем я взломать решение

1 Ответ

1 голос
/ 29 января 2012

Я думаю, что вы на правильном пути, делаете всплывающее окно автономным и сохраняете только один его экземпляр, если можете помочь.

Что касается деталей редактора, что не имеет смысла?Общая идея заключается в том, что вы можете создать драйвер один раз, инициализировать его всплывающим окном (реализующий редактор), а затем вызывать edit для драйвера каждый раз, когда вы готовы отобразить его с новой моделью.

Обычно я заканчиваюс чем-то вроде (при условии, что класс расширяет Popup, реализует Editor и имеет внутренний драйвер)

public MyPopup() {
  //uibinder or other layout
  this.driver = GWT.create(Driver.class);
  driver.initialize(this);
}
public void edit(MyModel model) {
  driver.edit(model);
  show();
}

Чтобы связать этот ответ с моим собственным подходом / предубеждениями, мне нравится установка MVP, где представление ипрезентатор - это оба интерфейса, и там, где презентатор не знает, как будет выглядеть представление.Для меня это выглядит примерно так

public interface MyModelEditorView extends Editor<MyModel> {
  // this param is used in a mobile/table situation, where popups aren't as friendly
  void show(AcceptsOneWidget parent);

  // exposes the driver for the presenter * 
  SimpleBeanEditorDriver<MyModel, ?> getDriver();

  void setPresenter(Presenter presenter);

  public interface Presenter {
    // this is the only method that is called externally
    void show(AcceptsOneWidget parent, MyModel model);

    // called by click handlers in the view impl, probably by @UiHandler methods
    void onSaveClicked();
    void onCancelClicked();
  }
}

* Ведущий, вероятно, должен управлять драйвером, чтобы он мог проверять ошибки, передавать ошибки с сервера, если это необходимо, редактировать новые модели и выводить результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...