ParadoxosModManager
ParadoxosModManager copied to clipboard
More efficient UX
The application starts by asking for which Paradox game is the configuration. But the users don't play all the time with all the games. Besides they don't necessary have all.
What we can imagine
- Set at first/default game the last game used with the application
- If we detect that the user only uses the application for only one game (for example there is 10 usages for one game and 0 for others), the application starts directly on the configuration list of this game. Of course, there will be an action to go to the default main window
I imagine (a bit like the nexus mod manager) :
- Store user preferences for all games (doc path for now and game install path in the future) -> a settings.xml ?
- Select the last game used
- Possibility to set one game as default one -> the app will start directly in the config list (and like you said : an action to change param)
I didn't know the https://github.com/Nexus-Mods/Nexus-Mod-Manager. Unfortunate it is developed in C#.
I agree with your ideas.
First window (i choose to always be able to choose my game) :

And the second window :
I can select another game or with "Change Default Game" (don't think the name is very good) go to the first window (for us i think that just this last option would be interesting)
I've got a little time today so i make some basic things to the save parameters options.
- Structure (settings.xml)
- Methods needed
- When use them
The settings.xml is functional. The app store the last correct path used and use it for the next launch.
The xml structure is completely dynamic, we can add/modify as many parameters as we want for each game with the following schema : <paramName value="stringValue">
calling methods public HashMap<String, String> getGameSettings(Integer gameID) → get ALL parameters for a game and store them in a global var (we can add a version which take only one parameter for more basic infos) public void modifyGameSettings(Integer gameID, String attrName, String value) → edit 'attrName' element with 'value' value for the game element corresponding to 'gameID'. It create the 'attrName' element if it doesn't exists (same for game element)
Just need some tests, and if it's ok it's ready for a 0.5.0 (some peoples in the Paradox's forum will be happy ^^)
I have not seen any bug.
What are your plans for the other part of this issue ?
With attribute in the game, we can count the game usage number and order the list from the more used to the less. We can also put an index as attribute and propose to the user to order the games. I have personally put CK2 first, EUIV second and removed the 2 others because I don't own them.
With the methods we can store lots of interesting values like the number of selection of the game. The game install path (for install outside of steam).
I think we can also make user able to make his own config (set a name, a path to game folder and doc folder) like having together 2 (or more) config for a game with each his own settings. For example : default Stellaris, and a "Stellaris (on D:)" config with another path etc...
We can increase the window width in order to avoid scroll

Ok i will work on that (at the same time than better UI resize).
Found a new bug for new features "return" ("←" button), it keep the lists of the previous game used. For example i choose "Stellaris" at launch, go back and choose "CK2" it show the stellaris mod lists (and create some errors), it seems that i forgot to update a global var ^^
Why !? Why i don't discover that tool before :'(
http://gluonhq.com/products/scene-builder/
Here in 10min i made my table view completely re-sizable
Will be usefull too http://code.makery.ch/library/javafx-8-tutorial/ for the work with FXML (with lot of languages)
All main window width are now 800x600 ListCreator is re-sizable (not ListManager, reason unknown)
In ListCreator, the ModList object isn't modified anymore (the modifications are applied only at save in the xml)