С введением элемента HTML5 <canvas>можно ли реализовать Swing в GWT? - PullRequest
4 голосов
/ 03 апреля 2010

С введением элемента HTML5 <canvas> теоретически можно Swing реализовать в Google Web Toolkit (GWT) с помощью <canvas> тег для рисования?

Мне известны попытки портировать исходный код с использованием вызовов Swing на вызовы GWT, но я хочу получить закулисный порт, где приложение Swing будет компилироваться в GWT без каких-либо изменений исходного кода.

Это теоретически возможно? Зачем? Почему нет?

Ответы [ 4 ]

4 голосов
/ 04 апреля 2010

Есть некоторые проблемы.

Локальное хранилище данных Приложения Swing могут использовать диск для хранения данных. Предполагая, что локальное хранилище данных, доступное в HTML 5, работает, все равно будет трудно автоматически сопоставить доступ к файлу / диску с вызовами локального хранилища данных.

Многопоточность и синхронизация Приложения Swing обычно создают потоки, а это невозможно с GWT. Хитрый, чтобы понять это правильно.

Доступ к сети Приложения Swing могут подключаться к произвольным сетевым расположениям, что не работает с GWT.

Использование функций языка Java, недоступных в браузере Все, что находится за пределами core-java, недоступно, поэтому автоматический порт, скорее всего, выйдет из строя.

Оптимизация памяти и производительности Шаблоны сборки мусора совершенно разные. Как вы оптимизируете для оптимальных размеров загрузки? Как вы отображаете несколько экранов качания, чтобы использовать что-то вроде разделения кода для повышения производительности?

Смотри и чувствуй Все сказано и сделано, вы должны запачкать руки, чтобы написать CSS-код, чтобы получить правильный внешний вид. Автоматический порт не может этого сделать.

Учитывая все это, я думаю, что невозможно для чего угодно, кроме тривиальных приложений А для тривиальных приложений вы можете переписать код.

2 голосов
/ 03 апреля 2010

Это теоретически возможно, хотя это будет нетривиальный объем работы и сомнительная полезность. Что вам нужно сделать, это реализовать пользовательский интерфейс Look and Feel, который определяет делегаты пользовательского интерфейса, генерирующие виджеты GWT и на стороне GWT, захватывают события мыши и клавиатуры на клиенте и передают их в очередь событий Swing.

Проблема в том, что в типичном Swing-приложении слишком много входных событий и обновлений состояния виджетов, которые придется переходить назад и вперед между вашим браузером и бэкэндом. Это убило бы отзывчивость вашего приложения.

1 голос
/ 04 июля 2010

Я бы сказал, что это возможно, учитывая эту технологию: http://www.creamtec.com/products/ajaxswing/demos.html

То, что AjaxSwing, возможно, еще не имеет, - это Java2D / HTML5 Canvas (честно говоря, я не проверял). Но как далеко это, с IE9, вскакивающим на борт?

0 голосов
/ 03 апреля 2010

Краткий ответ: в данный момент невозможно. Нулевая доступность!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...