\chapter{PVS-Client}
Eine der Anforderungen an die Software ist, dass sie den Benutzer nicht an der Arbeit hindert und im Hintergrund laufen soll. Dies wurde mit Hilfe einer Applikation realisiert, die nur aus einer Toolbar besteht und bei Nichtgebrauch automatisch ausgeblendet wird. Falls der aktuelle Windowmanager dies unterstützt, wird zusätzlich ein Symbol (schwarze Kamera) im Systemabschnitt der Taskleiste (System Tray) abgelegt. In diesem Fall, werden dem Benutzer bei diversen Ereignissen Meldungen über sogenannte "`Sprechblasen"' angezeigt. Wenn der Windowmanager keinen Systemabschnitt besitzt, werden diese Meldungen über konventionelle Dialoge präsentiert. Des Weiteren informiert das Symbol über den Verbindungsstatus. Im Falle einer erfolgreichen Verbindung zu einer Steuerkonsole, wechselt die kleine Lampe von rot auf grün.\\
Eine weitere Anforderung ist der ständige Zugriff auf die Benutzerschnittstelle damit  zu jeder Zeit Einstellungen vorgenommen werden können. Dies wird ebenfalls gewährleistet wenn ein Video oder eine virtuelle Maschine im Vollbildmodus dargestellt wird. Des Weiteren kann die Toolbar entweder am oberen oder unteren Bildschirmrand an einer variablen waagerechten Position angeordnet werden. Dies ist deshalb wichtig, da diverse Windowmanager ihre eigenen Toolbars an unterschiedlichen Orten platzieren.\\
Die Toolbar des PVS-Clients (Abb. \ref{png:toolbar}) besteht aus einer Reihe von Bedienelementen, die nachfolgend erklärt werden:
\begin{enumerate}
 \item Die wichtigste Schaltfläche der Toolbar -- ein Klick auf diese öffnet das Hauptmenü. Das Menü bietet Zugang zu allen Funktionen die dem Benutzer zur Verfügung stehen. Zusätzlich ist dieses Menü über einen Rechtsklick auf das Symbol im Systemabschnitt der Taskleiste (System Tray) abrufbar.
 \item Die Schaltfläche links neben der Beschriftung "`Host"' erlaubt eine schnelle Wahl der Steuerkonsole. Durch einen Klick auf diese öffnet sich ein Menü mit einer Auswahl der verfügbaren Server. Durch einen weiteren Klick auf einen der angezeigten Namen kann nach der Eingabe eines Passwortes zu der gewählten Steuerkonsole verbunden werden. Falls kein Passwort benötigt wird, kann das Feld leer bleiben.\\
 Die Beschriftung dieser Schaltfläche wird nach einer erfolgreichen Verbindung an den Namen der Steuerkonsole angepasst, wobei ein "`-"' signalisiert, dass keine Verbindung besteht. Die Liste möglicher Server wird zur Laufzeit automatisch aktualisiert.
 \item Diese Checkbox erlaubt es dem Benutzer zu bestimmen ob die verbundene Steuerkonsole das Recht hat eine VNC-Verbindung zum Client aufzubauen. Falls aktiviert, kann der Benutzer der die Steuerkonsole gestartet hat das Verhalten des Benutzers am Client beobachten und bei Bedarf dessen Bild im Netzwerk verteilen.
\end{enumerate}
\begin{figure}[h]
  \begin{center}
    \includegraphics[scale=0.7]{bilder/clientToolbar}
    \caption{Toolbar des PVS-Clients}
    \label{png:toolbar}
  \end{center}
\end{figure}
Das Hauptmenü des PVS-Clients besteht aus folgenden Elementen:
\begin{itemize}
 \item Connect: Zu einer Steuerkonsole verbinden. Der Vorgang ist dabei analog zur Schnellwahl in der Toolbar.
 \item Disconnect: Eine bestehende Verbindung trennen.
 \item Information: Zeigt in einem Dialog den Namen der aktuell verbundenen Steuerkonsole sowie das zugehörige Passwort. Diese Funktion ist für Dozenten nützlich, um beispielsweise über einen angeschlossenen Projektor die Daten für alle Clients bekannt zu geben.
 \item Chat: Öffnet den Chat-Dialog.
 \item Send File: Ermöglicht das Senden einer Datei an einen oder alle Teilnehmer.
 \item Config: Öffnet den Konfigurationsdialog.
 \item About: Zeigt Versionsinformationen an.
 \item Quit: Beendet die Applikation sowie das zugehörige Backend.
\end{itemize}

\section{Chat}
Abbildung \ref{png:chat} zeigt das Chatfenster des PVS-Clients. Mit diesem ist es möglich mit anderen Teilnehmern gemeinsam zu kommunizieren oder private Gespräche zwischen zwei Teilnehmern zu führen. 
\begin{enumerate}
 \item Dies ist eine Liste aller aktuell am Chat teilnehmenden Benutzer. Ein Doppelklick auf einen Namen ermöglicht ein privates Gespräch, mit einem Rechtsklick kann dem gewählten Benutzer eine Datei geschickt werden.
 \item Das Hauptfenster des Dialogs zeigt den aktuellen Gesprächsverlauf an. Dabei wird jeder Nachricht die Uhrzeit sowie der Name des Absenders hinzugefügt. Hier erscheinen ebenfalls diverse Ereignisse, wie der Beitritt eines neuen Benutzers oder der Wechsel des Verbindungsstatus.
 \item Durch diese Reiter kann das aktuelle Hauptfenster und somit der Gesprächspartner gewechselt werden. Private Unterhaltungen können durch das kleine "`x"' geschlossen werden. Bei neuen, also noch nicht gelesenen Nachrichten, erscheint eine grüne Lampe.
 \item Hier wird die eigene Nachricht eingegeben.
 \item Ein Klick auf "`Send"' verschickt die eingegebene Nachricht entweder an den öffentlichen Kanal oder bei einer privaten Unterhaltung direkt an den Kommunikationspartner. Der Empfänger ist dabei stets derjenige dessen Gesprächsverlauf im Hauptfenster angezeigt wird. Es ist auch möglich nach der Eingabe einer Nachricht zum Abschicken die Enter-Taste zu betätigen.
\end{enumerate}
Das Chatfenster unterstützt ebenfalls "`Drag \& Drop"'. Das Ablegen einer Datei innerhalb des Fensters bewirkt eine Anfrage beim aktuellen Gesprächspartner zur Dateiübertragung.\\
Sollte eine Nachricht eingegangen sein obwohl der Chat-Dialog geschlossen ist, so wird dies dem Benutzer über eine "`Sprechblase"' im Systemabschnitt der Taskleiste mitgeteilt.
\begin{figure}[h]
  \begin{center}
    \includegraphics[scale=0.5]{bilder/clientChatDialog}
    \caption{Chat-Dialog des PVS-Clients}
    \label{png:chat}
  \end{center}
\end{figure}

\section{Konfiguration}
Der Konfigurationsdialog (Abb. \ref{png:config}) erlaubt es dem Benutzer des PVS-Clients diverse Einstellungen vornehmen:
\begin{enumerate}
 \item Mit diesen Reitern kann die Gruppe der zur Verfügung stehenden Optionen gewechselt werden. Unter "`Permissions"' sind Einstellungen zu finden mit denen der Benutzer seine Privatsphäre schützen kann. Unter "`Display"' ist es möglich das Verhalten der Toolbar anzupassen (z.B. die Position selbiger).
 \item Hier wird dem Dozenten das Recht erteilt eine VNC-Verbindung aufbauen zu können. 
  Durch Auswahl der Option ,,View only'' wird das Ansehen des Bildschirminhalts erlaubt.
  Die Wahl ,,Full access'' erlaubt die Fernsteuerung von der Steuerkonsole aus.
 \item Hier wird allen anderen Benutzern das Recht erteilt eine VNC-Verbindung aufbauen zu können (z.Z ohne Funktion).
 \item Durch diese zwei Checkboxen kann die Teilnahme am Chat oder das Akzeptieren von Dateiübertragungen aktiviert werden (z.Z ohne Funktion).
\end{enumerate}
\begin{figure}[h]
  \begin{center}
    \includegraphics[scale=0.7]{bilder/clientConfigDialog}
    \caption{Konfigurationsdialog des PVS-Clients}
    \label{png:config}
  \end{center}
\end{figure}

\section{Dateiversand}
Durch anklicken des Menüeintrags ,,Send File'' kann eine Datei versendet werden.
Nach der Auswahl des Menüeintrags erscheint ein Dialogfenster, in dem entweder ein Empfänger
ausgewählt werden (in diesem Fall erhält nur dieser Empfänger die Datei) 
oder die Checkbox ,,Send to all'' aktiviert werden kann (dann wird die Datei an alle
angeschlossenen Rechner verschickt).

Falls die Datei an alle verschickt wird, ist eine kurze Wartezeit vor Beginn des Versands und
nach dem (scheinbaren) Ende des Versands notwendig.
Es ist nicht sinnvoll, den Versand abzubrechen, wenn die Datei bereits vollständig verschickt
wurde und anscheinend nichts mehr passiert, da einzelne Clients eventuell noch verlorengegangene
Stücke der Datei nachfordern müssen.
Das Versandfenster schließt sich automatisch, wenn alle Clients die Datei vollständig
empfangen haben.
