Noutati despre interfete web si interfete evoluate

Se afișează postările cu eticheta design. Afișați toate postările
Se afișează postările cu eticheta design. Afișați toate postările

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.

Read more...

joi, 20 noiembrie 2008

Despre CTTE

Sau cum poti descrie designul unei aplicatii fara insa sa scrii cod pentru asta. CTTE inseamna Concurrent Task Tree Environement si este o aplicatie care permite realizarea obiectivului de mai sus.

Cu ajutorul aplicatiei se pot defini (relativ usor) comportamente orientate pe evenimente ale aplicatiei. Astfel exista patru tipuri de entitati disponibile: utilizator, aplicatie, interactiune si abstract. Intre entitati (care se numesc sarcini) pot exista diferite relatii temporale iar sarcinile pot avea atribute, preconditii, tipuri, etc. Un alt aspect pozitiv al aplicatiei este ca utilizeaza o structura ierarhica de actiuni, insa aceasta inseamna ca nu se pot reutiliza arbori de sarcini deja definiti.

Cate ceva despre cele patru tipuri de sarcini.

Prima, sarcina utilizator, modeleaza o actiune posibil logica, de alegere, de rezlvare de probleme pe care o executa utilizatorul, fara a interactiona insa cu sistemul.

Al doilea tip de sarcina este aplicatia, ce modeleaza procesarea datelor de catre sistem (la cererea utilizatorului) avand ca rezultat date ce sunt prezentate utilizatorului. De exemplu, ca urmare a unui click al utilizaotrului pe un link, sistemul va procesa cererea, va crea o pagina de raspuns si o va afisa utilizatorului.

Urmatorul tip de sarcina, interactiunea, reprezinta actiunea utilizaotrului asupra aplicatiei (click pe un buton, drag and drop something ...)

Ultimul tip de sarcina este cea abstracta - o sarcina complexa care nu se incadreaza in niciunul din tipurile prezentate mai sus.

Cam asta ar fi in mare despre CTTE. Personal, mi-a lasat o impresie ... nu foarte buna. Cu siguranta nu poate fi utilizat pentru ptoiecte de mari dimensiuni deoarece modul de vizualizare si interactiune cu obiectele lasa de dorit (lipsa alinierii obiectelor, mutarea obiectelor, rearanjarea automata urat implementata, etichetele obiectelor care sunt aliniate doar la stanga ...).

In concluzie, nu il recomand pentru a fi folosit in mod curent.

As vrea sa aflu si parea vostra daca ati utilizat acest program

Read more...

Arhivă blog