Ostatniego czasu, pisałem wiele małych aplikacji, które potrzebowały niezbyt zaawansowanego mechanizmu, odpowiedzialnego za przedstawienie klientowi informacji, znajdujących się w bazie danych. Ponieważ jestem w trakcie pisania prostego Framework przeznaczonego dla PHP5, wydało mi się czymś oczywistym, że powinien go wyposażyć w narzędzie wspomagające te jakże nużycą czynności.
Nie oczekując jakiegoś specjalnego olśnienia, postanowiłem wyjąć ołówek, po czym zabrałem się za przelewanie swoich myśli na papier. Powoli z chaosu notatek, zaczęła się wykrystalizowywać forma DataGrid i lista rzeczy jakie się z pewnością przydadzą. Doszedłem do wniosku ze biblioteka powinna spełniać parę warunków. Głównym założeniem było proste przełączanie między językami, korzystając z mechanizmów dostarczonych przez framerowka. Kolejnym bardzo ważnym punktem było, dodanie możliwości sortowania współpracującego z stronicowaniem wyników. Nikomu przecież nie są potrzebne ogromne ilości danych, których nie może ogarnąć wzrokiem jak, lub też posortować wedle swojego upodobania. Nie zapomniałem też o formatowaniu hiperłącza tak, aby można było je dostosować do potrzeb aplikacji. Co do wyglądu danych wyjściowych, z doświadczenia wiedziałem że warto będzie umożliwić programiście dowolność w tej sferze. Efektem tego jest możliwość swobodnego wykorzystywania obiektu w systemach szablonów (takich jak OpenPowerTemplate, i Smarty) z możliwości dowolnego formatowania danych, jak i stosowanie sprecyzowanych obiekty.
Po pierwszych testach, myślę ze założenia udało mi się spełnić, a wcześniej wspomniane wyspecjalizowane obiekty pisze się łatwo i szybko, ale o tym dalej.
Powiedzmy teraz trochę co się kryje pod tą tajemniczą nazwa. DataGrid jest elementem GUI, odpowiedzialnym za przedstawianie w możliwie najbardziej przystępny sposób sporej ilości podobnych danych. Poza tym często wzbogaca się go w narzędzia ułatwiające dostęp do informacji, takie jak:
● Sortowanie danych po kliknięciu w nagłówek kolumny,
● Łatwy dostęp do edycji poszczególnych wierszy
Wszystkie te rzeczy, a nawet więcej posiada biblioteka napisana przeze mnie i to programista decyduje z czego skorzysta.
Leave a reply