У меня есть
public interface MyResource extends ClientBundle{
@NotStrict
@Source("/myResource.css")
MyCssResource css();
}
public interface MyCssResource extends CssResource {
String gridEvenRow();
String gridOddRow();
.... more styling here....
}
в TestView.java
@UiField MyResource res;
@Inject
public TestView(final Binder binder) {
widget = binder.createAndBindUi(this);
res.css().ensureInjected();
}
В TestPresenter.java я могу без проблем стилизовать Grid.
for (int i = 1; i < myGrid.getRowCount(); i++) {
if((i%2) == 0){
myGrid.getRowFormatter().addStyleName(i, getView().getRes().css().gridEvenRow());
}
else{
myGrid.getRowFormatter().addStyleName(i, getView().getRes().css().gridOddRow());
}
}
Но я не хочу повторять этот код каждый раз при инициализации Grid. Итак, я хочу поместить этот код в класс Utility, чтобы я мог использовать его всего в 1 строке кода. Utility.formatGridOddEvenRow(myGrid);
Вот код в утилите
public class Utility {
public static MyResource res;
public Utility(){
res.css().ensureInjected();
}
public static void formatGridOddEvenRow(Grid grid){
for (int i = 1; i < grid.getRowCount(); i++) {
if((i%2) == 0){
grid.getRowFormatter().addStyleName(i, res.css().gridEvenRow());
}
else{
grid.getRowFormatter().addStyleName(i, res.css().gridOddRow());
}
}
}
}
Однако во время выполнения возникла ошибка [ERROR] - Uncaught exception escaped
? или какая-то ошибка, я не знаю.
Итак, как использовать интерфейс MyCssResource в классе Utility (GWT/GWTP)?