Subscribe:

9 Aralık 2013 Pazartesi

Windows 8 Uygulamamıza Arama Özelliği Ekleme (Search Contract)

Search Contract(Arama Kontratı), bu sistem kontratıyla uygulamamız içerisinde yapılacak olan arama işlemlerinin "charms" menüsü altında yer alan Ara(search) simgesi ile gerçekleştirilmesini sağlayabiliriz.(Charms menüsünü açmak için windows tuşu+C kısayolu yada fare imlecinizi sağ üstten aşağıya doğru çekebilirsiniz.)

Uygulamamız açıkken charms menüsünden Ara(search) seçeneği ile uygulama içerisinde arama yapılmasını ya da Paylaşım(Share) seçeneği ile uygulamamızda yer alan verilerin paylaşılmasını sağlayabiliriz.

Şimdi ele alacağımız konuda,temel bir veri uygulaması üzerinde Search Contract kullanarak arama özelliğinin nasıl entegre edileceğine değineceğiz. Kuran-ı Kerim Türkçe Meal Uygulamasında sureler içerisinden arama yapacağız.

Geliştirmiş olduğum uygulamamı çalıştırıp Ara simgesine tıkladığımızda aynı ekran açılacak fakat arama kutusuna herhangi bir şey yazdığımızda uygulama tepki vermeyecektir.

Uygulamayı açmış olmamız bir anlam taşımıyor çünkü bizim uygulamamız şu an için charms menüsünde yer alan arama işlevini desteklemiyor. Öncelikle uygulamamıza bu desteği eklemeli sonrasında da arama sırasınna kullanılacak olan iş mantığını koda dökmeliyiz.

Uygulamamıza çeşitli ek özellikler katabilmek için projemiz içerisinde yer alan "package.appxmanifest" dosyası içerisinde, "Capabilities" ve "Declarations" kısımlarında bir takım tanımlamalar yapmalıyız. Uygulamamıza arama özelliğini katacak olan "Search contract" için geçerli tanımlamayı da "declarations" adı altında yapabiliriz.

Declarations tabı içerinde sol üst bölümde yer alan "Available Declaration"s isimli açılır menü içerisinde, "Search" de dahil olmak üzere bir çok üye var. "Search" özeliğini eklemek için bu açılır menü içerisinden "Search" seçip "add" butonuna tıklayalım. Seçimin ardından yeni bir ekran açılır ve burada ekleyeceğimiz özelliklerle ilgili parametreleri girebiliriz.

Sonrasında projeye sağ tıklayarak "Add New Item" seçeneği ile yeni bir "Search Contract" ekleyelim. Sonrasında çıkan seçeneği "Evet" diyerek kabul edelim. Bu şablon ile içerisinde istediğimiz fonksiyonları çalıştırarak, arama sonuçlarının dilediğimiz şekilde görüntülenmesini sağlayabiliriz.

Karşımıza hazır datagridler filan gelecek bunları tekrar baştan yapmaya gerek yok. Buradaki hazır gelen resultgridi kaldıralım. Sonrasında diğer filtreleri de iptal edelim. Burada sayfamızın snopped modda iken nasıl görüntülenmesi gerektiğine dair ekbir bileşen daha var. Bunuda kaldıralım.  MainPage.xaml (sizde farklı olabilir) gibi arama ekranını görüntülemek istediğimiz sayfayı veya datagridi kopyalabiliriz. Ben "mainpage.xaml" içerisindeki datagridi kopyalarak "searchresultpage" sayfasındaki "result panel" altına yapıştırdım.

Sonra kod sayfasında içeriğini vermek üzere ResultPage.cs dosyasına gidelim. Burada default view hazır bir şekilde geliyor. Aynı zamanda istersek default viewi kendimiz de tanımlayabiliriz. Bu sayfadai Activetide kısmı varvu burada sorguyu yakalayabiliyoruz. Query ile birlikte LoadState de burada yer alıyor. Bir arama işlemi yapılıp Entera basıldığında ilk olarak LoadState'e düşer. Şimdi LoadState metodunun ilk satırına bir breakpoint ekleyelim ve projemizi yapılandırıp uygulamamızı çalıştıralım. Uygulamamız açıldıktan sonra charms menüsünden ara simgesine tıklayalım ve herhangi bir kelime yazıp enter tuşuna basarak bir arama başlatalım. İşlemin ardından breakpoint eklediğimiz satıra düşeceğiz. Burada aranan kelimenin ne odluğunu görebiliriz. Arama kutusuna yazılan değer bire bir buraya iletiliyor.
Bu metodun içerisinde arama için kendi özel iş mantığımızı kodlamamız gerekiyor. Ben linq yapısını kullanarak kendi uygulamam göre bir plan yaptım. Kodlamam şu şekildeydi: Arama alanına herhangi bir harf veya kelime girdiğimizde o harf veya harflerle ilgili sureleri karşılaştırıyor. Surelerin içeriğinde bu harf yada kelime varsa ilgili sureleri listeliyor.
Not:Arama yaparken uygulamanızın seçili gelip gelmediğini kontrol ediniz seçili değilse seçip arama işlemini gerçekleştiriniz.


0 yorum:

Yorum Gönderme