2 エントリーポイントは必要ないと思います。上でキランが言ったように、ビュー コンポーネントを除くすべてのコードを再利用する必要があります。GWT のアクティビティと場所のモジュールを使用した場合、ビュー コンポーネントは残りのコードから完全に分離する必要があります。
この場合、モジュール xml 定義の正しい定義に関連付けられた GWT.create メソッドを使用できます。
// エントリ ポイントで:
private IClientFactory clientFactory = GWT.create(IClientFactory.class);
// モジュールの xml 定義で:
<replace-with class="com.vv.xui.client.DesktopClientFactory">
<when-type-is class="com.vv.xui.client.IClientFactory" />
<when-property-is name="formfactor" value="desktop"/>
</replace-with>
<replace-with class="com.vv.xui.client.MobileClientFactory">
<when-type-is class="com.vv.xui.client.IClientFactory" />
<when-property-is name="formfactor" value="mobile"/>
</replace-with>
フォームの formfactor プロパティは、次の例のように定義できます:
https://code.google.com/p/gwt-cx/source/browse/trunk/gwtcx/gwtcx-core/gwtcx-core-client/src/main/リソース/com/gwtcx/FormFactor.gwt.xml
IClientFactory には、次のようなものがあります。
public interface IClientFactory {
IHomeView getHomeView();
ISearchView getSearchView();
...
}
IHomeView と ISearchView は、デスクトップ バージョンとモバイル バージョンによって実装されるビュー インターフェイスです。私の場合、ビューの実装は、関連するビュー インターフェイスを実装する UiBinder コンポーネントです。
DesktopClientFactory には、次のようなものがあります。
public class DesktopClientFactory implements IClientFactory {
private static final ISearchView searchView = new com.vv.xui.client.view.desktop.SearchView.SearchView();
@Override
public ISearchView getSearchView() {
return searchView;
}
...
}
このように、モバイルとデスクトップで異なるエントリ ポイントは必要なく、ビュー コンポーネントを除くすべてのコードを共有できます。