Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / В каком виде хранить данные для формирования GUI / 17 сообщений из 17, страница 1 из 1
27.03.2014, 12:19
    #38597926
DDiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком виде хранить данные для формирования GUI
Приложение web. За GUI отвечает некий фреймворк. Но это по сути не важно.
Есть необходимость рисовать пользователю некую табличку. Название колонок, строк, их объединения и прочее могут меняться, но не очень кардинально(хотя кто его знает что будет потом).
Как написать сам код и классы для этого, вопросов нет. Мне интересно как и где правильно(по фэншуйу) хранить эти самые изменяемые данные(название строк, колонок и прочую инфу), думаю что их можно назвать метаданными таблицы.
Только одних названий строк > 130, не считая названия колонок и прочей лабуды.

Сейчас храню эти данные в файлах, которые вычитываю перед построением таблицы, на их основе формирую некий класс, который и использую в дальнейшем для формирования представления таблицы.

Как вариант может создать некий интерфейс maker, и в него совать уже конкретные реализации maker'ов, которые знают названия строк и прочую необходимую лабуду для построения. Естественно для этого все эти названия и прочее будет захардкорено в эти конкретные реализации. Для изменения внешнего вида достаточно подсунуть другую реализацию.

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

-----
Если дела идут плохо, есть вероятность, что в ближайшее время они пойдут ещё хуже.(с)Мерфи
...
Рейтинг: 0 / 0
27.03.2014, 12:42
    #38597961
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком виде хранить данные для формирования GUI
DDiver,
1. Понять какого класса делаем программу (табличный редктор? Excel?)
2. Отделить представление от БЛ по MVC (компонент таблица отдельно - метаданные отдельно)
3. Что такое названия строк - непонятно.
4. Храни где угодно, например в XML как Excel на Сохрани как...
...
Рейтинг: 0 / 0
27.03.2014, 12:52
    #38597977
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком виде хранить данные для формирования GUI
DDiverСейчас храню эти данные в файлах, которые вычитываю перед построением таблицы, на их основе формирую некий класс, который и использую в дальнейшем для формирования представления таблицы.
Нужен ВИ или преценденты, т.к. приложение - веб.
Абстрактно - образец - Excel или таблица SmartGWT.
Абстрактно - объект таблица имеет метод.
Tabla.LoadFromFile(...... если юзверь сам сохраняет файлы.
Внутри файла есть метка версии.
IMHO
...
Рейтинг: 0 / 0
27.03.2014, 13:36
    #38598062
DDiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком виде хранить данные для формирования GUI
Petro123,
1. Программа вообще занимается совсем другим делом. Это как доп фича.
2. это понятно
3. сейчас объясню

Пользователь может в программе сформировать некий отчёт, данные этого отчета ложатся в модель. Он может выгрузить эти данные в тот же Excel + нужно из этой модели отрисовать данные в наглядном виде пользователю прямо в программу, только на просмотр. В зависимости от отчёт меняется внешний вид этого отображения.
Прицепил картинку.
Количество колонок и их порядок может меняться, количество строк и их порядок тоже, может просто измениться название строк или колонок. По сути это как шаблон, в который нужно выводить разные данные.
Сейчас у меня это сделано, но мне не нравиться как.
Хочу сделать некую универсальную рисовалку, которая получает модель с данными + некие правила рисования для конкретной модели, после чего отрисовывает данные.
Вопрос в том, как лучше и где хранить инфу о правилах рисования этого наглядного представления(наборы строк, колонок и доп инфа), в программе или же вне: в файлах, в БД или ещё где.

Вот спрашиваю и всё больше убеждаюсь что целесообразнее хранить в неких файлах со структурой.
...
Рейтинг: 0 / 0
27.03.2014, 13:53
    #38598092
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком виде хранить данные для формирования GUI
DDiver,
Так и не дал ВИ.
ВИ №1:
- Юзверь нажал кнопку Печать
- Получил список умолчательных шаблонов
- Выбрал шаблон Шахматка15
- Переделал её на 75 процентов
- Сохранил как... её на своём компе с именем МойКлассный шаблон.abc
....
...
Рейтинг: 0 / 0
27.03.2014, 14:16
    #38598117
DDiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком виде хранить данные для формирования GUI
Прошу прощение.

ВИ №1 "Показать отчёт за 1 квартал"
1. Пользователь открыл окно настройки параметров отчёта
2. Установил кликалки-жмакалки настроек
3. Нажал кнопку "просмотреть"
4. Рисуем 6 колонок и 10 строк, заполняем данными
5. Показываем результат пользователю

ВИ №2 "Показать отчёт за 2 квартал"
1. Пользователь открыл окно настройки параметров отчёта
2. Установил кликалки-жмакалки настроек
3. Нажал кнопку "просмотреть"
4. Рисуем 3 колонки, и 20 строк, заполняем данными.
5. Показываем результат пользователю

Набор сочетаний дата-вид заранее определён, пользователем меняться не может.
...
Рейтинг: 0 / 0
27.03.2014, 15:59
    #38598262
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком виде хранить данные для формирования GUI
DDiver,
чтобы не переписывать, выдели компонент таблица - отдельно.
А так, обычное дело:
Отчёт = СтатикаКонстанты + БЛ + ПеременныеПользователяНастройки + МатрицаДанных.
Хранить Переменную часть можно где угодно. Только хранить в паре с БЛ, т.к. это шахматки.
Можно сделать базовый класс для облегчения программисту.
IMHO
...
Рейтинг: 0 / 0
27.03.2014, 18:37
    #38598418
programania
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком виде хранить данные для формирования GUI
DDiverПриложение web.
Мне интересно как и где правильно(по фэншуйу) хранить эти самые изменяемые данные(название строк, колонок и прочую инфу), думаю что их можно назвать метаданными таблицы.


Я сделал хранение каждой клетки формы в одной строке текстового файла.
Так можно нарисовать что угодно как в Excel. Например.
Все быстро загружается и легко сформировать в программе по мере необходимости
например, по произвольной таблице БД, используя комментарии БД как заголовки колонок.

Еще для web удобно хранить в формате html.
Тогда шаблон формы можно оформлять в Word, возможно, пользователем.
Чем заполнять поля можно указывать в комментариях к гиперссылкам или в сносках.
И по этому шаблону программа формирует отчет, заполняя поля из БД и повторяя строки.
И в нем уже на JS возможны фильтры, сортировки и т.п. подобно Excel
и даже редактирование полей, вставка, удаление строк. Например.
...
Рейтинг: 0 / 0
27.03.2014, 19:10
    #38598441
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком виде хранить данные для формирования GUI
programaniaи даже редактирование полей, вставка, удаление строк. Например.
прикольно)). Только полная замена веб-контекстного меню под мышкой вряд ли целесобразно IMHO
...
Рейтинг: 0 / 0
27.03.2014, 22:12
    #38598561
DDiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком виде хранить данные для формирования GUI
programania,
а можно кусок этого файла текстового? для примера.
...
Рейтинг: 0 / 0
28.03.2014, 10:47
    #38598868
programania
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком виде хранить данные для формирования GUI
DDiverprogramania,
а можно кусок этого файла текстового? для примера.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Форма getstr.jfm для программы RF
альбомная 4% 12% 0% 4% width 1280 центрировать нет

onEvent 
if (E=='load') {...}
if (E=='key')
if (E.key=='Enter') ok.click; else
if (E.key=='Esc')  esc.click;
37 14 424 23t00000<12 ~id=title;стиль=u~Настройка пути
36 54 500 23t00000<16z~id=z;шрифт=courier~Введите путь/имя программы
36 83 500 27t11110<12z~id=txt;e=y~/usr/bin/elk-konqe
36 138 86 20b11110=12 ~id=ok~OK
onclick 
str=.txt; close(true);
130 138 84 20b11110=12 ~id=esc~Отмена
onclick 
close();

Описание клеток в строках с 4-числами в начале -
это координаты, тип, рамки, выравнивание, шрифт, id и т.п. и в конце - текст клетки
также следом, возможно, программа обработки мыши на клетке.
В начале параметры экспорта, печати и программа обработки клавишей и событий

Больше можно увидеть в плеере mp3 для android
Там в 5-и файлах jfm подобным способом описаны все формы плеера.
Их можно посмотреть из самого плеера: меню, все файлы, jfm, показать
...
Рейтинг: 0 / 0
28.03.2014, 10:50
    #38598871
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком виде хранить данные для формирования GUI
imho тогда уже и двоичный формат файла подойдёт...по классике ООП и сериализации
...
Рейтинг: 0 / 0
28.03.2014, 12:35
    #38599023
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком виде хранить данные для формирования GUI
DDiverPetro123,

Хочу сделать некую универсальную рисовалку, которая получает модель с данными + некие правила рисования для конкретной модели, после чего отрисовывает данные.
Вопрос в том, как лучше и где хранить инфу о правилах рисования этого наглядного представления(наборы строк, колонок и доп инфа), в программе или же вне: в файлах, в БД или ещё где.

Вот спрашиваю и всё больше убеждаюсь что целесообразнее хранить в неких файлах со структурой.

А зачем изборетать велосипед?
Возьмите Jasper Report.
Там есть что вам нужно и немного больше. :-)
...
Рейтинг: 0 / 0
28.03.2014, 14:29
    #38599211
programania
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком виде хранить данные для формирования GUI
Petro123imho тогда уже и двоичный формат файла подойдёт...по классике ООП и сериализации
Тогда файл будет нечитаем, а мне нужно контролировать процесс и видеть результат.
И при изменении свойств обьектов клетки, формы все уже сделанные формы перестанут десериализироваться.

Petro123 Только полная замена веб-контекстного меню под мышкой вряд ли целесобразно IMHO
А как можно сделать не "полную замену веб-контекстного меню"?
Конечно для выбора функций для всего документа нетрудно и на JS сделать toolBar или mainMenu.
Но как выбрать функцию для указанного элемента документа кроме контекстного меню?

mad_nazgul А зачем изборетать велосипед?
Возьмите Jasper Report.
Велосипед нужно изобретать когда большая часть не нужна, а нужного нет и не будет,
а трудоемкость освоения и приспособления к своим нуждам больше чем на велосипед.
Но чтобы понять это нужно хотя бы знать как можно сделать велосипед и что он сможет.

А вот сможет ли Jasper Report создать html отчет с возможностью
фильтрации, сортировки и прочего как в Excel или хотя бы как в моем примере?
Или связать клавиши, контектсное меню в отчете с Java программой?
...
Рейтинг: 0 / 0
28.03.2014, 14:51
    #38599236
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком виде хранить данные для формирования GUI
programania,
1. А ты не совмещай отладку и формат сериализации. Для программиста текстовые файлы - это только логи. Для пользователя твой файл....большие сомнения.
Версия формата есть и в текстовых и бинарных.
2. У тебя пропало банальное "Скопировать выделенный текст".
Это ВЕБ. Там законы другие.
Совместить веб и десктоп никому не удалось)
...
Рейтинг: 0 / 0
30.03.2014, 10:18
    #38600074
AlexJm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком виде хранить данные для формирования GUI
Petro123Совместить веб и десктоп никому не удалось)
Ну почему. Oracle Forms )
...
Рейтинг: 0 / 0
30.03.2014, 17:38
    #38600229
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком виде хранить данные для формирования GUI
AlexJm,
а почему не свежее - сильверлайт? ))
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / В каком виде хранить данные для формирования GUI / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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