В моем приложении у меня есть MyAppResources
, который в основном будет содержать пользовательские стили для приложения. Я думаю о том, что является хорошим способом применить пользовательские стили к стандартным виджетам, таким как CellTable, наряду с пользовательскими стилями макета и пользовательских виджетов?
Мой вопрос: поскольку MyAppResources является одноэлементным (это не обязательно, как упоминалось в других сообщениях), но CellTableResources
не является, а CellTableResources
является членом этого экземпляра, который также является интерфейсом расширяя ClientBundle
, будет ли создаваться прокси CellTableResources для каждого MyAppResources.INSTANCE.cellTableResources().foo()
?
Если да, могу ли я создать MyAppResources.CELLTABLE_RESOURCE_INSTANCE
, чтобы обойти это? Или создание прокси будет незначительным, даже если будет много обращений к MyAppResources.INSTANCE.cellTableResources().#
?
Во-вторых, скорее вопрос для обсуждения: как лучше всего использовать несколько ClientBundle
в этом случае? Должен ли я вместо этого использовать CellTableResources
отдельно (удалить его из MyAppResources
), используя GWT.create(CellTableResources.class);
в виджете, который в нем нуждается (или используя синглтон, как у меня для MyAppResources
)?
MyAppResources
:
public interface MyAppResources extends ClientBundle {
public static final MyAppResources INSTANCE = GWT.create(MyAppResources.class);
@Source("MyAppStyles.css")
public MyAppCssResource css();
public CellTableResources cellTableResources();
}
CellTableResources
:
public interface CellTableResources extends CellTable.Resources {
interface CellTableStyle extends CellTable.Style {
}
@Override
@Source({ CellTable.Style.DEFAULT_CSS, "CellTableStyles.css" })
CellTableStyle cellTableStyle();
@Source("green_light.png")
ImageResource getGreenLight();
//...
}
Спасибо за чтение.
CellTableResources
, и поэтому я спросил, должен ли я оставить его там или нет. Могу ли я предположить, что хотяCellTableResources
является интерфейсом, он будет создан один раз для синглтонаMyAppResources
? - person foamroll   schedule 04.12.2013ClientBundle
на самом деле является синглтоном из-за использованияGWT.create(...)
, то это не имеет значения и для члена. Однако я не используюGWT.create(...)
для члена. Кроме того, каков будет кумулятивный эффект от наличия нескольких таких членов? - person foamroll   schedule 04.12.2013