Re: scrolling v s JTable

2008-12-04 Tema obsahu Charvat Petr

Ahoj
 pro zmenu selekce a scroll to selected row se pouziva metoda 
changeSelection - jtable ale musi mit nastaveno autoscroll na true.

Petr
http://pcharvat.blogspot.com
 
Vity wrote:
Zdravim, 
pouzivam tuto funkci :

 - up urcuje, zda se ma posunout vuci poslednimu nebo prvnimu radku v
selekci
private void scrollToVisible(final boolean up) {
final int[] rows = table.getSelectedRows();
final int length = rows.length;
if (length  0)
table.scrollRowToVisible((up) ? rows[0] : rows[length - 1]);
}

Staci ji volat dle libosti - napr. navesit si udalost na SelectionModel
tabulky...

-Vity

  

-Original Message-
From: [EMAIL PROTECTED] 
[mailto:[EMAIL PROTECTED] On Behalf Of Arne 
Sent: Wednesday, December 03, 2008 11:39 AM

To: konference@java.cz
Subject: scrolling v s JTable

Zdravim pánové a dámo :-)! 

Mám menší problémek. Mám tabulku typu JTable se skrolerem 
JScrollPane. 
Chci najít řádek podle nějakého kritéria selektovat ho. To 
není problém. Jakmile je tento řádek mimo zobrazovaný výřez 
mám problém přesunout ScrollPane tak, aby byl tento řádek v 
zobrazovaném výřezu. Samotný selekt řádku mi to nazařídil.

Použil jsem JTable.setRowSelectionInterval(od,do)
Možná hledám blbě ale nic jiného mě z metod JTable nezaujalo.

Můžete mi někdo poradit, jak tohle sesouhlasení řádku tabulky 
s výřezem ScrollPane udělat? 
V tutoriálu javy u Sun-u jsem nic vhodného nenašel. Stačí mi 
odkaz na nějaký příklad na netu. 

Používám GUI Swing. 

Díky vřele! 


Arne




  




Re: Komercni e-shopy

2007-08-09 Tema obsahu Charvat Petr
Neznate nekdo open-source e-shop psavny v jave? Nejak nemam po nocich co 
delat, a tohle by me bavilo.

Petr


Lukas Zapletal wrote:

Dobry den,

mate nekdo tip na dobry komercni e-shopovy systemek napsany v Jave?
Snadno rozsirovatelny, skinovatelny a s dobrym napojenim na firemni
infrastrukturu? Dal bych radeji prednost resenim od vetsi firmy,
dulezita by byla spickova podpora, ktera bude pri implementaci u
zakaznika potrebna.

Diky

  





Re: Multi Column RowFilter

2007-07-16 Tema obsahu Charvat Petr

Ahoj,
 poradim ti neprimo. filtrovani a sortovani seznamu (specialni pripad 
tabulka) pomoci dekoratoru na TableModel uz bylo prekonane v case vydani 
glazedlists. Mrni na http://publicobject.com/glazedlists/. Mam tuto 
knihovnu prakticky odzkousenou na nekolika projektech a uspechem - fast 
and reliable.


Petr Charvat

[EMAIL PROTECTED] wrote:

Hoj,
pokousim se upravit RowFilter aby filtroval na vice column na muj TableModel a 
asi jdu spatnym smerem(porad mi hazi null exception):
hodnotaFiltru[column] = jTextField1.getText();
TableRowSorter sorter = (TableRowSorter) jTab.getRowSorter();
RowFilterTableModel, Object[] rf = null;  
try {

for (int i = 0; i  jTab.getColumnCount(); i++) {
if ((hodnotaFiltru[i]!= null)(hodnotaFiltru.length0)){ 
rf[i] = RowFilter.regexFilter(hodnotaFiltru[i], i);
}

}

} catch (java.util.regex.PatternSyntaxException e) {

return;
}

for (int i = 0; i  rf.length; i++) {
sorter.setRowFilter(rf[i]);
}


funguje mi verze filtrovani na jeden column 
hodnotaFiltru[column] = jTextField1.getText();
TableRowSorter sorter = (TableRowSorter) jTab.getRowSorter(); 
RowFilterTableModel, Object rf = null;   
try {   
rf = RowFilter.regexFilter(hodnotaFiltru[column], column);  
} catch (java.util.regex.PatternSyntaxException e) {

return;
}
sorter.setRowFilter(rf);


nemohl by me nekdo navest, nebo spis rict jestli to vubec jde tak upravit jak 
potrebuju ?

PetrR


  




oracle - propagace trigger event skrz jdbc connection

2007-03-16 Tema obsahu Charvat Petr

Zdravim,
 Mam dvouvrstvou aplikaci, mnoho tlustych klientu a jednu databazi. 
Resim problem aktualnosti zobrazovanych dat na strane klienta - pokud 
jeden klient neco zmeni, ostatni klienti by se to meli dozvedet a 
zmenene zaznamy si refresnout. Rikal jsem si, ze by to slo vyresit na 
urovni triggru. Podporuje takovou feature oracle (10g) ? Poteboval bych 
nasmerovat - keyword ktery  muzu napsat do googlu.

Diky
 Petr Charvat


Re: Image v JTable

2007-02-20 Tema obsahu Charvat Petr
Doporucuji nepouzivat DefaultTableModel vubec. Hodi se jen na velice 
jednoduche pripady. Vetsina 'realinych' tabulek je sprazena s 
AbstractTableModel.  Pokud chcete i tabulku sortovat, filtrovat - 
doporucuji pouzit glazedlists framework. Je zadarmo a rychle se uci - 
maji pekne tutorial videa.

Petr Charvat


Martin Jedlička wrote:

Bohuzel mate pravdu ;)
Ja mam model oddedeny od DefaultTableModel (ktery dela razeni), 
protoze jsem potreboval funkce addrow, remoterow atd.
Takze ted nevim co s tim...Mam udelat novy model od AbstractTableModel 
?? To se mi ale moc nechce, protoze stavajici tabulka je uz docela ve 
velkem rozsahu a nechce se mi to cely menit. Navic nevim, jak se 
vyporadat s daty (pridavani vektoru jako radku - ted jsem pouzival 
prave addrow). Takze nejaka rada?


Diky.
Martin


Tomas Zverina napsal(a):

Ikonka se zmeni, pokud model tabulky vyvola udalost, ze se zmenil.
Samotne nacpani do vecotru stacit nebude, musite krome nacpani
informovat vsechny listenery toho modelu, ze jste neco zmenil.

Pokud jste dedil AbstractTableModel, poohlednete se v nem po fire*
metodach, jak uz psala Lucka.

Pokud jste ho nededil, pak jste nejspis osidil metody
addTableModelListener a removeTableModelListener a ted toho litujete :-)

Martin Jedlička píše v Po 19. 02. 2007 v 16:59 +0100:
 

Nekam ne to navedlo, ale bohuzel nevim, zda spravnym smerem.
Model tabulky mam vlastni (razeni) oddedeny od DefaultTableModel.
Kazdy radek vkladam jako vektor (resp. mam vlastni tridu oddedenou 
od Vektoru). Potom mam pole techto vektoru reprezentujici ty radky.
Kdyz zmenim neco v jednom vektoru (napr. prvni element je cesta k 
ikonce), tak potrebuju, aby se mi ta ikonka taky zmenila v tabulce...


M.


Lucie Rut Bittnerova napsal(a):
   

On Mon, 19 Feb 2007, Martin Jedlička wrote:

   

Zdravim,
  potreboval bych v tabulce mit na kazdem radku ikonku, ktera by 
se dala menit po kliknuti napr. nejakeho tlacitka. Myslel jsem, ze 
to vyresim tak, ze pouziju vlastni CellRenderer oddedeny od 
JButton (rozhranni TableCellRenderer) a pak CellEditor oddedeny od 
DefaultCellEditor. Bohuzel ted nevim, jak vyresit to, aby se mi 
zmenila ikonka na danem radku, aniz bych na ten radek 
kliknul(pri kliknuti je to jednoduchy pomoci 
getTableCellEditorComponent). Proste bych to potreboval udelat 
tak,abych zadal pouze cislo radku (napr. nekde v jinem okne) a po 
kliknuti nejakeho tlacitka se na na danem radku zmenila ikonka.


Nevite, jak na to? Dekuju za kazdou radu.

Martin


Dobry den!

Nevim, jestli chapu presne co chcete, ale snad Vam pomuze toto.

Ikona by mela zaviset tedy asi na nejakych datech v TableModel, 
ktera aktualizujete pri vyvolani akce, po ktere ma nasledovat zmena 
vybrane ikony v tabulce (napr. po tom kliknuti uzivatelem na nejake 
tlacitko). Model tabulky muze napriklad ikonu predavat primo jako 
obsah nektereho sloupce tabulky, coz je nejjednodussi varianta.


Po aktualizaci se pak v modelu tabulky zavola metoda
fireTableCellUpdated(...) nebo nektera z obdobnych metod, ktere 
informuji posluchace udalosti (mezi nimiz je JTable) o zmene modelu 
tabulky.


Lucie











Re: JXDatePicker a JGoodies Binding

2007-01-22 Tema obsahu Charvat Petr

Zdravim,
 Pouzivam JBoodies Binding uz dlouho (asi rok) a jsem velice spokojen. 
Je natolik obecny, ze si muzes napsat binding sam - to byl i muj pripad 
- mel jsem nekolik not-free a customer-specific komponent a v pohode.

Petr Charvat

URBAN Leos wrote:

Ahoj,
nevite nekdo jak pouzit JXDatePicker (ze Swingx) s JGoodies Binding?
Pripadne nemate tip jakou jinou podobnou datumovou komponentu s tim 
pouzit? A obecne: pouzivate nekdo v praxi JGoodies Binding?


Diky,
Leos





Re: swing literatura

2007-01-11 Tema obsahu Charvat Petr

V cestine toho moc neni :-(
1 . Vyborna (a taky hodne tlusta) je  Swing Second Edition by Robinson 
and Vorobiev  http://www.manning.com/robinson2/ (ostatne jako temer vse 
od manning),
2. Swing Hacks by Marinacci and Adamson 
http://www.oreilly.com/catalog/swinghks/


--
Petr Charvat
Sw. Designer Sr.
CERTICON, a.s.
Vaclavska 12
120 00 Praha 2
Tel.: +420 221 460 246




Tomas Beranek wrote:

Nevite nekdo o slusne literature java swing. Pokud mozno v cestine.
diky Tomas





Re: vhodny framework pro tlusteho klienta

2006-08-04 Tema obsahu Charvat Petr
Dekuji vsem na odpoved. Musim projit vsechny doporuceni co jste mi dali 
a uvidim (dam vedet).


Uvazoval jsem i nad resenim, ze bych stavajici server psany v c++ 
premostil standardnim j2ee serverem, ke kteremu by se 'tlusti' klienti 
pripojovali (proste bych mezi stavajici server a klienta strcil dalsi 
server - ktery je ale prece jen standardizovanejsi.  Predpokladam, ze 
pro reseni j2ee server + tlusy klient nejaky hotovy framework existuje 
(na tenkeho kliena jich je kazdopadne tuna).Tim bych presunul podivnou 
komunikaci pres xml na server a klienti by se pres standardni session 
beans komunikovali se javovym serverem. Pokud by tedy novy server umel 
odpovidat a notifikovat rychle - na strane klienta bych ani nemusel 
stavet cache.

Jak se divate na takove reseni?

Petr Charvat


Petr Ferschmann wrote:

Dobrý den,

také bych rád přispěl k diskusi.

Řešili jsme problém v clusteru s přetíženou databází (tj. snížení jejího
zatížení). 


Používali jsme hibernate a OSCache běžící nad JGroups. Fungovalo to tak,
že se aplikace přímo připojovala přes Hibernate k databázi. Transakce
zde byly relativně krátké, takže nám stačilo obnovení vždy na okraji
transakce (tj. v hibernate jsme data z first level cache neobnovovali,
jen second level cache). Důležité bylo, toho co nejvíce v hibernate
cachovat - od entit, po relace. Výsledky query myslím, nešli
distribuovat.

Pokud byly provedeny nějaké změny, byly pomocí OSCache přes JGroups
distribuované ke všem klientům. Jednotlivý klienti se připojovali ke
GOSSIP serveru (součást JGroups) a přijímali aktualizace cache.

Protože jsme nepoužívali reliable messaging bylo v případě ztráty
spojení na gossip server nutné samozřejmě vše obnovit jinak (např.
restartem aplikace nebo zneplatněním celé cache), protože bylo možné, že
se některé zprávy nepřijaly.

Fungovalo to celkem spolehlivě, nicméně to nikdy nebylo nasazeno v
ostrém provozu (z netechnických důvodů). Mezi jednotlivými prvky byla
poměrně rychlá linka (100Mb/s), takže jsme ani neřešili náročnost
přenosu.

Myslím, že by toto mohla být cesta. Výhoda OSCache je, že se o vše pak
stará sama. Vy prostě jen umisťujete data do této cache. Když do ní něco
uložíte samo se to rozdistribuje. Pokud nějaká data v cache nejsou,
načtete je ze serveru (tj. požádáte si o ně).

Snad jsem Vám alespoň trošku pomohl.

Petr Ferschmann

  
 Stavajici framework je velicie neprehledny (vznikal jako snehova 
koule) a mam moznost jeho vnitnosti prepsat (vyextrahovat api a 
reimplementovat streva). Jde mi o to, ze se mi nechce psat dalsi 
framework, kterych uz je na svete tuna. Proto jsem se ptal na nejake 
hotove reseni.


  

Petr Ferschmann

SoftEU s.r.o.
---
Sady Petatricatniku 31
301 00 Plzen
Czech Republic
---
Phone: +420 373 729 300
Fax:   +420 373 729 301
Cell:  +420 775 638 008
E-mail: [EMAIL PROTECTED] 
  




Re: vhodny framework pro tlusteho klienta

2006-08-03 Tema obsahu Charvat Petr

Jiri Fabian wrote:

Zdravim,

priznam se, ze prilis nerozumim zadani.

1. chcete zmenit styl komunikace se serverem = prepsani perzistentni
vrstvy?
  

To bohuzel nemuzu (prestoze bych si to tisickrat pral).

2. chcete ulevit klientovi - ukladat veci, ktere si drzi lokalne v pameti =
prepsani perzistentni vrstvy?
  

Ano.

Jak mi to tak prijde, potreboval bys te nejakou lokalni/distribuovanou cache
neco na zpusob http://www.jboss.org/products/jbosscache.

S pozdravem,

Jiri Fabian
 


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Charvat Petr
Sent: Wednesday, August 02, 2006 1:06 PM
To: Java
Subject: vhodny framework pro tlusteho klienta

Zdravim,
  Delame tlusteho klienta ve swingu, ktery komunikuje se specializovanym 
serverem (c++). Ten se stara a konfiguraci a monitoring pomerne 
sloziteho hardwaru (predstavte si treba velkou telefoni ustrednu kterou 
je mozno konfigurovat az to hezke neni).
  Klient zobrazuje a umoznuje zadavat a menit data (konfiguruje telefoni 
karty)- v podstate standardni insert/update/delete operace. Server si 
data uklada do sve databaze - oracle. Veskera komunikace se serverem je 
pres corbu. Stavajici implementace pouziva pro datove toky (ins/up/del) 
xml notifikace ve ktere se posle celky objekt (v podstate jedna radka 
databazove tabulky). Dalsi zajimava vlastnost je ta, ze kdyz jeden 
client zmeni nejaky objekt (provede transakci), server notifikuje 
ostatni klienty a ti provedou refresh.
  Toto reseni je nejake (historicky) a celkem funguje dobre. Bohuzel 
jsme se dostali do stavu, kdy na strane klienta se drzi velke mnozstvi 
informaci o objektech (cache) a toto je velice memory consuming. Jsme 
tedy ve stavu, kdy musime prepsat persistentni vrstvu na strane klienta 
(nejen kvuli pameti ale i kvuli maintenance, speed ...). V tuto chvili 
mi jde o to rozhodnout, jestli neexistuje nejake uz hotove reseni 
(knihovna, framework apod) ktere by tento ukol plnilo.
  Libilo by se mi pristup jaky ma hibernate ale s tim, ze nema za sebou 
databazi, ale svuj persistentni stroj (xml-server). Neznate neco nakoveho?

Diku
  Petr Charvat

PS: Predesilam ze s architekturou celeho systemu se neda momentalne nic 
delat. Jde mi ciste o stranu klienta.
 






  




Re: vhodny framework pro tlusteho klienta

2006-08-03 Tema obsahu Charvat Petr

Pekny den
 Diky za odpoved. Stavajici reseni je ciste takove ze si klient posila 
se servrem xml stringy - ktere ale semanticky odpovidaji databazovym 
dotazum/prikazum.
 Napsat vlasni JDBC driver (ktery preklada sql do proprietalniho jazyka 
xml) se mi zda jako vtipne reseni - zkusim to za dlouhych zimnich 
veceru, az nebudu mit co delat.


 Stavajici framework je velicie neprehledny (vznikal jako snehova 
koule) a mam moznost jeho vnitnosti prepsat (vyextrahovat api a 
reimplementovat streva). Jde mi o to, ze se mi nechce psat dalsi 
framework, kterych uz je na svete tuna. Proto jsem se ptal na nejake 
hotove reseni.


btw: jak by jste resili situaci, kdy mate standardni j2ee server a 
tlusteho klienta ve swingu? Tam hibernate na strane klienta pouzit 
nelze. Pro notifikace se serveru by slo pouzit JMS - nebo by bylo lepsi 
reseni s JBoss TreeCache?


Diky
 Petr Charvat

Roman Kratochvil wrote:

Dobry den,
s popisovanou architekturou tlusteho klienta i s jejimi variantami mam 
sve urcite zkusenosti, a proto mozna bude znit tato rada zvlastne, 
ale: pokud je jedinym problemem, ktery resite, mnozstvi dat na 
klientovi, a zbytek funguje ok, tak udelejte co nejmene, usetrite si 
tak *mnoho* dalsich problemu. V prvni rade bych zkusil tu cache na 
klientovi implementovat ve stylu LRU, aby se pri vhodne prilezitosti 
(konec transakce, nebo nejak asynchronne) z ni dlouho nepouzivana data 
odstranovala.
Reseni ala hibernate (nebo ala JDBC nebo ala cokoliv takto 
dvouvrstveho) ma svuj primarni problem ve vykonu: pokazde se budete 
serveru dotazovat na data, ktera potrebujete. Bylo by pro vas skvele, 
kdybyste zjistili, ze je nepotrebujete cachovat vubec, ze i tak je 
vykon dostatecny; ovsem to zrejme neodpovida vasi situaci, kdyz uz 
cache na klientovi mate. Pokud si ta data budete cachovat, tak opet 
resite problem z prvniho odtavce, nezavisle na pouzitem frameworku. Je 
otazka, zda se vam kompletni prepis za techto okolnosti vyplati. 
Samozrejme, muzou k nemu byt i jine duvody (kod je neudrzovatelny 
apod.), to uz ja nevim.


Roman



- Original Message - From: Charvat Petr [EMAIL PROTECTED]
To: Java konference@java.cz
Sent: Wednesday, August 02, 2006 1:06 PM
Subject: vhodny framework pro tlusteho klienta



Zdravim,
 Delame tlusteho klienta ve swingu, ktery komunikuje se 
specializovanym serverem (c++). Ten se stara a konfiguraci a 
monitoring pomerne sloziteho hardwaru (predstavte si treba velkou 
telefoni ustrednu kterou je mozno konfigurovat az to hezke neni).
 Klient zobrazuje a umoznuje zadavat a menit data (konfiguruje 
telefoni karty)- v podstate standardni insert/update/delete operace. 
Server si data uklada do sve databaze - oracle. Veskera komunikace se 
serverem je pres corbu. Stavajici implementace pouziva pro datove 
toky (ins/up/del) xml notifikace ve ktere se posle celky objekt (v 
podstate jedna radka databazove tabulky). Dalsi zajimava vlastnost je 
ta, ze kdyz jeden client zmeni nejaky objekt (provede transakci), 
server notifikuje ostatni klienty a ti provedou refresh.
 Toto reseni je nejake (historicky) a celkem funguje dobre. Bohuzel 
jsme se dostali do stavu, kdy na strane klienta se drzi velke 
mnozstvi informaci o objektech (cache) a toto je velice memory 
consuming. Jsme tedy ve stavu, kdy musime prepsat persistentni vrstvu 
na strane klienta (nejen kvuli pameti ale i kvuli maintenance, speed 
...). V tuto chvili mi jde o to rozhodnout, jestli neexistuje nejake 
uz hotove reseni (knihovna, framework apod) ktere by tento ukol plnilo.
 Libilo by se mi pristup jaky ma hibernate ale s tim, ze nema za 
sebou databazi, ale svuj persistentni stroj (xml-server). Neznate 
neco nakoveho?

Diku
 Petr Charvat

PS: Predesilam ze s architekturou celeho systemu se neda momentalne 
nic delat. Jde mi ciste o stranu klienta.










Re: SWING - JTable.setBackground

2005-09-22 Tema obsahu Charvat Petr

Zkus to takhle

 JScrollPane scrollPane = new JScrollPane( table );
 scrollPane.getViewport().setBackground( table.getBackground() );

Petr



Ing. Petr Charvát
Project Manager  CertiCon, a.s.
tel: +420 221 460 248
e-mail: [EMAIL PROTECTED]
Václavská 12/316, Praha 2




P D wrote:


Mam maly Swing problem.

Vytvoril som JTable kompnent umiestneny v JScrollPane. Riadky pridavam cas od 
casu v zavislosti od uzivatelskeho vstupu. Ked je umiestnenych par riadkov (3-4 
riadky), zvysok volneho miesta je lightGray. Ako zmenim tuto farbu napriklad na 
ciernu? JTable.setBackground nastavi farbu pozadia iba pre vlozene bunky, nie 
pre nevyuzity priestor (ktoreho farbu chcem zmenit)