| 
									
										
										
										
											2016-08-30 13:29:12 +02:00
										 |  |  | @startuml | 
					
						
							|  |  |  | package com.iluwatar.model.view.presenter { | 
					
						
							|  |  |  |   interface FileSelectorView { | 
					
						
							|  |  |  |     + close() {abstract} | 
					
						
							|  |  |  |     + displayData(String) {abstract} | 
					
						
							|  |  |  |     + getFileName() : String {abstract} | 
					
						
							|  |  |  |     + getPresenter() : FileSelectorPresenter {abstract} | 
					
						
							|  |  |  |     + isOpened() : boolean {abstract} | 
					
						
							|  |  |  |     + open() {abstract} | 
					
						
							|  |  |  |     + setFileName(String) {abstract} | 
					
						
							|  |  |  |     + setPresenter(FileSelectorPresenter) {abstract} | 
					
						
							|  |  |  |     + showMessage(String) {abstract} | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   class FileSelectorStub { | 
					
						
							|  |  |  |     - dataDisplayed : boolean | 
					
						
							|  |  |  |     - name : String | 
					
						
							|  |  |  |     - numOfMessageSent : int | 
					
						
							|  |  |  |     - opened : boolean | 
					
						
							|  |  |  |     - presenter : FileSelectorPresenter | 
					
						
							|  |  |  |     + FileSelectorStub() | 
					
						
							|  |  |  |     + close() | 
					
						
							|  |  |  |     + dataDisplayed() : boolean | 
					
						
							|  |  |  |     + displayData(data : String) | 
					
						
							|  |  |  |     + getFileName() : String | 
					
						
							|  |  |  |     + getMessagesSent() : int | 
					
						
							|  |  |  |     + getPresenter() : FileSelectorPresenter | 
					
						
							|  |  |  |     + isOpened() : boolean | 
					
						
							|  |  |  |     + open() | 
					
						
							|  |  |  |     + setFileName(name : String) | 
					
						
							|  |  |  |     + setPresenter(presenter : FileSelectorPresenter) | 
					
						
							|  |  |  |     + showMessage(message : String) | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2016-09-18 17:51:09 +03:00
										 |  |  |   class FileLoader { | 
					
						
							|  |  |  |     - fileName : String | 
					
						
							|  |  |  |     - loaded : boolean | 
					
						
							|  |  |  |     + FileLoader() | 
					
						
							|  |  |  |     + fileExists() : boolean | 
					
						
							|  |  |  |     + getFileName() : String | 
					
						
							|  |  |  |     + isLoaded() : boolean | 
					
						
							|  |  |  |     + loadData() : String | 
					
						
							|  |  |  |     + setFileName(fileName : String) | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2016-08-30 13:29:12 +02:00
										 |  |  |   class FileSelectorPresenter { | 
					
						
							|  |  |  |     - loader : FileLoader | 
					
						
							|  |  |  |     - view : FileSelectorView | 
					
						
							|  |  |  |     + FileSelectorPresenter(view : FileSelectorView) | 
					
						
							|  |  |  |     + cancelled() | 
					
						
							|  |  |  |     + confirmed() | 
					
						
							|  |  |  |     + fileNameChanged() | 
					
						
							|  |  |  |     + setLoader(loader : FileLoader) | 
					
						
							|  |  |  |     + start() | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2016-09-18 17:51:09 +03:00
										 |  |  |   class App { | 
					
						
							|  |  |  |     + App() | 
					
						
							|  |  |  |     + main(args : String[]) {static} | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   class FileSelectorJFrame { | 
					
						
							|  |  |  |     - area : JTextArea | 
					
						
							|  |  |  |     - cancel : JButton | 
					
						
							|  |  |  |     - contents : JLabel | 
					
						
							|  |  |  |     - fileName : String | 
					
						
							|  |  |  |     - info : JLabel | 
					
						
							|  |  |  |     - input : JTextField | 
					
						
							|  |  |  |     - ok : JButton | 
					
						
							|  |  |  |     - panel : JPanel | 
					
						
							|  |  |  |     - presenter : FileSelectorPresenter | 
					
						
							|  |  |  |     - serialVersionUID : long {static} | 
					
						
							|  |  |  |     + FileSelectorJFrame() | 
					
						
							|  |  |  |     + actionPerformed(e : ActionEvent) | 
					
						
							|  |  |  |     + close() | 
					
						
							|  |  |  |     + displayData(data : String) | 
					
						
							|  |  |  |     + getFileName() : String | 
					
						
							|  |  |  |     + getPresenter() : FileSelectorPresenter | 
					
						
							|  |  |  |     + isOpened() : boolean | 
					
						
							|  |  |  |     + open() | 
					
						
							|  |  |  |     + setFileName(name : String) | 
					
						
							|  |  |  |     + setPresenter(presenter : FileSelectorPresenter) | 
					
						
							|  |  |  |     + showMessage(message : String) | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2016-08-30 13:29:12 +02:00
										 |  |  | } | 
					
						
							|  |  |  | FileSelectorJFrame -->  "-presenter" FileSelectorPresenter | 
					
						
							| 
									
										
										
										
											2016-09-18 17:51:09 +03:00
										 |  |  | FileSelectorStub -->  "-presenter" FileSelectorPresenter | 
					
						
							| 
									
										
										
										
											2016-08-30 13:29:12 +02:00
										 |  |  | FileSelectorPresenter -->  "-loader" FileLoader | 
					
						
							|  |  |  | FileSelectorPresenter -->  "-view" FileSelectorView | 
					
						
							|  |  |  | FileSelectorStub ..|> FileSelectorView  | 
					
						
							| 
									
										
										
										
											2016-09-18 17:51:09 +03:00
										 |  |  | FileSelectorJFrame ..|> FileSelectorView  | 
					
						
							| 
									
										
										
										
											2016-08-30 13:29:12 +02:00
										 |  |  | @enduml |