@startuml doc-files/ipc08_02_SequenceDiagramCreateShareAnalyis.png

actor Actor
  participant "<<Analysis>>\nSharingFilesExtension" as sfExt
  participant "<<Analysis>>\nJFrame" as JFrame
  participant "<<Analysis>>\nSharingFilesController" as sfControl
  participant "<<Analysis>>\nTcpServer" as tcp
  participant "<<Analysis>>\nServerSocket" as svSocket


  Actor -> sfExt : starts use case
  sfExt --> sfControl : create()
  sfExt --> JFrame : create()
  Actor -> JFrame : Select Path
  JFrame -> sfControl : setPath(path)
JFrame -> Thread : create(new Runnable)
Thread --> WatchServive : create()
WatchServive --> File : getFileSystem().newWatchService();
File --> File : register(watcher, ...);
  Actor -> JFrame : Select port
  JFrame -> sfControl : startShare(port)
  sfControl --> tcp : create()
  tcp -> svSocket : accept()
  sfControl -> tcp : startFileShare(port,array<file>)
  tcp --> svSocket : create()
  tcp -> svSocket : start()


@enduml