Возможно ли взаимодействие между интерфейсами java.awt.Graphics2D и Html5 Canvas в GWT? - PullRequest
2 голосов
/ 16 июня 2011

У меня есть библиотека Java, которая интенсивно использует java.awt.Graphics2d.

Я хочу перенести свою библиотеку на html5 canvas, используя gwt.

Так что я планирую написатьинтерфейс (или просто класс), скажем, common.Graphics2d, класс адаптера, скажем com.test.awt.Graphics2d, реализует common.Graphics2d и использует java.awt.Graphics2d

и другой класс адаптера, скажем com.test.gwt.Graphics2d, реализует common.Graphics2d и использует com.google.gwt.canvas.dom.client.Context2d.

Затем я заменю все java.awt.Graphics2d на common.Graphics2d.Поэтому после этого моя библиотека будет работать как с gwt, так и с java.

Проблема здесь заключается в реализации методов graphics2d и их настройке с помощью контекста canvas 2d.Возможно ли реализовать ту же функциональность с помощью canvas?

Ответы [ 2 ]

1 голос
/ 05 октября 2011

Вероятно, это зависит от используемых вами функций (например, цветовой градиент может быть непростым). для базовых функций рисования число методов, которые вам действительно нужно реализовать, очень мало.

Например, вы можете посмотреть (и использовать повторно) классы из моего пакета jvect-clipboard (на sourceforge). По сути, все геометрические методы могут использовать общую команду рисования пути, и у вас остается хранение цветов и т. П.

Посмотрите, например, на реализацию для вывода SVG или WMF, вы увидите, что код довольно прост, особенно для SVG (хотя он не охватывает все возможности, в частности градиенты).

1 голос
/ 18 августа 2011

Я сделал похожую вещь. У меня есть интерфейс, который представляет aview и две реализации указанного интерфейса. Один для Android, использующий классы android.graphics, и второй вариант реализации в GWT, использующий com.google.gwt.canvas.client.Canvas.

Мне кажется, что материал GWT Canvas довольно полнофункциональный. Вы можете рисовать фигуры, отображать текст и изображения, перемещать, вращать, масштабировать ...

...