powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Абстрагирование UI
25 сообщений из 54, страница 1 из 3
Абстрагирование UI
    #38428229
Фотография -=*ShamaN*=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищи, взываю вашему кругозору! Есть ли фреймворки для построения интерфейсов, содержащие в себе:
- API - описательный слой (аннотации и интерфейсы) для определения представлений и виджетов
- Common классы - реализация классов-обработчиков аннотированных классов, евэнтов, команд и пр.
- Реализация - конкретный движок, который "рендерит" интерфейс в рамках какой-то одной технологии, SWING например.

С точки зрения использования хотелось бы иметь такой:
1. Создать класс представления
2. Заинжектить виджеты, сервисы и ... при помощи спец. аннотаций из API с указанием атрибутов каждого элемента (возможно создать некий XML с параметрами разметки и пр.)
3. Закодить события, листенеры и обработчики и отметить их аннотациями
4. Зарегистрировать этот класс представления в "Регистре"
5. Увидеть результат

Конечная цель: иметь классы представлений, абстрагированные от конкретной технологии
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38428248
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=*ShamaN*=-Конечная цель: иметь классы представлений, абстрагированные от конкретной технологии
В Sun когда-то тоже такие мечтатели были. Они придумали JSF.
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38428292
Фотография -=*ShamaN*=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz-=*ShamaN*=-Конечная цель: иметь классы представлений, абстрагированные от конкретной технологии
В Sun когда-то тоже такие мечтатели были. Они придумали JSF.

Спасибо. Но описания представлений и виджеты там вроде не универсальные, т.е. обработчики общие (Backing Beans), а представления нужно делать отдельно для каждого рендера... или я не прав?
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38428302
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=*ShamaN*=-Но описания представлений и виджеты там вроде не универсальные
В общем случае универсальные. До появления всяких фейслетов.

-=*ShamaN*=-т.е. обработчики общие (Backing Beans), а представления нужно делать отдельно для каждого рендера... или я не прав?
Нет. Представление тоже общее делается JSF тэгами. А затем пишется своя реализация JSF, которая умеет эти тэги рендерить в нужный движок.
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38428507
Фотография -=*ShamaN*=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz, премного благодарен, я серьёзно рассмотрю JSF в качестве клиентского двигла. Получается, в данной трактовке, нужно будет JSF-представления рендерить в Vaadin...

Пока ждал ответа наковырял вот эти библиотеки:
- http://code.google.com/p/jo-client-platform
- http://www.sibvisions.com/en/jvxmdemo
Последний (судя по демкам) - это то что нужно, но необходимо исходник ковырнуть). И, кстати, рендер для Vaadin там уже есть :) http://sourceforge.net/projects/jvx/files/?source=navbar

Ок, буду ковыряться, но JSF пока №1, ибо стандарт, а не конторская поделка, спасибо ещё раз...
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38428512
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=*ShamaN*=-Blazkowicz, премного благодарен, я серьёзно рассмотрю JSF в качестве клиентского двигла.
Facepalm. Зачем это всё? JSF еле выехал на web, а на GUI его вообще никто не поддерживает, кроме может быть ADF.
-=*ShamaN*=-Получается, в данной трактовке, нужно будет JSF-представления рендерить в Vaadin...

Каким боком тут Vaadin всплыл?
-=*ShamaN*=-Ок, буду ковыряться, но JSF пока №1, ибо стандарт, а не конторская поделка, спасибо ещё раз...
Ну, не взлетит ведь.
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38428524
Фотография -=*ShamaN*=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Vaadin - целевой end-user фреймфорк
А вот нам, программистам, от него как то надо абстрагироваться, чтобы код представлений не был завязан на конкретную технологию...
Поэтому я на решение этой задачи смотрю примерно так: "Common independent UI XML" -> Vaadin App Implementation -> User Happy, чтобы можно было "Common independent UI XML" -> Swing App Implementation -> Second User Happy

Опыта у меня немного, как бы Вы это сделали?
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38428529
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=*ShamaN*=-А вот нам, программистам, от него как то надо абстрагироваться, чтобы код представлений не был завязан на конкретную технологию...
Зачем?
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38428550
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мертворожденное решение - не тратьте время. Если даже базу так и не асбтрагировали нормально, то что говорить о UI.
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38429251
Фотография -=*ShamaN*=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz-=*ShamaN*=-А вот нам, программистам, от него как то надо абстрагироваться, чтобы код представлений не был завязан на конкретную технологию...
Зачем?

Вот на эту тему готов в личке пообщаться, чтоб флуд не разводить...
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38429257
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38429688
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=*ShamaN*=-Вот на эту тему готов в личке пообщаться, чтоб флуд не разводить...
упрямый))). Всё равно будет делать)
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38430715
Фотография -=*ShamaN*=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123-=*ShamaN*=-Вот на эту тему готов в личке пообщаться, чтоб флуд не разводить...
упрямый))). Всё равно будет делать)

Не, Петро, убиваться над технологией не буду... Но изолировать прикладной код буду по-любому))
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38430810
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=*ShamaN*=-Конечная цель: иметь классы представлений, абстрагированные от конкретной технологии

http://code.google.com/p/swinghtmltemplate/
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38430839
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=*ShamaN*=-Не, Петро, убиваться над технологией не буду... Но изолировать прикладной код буду по-любому))
в вебе это не просто. Все хотят изолировать, только никто не знает куда))). На клиента или на сервер.
"Убиваться не буду, но изолировать по любому (с)"
))
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38431427
Фотография -=*ShamaN*=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123-=*ShamaN*=-Не, Петро, убиваться над технологией не буду... Но изолировать прикладной код буду по-любому))
в вебе это не просто. Все хотят изолировать, только никто не знает куда))). На клиента или на сервер.
"Убиваться не буду, но изолировать по любому (с)"
))

В смысле "на клиента или на сервер"?
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38431432
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=*ShamaN*=-В смысле "на клиента или на сервер"?
Web GUI бывают с реализацией логики на сервере (JSP) или на клиенте (GWT).
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38431589
Фотография -=*ShamaN*=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz-=*ShamaN*=-В смысле "на клиента или на сервер"?
Web GUI бывают с реализацией логики на сервере (JSP) или на клиенте (GWT).

Аааа... вот как.
Сейчас продумываю вариант, как реализовать UseCase, приведенный ниже... Кажется, в данном раскладе не важно, клиент или сервер; по крайней мере, искренне хочется в это верить))) но однозначно можно сказать, в JavaScript такое представление кода конвертировать будет очень проблематично, поэтому при "упаковке" кода в такой вид на клиенте должна быть Java, ну а дальше вопрос движка, умеющего "Съедать" такие конструкции.

Этот код - примерный набросок того, что мне хотелось бы иметь в качестве описателя логики.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
@Component(designSource="ClientLogicDesign.xml")
public class ClientLogic {
	
	private static final String ACTION_OK = "ACTION_OK";
	
	@EJB
	IEchoFacade echo;	
	
	@Bind("NameEditor")
	protected ITextEdit name;
	
	@Bind
	protected IApplication app;	
	
	// этот экшн привязан к кнопке в XML
	@Action(ACTION_OK)
	@RolesAllowed("AUTHENTICATED")
	public void doActionOK() { 
		String echoStr = echo.doEcho(name.getStringValue()); 
		app.showInfo(echoStr);
	}
	
	@ActionCheck(ACTION_OK)
	public boolean checkActionOK() {
		return (echo != null);
	}
	
}



Наверное, это больше на серверный вариант похоже...
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38432848
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=*ShamaN*=-Кажется, в данном раскладе не важно, клиент или сервер; по крайней мере, искренне хочется в это верить)))

====== прикольно)). У MS с его сильверлайтом уже не получилось. Может у вас получится))

на клиенте должна быть Java,

==== это уже не веб проект(
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38433109
Фотография -=*ShamaN*=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123-=*ShamaN*=-Кажется, в данном раскладе не важно, клиент или сервер; по крайней мере, искренне хочется в это верить)))

====== прикольно)). У MS с его сильверлайтом уже не получилось. Может у вас получится))

на клиенте должна быть Java,

==== это уже не веб проект(



Petro123, а вот у них получилось:
http://www.sibvisions.com/en/jvxmdemo

Я не знаю, почему у MS не получилось)) У МС обычно вообще не получается)))

А по поводу "не вэб-проект", это да, совсем не вэб
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38433169
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=*ShamaN*=-Petro123, а вот у них получилось:
http://www.sibvisions.com/en/jvxmdemo
что именно?
Это rich гуи?
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38433758
Фотография -=*ShamaN*=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Как я понял, принцип jvx состоит в том, что клиентский код пишется с использованием обобщенных компонентов и виджетов; таким образом, задача разработчика - задекларировать интерфйейс и поведение в педоставляемой библиотекой обобщенной нотации. А дальше дело рендеров, они эти дакларации воспроизводят.

Вы прикрепили карртинку swing-приложения, там еще есть отрендеренный интерфейс под чистый вэб (похоже на ExtJS), flex и тот же swing, завернутый в апплет. А в репозитории лежит порт рендерера для vaadina.

Возвращаясь к вопросу исполнения кода, на клиенте или на сервере, уместно отметить тип клиента - исполняемый он или терминальный.
В исполняемом виде трудно представить, как java код будет выполняться на клиенте без jvm, и как вы верно подметили, это уже не вэб. В терминальном исполнении на клиенте имеется только представление и реакция на действия пользоваля отрабатввается на сервере, в данном контексте клиентский код на серевере может вполне себе использовать все прелести jvm и здесь не требуется транслировпть наши формы тз java в javascript (aka gwt).

Я думаю, что тема в топике исчерпала себя и можно заканчивать дискуссию. Библиотеки я использовать не буду, ибо написать свой обработчик 'тонких' задекрированных программистом клиентских классов дело не сложное. Основная работа, организовать контракт взаимодействия системного кровня с прикладным. Всем спасибо))
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38433943
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=*ShamaN*=-клиентский код пишется с использованием обобщенных компонентов и виджетов; таким образом, задача разработчика - задекларировать интерфйейс и поведение в педоставляемой библиотекой обобщенной нотации
я и спрашивал, как это выглядит КОНКРЕТНО в коде и в готовом виде.
Т.е. "по шагам".
Т.к. компонент "ВыборДаты" или "ТекстовоеПоле" знаю, а "обобщённый компонент" - не знаю.
Удачи!
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38436856
AlexJm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123-=*ShamaN*=-Petro123, а вот у них получилось:
http://www.sibvisions.com/en/jvxmdemo
что именно?
Это rich гуи?


Ну а почему нет?
...
Рейтинг: 0 / 0
Абстрагирование UI
    #38437187
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexJmНу а почему нет?
дык по умолчанию, никто не верит, что это ноу-хау)) именно с тонким клиентом.
А по картинке - обычная веб страничка....без "пошаговых родов".
...
Рейтинг: 0 / 0
25 сообщений из 54, страница 1 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Абстрагирование UI
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]