@startuml
'https://plantuml.com/sequence-diagram

class ConnectWebsite{
    - driver: Chromedriver
    - gui: GUI
    - URL: String
    - Data: ArrayList<WebElement>

    + Connector(Gui gui)
    + Open()
    + Connect()
    - Collect(): ArrayList<WebElement>
    + Close()
}

class Writer{
    - file: File
    - chekData: CheckData

    + Writer(CheckData checkData)
    + ReadFie()
    + WriteFile()
    + ReturnStatus()
}

class CheckData{
    - connector: Connector
    - gui: GUI
    - file:
    - AllowData: Boolean
    - UsedData: ArrayList <String>
    - Countries: ArrayList <String>

    + CheckData(Connector connector, Gui gui)
    + ScanData()
    + Show()
    + ReadFile()
    + UploadFile()
    + getData(): ArrayList <String> UsedData
 }

class GUI{
    - Frame: JFrame
    - connector: Connector
    - chekData: CheckData
    - Search: Boolean
    - URL: String

    + GUI(Connector connector, CheckData chekData)
    - Window()
    - Shower()
    - SearchBar(): String
}

interface IButton{
    + createButton()
    + action()
}

class uploadButton{
    - chekData: CheckData

    + uploadButton(CheckData checkData)
}

class confirmButton{
    - writer: Writer

    + confirmButton(Writer writer)
}

class cancelButton{
    - writer: Writer

    + cancelButton(Writer writer)
}

class searchButton{
    - connector: ConnectWebsite

    + searchButton(ConnectWebsite connector)
}

IButton <.. uploadButton
IButton <.. confirmButton
IButton <.. cancelButton
IButton <.. searchButton

GUI <-> ConnectWebsite

CheckData <-> GUI

Writer <- CheckData

uploadButton <- CheckData
confirmButton <- Writer
cancelButton <- (confirmButton, Writer)
searchButton <- ConnectWebsite

confirmButton <|- uploadButton
confirmButton <|-- cancelButton
confirmButton <|-- searchButton

@enduml