\section{K�ytt�liittym�moduuli}
\label{k�limo}

K�ytt�liittym�modulin teht�v� on muodostaa k�ytt�j�lle n�ytett�v� n�kym� HiBrowsesta, kuvista
ja mielenkiintoisista linkeist�.

\subsection{Yleiskuvaus}
\label{k�liYleis}
K�ytt�liittym� on toteutettu k�ytt�en JSP custom tag library tekniikkaa. 
K�ytt�liittym� jakaantuu kahteen osaan HiBrowse-n�kym��n(hiBrowse.jsp) ja 
kuvasivuun(result.jsp), joka sis�lt� my�s mielenkiintoiset linkit.


\begin{figure}
\begin{center}
\includegraphics[width=1.1\textwidth]{tags1.eps}
\caption{
HiBrowse tag kirjasto
}
\label{Tag1Kaavio}
\end{center}
\end{figure}


\begin{figure}
\begin{center}
\includegraphics[width=1.1\textwidth]{tags2.eps}
\caption{
Result tag kirjasto
}
\label{Tag2Kaavio}
\end{center}
\end{figure}


\subsection{Moduulin ulkoinen rajapinta}
\label{kaliUlko}

K�ytt�liittym� k�ytt�� proofiilin tarjoamia palveluita n�kym�n muodostamiseen.
T�rkein luokka on Profile. Sit� k�ytet��n luomaan pavut, jotka sis�lt�v�t kaiken tarvittavan tiedon.

K�ytt�liittym�n teht�v�ksi j� yksinkertaisesti papujen l�pik�ynti ja niiden tietojen n�ytt�minen
halutulla tavalla.


\subsection{HiBrowse tag-kirjaston kuvaus}
\label{kaliHiTa}
HiBrowse tag-kirjastoa k�ytet��n HiBrowse-n�kym�n muodostamseen.


\subsubsection{iterateFacets}
\label{kaliItFa}
IteratorTag-luokka toteuttaa t�m�n tagin.
T�m� tag asettaa pageContext-olioon ``facet''-nimell� FacetBean-olion, josta voidaan tulostaa tietoja JSP-sivulla.
T�m� tag k�y l�pi kaikki FacetBean-oli, jotka Profile.getFacetBeans()-metodi palauttaa.
Tagille on annettava attribuutti ``profile'', mutta sen arvolla ei ole t�ss� versiossa merkityst�.


\subsubsection{iterateNodes}
\label{kaliItno}
ClassIteratorTag-luokka toteuttaa t�m�n tagin.
T�m� tag k�y l�pi kaikki fasetin n�kyvill� olevat luokat ja kuvat.
Mik�li t�ll� kierroksella k�sitelt�v�n� oleva fasetin solmu on luokka asetetaan pageContext-olioon
``isImage''-nimell� merkkijono ``false'' ja ``classNode''-nimell� ClassNodeBean-ilmentym�, jota k�ytet��n t�m�n luokan
n�ytt�miseen n�yt�ll�.
Jos taas on kyseess� kuva, asetetaan pageContext-muuttujaan ``isImage''-nimell� ``true''-merkkijono ja ``imageNode''-nimell�
ImageNodeBean-ilmentym�.
Tagille on annettava attribuutto ``faacet'', mutta sen arvolla ei ole t�ss� veriossa merkityst�.


\subsubsection{iterateAddableFacets}
\label{kaliItAF}
AddableFacetIteratorTag-luokka toteuttaa t�m�n tagin.
T�m� tag l�pik�y profiililta saamansa listasta faseteista, jotka voidaan lis�t� n�kym�� ja
luo k�ytt�j�ll� sopivan k�ytt�liittym�komponentin.
pageContext-oloioon asetetaan joka kierroksella nimel� ``addableFacet'' AddableFacetBean-olio.
T�m�n pit�isi riitt��, mutta testattaessa jostain syyst� t�m� ei toiminut.
Tagin toimintaan saattamiseksi pageContext-muuttujaan asetetaan AddableFacetBean-olion sis�lt�m�t
tiedot merkkijonoina.

\subsection{Result tag-kirjaston kuvaus}
\label{kaliHiTa}
Result tag-kirjastoa k�ytet��n kuvasivun eli tulosn�kym�n muodostamiseen.

\subsubsection{imageInfo}
\label{kaliImIn}
ImageInfoTag-luokka toteuttaa t�m�n tagin.
pageContext-olioon asetetaan seuraavat merkkijonot:
``imageDescription'', ``imageHeight'', ``imageWidth'', ``mageURL'' ja ``imageThumbURL''.


\subsubsection{imageInstanceIterator}
\label{kaliImII}
ImageInstanceIteratorTag-luokka toteuttaa t�m�n tagin.
T�m� tagi k�y l�pi kuvassa esiintyv�t ilmentym�t, ja asettaa kunkin kohdalla
pageContext-olioon nimill� ``label'' ja ``value'' merkkijonot, jotka kuvaavat
ilmentym�n tietoja.

\subsubsection{imageInterestingLinksIterator}
\label{kaliImILI}
ImageInterestingLinksIteratorTag-luokka toteuttaa t�m�n tagin.
PageContext-olioon asetetaan kullakin kierroksella linkin tiedot merkkijonoina.
``thumbURL'', ``linkName'', ``linkImageId'', ``linkUtility'' ja ``starsHTML''.


\subsection{HiBrowse JSP-sivun kuvaus}
\label{kaliHiJS}

hiBrowse.jsp koostuu kolmesta iteraatio tagista. 
iterateFacests-tagia k�ytet��n kaikkien n�kyvill� olevien fasettien l�pik�yntiin.
T�m�n silmukan sis�ll� on iterateNodes-silmukka, joka k�y l�pi kaikki n�kyv�t
luokat ja kuvat.
N�iden sis�kk�isten silmukoiden j�lkeen on n�ist� t�ysin erillinen osa, jossa
muodostetaan pudotuslista lis�tt�vist� faseteista iterateAddableFacets-tagilla.


\subsection{Result JSP-sivun kuvaus}
\label{kaliReJS}
result.jsp koostuu kolmesta osasta, joista ensimm�isess� n�ytet��n itse kuva ja
sen kuvaus. T�m�nj�lkeen k�yd��n l�pi kuvan ilmentym�t. Viimeinen vaihe on 
mielenkiintoisten linkkien n�ytt�minen.
