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

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

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

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

-=*ShamaN*=-т.е. обработчики общие (Backing Beans), а представления нужно делать отдельно для каждого рендера... или я не прав?
Нет. Представление тоже общее делается JSF тэгами. А затем пишется своя реализация JSF, которая умеет эти тэги рендерить в нужный движок.
...
Рейтинг: 0 / 0
15.10.2013, 16:44:13
    #38428507
-=*ShamaN*=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Абстрагирование UI
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
15.10.2013, 16:48:25
    #38428512
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Абстрагирование UI
-=*ShamaN*=-Blazkowicz, премного благодарен, я серьёзно рассмотрю JSF в качестве клиентского двигла.
Facepalm. Зачем это всё? JSF еле выехал на web, а на GUI его вообще никто не поддерживает, кроме может быть ADF.
-=*ShamaN*=-Получается, в данной трактовке, нужно будет JSF-представления рендерить в Vaadin...

Каким боком тут Vaadin всплыл?
-=*ShamaN*=-Ок, буду ковыряться, но JSF пока №1, ибо стандарт, а не конторская поделка, спасибо ещё раз...
Ну, не взлетит ведь.
...
Рейтинг: 0 / 0
15.10.2013, 16:57:39
    #38428524
-=*ShamaN*=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Абстрагирование UI
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
15.10.2013, 17:02:03
    #38428529
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Абстрагирование UI
-=*ShamaN*=-А вот нам, программистам, от него как то надо абстрагироваться, чтобы код представлений не был завязан на конкретную технологию...
Зачем?
...
Рейтинг: 0 / 0
15.10.2013, 17:13:27
    #38428550
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Абстрагирование UI
мертворожденное решение - не тратьте время. Если даже базу так и не асбтрагировали нормально, то что говорить о UI.
...
Рейтинг: 0 / 0
16.10.2013, 10:50:26
    #38429251
-=*ShamaN*=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Абстрагирование UI
Blazkowicz-=*ShamaN*=-А вот нам, программистам, от него как то надо абстрагироваться, чтобы код представлений не был завязан на конкретную технологию...
Зачем?

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

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

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

В смысле "на клиента или на сервер"?
...
Рейтинг: 0 / 0
17.10.2013, 15:25:44
    #38431432
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Абстрагирование UI
-=*ShamaN*=-В смысле "на клиента или на сервер"?
Web GUI бывают с реализацией логики на сервере (JSP) или на клиенте (GWT).
...
Рейтинг: 0 / 0
17.10.2013, 16:53:56
    #38431589
-=*ShamaN*=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Абстрагирование UI
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
18.10.2013, 14:00:25
    #38432848
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Абстрагирование UI
-=*ShamaN*=-Кажется, в данном раскладе не важно, клиент или сервер; по крайней мере, искренне хочется в это верить)))

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

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

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

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

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

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



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

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

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

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

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

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

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


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


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