Модераторы: javastic, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Тестирование контрола DataGrid 
V
    Опции темы
VOS
Дата 31.1.2007, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



В одном довольно большом моем проекте возникла необходимость реализации клиентской части, 
которая работала бы на мобильных телефонах. Одним из ключевых элементов этой клиентской части
является DataGrid, предназначенный для хранения, отображения и манипулирования данными в плоской двумерной таблице.
В Java (тем более J2ME) я новичок, поэтому с удивлением обнаружил, что этот элемент не входит в состав стандартных контролов.
Поиск не дал приемлемых результатов, поэтому пришлось реализовывать самому. Тестовый мидлет прикреплен к сообщению.
По идее эта версия должна работать на MIDP 1.0 (extends Canvas) (для MIDP 2.0 будет и версия extends CustomItem)

Интересует:
 - приемлимо ли он работает на телефонах с MIDP 1.0 (мерцание и т.д. при включенном/отключенном меню Draw buffered)
 - список телефонов на которых работает
 - мнения/предложения/пожелания

Если контрол кого-то заинтересует, то вот краткое описание
Код


/**
 * Класс DataGrid предназначен для хранения, отображения и манипулирования
 * данными в плоской двумерной таблице
 * Поддерживаются:
 * Автоматический пропорциональный скролллинг записей в таблице
 *       + Вертикальный скроллинг
 *       - Горизонтальный скроллинг (Next version)
 * + Отрисовка сетки таблицы
 *      + ColLines
 *      + RowLines
 * + Выделение ячейки или строки (RowSelect)
 * + Колонки таблицы разной ширины
 * + Многострочные ячейки (устанавливается кол-во строк в таблице)
 * - Строки разной ширины (Next Version)
 * - Объединенные ячейки (Next Version)
 * + WordWrap
 * + Отрисовка изображений в ячейке согласно стилю FieldAttrib.TypeDraw
 * + Видимые и скрытые столбцы
 * + Автоматически вычисляемая ширина последнего видимого столбца под размер экрана
 * + Фиксированные строки (используемые обычно в качестве заголовка таблицы)
 *      + Фиксированных строк (заголовков) может быть несколько
 *      + Цвет устанавливается :)
 * + "Подвал" (footer) таблицы. Это фиксированные строки с объединенными ячейками,
      размещенные внизу таблицы для отображения в зависимости от стиля (StyleDrawInFooter):
 *      + значений столбцов активной строки, у которых атрибут DrawInFooter=true
 *      + статического текста
 *      + статический текста и значение столбца активной строки, у которых атрибут DrawInFooter=true
 *      - суммы значений (next version)
 *      + количества записей в таблице
 *      + количества записей в таблице и значение столбца активной строки, у которых атрибут DrawInFooter=true
 *      + строк "подвала" может быть несколько, каждой из них может быть задан свой стиль
 * + Двойная буферизация :)
 * + Установка цвета
 *      + Фиксированных ячеек
 *      + Сетки
 *      + Скроллируемой области
 *      + Подвала таблицы
 *      + Текста фиксированных ячеек
 *      + Текста данных
 * + Форма просмотра строки
 * + TableLoader 
 *      + теговый формат
 *      - XML (Next version)
 * @version 1.1
 */



Присоединённый файл ( Кол-во скачиваний: 71 )
Присоединённый файл  pack.zip 10,74 Kb
PM MAIL   Вверх
javastic
Дата 31.1.2007, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: 19
Всего: 27



Компонент очень понравился. Глюков не заметил. Добро пожаловать на форум! smile


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
VOS
Дата 31.1.2007, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



Спасибо, жаль поздно нашел Ваш форум.
PM MAIL   Вверх
javastic
Дата 31.1.2007, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: 19
Всего: 27



Лучше поздно, чем никогда... ;)


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
Vladimir35
Дата 1.2.2007, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 1.8.2006

Репутация: 3
Всего: 3



Цитата(VOS @ 31.1.2007,  16:57)
Спасибо, жаль поздно нашел Ваш форум.

К сожалению, это известная проблема.
Вот некоторый список известных j2me форумов. Отсортированно по языку и крутости форума.

Забавно, что сановский форум туда не попал (и форумы производителей тоже).
PM MAIL WWW   Вверх
slider3d
Дата 1.2.2007, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 30.1.2007

Репутация: нет
Всего: нет



И мне понравился.   smile 
Вот только надо вовремя остановится. Потому что лучшее враг хорошего. 
PM MAIL   Вверх
Samuil
Дата 2.2.2007, 04:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


в(Job)ываю
**


Профиль
Группа: Участник
Сообщений: 705
Регистрация: 26.4.2006
Где: Uzbekistan.Tashke nt

Репутация: 5
Всего: 6



VOS, Молодец, мне тож оч. понравился smile 


--------------------
Выбор уже сделан, остается его только осознать   
smile    smile 
      smile  

user posted image
PM MAIL ICQ   Вверх
VOS
Дата 2.2.2007, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



Спасибо за отзывы.
И отдельное спасибо Vladimir35 за ссылки.

Вечером добавил горизонтальный скроллиг и там по-мелочи. Правда горизонтальную полосу прокрутки не успел нарисовать, но скроллинг работает. Новый пример во вложении. Если не сложно, напишите на каких телефонах запускали.

Это сообщение отредактировал(а) VOS - 2.2.2007, 11:21

Присоединённый файл ( Кол-во скачиваний: 36 )
Присоединённый файл  pack.zip 12,69 Kb
PM MAIL   Вверх
javastic
Дата 2.2.2007, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: 19
Всего: 27



SE k610i


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
Vladimir35
Дата 2.2.2007, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 1.8.2006

Репутация: 3
Всего: 3



А опенсорс будет? Или хотя бы как библиотека? А собственные клетки можно будет подключать?
PM MAIL WWW   Вверх
VOS
Дата 2.2.2007, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



На следующей неделе планирую довести его до релиза. Мне важно его оттестировать (см. верхний пост), поэтому приглашаются те, кто может помочь в этом ну и в написании/корректировании документации на английском smile Тем кто примет участие в тестировании/написании документации бесплатно предоставлю исходники и право использования в своих проектах. Желательно только упомянуть автора, хотя бы в документации.

По поводу того как  будет распространяться в дальнейшем (free или коммерч.), я еще не решил, т.к. не знаю рынка и как это делается smile
Буду рад получить консультацию.

В библиотеку помимо DataGrid и TableLoader (теги и xml) планирую включить модуль синхронизации с сервером по HTTP с возможностью шифрования трафика.

Клетки/строки и т.д. могут подключаться например так:
Код

        grid = new DataGridEx(Caption,mydisplay,8);
        grid.getColumn(0).setColumnAttrib(20,true,false,1);
        grid.getColumn(1).setColumnAttrib(35,true,true,1);
        grid.getColumn(2).setColumnAttrib(40,true,true,1);
        grid.getColumn(3).setColumnAttrib(50,false,true,1);
        grid.getColumn(4).setColumnAttrib(40,true,true,1);
        grid.getColumn(3).setDrawInFooter(true);
        grid.getColumn(5).setColumnAttrib(60,false,true,1);
        grid.getColumn(6).setColumnAttrib(47,false,true,1);
        grid.getColumn(7).setColumnAttrib(40,false,true,1);
        grid.getColumn(3).setStaticText("Static text: ");
        grid.AutoSizeLastColumn();
        grid.setFixedRowCount(1);
        grid.setFooterRowCount(1);


        Record rec;
        rec=grid.AppendRow();
        rec.setData(0," ");
        rec.setData(1,"№");
        rec.setData(2,"Date");
        rec.setData(3,"Beneficiar");
        rec.setData(4,"Sum");
        rec.setData(5,"Account");
        rec.setData(6,"Bank");
        rec.setData(7,"Type");

        for (int i=0;i<40;i++)
        {
             rec=grid.AppendRow();
             rec.setData(1,String.valueOf(i+1));
             rec.setData(2,"09.08");
             rec.setData(3,"Choose 'RowCount' to view full text № ("+String.valueOf((i+1*10000))+")");
             rec.setData(4,String.valueOf((i+1)*20)+".00");
             rec.setData(5,"0479"+String.valueOf((i+1)*20));
             rec.setData(6,String.valueOf((i+1))+" bank");
             if(i%6==0)
                 rec.setData(7,"In");
              else
                 rec.setData(7,"Out");
         }

        grid.setRowLinesCount(1);
        grid.setDoubleBuffered(false);
        grid.setRowSelect(false);
        grid.refresh();


PM MAIL   Вверх
javastic
Дата 2.2.2007, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: 19
Всего: 27



ну тогда ещё надо оформить стандартную доку по классам, методам и интерфейсам.


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
slider3d
Дата 2.2.2007, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 30.1.2007

Репутация: нет
Всего: нет



VOS не думаю что  имеет большую коммерческую ценность. Каждый более - менее опытный программист без труда реализует DataGrid а новички вряд-ли  будут покупать что-то. И в NetBeans есть реализовано что-то подобное.Правда по красоте им до тебя далеко(respect). 

Есть небольшое предложение. Например, если таблица содержит клетку с большим объемом информации сделай так чтобы при наведении курсора по прошествии некоторого времени всплывала как бы подсказка из содержимим которое не видно. Ну, плохо выразился, но идея понятна?
PM MAIL   Вверх
javastic
Дата 2.2.2007, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: 19
Всего: 27



Согласен, было бы не плохо вывести это в заголовок - движущийся.


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
Vladimir35
Дата 3.2.2007, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 1.8.2006

Репутация: 3
Всего: 3



Цитата(VOS @ 2.2.2007,  14:18)
Клетки/строки и т.д. могут подключаться например так

Я имел в виду что-то вроде
Код

rec.setData(1,new MyCell());

То есть для клеток есть интерфейс Cell, и я его реализуя, мог бы добавлять свои собственные клетки.

Как обстоят дела с объединенными клетками? Что происходит, если таблица не правильно сформирована?

Это сообщение отредактировал(а) Vladimir35 - 3.2.2007, 16:08
PM MAIL WWW   Вверх
Samuil
Дата 4.2.2007, 06:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


в(Job)ываю
**


Профиль
Группа: Участник
Сообщений: 705
Регистрация: 26.4.2006
Где: Uzbekistan.Tashke nt

Репутация: 5
Всего: 6



Vos, А еще балоб лучше если строка длинная, то она сама бы автосколилась. Типа туда сюда ходила, такая реализация есть в программах SMSBOX.


--------------------
Выбор уже сделан, остается его только осознать   
smile    smile 
      smile  

user posted image
PM MAIL ICQ   Вверх
VOS
Дата 5.2.2007, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



Slider3D - идея понятна, очень понравилась. Типа Hint для ячейки. 
Samuil, JavaStick Это типа как в SE ? Согласен. Можно 2 режима - HINT и AUTOSCROLL.


Vladimir35, такого интерфейса пока нет, при создании таблицы надо сразу указывать кол-во полей. Но это исключительно из-за спешки (надо проект сдавать). В Next Version (следующий понедельник) динамические поля обязательно будут, притом что практически ничего менять не надо, т.к. видимые/невидимые уже поддерживаются. Но отрисовку ячеек и т.д. можно переопределять. 
Насчет объединенных ячеек.  Пока недодумал окончательно идеологию. Хочу посоветоваться. Планирую так.
1) в  Record ставить признак объединенных ячеек
2) При отрисоке закрашивать все подряд идущие ячейки с этим признаком и рисовать строку=cell0+" "+cell1 и т.д. под clipWidth равным соответственно сумме Width этих ячеек

Помимо этого хочу добавить возможность отдельно указывать кол-во Lines в фиксированных Row и Footer.

По поводу open source.  Для Free проектов будет Free, для граждан бывшего СССР для любых проектов будет Free (если русский знают, то Free). Единственное требование, ссылка на автора.

Исходники будут доступны после релиза. А релиз после анализа кода профессиональными J2ME программистами (сегодня отдаю). 

PM MAIL   Вверх
Rais96
Дата 7.2.2007, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 1.2.2007

Репутация: нет
Всего: нет



Re-  список телефонов на которых работает

на Siemens CX65(MIDP2.0) не работает!
PM MAIL   Вверх
VOS
Дата 7.2.2007, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



Rais96 - уточните симптомы, пожалуйста. После Вашего сообщения проверил на Siemens C75, на нем не реагировал джойстик.
Исправил, теперь работает. Если не сложно, проверьте прикрепленный вариант.
Спасибо за информацию!

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  Pack.zip 12,79 Kb
PM MAIL   Вверх
Rais96
Дата 7.2.2007, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 1.2.2007

Репутация: нет
Всего: нет



Джойстик раньше не работал. Сейчас работает!
PM MAIL   Вверх
VOS
Дата 13.2.2007, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



Уважаемые, кто может помочь в переводе документации на английский и проверке кода (только DataGrid, остальные модули кардинально переделываю)? Боюсь выкладывать непроверенный, т.к. сам недавно в j2me, легко мог не учесть "особенности" разных производителей и т.д. 
В свое время рискнул, взял библиотеку чужую (С++) и потом неделю искал глюк, а найти было сложно, т.к. вместо InterlockedIncrement использовался обычный ++. Не хочу, чтобы потом, когда кто-нибудь будет ее юзать, обо мне те же слова говорил, что я о том разработчике smile
PM MAIL   Вверх
VOS
Дата 16.2.2007, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



Исходники контрола, документация и т.д. размещены на http://www.grid2me.narod.ru
Просьба сообщать о всех замеченных глюках, а также буду рад замечаниям и предложениям.

PM MAIL   Вверх
VOS
Дата 7.3.2007, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



Следующая версия там же. Добавлена поддержка коммуникаторов (реакция на стилус). Проверялось на I-mate (Windows Mobile 2003).
PM MAIL   Вверх
kapi
Дата 21.3.2007, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 16.8.2006

Репутация: 1
Всего: 1



инсталю на Моторолу В3Х - матерится. На ємуляторах Мотора выбрасует  эксепшны. А вот на эмуляторе Сименса запустил, что за фигня ??
PM MAIL   Вверх
VOS
Дата 21.3.2007, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



Спасибо за информацию. 
Сейчас готовлю следующую версию. В ней постарался учесть большинство поступивших предложений, в том числе высказанных на этом форуме. 
Моторолы у меня нет, проверить на ней не могу. 
Но есть подозрение, что с загрузкой изображений в демонстрационном примере может быть что-то не так.
Проверялось на нескольких Nokia, Sony Ericsson, Siemens.
На http://www.grid2me.narod.ru лежат исходники прежней версии, в которых исправлены некоторые баги. Буду признателен, если поможете с тестированием на моторолах.



Это сообщение отредактировал(а) VOS - 21.3.2007, 21:41
PM MAIL   Вверх
Dancer
Дата 21.3.2007, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

Репутация: 33
Всего: 37



Ну, не знаю, у меня на моторах работало. Одна проблемка с Моторами - это коды кнопок другие, нежели обрабатываются в приложении. Когда ещё исходников не было, я это дело декомпилил и под себя пересобирал. После этого на Моторах, вообще нормально работало.
Особо не тестил, поэтому дельного вряд ли чего посоветую. Но то что на Моторах это работает - готов поручиться.


--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
VOS
Дата 22.3.2007, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



Если не сложно, укажите коды кнопок для Моторолы.
PM MAIL   Вверх
kapi
Дата 22.3.2007, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 16.8.2006

Репутация: 1
Всего: 1



VOS,  motorola SoftKeys :  

Left :  +/- 21
Right:  +/- 22

взависимости от модели.
PM MAIL   Вверх
VOS
Дата 23.3.2007, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



Спасибо.
PM MAIL   Вверх
VOS
Дата 28.3.2007, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



В связи с сообщениями по Мотороле, переработал обработчик клавиш и тестовый мидлет. 
Юзаю теперь так:
Код

try{
            int gameAction = getGameAction(keyCode);
            if(traverse(gameAction)) return;
        }
        catch(Exception e) {
            e.printStackTrace();
        }
   // SoftKey
  ...


Размещено здесь: http://www.grid2me.narod.ru
Просьба, присылайте модели телефонов на которых проверяли работоспособность.
PM MAIL   Вверх
Samuil
Дата 29.3.2007, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


в(Job)ываю
**


Профиль
Группа: Участник
Сообщений: 705
Регистрация: 26.4.2006
Где: Uzbekistan.Tashke nt

Репутация: 5
Всего: 6



VOS, сделай скрол, а то как -то не удобно, порой достает


--------------------
Выбор уже сделан, остается его только осознать   
smile    smile 
      smile  

user posted image
PM MAIL ICQ   Вверх
VOS
Дата 29.3.2007, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



Делаю и горизонтальную полосу прокрутки и чтобы строка сдвигалась.
И для footer можно выставлять несколько строк (иногда удобнее чем скролл строки).
PM MAIL   Вверх
VOS
Дата 20.6.2007, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



1. Добавлен стиль меню (перемещения курсора, дизайн и т.д.)
2. Добавлен Header (стат. текст, располагается перед DataGrid).
    Автоматически форматируется по правилам WordWrap.  
3. Переработан движок, как следствие значительно уменьшено потребление системных ресурсов.

http://grid2me.narod.ru
PM MAIL   Вверх
JackSoft
  Дата 29.10.2007, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 29.10.2007

Репутация: нет
Всего: нет



К сожалению, на оф.сайте исходники убраны, а очень хотелось бы заюзать такой датагрид в своем проекте...
Есть люди, которые успели получить клас?

P,S, Автору написал, но пока ответа не получил...
PM MAIL   Вверх
VOS
Дата 29.10.2007, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



Исходники отправил на мыло. Присылайте модели телефонов, на которых проверяли работоспособность. 
PM MAIL   Вверх
zss
Дата 29.11.2007, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 708
Регистрация: 17.6.2004

Репутация: нет
Всего: 2



VOS, а можно мне тоже библиотеку ?
PM MAIL ICQ   Вверх
VOS
Дата 30.11.2007, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



Запустите на своем телефоне тестовый мидлет и пришлите на почту [email protected] результат (работает или глючит). 
Сразу вышлю исходники. На сайте исходники убрал, потому что не знаю как работает на других телефонах/коммуникаторах, на которых у меня нет возможности проверить.  Например выяснилось, что на коммуникаторах с Windows Mobile 2003 
можно ставить эмулятор weme-wm2003-arm-midp20-5.7.1-P-20040723-1833.exe, но он тормозит  на WM 2005/2006. 
А вот при установке midp20en-6_1_0.cab все просто летает.

PM MAIL   Вверх
VOS
Дата 19.12.2007, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



В DataGrid добавлен стиль TabbView (работа с вкладками).
В этом случае заголовок DataGrid преобразуется в вид TabbedPane (как в Swing ) или TabbedNotebook (как в Delphi).
Интерфейсно напоминает компонент Sony Ericsson на вкладке Параметры. 
Позволяет менять шрифт, цвет заливки, текста, границ, активные/неактивные картинки на вкладках и т.д.
Исправлены мелкие баги.
Исходники новой версии буду высылать на след. неделе, т.к. не добавил пока поддержку стилуса на вкладках.
Просьба сообщать о всех замеченных глюках, а также буду рад замечаниям и предложениям

Пример во вложении.

Это сообщение отредактировал(а) VOS - 19.12.2007, 14:23

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  pack.zip 20,22 Kb
PM MAIL   Вверх
JackSoft
  Дата 19.12.2007, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 29.10.2007

Репутация: нет
Всего: нет



Очень качественно!
Motorola L7e/L7i, Fly MP220, Nokia S40 - все работает. Жду релиза!

P.S. Очень хорошо смотрится версия на Нокиевском Симбиане!

Это сообщение отредактировал(а) JackSoft - 19.12.2007, 14:35
PM MAIL   Вверх
VOS
Дата 19.12.2007, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



Спасибо! Особенно за Fly MP220!
PM MAIL   Вверх
VOS
Дата 19.12.2007, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



Добавил стилус.

Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  1.ZIP 20,26 Kb
PM MAIL   Вверх
zss
Дата 19.12.2007, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 708
Регистрация: 17.6.2004

Репутация: нет
Всего: 2



VOS, прикольно smile а почему ты исходники не сбрасываешь ? Ты собираешься продавать продукт ?
PM MAIL ICQ   Вверх
JackSoft
Дата 20.12.2007, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 29.10.2007

Репутация: нет
Всего: нет



VOS, есть пожелания. 
1. Сделать что-то типа фильтра на грид. Тоесть в грид вывести все значения, а потом дать условие на ячейку или пару ячеек и Update(). Очень было бы удобно налету перерисовывать грид на тех же данных...
2. Зарисовка ячеек таблицы другим цветом, изменение шрифта с автоподбором ширины. Счас делаю все это наследыванием, но было бы удобно иметь такие методы в базовом классе.
3. Вставлять в ячейку картинки (точно так же счас решается наследованием) и картинку с текстом вместе.

И огромнейшее спасибо за компоненту.

Добавлено @ 09:47
Цитата(zss @ 19.12.2007,  20:33)
VOS, прикольно smile а почему ты исходники не сбрасываешь ? Ты собираешься продавать продукт ?


Читай еще раз что написал, VOS: Исходники новой версии буду высылать на след. неделе, т.к. не добавил пока поддержку стилуса на вкладках.

Очень хороший подарок к Новому Году.
VOS, дай номер кошелька WMZ поддержу твой проектик на пару баксов. Пива заслужил!

Это сообщение отредактировал(а) JackSoft - 20.12.2007, 09:52
PM MAIL   Вверх
VOS
Дата 23.12.2007, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



zss,  исходники не выкладываю, а отправляю по  запросу исключительно ради того, чтобы узнать как работает на разных моделях телефонов/смартфонов/коммуникаторах, какие возникают проблемы.  Бренды в принципе все отработаны, но хотелось бы еще понять как
работает на таких как Alcatel, Hayer, LG ...  ну и Vertu smile  Тестят программисты, а у них очень похожие модели. 
Сейчас около 50 моделей протестированы.  

JackSoft,  достаточно Вашего спасибо smile И Вам спасибо за предложения.
Понемногу перестраиваю идеологически компоненту в стиле Java.
В TabView режиме чтобы добавить картинки на вкладках теперь надо лишь реализовать такой интерфейс 
Код

public interface ITabImage {
    Image getImage(int pos);
    Image getActiveImage(int pos);
}

Аналогично думаю сделать и с отрисовкой конкретных ячеек. 
Для фильтра будет интерфейс IGridFilter с по меньшей мере одним методом 
boolean isFilteredRecord (int y); 
Если вернет true, запись отображается в гриде, false - нет. Ну а внутри любую логику вставляйте.

Это сообщение отредактировал(а) VOS - 23.12.2007, 21:04
PM MAIL   Вверх
zss
Дата 23.12.2007, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 708
Регистрация: 17.6.2004

Репутация: нет
Всего: 2



Цитата(VOS @  23.12.2007,  21:03 Найти цитируемый пост)
zss,  исходники не выкладываю, а отправляю по  запросу исключительно ради того, чтобы узнать как работает на разных моделях телефонов/смартфонов/коммуникаторах, какие возникают проблемы.

Ну еслия я протестировал компонент, а тут добавилась но вая возможность, то нужно опять просить исходники.

Если вопрос в тестировании, то думаю проблемм тут не будет, т.к. много хотят этот компонент, а альтернатив просто нет - поэтому единственные варианты - писать самому, что лень, либо взять готовый, тоесть твой smile
PM MAIL ICQ   Вверх
VOS
Дата 24.12.2007, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



Кому я исходники уже высылал, то автоматом вышлю новую версию. Все почтовые адреса у меня сохраняются. 
Релиз через пару дней. Вчера добавил стили для вкладок- фиксированной ширины и autoresize по ширине экрана.
Думаю делать ли скроллируемые вкладки (если их кол-во не влезает на экран) в этом релизе. 

PM MAIL   Вверх
VOS
Дата 26.12.2007, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



1. Добавил возможность на лету менять шрифты с автоподбором ширины.
2. Режим Custom Draw для ячеек. Для этого надо реализовать интерфейс IDrawCell 
Код

/**
     * 
     * @param ACol     is the column coordinate of the cell
     * @param ARow     is the row coordinate of the cell
     * @param Selected Indicates whether the cell is currently selected.
     * @param width    Specifies the width in pixels of calculated area. If width =0 then width=gurGraph.getClipWidth()
     */
     void drawCell(int ACol, int ARow, boolean Selected, int width);


Например так в режиме Custom Draw можно отрисовывать картинку и текст в одной строке, менять цвета и т.д.:
Код

  /**
     * IDrawCell example
     */
    public void drawCell(int ACol, int ARow, boolean Selected, int width) {
        if (!customDraw) {
            DrawCell(ACol, ARow, Selected, width);
            return;
        }
        if (!isTabview()) {
            if (ACol > 0) {
                DrawCell(ACol, ARow, Selected, width);
                return;
            }
            if (ARow % 3 == 1) {
                DrawImageByClip(okim, getColumn(ACol).getTypeDraw(), width);
            }
        } else {
            if (ARow > 1) {
                DrawImageByClip(okim, getColumn(ACol).getTypeDraw(), 20);
                if (Selected) curGraph.setColor(255, 255, 255);
                else curGraph.setColor(0);
                DrawTextByClip(getCell(ACol, ARow), getColumn(ACol).getTypeDraw(), width,0,16);
            }
        }
    }

3. Сгенерировал новую доку и выложил на сайте.

JackSoft, к сожалению  фильтр не успел добавить, уже в следующем году.
Пример во вложении. 
Начал рассылать исходники. Если кому до завтра не дойдут, отпишитесь, pls.

Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  1.ZIP 21,44 Kb
PM MAIL   Вверх
VOS
Дата 9.1.2008, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



Исправил мелкие ошибки, добавил возможность градиентного заполнения (меню Custom Draw).
Градиент на эмуляторе коряво отображается, а на телефоне нормально.
Взял пример, который работал с плавающими числами и преобразовал его для CLDC 1.0 
Посмотрите, pls, может у кого есть получше реализация. 
Но мне надо чтобы работал на MIDP 1.0 

Код

   public static void gradientFill( Graphics g, int x, int y, int width, int height,
            boolean fillVertically,  int primaryColor, int secondaryColor, int maxSecondary) {

        int p,v,v2,red,green,blue;

        // Выделить RGB составляющие 1 цвета .
        int pr = (primaryColor & 0x00FF0000) >> 16;
        int pg = (primaryColor & 0x0000FF00) >> 8;
        int pb = (primaryColor & 0x000000FF);

         // Выделить RGB составляющие 2 цвета .
        int sr = (secondaryColor & 0x00FF0000) >> 16;
        int sg = (secondaryColor & 0x0000FF00) >> 8;
        int sb = (secondaryColor & 0x000000FF);


        int end = (fillVertically ? height : width);

        for (int i = 0; i < end; i++) {
            // Вычислить текущий цвет для линии
            
            p = i * 100 / end;
            v = Math.abs(maxSecondary - p);
            v2 = 100 - v;

            red = pr * v/100 + sr * v2 / 100;
            green = pg * v/100 + sg * v2 / 100;
            blue = pb * v/100 + sb * v2 / 100;

            g.setColor(red, green, blue);

            // Нарисовать линию, в зависимости от направления градиента.
            if (fillVertically) {
                g.drawLine(x, y + i, x + width, y + i);
            } else  
            {
                g.drawLine(x + i, y, x + i, y + height);
            }
        }
    }



Присоединённый файл ( Кол-во скачиваний: 18 )
Присоединённый файл  1.zip 21,68 Kb
PM MAIL   Вверх
VOS
Дата 10.1.2008, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 31.1.2007

Репутация: 6
Всего: 8



Спасибо уважаемым администраторам за прекрасную возможность создания собственных блогов. 
Все новости/изменения и т.д. теперь буду выкладывать на http://vingrad.ru/blogs/grid2me

PM MAIL   Вверх
JackSoft
Дата 21.4.2011, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 29.10.2007

Репутация: нет
Всего: нет



проект умер? :(
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.1739 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.