File Name: Apropos Edit
File Submitter: Vauria
File Submitted: 24 Jun 2016
File Category: Other
Requires: Apropos, Java SE Runtime Environment 8 (u77 or later)A Database editor for gooser's Apropos mod, powered by Java Swing and Google's JSON parser, GSON. Apropos relies on a folder structured database of JSON formatted text files, with one file for each stage of an animation. This usually means you need a minimum of four files open to browse or edit the lines for an animation or position, and it can be very easy to make mistakes that leave unparseable JSON.
As such, the aim when creating this editor was to provide a single application that makes browsing and editing an Apropos Database easier, faster, and more approachable.
Requirements:
Apropos. This editor isn't good for much else.
Java SE Runtime Environment 8. Can be ported to Java 7 on request, but I do make use of some of 8's features. Not to mention that you should always use the latest release
Current Features:
1.0
- Select any database folder on your computer.
- Browse through the list of automatically fetched Actor Combinations.
- Display an entire position's file's, divided and indented by stage and perspective.
- Edit any opened line simply by double clicking and typing away.
- Add new lines, and duplicate or remove existing lines with the right click menu.
- Wipe entire sections or stages if you wish to start over.
- Write button to commit all your changes in perfect JSON to be immediately available in game.
- Simulate Apropos on a set of files by replacing {TAGS} with randomly chosen synonyms and highlight one line from each section to form a set that could have been chosen in game.
- Open scenes in new windows to make it easier to look for inspiration for new files.
- Lines in new windows are fully editable, so if you spot a mistake while working on a file in the main window, you can edit and commit the changes from the external window.
- Copy an existing position's lines to a new position provided by name, automatically renaming the files to match the new position name and loading the new files into the main window.
- Unify Formatting across the entire database to match the format outputted by the editor, fixing any mixed tabs and spaces or redundant newlines. Will report any JSON Errors in the databases files.
- Quick descriptions for each button are given with tooltips by hovering over the (?) symbol.
- Program will remember it's position and size onscreen when closed, as well as any database locations you've added and the actor names chosen for simulation to be re-loaded when you next open it.
- If a chosen folder has a listing in the UniqueAnimations list, the Unique position will be auto-selected.
- Window is fully resizable, so make it as big or small as you want.
- Minimising the main window will minimise every open sub window, and re-maximising any window will bring every window back up.
- Copy an existing position's lines and add them to the matching sections in another existing position
- Hotkeys for navigating the application faster, visible by hovering over each button
- Add new Stages or remove existing ones
- Copy lines, perspectives and stages around in the open position
- Positions combo-box will only contain available positions
- Rape checkbox will auto-select based on available files
- Download the .zip attached here or just the .jar from the Latest Release on GitHub.
- Extract the .zip, discarding the sources if you don't care about them.
- Place the .jar in the /Apropos/ directory, so in the same folder /db/ folder is in.
- Launch the jar by double clicking, or with command line "java -jar Apropos_Edit-1.0.1.jar".
- Select "<other>" from the combo-box to the right of "Apropos \db\ Location"
- Select the db folder that should be right in front of you, otherwise navigate to the database you want to open.
- Select a folder from the combo-box below Animation Options, a position from the box below that, and whether or not you want the Rape files.
- Load!
- Right click on lines for options like Clear, Remove or Duplicate, Double Click to edit, escape/click somewhere else to cancel, enter to save the new line.
- Click the write button to save your changes!
- CTRL + W - Close Window
- CTRL + O - Open Selected Animation
- CTRL + SHIFT + O - Open Selected Animation in New Window
- CTRL + S - Save (Previously Write) your changes
- CTRL + N - Copy Selected Animation to new position
- CTRL + SHIFT + N - Copy Selected Animation and append it to an Existing Animation
- CTRL + R - Simulate (Run) the lines, opening the names dialog
- CTRL + SHIFT + R - Simulate (Run) the lines, skipping the names dialog
- ALT + F - Select the Folder combo-box
- ALT + P - Select the Positions combo-box
- ALT + R - Select the Rape checkbox
Best way to keep up with planned features is to check the Open Enhancements on the Issue Tracker, where you can also suggest new features and be automatically notified when those features are worked on or completed.
Foremost, the greyed out buttons on the side panel:
- (T) Fix Comma Errors - Will scan for JSON Validation errors in your database and automatically attempt to fix them by manually reading and rewriting the file.
- (T) List Broken Synonyms - Will scan the database for any lines that have {TAGS} that don't have any entries in Synonyms.txt or other synonym files, displaying the lines so you can fix the tags manually. Will find any typos in tags or tags from files that may have come from other databases without the synonyms entries to match.
- (T) Suggest Synonyms - Will scan the database for any words that also exist under a Synonym tag, so you can add new tags to the Synonyms file and then retroactively replace words the tag produces in existing lines.
- Undecided as of yet.
- (T) Support for Editing the various Synonyms files
- (T) Making simulation pick a single arousal and wear and tear level for the entire simulation, optionally configured.
- (T) Support for Themes, to copy animations and synonyms between, adjust weighting, simulate with a given theme, etc.
- (T) Support for Keyboard only navigation, so between lines, between animations and between databases.
- (T) Wordwrap on the description lines and their attached editors.
- (T) Load recently displayed lines from the Apropos logs for quick editing.
- (T) Regex powered entire database search, like grep but won't require you to navigate to each file, find the line, edit it correctly, etc. Would display every matching line for every animation in the entire database.
- (T) Will only happen if I can find any existing libraries that support the process, but potentially, maybe, actually displaying the animation (or at least a few frames from it) while you work on lines for it. Ideally at least looking like Leito's Animation Previews. I don't have much hope for this one, but can't deny it would be sweet. If anyone has any ideas, even a non-java workflow, I'd love to hear it. Potential alternative would just be very dedicated screenshotting, I guess.
- There are no loading bars. Every action that could take a while will provide visual confirmation upon completion, but don't spam "Unify Formatting" when the completed dialog doesn't pop up within a few seconds. It's writing 800+ files, give it a bit. Spamming it won't break anything, but it will produce a scary list of exceptions.
- (T) Editing a simulated label does not update the simulated text
- (T) Writes use Unix Line Endings instead of Windows CRLF. You will not be able to open the files in Notepad.exe after writing or unifying formatting, but any text editor worth using will handle it fine. Also of note, written lines will have the opening brace on the same line as the key, instead of on a newline as it is written in the current database downloads. If you aren't a fan of the One True Brace Style, I'm afraid I don't have an easy way to fix this. Could be done if it really bothers people, but it would add a fair bit of computation to every write.
- A NullPointerException seems to get thrown the first time the application is opened, and only the first time. If it ever happens more than once, please report the issue with the displayed Stack Trace
If you find an issue that isn't listed above or have an idea for a feature that isn't currently planned, please tell me about it either in the Support Topic or on the Issue Tracker.
If the issue involved an exception, please include the StackTrace and any steps required to reproduce the error. If the program didn't display the stacktrace, open command line, CD to the .jar's location, and execute it with "java -jar Apropos_Edit-1.0.1.jar >> output.txt". Perform any steps you need to get to the error, then edit the application, and find the output.txt file that will be in the same directory as the .jar. Attach that to any post or issue you make.
Source:
The entire project is open source, and the included source zip is an importable Eclipse Project. Source files, commit log and release history is available on GitHub. If you're interested in contributing, feel free to fork and send a pull request.
Credits:
gooser for his work on the Apropos mod which is this program's sole reason for existing.
Google and the 41 Contributors who made gson.
James McMinn for his EditableJLabel that provided the base implementation for the editable fields I use for every line.