Již pár dní se pokouším vytvořit jednoduchý formulář v nové verzi NetBeans 6
Pro GUI používám swing a je to desktop aplikace.
Přes sql dotazy jazyk je to brnkačna, ale myslel jsem si, že bych mohl pomocí
toplink a entity tvořit aplikace rychleji. Ovšem po tomhle martýriu o tom
začínám pochybovat.
Vygeneroval jsem si formulář ve spojení s databází přes toplink a EntityManager.
Formulář obsahuje JTable tabulku z databáze dejme tomu klienti - kodkl, jméno,
příjm, atd.
Existuje tabulka typů c_typ_table s políčky kod a popis
K nim jsou dvě entity třídy Klienti a CTypTable jednoduchá bez vazeb. Možná tam
je chyba, ale neumím je tvořit. Zkoušel jsem to, ale buď to končí výjimkou,
nebo to stejně nefunguje (zřejmě pro tento případ relace 1:1, přičemž se
c_typ_klienta nesmí updatovat)
Uvítám část programu:
private java.util.List<cz.ahsw.evidencecsvzo.entity.CTypKlienta>
cTypKlientaList;
private java.util.List<cz.ahsw.evidencecsvzo.entity.Klienti> list;
private javax.persistence.Query query;
JTable masterTable = new JTable();
JComboBox typComboBox = new javax.swing.JComboBox();
bindingGroup = new org.jdesktop.beansbinding.BindingGroup();
query = getEntityManager().createQuery("SELECT k FROM Klienti k"); //
NOI18N
list = query.getResultList();
binding = org.jdesktop.beansbinding.Bindings.
createAutoBinding(
org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE,
masterTable,
org.jdesktop.beansbinding.ELProperty.create("${selectedElement.rcIC}"),
rcICField,
org.jdesktop.beansbinding.BeanProperty.create("text"));
bindingGroup.addBinding(binding);
org.jdesktop.swingbinding.JComboBoxBinding
jComboBoxBinding =
org.jdesktop.swingbinding.SwingBindings.createJComboBoxBinding(
org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE,
cTypKlientaList, typComboBox);
bindingGroup.addBinding(jComboBoxBinding);
bindingGroup.bind();
tohle vygeneruje NetBeans
Jak definovat Binding na jednoduchá pole, pracující přímo s hodnotou je kde
možně v demo ukázkách a programech.
Jak spojit s tabulkou, nebo s entityManager seznamy a aktuální hodnotu.
Přišel jsem i na to, že se k zobrazení jednotlivých řádků JComboBoxu použije
metoda CTypKlienta.toString();
Nikde jsem ale nenarazil na návod nebo alespoň informaci, jak spojit JComboBox
s JTable tak aby při se nastavoval aktuální řádek popisky v JComboBoxu podle
typu aktuálně nastaveného řádku klienta v JTable.
Pochopitelně aby se aktualizoval po změně JComboBox i kodkl v entitě Klienti,
jako se to děje i ostatních komponent.
Jak spojit ten ComboBox s masterTable?
Děsím se toho, že bych měl přes entityManager a bindings měl složit složitější
komponenty.
Je někde nějaká souvislá literatura k org.jdesktop.beansbinding? To co je
vygenerované jako doc k tomuto balíčku je dost málo na naučení, jak to vlastně
funguje.
to co jsem vygooglil mi k ničemu nebylo. Nicméně jsem zjistil, že nejsem sám,
komu to není jasné? Odpoví někdo z NetBeans komunity?
Možná by mi pomohlo, kdybych měl nějaký kontakt na českou komunitu NetBeansu.
Není mi tam jasno daleko víc věcí. Nejsem si jist, že bych dokázal formulovat
dotazy v angličtině.
Díky za odpovědi!
Arne