I'm not attempting to reference the Beatles so much as just let you know that work on the design of my application is proceeding.
In my eager examination of the program specifications, I've thought it through to breaking up several modules into further modules more numerous in quantity. The number one case was examining the Locations module and seeing that the hierarchical nature of details meant it would possibly be better diverging them into two or more modules. Right now, I'm breaking it into the following:
- One module for all details above the star system level. This is for reasons such as how a stellar civilization might organize the multitude of star systems into sectors, sectors into provinces, provinces into greater galactic divisions encompassing larger range of travel, et cetera.
- One module for all details of the star system and associated planets, moons, and other orbital phenomena; this also includes functionality to generate the details associated with specific locations on the world, potentially all the way down to street level for site planning.
A secondary case might be merging the Civilization Builder and the Technologies modules, as the former uses the latter, and not many other modules will have need to use the latter. The Technologies module will provide information for a culture's tech level and tech tracks, as well as showing what technologies are available, and possibly extending to incorporate the economic technologies and resources – all details that could be handled by, and may be moved to, the Civilization Builder module.
Further Exposition on the New Project Wizard.
Java's Swing style of components certainly have a lot of pluses going for them, creating wizard dialogs being but one, which is another focus of my attention right now. In further thought to the previous post about how to functionally style the new project wizard, I've been working on designing and implementing the overall theme of how the wizard might look.
The wizard has a number of content pages to be designed. At the beginning, it will have an introductory page to kick off the process, and at the end, it may have a page indicating successful completion, as well as possibly one or more pages for different potential failure to complete the wizard steps. Even more involved, the steps in the middle of the wizard may be quite numerous; I'm looking into seeing how far the wizard can be broken into separate modules.
I already started with a new module just for the New Project Wizard, which will be host to only that wizard. I'm starting with nine pages for the wizard dialog, which should allow for a dynamic-enough experience in generating the project file to a point where you're ready to start from. These are the wizard dialog's pages as I see them, at this point:
- The Introductory page, with generalized text found in other wizards like a brief text paragraph describing the function of the wizard.
- A page for selecting type of writing project. (Optionally, this may be merged with the introductory page, as many people tend to see text-only pages as a rather moot step.)
- A page for selecting the writing project's genre, sub-genre, and theme.
- From the above, a page that itemizes which data the user may want to have automatically generated (locations, lifeforms, powers/fx, characters, organizations, technologies, civilizations, chronologies, plotting, et cetera - generally in this order, due to latter modules depending on former ones). I'm not incorporating individual introductory pages for each of them; each module for which data is generated will have its own wizard pages that will plug into the main wizard dialog.
- Up to three pages to be used for various error, failure, or malfunction information, at least one page of which may potentially allow the user to recover against data lost from an error.
- One page for any other unexplainable malfunction or failure to complete, that cannot otherwise be fixed or worked around. With proper design, the user may never need to see this page, but I'm including it as a precautionary step (read: a more sane way to bail out of the wizard than having a default "scary" error dialog pop onto the screen).
- The final page, indicating the wizard dialog finished successfully; this point is reached only when all desired requirements have been satisfied, and all generated data has been written to disk.
Of course, this is all long-winded exposition which the end-user probably never needs to worry about, but I needed to write about something and it was quick to come to mind. . . .