11.07.2015 Views

Prenos vízií do reality bolí. - Vitajte na stránkach www.einsty ...

Prenos vízií do reality bolí. - Vitajte na stránkach www.einsty ...

Prenos vízií do reality bolí. - Vitajte na stránkach www.einsty ...

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

P R O G R A M U J E M EPridanie referencie <strong>na</strong> webovú slububu, v <strong>na</strong>šom prípade adresu http://LLEVO/wsAutori/Service1.asmx. Tlaèidlom Add Referencepridáme <strong>do</strong> projektu referenciu <strong>na</strong> webovú slubu.Referenciu v pravom okne vývojového prostredia premenujeme <strong>na</strong> wsAutori. Ak sa po−zrieme <strong>do</strong> adresára nášho projektu, nájdeme tam podadresár Web References | wsAutori,ktorý obsahuje nieko¾ko súborov obsahujúcich proxy triedy a interakcie SOAP.Na zaèiatok zdrojového súboru Form1.cs pridáme referenciuusing System.Net;a inštancie proxy tried webovej slubyprivate DataSet dsAutori;private DataTable dtAuthors;private wsAutori.Service1 ws = new wsAutori.Service1();Jadro kódu bude v procedúre btDaj_Click. Všimnime si, e v praktickej aplikácii je <strong>do</strong>b−rým zvykom poisti sa proti vzniku chýb a výnimiek (programová konštrukcie try – catch).private void btDaj_Click(object sender, System.EventArgs e){try{dsAutori = ws.DajAutora(tbMesto.Text);dtAuthors = dsAutori.Tables["Authors"];PridajDataDoListView();}catch (WebException we){MessageBox.Show("Nemozem sa pripojit. Chyba: " + we.Message,}}"Connection Failed");Jednotlivé záz<strong>na</strong>my zapuzdrené v datasete pridáme <strong>do</strong> komponentu ListView pomocounovovytvorenej metódy PridajDataDoListView().Kód v tele procedúry je pomerne jednoduchý, ide o pridanie obsahu dvoch ståpcov da−tasetu <strong>do</strong> komponentu ListView.private void PridajDataDoListView(){ListViewItem polozka;lvAutori.Clear();lvAutori.Columns.Add("ContactName",(lvAutori.Width/2),HorizontalAlignment.Left);lvAutori.Columns.Add("Address",(lvAutori.Width/2),HorizontalAlignment.Right);lvAutori.View = View.Details;foreach(DataRow row in dtAuthors.Rows){polozka = new ListViewItem(row["au_l<strong>na</strong>me"].ToString());polozka.SubItems.Add(row["au_f<strong>na</strong>me"].ToString());lvAutori.Items.Add(polozka);}}Výsle<strong>do</strong>k v okne emulátora <strong>na</strong> náš testovací <strong>do</strong>pytsvedèí o jeho správnosti.U v závere predchádzajúceho príkladu sme <strong>na</strong>−z<strong>na</strong>èili, e riešenie s vyuitím webovej sluby je ove¾aèistejšie z h¾adiska pouitej architektúry. Formátovékonverzie údajov môu nepatrne zníi výkon, aletáto drobná nevýhoda je vyváená jednoduchosouklientskej aplikácie, ale hlavne menšou frekvenciounutnosti upgrade u klienta. Vo väèšine príkla<strong>do</strong>v po−staèí úprava webovej sluby a takto inovovaná apli−kaèná logika je bez nutnosti akýchko¾vek zásahov uklienta ihneï k dispozícii. Výhody z h¾adiska jedno−duchosti a èistoty oddelenia jednotlivých architekto−nických vrstiev aplikácie sú takisto neoddiskutovate¾−né. K webovej slube môeme cez protokol HTTP pri−stupova prakticky odkia¾ko¾vek a môeme ju vyuívaaj z iných typov aplikácií (pozri úvodné èasti seriálu,venované MMIT).Test aplikácieV budúcom pokraèovaní sa budeme venova SQLServeru CE, teda databázovému serveru, ktorý beípriamo <strong>na</strong> mobilnom zariadení.¼uboslav LackoProgramujeme v Jave7. èas: Komponenty JTable a JTreenájdete <strong>na</strong> CD REVUEAj keï sa nám rok prehupol <strong>do</strong> druhej polovice a vonku zúria leto a prázdniny, mono stesi <strong>na</strong>šli chví¾ku èasu <strong>na</strong> to, aby ste zasadli za svoj poèítaè a venovali sa ïalšiemu pokraèo−vaniu nášho seriálu o praktickom programovaní v Jave. Verím, e vás zaujme, pretoe sabudeme venova ve¾mi praktickej téme, a to komponentom JTable (podporné triedy súumiestnené v balíku javax.swing.table) a JTree (javax.swing.tree), ktoré sú súèasou kniniceSwing. Ako podklad <strong>na</strong> prácu s nimi nám poslúi predchádzajúca èas, v ktorej sme sa obo−známili s dátovými modelmi a architektúrou MVC. Pokia¾ ste teda z nejakého dôvodu eštepre<strong>do</strong>šlú èas nepreštu<strong>do</strong>vali, odporúèam vám tak spravi ešte prv, ne sa zaènete venovatej dnešnej.JTABLE. Komponent JTable predstavuje ve¾mi komplexný poh¾ad <strong>na</strong> tabu¾ku. Aby stesprávne pochopili termín poh¾ad, spomeòte si <strong>na</strong> predchádzajúcu èas a architektúru MVC(model/view/controller) – komponent JTable je moné chápa z aspektu tejto architektúryako písmeno V, alebo ak chcete, View, teda po slovensky poh¾ad. U v pre<strong>do</strong>šlom pokraèo−vaní ste mali monos oboznámi sa s komponentmi, ktoré predstavujú iba urèitý poh¾ad<strong>na</strong> dáta, prièom tieto dáta sú v skutoènosti poskytované inými, nevizuálnymi komponent−mi. Preto <strong>na</strong> prácu s nimi je potrebné pouíva viacero podporných tried. My zaèneme roz−právanie o triede JTable jednoduchšími príkladmi a postupne sa prepracujeme k zloitejšímèrtám jej architektúry MVC.Komponent JTable je moné skonštruova viacerými spôsobmi. Najjednoduchšie je po−ui konštruktor preberajúci ako celoèíselné parametre poèet riadkov a poèet ståpcov ta−bu¾ky:// skonštruujeme tabu¾ku 5x4JTable table = new JTable(5, 4);Pokia¾ by ste chceli hneï v konštruktore inicializova bunky tabu¾ky nejakými východis−kovými hodnotami, môete poui konštruktor prijímajúci dvojrozmerné pole objektov typuObject a pole objektov opisujúcich jednotlivé ståpce:// vytvoríme maticu dátString[][] data = {{"1", "2", "3"},{"4", "5", "6"},{"7", "8", "9"}};// vytvoríme pole s opisom ståpcovString[] <strong>na</strong>mes = {"Prvý", "Druhý", "Tretí"};// skonštruujeme tabu¾kuJTable table = new JTable(data, <strong>na</strong>mes);S komponentom JTable budete <strong>na</strong>jèastejšie pouíva aj komponent JScrollPane, pretoev prípade, e tabu¾ku nezapuzdríte <strong>do</strong> JScrollPane a umiestnite ju <strong>do</strong> kontajnera priamo,nebudú zobrazované záhlavia ståpcov:JScrollPane jsp = new JScrollPane(table);getContentPane()add(jsp);DÁTOVÝ MODEL KOMPONENTU JTABLE. Trieda, ktorú chcete poui ako dáto−vý model pre JTable, musí implementova rozhranie TableModel, definované v balíku javax.swing.table. Toto rozhranie obsahuje <strong>na</strong>sledujúce metódy:addTableModelListener() – metóda slúiaca <strong>na</strong> pridanie poslucháèa typuTableModelListener, ktorého metóda tableChanged() je volaná pri kadej zmene dát.Väèšinou je poslucháèom samotná tabu¾ka, aby mohla prekresli svoj obsah pri zmene dát.removeTableModelListener() – odregistruje poslucháèa typu TableModelListenerzo zoz<strong>na</strong>mu poslucháèov.getColumnClass() – metóda vracia objekt typu Class, ktorý opisuje typ dát uloenýchv ståpci s indexom daným ako parametrom.7/2003 PC REVUE 123

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!