Noutati despre interfete web si interfete evoluate

luni, 12 ianuarie 2009

Despre interfete

De curand a expirat termenul de predare al temei 4 la materia interfete evoluate. A fost o tema interesanta ce a avut ca scop realizarea unei interfete pentru un program de cautare in log-urile aplicatiilor de messenger instalate in sistem.

La prima vedere, tema parea a fi una deosebit de usoara, pana cand am inceput sa ma gandesc la acele amanunte care fac diferenta intre interfetele aplicatiilor. (Tema am realizat-o in Java, iar interfata grafica a utilizat Swing). De exemplu, am vrut sa afisez rezultatele cautarii intr-un arbore in care utilizatorii sa fie grupati dupa sistemul de messenger utilizat. Pare o sarcina simpla, insa am vrut sa afisez si un icon pentru fiecare sistem de messenger, asta inseamna ca este nevoie de un renderer customizat. Dupa o cautare am vrut ca primul utilizator sa defina vizibil si sa ii fie selectata prima conversatie, ceea ce a dus la necesitatea tinerii evidentei primului utilizator adaugat si apoi a fost necesar sa aplelez niste metode pentru a face vizibil nodul selectat.

Un alt amanunt a fost ca atunci cand selectez campul de introducere text (care este un combobox editabil) sa se selecteze automat textul existent. Aceasta sarcina nu este asa de usoara pe cat pare. In mod normal, se adauga un ascultator de tipul FocusListener capabil sa receptioneze evenimentele de tipul FocusGained / FocusLost si apoi la primirea focusului se apeleaza o metoda asupra modelului combobox-ului care va selecta textul; numai ca in cazul combobox-ului nu este deloc simplu, deoarece combobox-ul este o combonenta compusa din mai multe componente (editorul text, butonul si container-ul in sine). O solutie era adaugarea listener-ului tuturor obiectelor continute in combobox, insa aceasta solutie nu functioneaza pentru componentele care au setet lok and feel-ul de Windows deoarece se pare ca exista un bug in acest look and feel care nu permite procesarea evenimentelor de tipul focusGained / focusLost de catre unele componente. Si asa am pierdut aproximativ trei ore cautand o solutie. In final am creat o noua clasa editor pentru combox careia i-am adaugat un listener la editorul intern (care este un textField).

Un ultim amanunt pe care il mentionez este partea de afisare a conversatiei care am dorit sa fie placuta, in sensul ca am vrut sa afisez numele utilizatorilor in culori diferite, data mesajului intr-o culoare placuta, dar diferita de numele utilizatorilor, si in plus, textul cautat sa fie evidentiat prin scrierea lui cu culoarea rosu. Si asemanator cu tree-ul utilizat pentru afisarea utilizatorilor, am dorit ca atunci cand se vizualizeaza o conversatie sa fie afisata prima linie care contine textul cautat.

Toate aceste "amanunte" tin de utilizabilitate si sunt cele care fac diferenta intre o aplicatie pe care utilizatorul sa o foloseasca cu placere si una pe care nu o prea foloseasca.

Mai multe detalii puteti afla din sectiunea Produse a site-ului nostru.

0 comentarii:

Arhivă blog