File: /Users/shatabdi/Education/GitHub/se450_project/src/main/Main.java

1     // this class is copied from project starter code except few lines
2     package main;
3     
4     import controller.IJPaintController;
5     import controller.JPaintController;
6     import model.interfaces.IObserver;
7     import model.others.CommandHandler;
8     import model.persistence.ApplicationState;
9     import view.Gui;
10     import view.GuiWindow;
11     import view.PaintCanvas;
12     import view.adapter.MouseHandler;
13     import view.interfaces.IGuiWindow;
14     import view.interfaces.IUiModule;
15     import view.interfaces.PaintCanvasBase;
16     
17     public class Main {
18     
19     	public static void main(String[] args) {
20     
21     		PaintCanvasBase canvasBase = new PaintCanvas();
22     		IGuiWindow guiWindow = new GuiWindow(canvasBase);
23     		IUiModule uiModule = new Gui(guiWindow);
24     		ApplicationState appState = new ApplicationState(uiModule);
25     		MouseHandler mouseHandler = new MouseHandler(canvasBase, appState);
26     		canvasBase.addMouseListener(mouseHandler);
27     		canvasBase.addMouseMotionListener(mouseHandler);
28     		CommandHandler commandHandler = new CommandHandler();
29     		commandHandler.registerObserver((IObserver) canvasBase);
30     		IJPaintController controller = new JPaintController(uiModule, appState, canvasBase, commandHandler);
31     		controller.setup();
32     
33     	}
34     }
35