2012-01-30 2 views
2
<module> 
<inherits name="com.google.gwt.core.Core"/> 
<inherits name="com.google.gwt.user.UserAgent"/> 
<inherits name="com.google.gwt.user.User"/> 

<replace-with class="hu.goodimpress.szamlazo.ajax.client.utils.JSON.JsonReader"> 
<when-type-is class="com.extjs.gxt.ui.client.data.JsonReader"/> 
<when-property-is name="user.agent" value="gecko1_8"/> 
</replace-with> 
<replace-with class="hu.goodimpress.szamlazo.ajax.client.utils.JSON.JsonReader"> 
<when-type-is class="com.extjs.gxt.ui.client.data.JsonReader"/> 
<when-property-is name="user.agent" value="opera"/> 
</replace-with> 
<replace-with class="hu.goodimpress.szamlazo.ajax.client.utils.JSON.JsonReader"> 
<when-type-is class="com.extjs.gxt.ui.client.data.JsonReader"/> 
<when-property-is name="user.agent" value="safari"/> 
</replace-with> 


<inherits name="com.extjs.gxt.ui.GXT"/> 
<inherits name="hu.goodimpress.szamlazo.ajax.Start"/> 


<entry-point class="hu.goodimpress.szamlazo.client.Szamlazo"/> 
</module> 

но GWT не изменилось GXT JsonReader, мой JsonReader: (( я использовать режим отладки .... поэтому было бы легче заменить центральные классы происходят от места и времени, как если бы код должен быть меньшеGWT XML Заменить класс

почему

ответ

5

Я не знаком с GXT JsonReader но есть несколько подсказок:

Заменить правила могут быть перекрыты другими модулями, поэтому может быть есть какой-то другой модуль, какой h отменяет ваше правило

Заменить правила влияет только на объекты, созданные с использованием GWT.create. Например. правила работают только для:

JsonReader reader = GWT.create(JsonReader.class);

И ни разу за:

JsonReader reader = new JsonReader();

+1

Unfortunatly, JsonReader принимает аргумент конструктора, так GWT.create не будет работать, чтобы создать его. Также стоит отметить, что если вы всегда хотите что-то заменить, нет необходимости проверять свойства - и если какое-либо из этих свойств вызывает такую ​​же замену, все теги могут быть помещены в один и тот же < replace-with>. –

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