Two potential approaches:
1) Have each controller pass the ProjectData object along to the next controller (See the Day14DemoOpenNextWindow project inside the SharedClassRepo -- it passes a String from one window to the next, but you can do the same thing with ProjectData.)
2) Use something like the Singleton pattern (as we talked about in class), where you change it so that the ProjectData constructor is private (so the only place you can create a ProjectData object is inside the ProjectData class), and create a private static field named currentProject
and a couple public static methods:
a) ProjectData.openCurrentProject(File ...)
which creates a new ProjectData object and stores it in the currentProject
field.
b) ProjectData.getCurrentProject()
that returns the currently loaded project object
After that pattern is used, then every Controller can simply call ProjectData.getCurrentProject() when they need access to the same project object, and they don't have to pass it along to each other...