\section{Profiilimoduuli}
\label{profmod}

Profiilimoduulin teht�v� on varastoida k�ytt�j�kohtaista tietoa.

\subsection{Yleiskuvaus}
\label{profYleis}

\begin{figure}
\begin{center}
\includegraphics[width=1.1\textwidth]{profiili.eps}
\caption{
Profiilin luokkakaavio
}
\label{ProfKaavio}
\end{center}
\end{figure}

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

Suodattimelle tarjottavat palvelut ovat HiBrowsen tila ja edelliset kuvavalinat. N�iden lis�ksi profiili tarjoaa k�ytt�liittym�lle
palvelun, jonka auttaa k�ytt�liittym�� n�ytt�m��n hiBrowsen.

K�ytt�liittym� on vastuussa siit�, ett� Profile-luokkaan taltioitu HiBrowsen tila sek� valitut kuvat ovat aina ajan tasalla.


\subsection{Moduulin sis�inen rajapinta}
\label{profSis�}

Profile-luokalla on apunaan FacetSelection-luokka, joka varastoi tiedot yhden k�ytt�j�n yhden fasetin tiedot.

\subsection{Luokka Profile}
\label{profProf}
Modulin p��luokka. T�m�n luokan ilmentym�n k�ytt�liittym� varastoi sessioon jokaiselle k�ytt�j�ll�.

\subsection*{Muuttujat}

\subsubsection*{public static final String ONTOLOGY\_CLASS\_SEPARATOR}
K�ytet��n jaettaessa facetin valitun luokan t�sment�v�� merkkijonoa osiin.

\subsubsection*{public static final int NO\_OF\_DEFAULT\_FACETS}
Kertoo kuinka monta facettia k�ytt�j�lle n�ytet��n alkutilanteessa.

\subsubsection*{public static final int ORDER\_BY\_INSTANCES}
Kun fasetti halutaan j�rjest�� ilmentmien mukaan kutsutaan \\ FacetSelection.setOrdrBy(Profile.ORDER\_BY\_INSTANCES).

\subsubsection*{public static final int ORDER\_BY\_IMAGES}
Kun fasetti halutaan j�rjest�� kuvien mukaan kutsutaan \\ FacetSelection.setOrdrBy(Profile.ORDER\_BY\_IMAGES).

\subsubsection*{private static final String ICON\_URL}
Ikoni kuvien perus URL.

\subsubsection*{private int maxImageWidth/maxImageHeight}
Kertovat k�ytt�liittym�ss� m�ytett�vien kuvien maksimi leveyden ja korkeuden.

\subsubsection*{private int facetId}
K�ytet��n jaettaessa ykil�llisi� tynniste numeroita faseteille.

\subsubsection*{private Hashtable intersect}
K�ytet��n apuna muodostettaessa leikkausta.

\subsubsection*{private Vector selectedFacets}
Pit�� sis�ll��n FacetSelection-ilmenntymi�, eli kaikki ne facetiti, jotka n�kyv�t ruudulla.

\subsubsection*{private Vector previousSelections}
String-olioita, joissa kaikkien katseltujen kuvien tunnisteet.

\subsubsection*{private Vector allFacetRoots}

\subsubsection*{private Filter filter}
Ilmentym�, joka tarjoaa Filter-luokan ty�kalut profiilin k�ytt��n.

\subsubsection*{private MuseumModel model}
Ilmentym�, joka tarjoaa MuseumModel-luokan ty�kalut profiilin k�ytt��n.


\subsection*{Konstruktorit}
\subsubsection*{public Profile()} 
Luo uuden Profile-olion ja alustaa oletus fasetit.


\subsection*{Metodit}
\subsubsection*{public int getMaxImageWidth()/getMaxImageHeight()} 
Palauttaa maksimi kuvan koon.

\subsubsection*{public int setMaxImageWidth(int i)/setMaxImageHeight(int i)} 
Asettaa maksimi kuvan koon.

\subsubsection*{public Vector getActiveClasses()}
Palauttaa Vector-olion, jossa OntologyClass-ilmentyi�.
T�m� metodi palauttaa kaikki k�ytt�j�n t�ll�hetkell� aktiiviset
luokat.



\subsubsection*{public Vector getAddableFacetBeans}
Palauttaa Vector-olion, jossa AddableFacetBean-ilmentymi�.
T�m� metodi palauttaa tarvittat tiedot k�ytt�liittym�lle, jotta
lis�tt�vien fasettien lista voidaan muodostaa.

 
\subsubsection*{public Vector getFacetBeans()} 
Palauttaa Vector-olio, jossa FacetBean-ilmentymi�.
T�m� metodi palauttaa tarvittavat tiedot k�ytt�liittym�lle, jotta
valitut fasetit voiddan n�ytt�� k�ytt�j�lle.

\subsubsection*{public Vector getStateOfHiBrowse()}
Palauttaa Vector-olion, jossa kaikki n�kyvill� olevia fasetteja
vastaavat FacetSelection-ilmentym�t.

 
\subsubsection*{public Vector getPreviousImages()} 
Palautaa Vertor-olion, jossa kaikki k�ytt�j�n kuvavalinnat String-olioina.

\subsubsection*{public void setSelectedPicture(String facet, String oclass)} 
Lis�� kuvan k�ytt�j�n kuvavalintojen listaan.
T�t� metodia voidaan parantaa niin, ett� se lis�isi fasetin painoa, josta kuvavalinta tehtiin.

\subsubsection*{public void closeClass(String facet, String oclass)} 
Sulkee fasetin luokan.

\subsubsection*{public void openClass(String facet, String oclass)} 
Avaa fasetin luokan.

\subsubsection*{public void selectClass(String selectionPath, String facet, String oclass)} 
Asettaa fasetin luokan aktiiviseksi.

\subsubsection*{public void showFacet(String root)} 
Lis�� fasetin n�kyvien fasettien listaan.

\subsubsection*{public void setOrderBy(String order, String facet)} 
Asettaa fasetin j�rjest�mistavan. Muuttujan order on oltava ``instances'', jos j�rjestys halutaan olevan
ilmentymien mukaan. Muuta arvot asettavat j�rjestyksen kuvien mukaan.

\subsubsection*{private static ClassNodeBean createClassNodeBean(String id, int depth, String targetURL,
    	String URLParameters, String iconURL,
	int amountOfImages, int amountOfAllImages, int amountOfInstances,
	String expanderOrCollapserHTML, String header}

Apumetodi ClassNodeBean-olion luomiseksi.

 
\subsubsection*{ private static ImageNodeBean createImageNodeBean(String id, int depth, String targetURL,
    	String URLParameters, String iconURL,String instanceNames)} 

Apumetodi ImageNodeBean-olion luomiseksi.

\subsubsection*{private void addNodeBean(Vector visibleNodes, FacetSelection facet, String selectionPath, OntologyClass node, boolean onlyContent, int depth, boolean rootOpen)}

Apumetodi, jota k�ytet��n facetNodeBean-olion sis�lt�mien NodeBean-olioiden luontiin. T�t� metodia kutsutaan rekursiiviseti.


\subsubsection*{ private void initializeFacets()}
Konstruktori kutuu t�t� metodia alustamaan fasettien oletusarvot.



\subsection{Luokka FacetSelection}
\label{profFaSe}
Profile-luokan apuluokka yhden fasetin tilan s�il�miseen.



\subsection*{Muuttujat}

\subsubsection*{private OntologyClass activeNode}
Kertoo t�m�n fasetin aktiiviseksi valitun luokan.

\subsubsection*{private OntologyClass facetRoot}
T�m�n fasetin juuren luokka.


\subsubsection*{private String selectionPath}
T�h�n muuttujaan on tallennettu polku valittuun luokkaan juuresta.
Merkkijonossa on alussa juuren luokkan tunniste ja siit� eteenp�in 
muiden luokkine tunnisteita kunnes p��st��n valitutun luokkaa. Luokkine tunnisteet on eroiteltu k�ytt�en 
Profiili luokassa m��ritelty� vakiota ONTOLOGY\_CLASS\_SEPARATOR.

\subsubsection*{private int id}
T�m�n fasetin yksil�llinen tunniste numero.

\subsubsection*{private Vector openedNodes}
Vector-olio, johon tallennettu kaikkien luokkien tunnisteet, jotka k�ytt�j� on avannut.



\subsection*{Konstruktorit}
\subsubsection*{public FacetSelection(int id)} 
Luo uuden FasetSelection-olion tunnisteella id.

\subsubsection*{public FacetSelection(int id, OntologyClass facetRotNode)} 
Luo uuden FasetSelection-olion tunnisteella id ja juureksi asetetaan facetRootNode.

\subsection*{Metodit}
\subsubsection*{public void setOrdrBy(int i)} 
Asettaa j�rjestystava.

\subsubsection*{public int getOrdrBy()} 
Palauttaa j�rjestystavan.

\subsubsection*{public int compareTo(Object another)} 
Vertailee kahta FacetSelection oliota.

\subsubsection*{public boolean equals(Object another)} 
Tarkistaa kahden FacetSelection olion samuuden.

\subsubsection*{public OntologyClass getActiveNode()}
Palauttaa t�m�n fasetin valitun luokan.

\subsubsection*{public OntologyClass getFacetRoot()} 
Palauttaa t�m�n fasetin juuren.

\subsubsection*{public int getId()} 
Palauttaa t�m�n fasetin yksil�llisen tunnisteen.

\subsubsection*{public String getName()}
Palauttaa t�m�n fasetin nimen. 

\subsubsection*{public void setSelectionPath(String path)}
Asettaa t�m�n fasetin valintapolun. 

\subsubsection*{public String getSelectionPath()} 
Palauttaa t�m�n fasetin valintapolun.

\subsubsection*{public void setActiveNode(OntologyClass node)}
Asettaa t�m�n fasetin valitun luokan.

 \subsubsection*{public void addOpen(String name)}
Asettaa t�h�n fasettiin avatuksi ``name''-nimisen luokan.

\subsubsection*{public void removeOpened(String name)}
Poistaa avoinna olevien luokkien listasta ``name''-nimisen luokan.

 \subsubsection*{public boolean isOpen(String name)}
Onko ``name''-niminen luokka avoinna? 
