Dziś jest piątek, 5 grudnia 2008 roku (z kalendarza...)

Programowanie OPF

Icon

04.03.2006, 15:31

Projekty

Komentarze (2)

Powrót

Wróciwszy wczoraj o północy z Warszawy, wyspawszy się porządnie i poprawiwszy jeden projekt, zasiadłem dalej do pisania OPF. Implementacji podlega w tej chwili esencja biblioteki, czyli wirtualne formularze. Oczywiście działały one już w wersji eksperymentalnej, ale przy pisaniu "właściwego" kodu trzeba się dodatkowo postarać o elegancję i rozważenie wszystkiego.

Oprócz predefiniowanych właściwości kontroli, można zaimplementować różne specyficzne mechanizmy, np. sprawdzanie, czy użytkownik istnieje. Tu będzie istniała możliwość wysłania własnego komunikatu błędu, gdyby coś nam nawaliło. Kod eksperymentalny tego nie potrafił. Rozwiązałem też problem wykorzystywania tego samego formularza zarówno do edycji, jak i dodawania nowych rekordów. Robimy to podobnie, jak w przypadku zwykłych komponentów, lecz na całym formularzu: ustawiamy miejsce, z którego ma on czerpać dane. Jeśli nie będzie ono zdefiniowane, wszędzie będzie pusto. Jeśli formularz zostanie źle wypełniony, wczytane zostaną automatycznie wpisane przez użytkownika wartości, aby je poprawić. Jeśli przekażemy obiekt lub tablicę, dane zostaną zassane właśnie stamtąd.

Druga część rozwinięcia całej idei znajduje się już w kodzie Open Power Template'a. W komponentach już jakiś czas temu zostało zmienione działanie pola "id" z OPT_PARAM_ID na OPT_PARAM_EXPRESSION. Oznacza to ni mniej, ni więcej, tylko tyle, że można bardzo dokładnie już definiować komponenty. Wyobraź sobie taką sytuację: tworzysz je sobie wszystkie w aplikacji w zależności od potrzeb, ładujesz w tablicę, sekcją umieszczasz je w szablonie, budując formularz, a w OPF'ie analogiczny kod układa dla niego warunki. Pełna dynamiczność - dokładnie to, czego mi (i pewnie nie tylko mi) potrzeba.

Powrót

Komentarze

Napisał Denver w niedzielę, 5 marca 2006 o 11:02

Hmm... Czekam na jakiś wyrafinowany przykład użycia OPF we współpracy z OPT. Ciekaw jestem, jak to wszystko będzie trzeba zaprogramować.

Napisał Zyx w niedzielę, 5 marca 2006 o 22:03

Wiesz, mam dla Ciebie dobre wieści. Do wtorku powinienem przygotować kilka ciekawych przykładów i wrzucić je razem z update'm wersji na SVN'ie. Kontrola poprawności działa, automatyczne wyświetlanie komunikatów działa, wprowadzanie danych działa, a nawet zaimplementowałem już system zarządzania wyglądem komponentów (co prawda inaczej, niż go opisywałem w specyfikacji, ale na pewno skuteczniej). Gotowych jest pięć komponentów: opfInput, opfPassword, opfTextarea, opfQuestion i opfLabel.

Prace nad OPF sprawiły, że dodatkową możliwość zyskały też bezpośrednio komponenty w OPT. Np. jeśli jakieś zdarzenie powtarza nam się wielokrotnie, możemy je zapamiętać:

<opt:bindEvent name="defaultOnMessage" type="onMessage" message="msg" position="down">
	{foreach=@msg; id; val}
	<p class="incorrect"><strong>Error: </strong> {@val}</p>
	{/foreach}
</opt:bindEvent>


A potem w komponentach linkować bardzo prosto:

<opt:opfInput name="username"><opt:load event="defaultOnMessage"/></opt:opfInput>

Strona 1 z 1 :: 1

Skomentuj

NickInformacja
E-mailTylko do użytku wewnętrznego.
WWWNie zapomnij o http://
LayoutNapisz tu, czy widzisz dzienny czy nocny layout.
WpisFormatowanie wiki
Internauto, pamiętaj! Wolność to nie samowola - dbaj o kulturę wypowiedzi oraz dyskusji w sieci.

Na Zyxist.com panuje swoboda wyrażania opinii oraz krytyki pod dowolnym adresem. Jedyny warunek: musi być ona kulturalna i rzeczowa. Na chamstwo, prostactwo lub jawne obrażanie kogokolwiek nie ma tu miejsca i takie komentarze są bardzo szybko usuwane. Jeśli zamierzasz polemizować z treścią wpisu, wpierw uważnie ją przeczytaj.

© Tomasz "Zyx" Jędrzejewski 2005 - 2008 | Wykonanych zapytań: 2 | Serwer wirtualny zapewnia