Я хочу обернуть CanvasElement
(<canvas>
в HTML) в виджет Canvas
.
Многие виджеты (например, Label) имеют статический метод SomeWidget.wrap(Element)
для переноса существующего элемента DOM,Я полагаю, что в Canvas нет такого метода, потому что не все браузеры поддерживают, и поэтому пользователь должен пройти через createIfSupported()
.
К сожалению, конструктор в Canvas является закрытым (защищенный будет работать), что означает, чтоХолст не может быть разделен на подклассы.(В производном классе нет доступных конструкторов.)
Фрагменты кода createIfSupported
и конструктор в классе Canvas:
public static Canvas createIfSupported() {
// check if canvas is supported; if it is not supported: return null
return new Canvas(element);
}
private Canvas(CanvasElement element) {
setElement(element);
}
В итоге я скопировал класс Canvasи сделать конструктор общедоступным.
Есть ли лучший способ сделать это?Если нет, в чем причина (кроме того, что <canvas>
может не поддерживаться)?
Я использую GWT версии 2.4.0.rc1.
Спасибо, Джулиан