Я просто пытаюсь динамически добавить детей к родителю через публичный метод. Если я вызываю canvasContainer.add(Canvas.createIfSupported())
из конструктора, он работает как задумано, но изнутри метода insertLayerAt()
он молча завершается сбоем, не добавляя его в DOM.
Я пытался использовать разные панели в качестве родительского элемента и разные виджеты в качестве дочернего элемента, но проблема сохраняется.
Я подхожу к этому неправильно? Я не могу найти ничего, что говорит, что я не должен использовать метод add извне конструктора, но опять же я мог бы упустить что-то более простое, чем это.
Мой код ниже, я использую GWT 2.4 и MVP4G
public class CanvasView extends Composite implements
CanvasPresenter.ICanvasView {
LayoutPanel canvasContainer;
@Inject
public CanvasView()
{
Document document = Document.getInstance();
Dimension d = document.getDimension();
canvasContainer = new LayoutPanel();
canvasContainer.setPixelSize(d.width, d.height);
canvasContainer.setStyleName("CanvasController");
initWidget(canvasContainer);
}
public void insertLayerAt(int zpos, Layer layer)
{
Canvas canvas = Canvas.createIfSupported();
if (canvas != null)
{
GWT.log("Canvas is supported.", null);
canvasContainer.add(canvas);
}else{
GWT.log("Canvas isn't supported.", null);
}
}
}