PrimeFaces

PrimeFaces-Oylama (Rating) Bileşeninin Kullanımı

Merhaba arkadaşlar. Bu yazıda PrimeFaces’ın herhangi bir şey için oy vermemizi sağlayan Oylama(Rating) bileşeninin kullanımını öğreneceğiz.

Konumuza geçmeden önce söylemek istediğim bir husus var. Ben burada JSF ve PrimeFaces hakkında Türkçe bir kaynak, döküman olması için öğrendiklerimi ve bildiklerimi yazıyorum ve arkadaşlarım da aynı amaç için kendi alanlarında yazıyorlar. Eğer siz de başka bir yazılım teknolojisini biliyor, öğrendiklerinizi aktarmak istiyorsanız ya da etrafınızda yazılımda kendi iyi gören tanıdıklarınız varsa lütfen onları ve kendinizi Türkçe kaynak oluşturma fikrine ikna edin. Yazılım için İngilizce’den önce Türkçe kaynaklar okumak çok daha sağlam bir altyapı hazırlamak için en ideal durumdur. Şimdi konumuza dönelim.

Oylama işlemi için yapacağımız örnek uygulamada Temel Kullanımını, Geri Bildirimli Kullanımını, Ajax İle Kullanımını, Sadece Okunan Şekilde Kullanımını ve Sönük Kullanımını göreceğiz. Önce xhtml kodunu ardından Java kodunu veriyorum. Ajax olayını daya iyi görebilmemiz için bu şekilde yapıyorum.

index.xhtml Kodu

Adım adım xhtml sayfamızın ne yaptığını inceleyelim.

  • <p:growl> etiketi ile Ajax tetiklenmesinde ekranda belirecek mesaj için bir bileşen tanımlamış oluyoruz. Bu bileşeni id vasıtası ile kullanıyoruz. showDetail=”true” dediğimizde Java sınıfımızdan dönecek mesajın tamamı ile yer almasını sağlıyoruz. Bunu yapmazsak mesajın virgülden önceki ilk cümlesi ekranda belirir.
  • Oylama bileşenini en temel hali le kullanmak için <p:rating value=”…”/> şeklinde tanımlama yapmamız yeterlidir.
  • Geri bildirimli kullanımda onRate özelliği ile kullanıcı oyu verdiği anda ona script mesajı ile verdiği oyu gösterebiliyoruz. cancel özelliğine false atamasını yaparsanız ekran çıktısında bazı yerlerde göreceğiniz yıldızların sol tarafındaki butonu göremezsiniz. O buton sıfırlama işlemi için kullanılır.
  • Ajax ile kullanımında temel kullanımdaki gibi <p:rating value=”…”> </rating> ifadesini yazıyoruz ve etiketlerin arasına <p:ajax/> etiketimizi yazıyoruz. Eğer oy verme sonrası bir işlemi tetiklemek istersek event özelliğine rate atamasını yapıyoruz. İptal etme işlemi için de cancel. listener özelliğine ise iş yapacak metodumuzu atıyoruz. update özelliğine yapılan işlemin ajax tetiklenmesi ile ekranda mesaj olarak belirmesi için growl bileşenimizin id‘sini atıyoruz.
  • Sadece okunabilen yani bir nevi etkin olmayan bir oylama bileşeni için readonly özelliğini true yapmamız yeterli.
  • Eğer bileşenin sönük görünmesini istersek disabled özelliğine true ataması yapmamız yeterli. Sönük bileşen doğrudan readonly özelliğine sahip bir bileşen.

Kodumuzun geri kalan kısımları daha önce anlattığımız yerlerdir.

OylamaBileseni.java Kodu

Java kodumuz içinde değinmek istediğim 2 metot var. Bunlar ajaxOylama ve ajaxSilme metotları.

ajaxOylama metodu xhtml kodu içindeki listener özelliği sayesinde kaç puan oy verildiğini alır bunu bir mesaj haline getirir ve growl bileşinine yollar. Aldığı rateEvent parametresinden ((Integer) rateEvent.getRating()).intValue()

kodu ile kaç puan oy verildiğini bulur ve istekte bulunan bileşene bunu geri gönderir. Bizim bileşenimiz de growl nesnesini update edeceği için dönen mesaj growl nesnesine gider.

ajaxSilme metodu içinde aynı durum geçerli. Sadece orada kullanıcıya silme ile ilgili mesaj döndürüleceği için herhangi bir parametreye ihtiyaç yok.

Ekran Çıktıları

Ekran Resmi 2015-01-22 15.34.46

 

 

 

 

 

 

 

 

Ajax ile kullanımda tıkladığımızda sağda bir mesaj bildirimi ile karşılaşıyoruz.

Ajax ile kullanımda tıkladığımızda sağda bir mesaj bildirimi ile karşılaşıyoruz.

 

 

 

 

 

 

 

Yıldızların sol tarafındaki butona tıkladığımda verdiğim oy sıfırlanıyor. Bununla ilgili mesaj dönüyor.

Yıldızların sol tarafındaki butona tıkladığımda verdiğim oy sıfırlanıyor. Bununla ilgili mesaj dönüyor.

 

 

 

 

 

 

 

Ekran Resmi 2015-01-22 15.41.47

 

 

 

 

 

 

 

 

 

Türkiye’nin en çok izlenen haber programlarına ev sahipliği yapan kanal d canlı izlemeye ne dersiniz? Eğer cevabınız evetse, siz de her gün Kanal D yayınını canlı olarak izlemek için canlitelevizyon.co adresini ziyaret eden kullanıcılar arasındaki yerinizi alabilirsiniz. Dileyen herkes bu harika siteden tüm canlı tv kanallarının yanı sıra star tv canlı izleme fırsatını da elde ediyor.
Bu yazıda da bu kadar arkadaşlar. Gelecek yazıda inplace bileşeninin kullanımını öğreneceğiz. Sağlıcakla kalın.