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

Odpovedet emailem