File: /Users/shatabdi/Education/GitHub/se450_project/src/main/Main.java
1
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