V minulém blogu jsem prezentoval tvorbu tabulkového HTML reportu s AJAX filtrováním a uživatelským řazením sloupců – pomocí několika málo řádků kódu zapsaných do jediného příkazu jazyka Java. Využil jsem k tomu třídu ReportBuilder z frameworku Ujorm. Dnes bych vám rád ukázal, jak lze do buněk takové tabulky vkládat formátovaný obsah a doplním některá další vylepšení. Jak bude výsledná tabulka vypadat?
Ve filtru přibylo nové vstupní pole pro omezení počtu zobrazených řádků, v tabulce přibyl nový sloupec s pořadovým číslem řádku a odkaz na domovskou stránku hotelu. Hvězdičkovou klasifikaci hotelu vyjádříme výčtem vhodných znaků s tooltipem. Původní chování tabulky zůstalo beze změny, doplněný zdrojový kód je tady:
Poznámky:
Třída TableBuilder umožňuje vkládat do konstruktoru vlastní konfiguraci, která ovlivňuje některé vlastnosti výstupního HTML kódu. Pokud to nestačí, zkuste překrýt některou z metod třídy TableBuilder.
Závěr
Původní inspirací pro API byla třída ListDataProvider, která byla v roce 2014 přidána do projektu Ujorm – pro tvorbu tabulek frameworku Apache Wicket. Alternativní implementace (bez jakýchkoli závislostí) mi však přišla tak natolik zajímavá, že jsem neodolal pokušení napsat nějakou ukázku řešení. Pokud by měl kdokoli chuť stávající řešení doplnit nějakým vlastním kódem, pro případnou komunikaci doporučuji využít issue na stránce projektu.
Celý projekt je volně dostupný na GitHub. Pro spuštění projektu je třeba JDK verze 8 a webový prohlížeč s podporu Javascript Vanilla ES6, použitý Javascript však už nevyžaduje žádné knihovny. Projekt se spouští ve Windows skriptem run.cmd (na Linuxu skriptem: run.sh), při prvním startu dojde ke stažení potřebných knihoven.
Užitečné odkazy:
Postřehy ze světa open-source.
Přečteno 31 227×
Přečteno 20 886×
Přečteno 17 134×
Přečteno 14 599×
Přečteno 14 356×