Pull to refresh
-8
0
Александр @irbis_al

Пользователь

Send message

Да нет там никаких особенностей...всё по классике

public class TableFooter implements Border, ChangeListener, AdjustmentListener, TableColumnModelListener

Фишка в TableColumnModelListener

в конструкторе public TableFooter(JTable table)

есть строчка table.getColumnModel().addColumnModelListener(this);//table.getColumnModel() Custoмный Нader многуоровневый(Пример в инете много)

Как раз чтобы менять размер столбца

а имплементация TableColumnModelListener тоже обычная...во всех методах repaintTable() (код ниже)

private void repaintTable() {

if (table.getParent() instanceof JViewport && table.getParent().getParent() instanceof JScrollPane) table.getParent().getParent().repaint();

else table.repaint(); }

Никаких наворотов..Но правда по графу чуть запутанно...взаимные ссылки jtable TableFooter GroupableTableHeader (extends стандартный JTableHeader) ..Но Jtable принадлжежит JInternalFrame и он обрублен...и всё что на нем убивается (JButton JPanel ) Принадлежащие JTable cellrenderи вся атрибутика ,а три осколка связаны через TableColumnModelListener остаются висеть и тратить память..что бы мы ни делали.

При этом просто Jtable c GroupableTableHeader (без Footer) ..всё очищается

Вот я вставлю свои 5 копеек..Имеется кроссплатформенная ИС Desktop Swing

Есть Jtable со своим Custom TableHtader(Многоуровневый) и Footer

Типа как выглядит.

https://cloud.mail.ru/public/4N3v/59puX6cFP

https://cloud.mail.ru/public/55sJ/4RLnfQigZ

https://cloud.mail.ru/public/Pa5S/EH8sk8ZgB

Так вот всегда когда Footer и Header идут вместе ,то потеря 1200 байт на форме. Как только ни профилировали...смотрели граф(причем по графу видно,что обрублена форма с таблицей) И знаем какие именно объекты остаются(Это событие Listener на расширение...если мышкой расширять столбец...соответственно столбец footerа тоже должен быть раширен(и он расширяется) но GC в упор (во всех версиях java) не может разрулить,что те объекты надо очистить.

Да это скорее всего регресс...и 15 лет Вы загнули..изменения с ККТ начались в 2016

Похоже на какого-то школьника подроста ,что играется в ИТ в масштабах страны.

В сухом остатке должно получиться ,что???

-чек от кассы пришёл в налоговую...И как можно было наворотить на этом простом пути всё вот это,что сейчас???

И Это Мы ещё про ЕГАИС,честный знак,ГИС Меркурий не говорим.

Вот Все познается в сравнении.Украина внедрила онлайн кассы...ещё в 2006 ...и все это прошло тишком нишком...без всяких пиявок к бизнесу офд ФН(Который надо менять раз в период,-по сути это скрытый налог) Постоянные обновления,которые достали,- ФН 1 ФН 1.05 ФН 1.1 ФН 1.2..Постоянно надо менять прошивки..менять драйвера(У нас низкоруровнеый кроссплатформенный драйвера..с флагманской ось Linux)..Иногда работает не так как надо..общение со службой поддержки разработчика ККТ.

Когда два аппарата в обслуживании может это и ничего,а когда их более 300.

Постоянно неожиданно заканчивается либо срок действия ОФД(не проплачено) либо ФН..Аппраты не работают...мозговыносительство увеличилось в 300 раз.

В общем эта вещь некачественная.

А Вот Вам например как надо.-

Укранина..Программный РРО.Программный кассовый аппарат.НЕ надо покупать железяки...Вы просто пишите свое ПО согласно налоговому API И Все.На кассе Сразу чек идет (Не кунакам влюблённого джигита...типа ОФД) а сразу в налоговую.И Подписан он именно ключом кассира.

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

Почти верно...сама идея в том что на компе клиента запущенаи прослушка(listener) WebSocketа ,и в зависимости какая прослушка запущена по порту, то и работает.

В данном случае получает данные из бразузера формирует чек формата pdf и тут же его печатает.А можно подключить маркеровочное оборудование .Весы.и т.д.(Я говорю не про концептуальную модель,а про реально работающюю модель из браузера подключаются разные "железяки")

У Меня не срабатывало...Дело в том что ,бразузеры используют Same Origin Policy

https://www.w3.org/Security/wiki/Same_Origin_Policy

POST и GET Должны делаться на тот же IP адрес с какого загружена страница.(В каких то браузерах Где-то это можно в настройках исключить...а где то вообще нельзя(или я не знаю как)...как бы там ни было разработчикам лучше придерживаться стандартного поведения браузеров,а не подавлять настройками их дефолтное поведение)

Началось с того ,что жене аппарат в магазин :-) Если это не концептуальный,а реальный проект,то...Запаритесь Вы методом по usb из браузера такие чеки печатать.(Настоящие по ссылкам(Может в Украине доступны не будут ссылки,найдете способ как открыть))

https://cloud.mail.ru/public/oR3A/8sQfcycUe

https://cloud.mail.ru/public/xzLB/zXAK8t6ss

А WS(Тут ниже обсуждалось) тут нужен именно для того чтобы разрулить момент ...сайт грузится с одного URL, а аппарат находится локально.(или у Вас много касс и на каждой локальное оборудование,в Этом случае ws://localhost: Спасает ибо WS может "ломится на" любой хост (http post на localhost сделать будет проблематично если сайт загружен не с localhost) )

А еще я так понял у Вас Украина(Ибо в России запрещены такие аппараты для печати чека..нужно использовать только Фискальные Регистраторы(ФР))...Это значит со временем Вы будите использовать ПРРО(Программный РРО) и QR оттиск печатать.и тут уже точно без промежуточного локального шлюза будет непросто.(ПРРО тоже могу поделится :-) )

Не знаю зачем Вы так натягивали сову на глобус...Обычно работа с переферией (POS принтеры, Фискальные регистраторы, Сканеры штрихкода Rs-232) Чтобы соеденить с браузером,то делается это через WebSoket.

В Вашем случае.

1.Устанавливаем драйвер.(Неважно Linux или винда)

2.Дальше надо разработать шлюз(некую програмку (у меня есть и на node и java))...принимает пакет данных через websocket (xml или json) и (у меня преобразует по некому шаблону разметки(в xml) в формат pdf и печатает...можете печатать по низкоуровневуму протоколу принтера из этого шлюза).

3.Из браузера типа var socket = new WebSocket("ws://localhost:7081");

socket.send("HELLO");Прога шлюз прослушивает порт и выполняет задачу.

Так можно и отправить на фискальный регистратор подключенный к rs-232.И от сканера штрихкода(rs-232) принять данные.(в любой операционке)

Лично у Вас проблемы с ДИей Были?

У Меня и у круга моих знакомых не было.Фамилию с именем перепутал оператор в сертификате COVID. что вы от программы хотите-то? Чтоб она имя проверяла по справочнику имен?

А насчет кредитов и тюремных заключений...То нужно достойное оппонирование этим фактам.

Эту статью надо на DOU ,-Возможно там найдуться эксперты,что скажут,что это было не так или не совсем так и история ещё не закончена и имеет(будет иметь совсем другой конец)

Но там навскидку(прочтнеие по диагонали) совершенно другая статья.Тут Вы даже обезьяну с гранатой приципили в картинку.(что на мой взгляд довольно оскарбительно)

Реально Украина ...да с ошибками с проблемами идет вперед...тот же Прогамный РРО какой шаг вперед.(В Росии 4-6 дармоедов предпринимателю надо кормить чтоб чек из аппарата до налоговой дошел .....про ПРРО им и не снилось)

Ну ведь всегда когда развивается проект есть какие-то побочные неприятные эффекты..Дорогу должен осилить идущий...Дия это реально классный сложный проект...

Тут же на Хабре была статья как в России через ЭЦП-КЭП мошенничество с недвижимостью было.И тут же запретили такие операции (в Росии вообще во всех непотнятный ситуациях тут же запрещают, что бы то ни было).

Не бойтесь учтут те проблемы ДИЯ и без запретов поднимут качество приложения и услуг.

Почему Вы например не поднимаете эту тему на DOU Украинском ИТ-портале?

https://dou.ua

Ну с capt принтерами у меня проблем не было(я ставил на centos 6.5) x64…
И те, перечисленные, модели уже устаревшие.
а вот вышел новый… уже Canon lbp 6030 через ccpd не работает, а работает через usb напрямки (как HP,Brothers и т.д)
И у меня он так и не завёлся.

Я тоже пользуюсь Этой библиотекой… У них очень и очень хороший control Для отображения таблиц DataGrid ,TreeGrid(JQuery… А вот для react не очень удачный datagreed)
Но и не стоит забывать эта библиотека небесплатна.

Именно почему я не знаю...(тут же была ремарка для меня)… это по моему опыту… есть проекты на react(Это POS кассы на планшете… магазин ресторан), ЕГАИС Проверка марок(тоже чтоб мобилу использовать… тут React к месту) На java вообще большая кросспоатформенная Desctop ИС.с дублирующими web мордами для некторых отраслевых процессов(vaadin Это java). и oracle apex.Так вот если вдруг(для меня) нужно вернуть и доработать react… Это всегда выход из зоны комфорта… Пока пишешь(React)… держишь в уме "нить" вроде нормально. Решение выпущено работает… вернуться к нему… всегда жалеешь ,-на кой я выбрал React в этом решении… Возможно какая-то эфимерная нечёткая концепция у React… что потом "концы" сложно собрать в кучу".(Сугубо по моему мнению)

Вы знаете я как предприниматель в ИТ… рассуждаю просто(Мой взглаяд может не подходить для крупного бизнеса)… с точки зрения уменшения ресурса(технического, административного, по сопровождению)… Мои проекты связаны с базами данных(автоматизацией бизнеса)… для малого и среднего.
И в зависимости от ситуации или 1.Oracle Apex(Это быстрая среда для разработки бизнес приложений… мне кажеться быстрее нельзя можно только повтороить).
2.Или(если проект будет иметь много отраслевых подрешений) PHP+HTML контролы на jQuery

Вот я не совсем соглашусь с Вами, а соглашусь с автором… у меня не большая команда… и технологию я оцениваю так… если через более пол-года возвращаемя к коду расшририть функциональность… поправить баг… то для примера java(erp система)… разработан "целый космос " и всегда к коду возвращаться легко… легко дополнить и нет побочных эффектов.возможно из-за принципа концепции ленивой подгрузки кода… А вот в реакте небольшие проектики.(не то что у автора статьи) и вернуться к коду через время(React+Redux) или что-то дополнить… Это боль… я сменил стек .

… а нельзя было остаться на основной работе… как-то выделить время по вечерам и выходным для своего pet-проекта...,? (Ведь в таком формате за три года что-то бы да получилось)
Это дало бы возможность "больше думать нежели трясти"(Надеюсь этот анекдот знают)… Найти оптимальные решения не находясь под мыслью "как обеспечить проживание"
(Вопрос в пустоту… потом увидел, что это "перевод")

Ну пу поменялся тип товара в контексте… та таблица остатков синхронизируется в ответ(даже если в проге это не алгоритмом не предусмотрено… это Ваше право… так же как и не синхронизировать цену )… Фишка в том, что есть зависимость… а 3НФ дожны быть исключены транзитивные зависимости.

Ну у меня реализован такой же склад… с подобной архитектурой… и я считаю что таблица горячих остатков всё же денормализация… из-за присутствия транзитивной зависимости… Про количество я уже писал, Но так же… если у Вас поменялась цена… ВЫ транзитивно меняете её в таблице остатков… изменился сам товар в таблице контекста(у меня это goods_id) меняем без рассуждений и в остатках… поменялся инвернарный номер(у меня seria_id) транзитивно меняем и там… та таблица транзитивно зависмая от контекста(По-простому Вы всегда их должны синхронизировать)… и согласно определению 3НФ -Это ни есть 3НФ

Боюсь что Вы путаете теплое с мягким… У меня так же в одном из отраслевых решений склада реализовано инвернартный номер… и для него отдельная таблица… а также на неё ссылается на documentscontents и на остатки. Подчеркну… от того что это денормализация… это ни есть плохо… без этой таблицы горячих остатков вообще в складе не обойтись.

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity