2013-04-30 3 views
0

Я использую MVP, и у меня есть общие представления интерфейсов для мобильных и настольных компьютеров. Затем я реализую интерфейсы представлений один раз для мобильных устройств и один раз для рабочего стола. Я использую отложенную привязку, чтобы заменить интерфейс фактической реализацией класса. Представления создаются в ClientFactory.Разбиение кода GWT

Как можно разбить код так, чтобы все представления для мобильных устройств содержались в одном файле и все виды рабочего стола в другом файле?

+3

Wait - если вы используете отложила связывание (? На основе некоторого значения свойства я предполагаю), чтобы поменять взгляды на мобильный или рабочий стол, вы уже в различных перестановках - что нужно отделить от этого? Вы уверены, что в мобильной перестановке есть классы рабочего стола? Вы просмотрели отчет SOYC, чтобы узнать, почему это произошло, если в вашей настройке есть еще одна ошибка? –

+0

Вы правы Я использую отложенное связывание на основе значения свойства, но отчет SOYC указывает, что генерируются только общие перестановки для настольных компьютеров, планшетов, мобильных устройств! Один большой файл содержит весь код. ** Permutation 0 ('formfactor': 'desktop', 'user.agent': 'gecko1_8') ('formfactor': 'mobile', 'user.agent': 'gecko1_8') ('formfactor': 'tablet' , 'user.agent': 'gecko1_8') ** КАК МОЖНО ИЗМЕНИТЬ ЭТО И ИМЕЮТ РАЗЛИЧНЫЕ ПЕРМУТАЦИИ ДЛЯ МОБИЛЬНОГО И СТОРОНЕ? –

+0

Чтобы ответить на этот вопрос, вам нужно будет опубликовать сам модуль - подробности, описывающие, как вы создали перестановки и скомпилировали их таким образом. Пожалуйста, разместите файл '.gwt.xml' для вашего приложения - может быть несколько, но важно увидеть что-либо, упоминающее' formfactor' (хотя видят и другие свойства, также помогут). –

ответ

0

Это файл gwt.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!-- 
    When updating your version of GWT, you should also update this DTD reference, 
    so that your app can take advantage of the latest GWT module capabilities. 
--> 
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.5.0//EN" 
    "http://google-web-toolkit.googlecode.com/svn/tags/2.5.0/distro-source/core/src/gwt-module.dtd"> 
<module rename-to='apllo'> 
    <inherits name='com.google.gwt.user.User'/> 
    <inherits name='com.google.gwt.user.theme.clean.Clean'/> 
    <inherits name="com.google.gwt.resources.Resources" /> 
    <inherits name="com.google.gwt.user.Debug"/> 
    <inherits name="com.google.gwt.activity.Activity"/> 
    <inherits name="com.google.gwt.place.Place"/> 
    <inherits name="com.google.gwt.http.HTTP"/> 
    <inherits name="com.google.gwt.i18n.I18N"/> 
    <inherits name="com.google.gwt.visualization.Visualization"/> 

    <inherits name='com.apllo.client.FormFactor'/> 

    <entry-point class='com.apllo.client.Apllo'/> 


    <!-- Specify the paths for translatable code     --> 
    <source path='client'/> 
    <source path='shared'/> 
    <!-- Specify public paths --> 
    <public path="files"/> 

    <!-- Use ClientFactoryImpl by default --> 
    <replace-with class="com.apllo.client.factory.ClientFactoryImpl"> 
     <when-type-is class="com.apllo.client.factory.ClientFactory"/> 
    </replace-with> 

    <!-- Use ClientFactoryImplMobile for mobile form factor. --> 
    <replace-with class="com.apllo.client.factory.ClientFactoryMobileImpl"> 
     <when-type-is class="com.apllo.client.factory.ClientFactory"/> 
     <when-property-is name="formfactor" value="mobile"/> 
    </replace-with> 

    <!-- 1.Use HeaderViewImpl by default --> 
    <replace-with class="com.apllo.client.view.computer.HeaderViewImpl"> 
     <when-type-is class="com.apllo.client.view.HeaderView"/> 
    </replace-with> 
    <replace-with class="com.apllo.client.view.mobile.HeaderMobileViewImpl"> 
     <when-type-is class="com.apllo.client.view.HeaderView"/> 
     <when-property-is name="formfactor" value="mobile"/> 
    </replace-with> 
    <!-- 2 --> 
    <replace-with class="com.apllo.client.view.computer.StatusViewImpl"> 
     <when-type-is class="com.apllo.client.view.StatusView"/> 
    </replace-with> 
    <replace-with class="com.apllo.client.view.mobile.StatusMobileViewImpl"> 
     <when-type-is class="com.apllo.client.view.StatusView"/> 
     <when-property-is name="formfactor" value="mobile"/> 
    </replace-with> 
    <!-- 3 --> 
    <replace-with class="com.apllo.client.view.computer.PublicViewImpl"> 
     <when-type-is class="com.apllo.client.view.PublicView"/> 
    </replace-with> 
    <replace-with class="com.apllo.client.view.mobile.PublicMobileViewImpl"> 
     <when-type-is class="com.apllo.client.view.PublicView"/> 
     <when-property-is name="formfactor" value="mobile"/> 
    </replace-with> 

    <!-- 4 --> 
    <replace-with class="com.apllo.client.view.computer.MessageViewImpl"> 
     <when-type-is class="com.apllo.client.view.MessageView"/> 
    </replace-with> 
    <replace-with class="com.apllo.client.view.mobile.MessageMobileViewImpl"> 
     <when-type-is class="com.apllo.client.view.MessageView"/> 
     <when-property-is name="formfactor" value="mobile"/> 
    </replace-with>  

    <!-- 5 --> 
    <replace-with class="com.apllo.client.view.computer.ContactsViewImpl"> 
     <when-type-is class="com.apllo.client.view.ContactsView"/> 
    </replace-with> 


    <!-- 6 --> 
    <replace-with class="com.apllo.client.view.computer.AdvertisementViewImpl"> 
     <when-type-is class="com.apllo.client.view.AdvertisementView"/> 
    </replace-with> 


    <!-- 7 --> 
    <replace-with class="com.apllo.client.view.computer.NewEditAdViewImpl"> 
     <when-type-is class="com.apllo.client.view.NewEditAdView"/> 
    </replace-with> 


    <!-- 8 --> 
    <replace-with class="com.apllo.client.view.computer.AccountViewImpl"> 
     <when-type-is class="com.apllo.client.view.AccountView"/> 
    </replace-with> 
    <replace-with class="com.apllo.client.view.mobile.AccountMobileViewImpl"> 
     <when-type-is class="com.apllo.client.view.AccountView"/> 
     <when-property-is name="formfactor" value="mobile"/> 
    </replace-with> 


    <!-- 9 --> 
    <replace-with class="com.apllo.client.view.computer.UtilityViewImpl"> 
     <when-type-is class="com.apllo.client.view.UtilityView"/> 
    </replace-with> 

</module> 
+0

РЕШЕНИЕ: в formfactor.gwt.xml Я прокомментировал строку Это вынудило компилятор сделать разные перестановки для мобильных и настольных компьютеров. –

Смежные вопросы