Einsatzpunkte: Initiales Verbinden: Server: (1) Encodings versenden: OutgoingProjectNegotiation.sendFileList via MetaData (um Encoding erweitern) Client: (2) Encodings empfangen: ProjectsAddedManager.handleFileListActivitiy (via MetaData), EncodingManager speichert (3) Encodings setzen: IncomingProjectsNegotiation.accept nach Aufruf von acceptArchive Während der Session: Server: (4) Encoding versenden: ProjectDeltaVisitor.handleFileDelta Client: (5) Empfangen + setzen: SharedResourceManager.exec(FileActivity) Ablauf der Encodingsynchronisierung beim Sessionstart: Beim Aufbau einer Sitzung sendet der Server in OutgoingProjectNegotiation.sendFileList() eine Liste aller Dateien, die geteilt werden. Zu jeder Datei gibt es ein MetaData-Objekt, in das das Encoding eingebaut wird. (Frage: Wo wird das Encoding des Projekts übertragen?) Der Client empfängt diese Liste in ProjectsAddedManager.handleFileListActivitiy und übergibt an den EncodingManager. Nachdem die Dateien versendet und entpackt sind, wird er wieder aufgerufen und setzt die nötigen Encodings. Ablauf der Encodingsynchronisierung während einer Session: Wenn sich während der Session das Encoding einer Datei ändert, dann wird dieses Ereignis vom ProjectDeltaVisitor abgefangen. Er versendet eine FileActivity, die das neue Encoding enthält. Diese wird vom anderen Teilnehmer im SharedResourceManager in der Methode exec() an den EditorManager übergeben, der das Encoding setzt. EncodingManager (noch keine Methoden, nur eine Übersicht, was er können muss): (a) Encoding-Liste annehmen (2) (b) Encodings von allen Dateien setzen (3) (c) Encoding einer Datei setzen (3,5) (d) Encoding des Projektes auslesen (c) (e) Encoding einer Datei auslesen (c) Fragen: Wie sieht es aus mit komplett geshareten Projekten, braucht man da ebenfalls die Encodings? Klappt das System auch mit mehr als 2 Teilnehmern.