2012-04-20 2 views
0

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

Без использования GWTP, как я могу обменять между этими двумя докладчиками и основными видами?

В настоящее время классы выглядит следующим образом:

public class MainPagePresenter implements Presenter, MainPageView.Presenter, ParentPresenter { 

    private MainPageViewview; 
    private final ClientFactory clientFactory; 
    private StaticDataPresenter staticPresenter; 
    private SomeOtherPresenter otherPresenter; 


} 

Я хотел бы, чтобы StaticDataPresenter стать какая-то структура, которая может либо провести StaticDataPresenter или DynamicDataPresenter, что позволяет редактировать.

Спасибо за ваш вклад.

ответ

1
public interface DataPresenter { 
    void handleEdit(); 
} 

public class StaticDataPresenter implements DataPresenter { 
    @Override 
    public void handleEdit() { 
    // Do nothing. 
    } 
} 

public class DynamicDataPresenter implements DataPresenter { 
    @Override 
    public void handleEdit() { 
    // Do something. 
    } 
} 

public class MainPagePresenter implements Presenter, MainPageView.Presenter, ParentPresenter { 

    private MainPageView view; 
    private final ClientFactory clientFactory; 
    private DataPresenter dataPresenter; 
    private SomeOtherPresenter otherPresenter; 

    ... 

    public void switchDataPresenter(DataPresenter dataPresenter) { 
    this.dataPresenter = dataPresenter; 
    DataPresenterView dataPresenterView = view.dataPresenterView(); 
    dataPresenterView.setPresenter(dataPresenter); 
    }  
} 
+0

Спасибо. Я рассмотрю эти решения, оба из которых будут работать. –

1

Ваш MainPageView может иметь DeckPanel с как мнение StaticDataPresenter, и мнение SomeOtherPresenter в.

MainPagePresenter может затем сообщить MainPageView, что бы переключать то, что отображается на основе ваших потребностей.

+0

Спасибо. Я рассмотрю эти решения, оба из которых будут работать. –

0

То, что я закончил, заключалось в том, чтобы накладывать оба редактора на страницу, а затем включать и отключать видимость в презентаторе.

Спасибо за ваши предложения. Они помогли.