How to set ZK Combobox Selected Item ? How to setSelectedItem on ZK Combobox ? Set selected item pada combobox zk

Hi there ..
finally i found the simple way to set selected item or selected index on zk combobox ! yeah … it’s very simple !

Mungkin banyak temen-temen programmer zk yang dipusingkan dengan hal ini, tetapi belum menemukan solusi yang simpel atau sudah punya solusi tetapi rumit dan butuh alokasi memory yang lebih. Berikut cara yang menurutku paling simpel, cukup 4 baris kode, tanpa perlu method atau class tambahan. Ini per 5 Januari 2012, jika nanti ada metode yang lebih baik aku akan memakainya.

Ada dua case dimana kita kadang butuh untuk mengeset nilai default pada zk combobox dari daftar nilai yang ada yaitu ketika :

  1. On Render
    Yaitu ketika sebuah form baru ditampilkan atau ketika baru diload, sebuah combobox ingin kita set nilai defaultnya atau set selected index-nya. Contohnya pada form edit atau detail data, dimana kita meng-assign nilai pada field-field dalam tampilan tersebut yang seringnya diantara field itu ada yang berbentuk combobox
  2. On Event
    Yaitu ketika ketika sebuah event dijalankan pada sebuah tampilan / form yang sudah dirender.

Permasalahan:
Pengisian nilai combobox oleh zk dilakukan setelah compose html, sehingga kalau kita melakukan hal yang sama dengan ketika koding html+javascript convensional yaitu pada ‘domready’ = ‘onload’ = ‘ready’ contohnya memberi value pada combobox, tidak akan berlaku pada zk. Dengan kata lain doAfterCompose != domready.

Maka solusinya, kita bisa melakukan intervensi pemberian selected index pada combobox ketika zk sedang melakukan render data yaitu pada case nomor 1..

Untuk case nomor 1: onRender
Pada saat doAfterCompose, kita harus memiliki nilai yang sama dengan salah satu comboitem value pada combobox yang kan kita set nilai defaultnya, pada saat render comboitem, kita cari nilai comboitem yang nilainya sama dengan data kita, kemudian kita setSelectedItem dengan comboitem yang nilainya sama dengan yang kita inginkan dengan method setSelectedItem(comboitem). Contoh kodingnya seperti ini.

List<TblSetKota> ltsk = k.getTrSetKotas(); // from jdbc or orm
cmbKota.setModel(new ListModelList(ltsk, true)); // cmbKota = id zk combobox
cmbKota.setItemRenderer(new ComboitemRenderer() {

	public void render(Comboitem cmbtm, Object o) throws Exception {
		TblSetKota tsk = (TblSetKota) o;
		cmbtm.setLabel(tsk.getNmKota());
                cmbtm.setValue(tsk);
		// set selected item
                if (tblSetUser != null) {
			if (tsk.getKdKota() == tblSetUser.getKdKota()) {
                            	cmbKota.setSelectedItem(cmbtm);
			}
		}
	}
});

Logic:
Ada sebuah form perekaman user. Form user berisi grid yang berisi daftar user, dan ada 2 button “Add” dan “Edit”. Kemudian terdapat sebuah form yang digunakan untuk menambah user dan mengedit user. Form Add dan Form Edit ini sama dalam rangka menghemat koding. Dalam Form Add user terdapat field berupa zk combobox yang isinya berasal daftar kota. Jika button “Add” di klik, maka akan tampil window Form Add dalam kondisi kosong. Jika button “Edit” di klik maka window Form Add akan tampil dalam keadaan sudah isi berdasarkan user yang terpilih untuk diedit. Dalam mode edit nilai combobox kota akan terisi sesuai kota user ketika form diload.

Untuk case nomor 2: onEvent
Syaratnya hampir sama dengan case nomor 1, bedanya hanya waktu kita untuk melakukan setSelectedItem yaitu pertama kita ambil jumlah item dalam combobox dengan method getItemCount() kemudian kita looping untuk mendapatkan comboitemnya. Pada saat looping kita ambil nilai dari comboitemnya dan kita bandingkan dengan data yang kita miliki. Jika hasilnya sama maka itulah nilai index yang kita bisa gunakan untuk melakukan dengan method setSelectedIndex(index).

Cara menginstall Oracle XE 11g pada Linux Red Hat dan Cara Membuat Connection Pool pada Glassfish 3.1 ke Oracle XE di OS Red Hat 5.5 64 bit

Melanjutkan catatanku mengenai installasi server yang aku tulis di sini, yaitu mengenai Cara menginstall java jdk6 pada Red Hat 5 dan Cara Mengganti default java pada Red Hat 5 Enterprise Server 64 bit, kali ini catatanku berisi tentang cara menginstall Oracle XE 11g para OS Linux Red Hat 5.5 64 bit.

Pokoknya kali ini aku sedang menginstall sebuah web server glassfish 3.1 untuk memasang aplikasi SSO yang telah aku jelaskan sebelumnya di bawah ini :

  1. http://ahsanfiles.wordpress.com/2011/02/20/step-by-step-membuat-server-single-sign-on-sso/
  2. http://ahsanfiles.wordpress.com/2011/02/24/membangun-sso-server-untuk-implementasi-single-sign-on/
  3. http://ahsanfiles.wordpress.com/2011/09/28/mengintegrasikan-banyak-sistem-user-management-menggunakan-single-sign-on-sso/
  4. http://ahsanfiles.wordpress.com/2011/09/28/implementasi-sso-single-sign-on-pada-inhouse-aplikasi-ditjen-bea-dan-cukai/

Lho apa hubungannya glassfish, oracle dengan SSO ? Baca dulu tulisan mengenai SSO yang aku sebutkan di atas !
Glassfish sebagai application server yang aku gunakan untuk memasang SSO Server, Oracle XE aku gunakan untuk membuat user management. Yaah pokoknya gitu deh intinya …

Yuk kita mulai dengan cara menginstall Oracle XE-nya dulu di red hat : Lanjut membaca

Cara menginstall java jdk6 pada Red Hat 5 dan Cara Mengganti default java pada Red Hat 5 Enterprise Server 64 bit

Menjadi seorang admin server atau data center kadang menyenangkan kalau semuanya lancar jaya, tetapi kadang sampe pucat pasi keringat dingin di ruangan server bersuhu 18 derajat celcius kalau ada error atau masalah yang penyelesaiannya nggak tau harus bagaimana lagi.

Aku bukan seorang admin server atau data center, tetapi sering melakukan pekerjaan layaknya seorang admin data center seperti install server, konfigurasi network, install os server dan lainnya. Catatan ini aku buat agar aku nggak lupa apa yang aku lakukan malam ini (kamis, 29 September 2011, jam 00.10 WIB). Semuanya try, catch, error dan finally sukses :mrgreen:

Whaaa lembur atau ngapain tuh jam segitu belum pulang ke rumah ?
Jangan di tanya soal ini yak !

Oke, di bawah ini adalah catatanku tentang cara menginsall Java khususnya jdk6 u27 pada OS Linux Red Hat 5.5. Penuh dengan suka dan dan duka… (lebay bro …) tapi itulah yang aku rasakan, soalnya install server sambil menemui beberapa masalah yang sempet bikin aku panik. Langsung aja …

  1. Download installer jdk 64 bit buat linux red hat dari websitenya oracle, sampai mendapatkan file jdk-6u27-linux-x64-rpm.bin atau versi yang lebih baru. http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u27-download-440405.html
  2. Melaui terminal, masuk sebagai user root kemudian masuk ke folder dimaan installer jdknya di simpan. Dalam hal ini aku mendownload dan menyimpannya di /home/glassfish/jdk-6u27-linux-x64-rpm.bin. Kemudian jalankan perintah sh jdk-6u27-linux-x64-rpm.bin dan tunggu sampai selesai. Lihat gambar di bawah ini :

  3. Selesai !

Lho koq gampang banget ? Iya emang gampang, tapi kita belum bisa menggunakan java yang barusan kita install sebagai default jvmnya. Kita harus mengubah alternatif java pada /usr/sbin/alternatives. Default java kalau kita menginstall red hat adalah jdk versi 1.4.2 … jaman jebod broo…

Cara mengganti default java dari jdk 1.4.2 ke jdk6 adalah sebagai berikut :

  1. Tetep login sebagai root kemudian ketikan perintah /usr/sbin/alternatives –install /usr/bin/java java /usr/java/jdk1.6.0_23/bin/java 1
    Atau lihat gambar di bawah ini :

  2. Kemudian cek versi java default dengan perintah :
    java -version, hasilnya harus jdk6 seperti pada bagian terakhir gambar nomor 2 di atas …

Selamat mencoba semoga sukses …