ScreenshotI've been working on this for awhile. It's Java-based, so it runs fairly seamlessly on Windows, Linux, and Mac OS X. The only functional difference is that there's a bug under Windows, which prevents Java from registering the right-click properly (I'm pretty sure this is easily fixable, unlike with wxWidgets).
InterfaceAt the top of the page are the tabs for the currently opened projects.
Each component window has five buttons. The first four allow you to choose what the component is. 1 is the files tree, 2 is the editor, 3 is the output component (Shows status, warning, and error messages), and 4 will be the list of all files that the current project depends on. "M" allows you to swap a smaller component with the large component on the right.
All components can be resized. (That's what the two little circles are - Mac OS X's way of telling you where to drag.)
The file/folder editor is fairly self-explanatory. You can import C/VPs as subdirectories, or entire folder trees, or just a batch of files into any directory. You can also export any directory or set of files. There's also a "Details" dialog, where you can dig up all the information about a VP entry that's stored in the project.
The editor supports text files as well as JPEG, PNG, BMP, WBMP, GIF, PCX, and (to some extent) TGA. You can't actually edit image files right now, though you can edit and save text files in the active project. I'm unclear on how feasible DDS support is. I've done some cursory searching and haven't been able to find any example source on decompressing DDS files. Sound support hasn't been started yet.
I've been considering redesigning the interface to use multiple windows. This has been a bit of a holdup for me. I'm pretty attached to the current design, because it's almost exactly what I planned since day one, but having multiple windows with only one component in each (No 1234 switching) seems like it would be much cleaner.
Under the hoodI've completely rewritten the VP loader I used for VPMage and Polonius, and been as careful as I could about writing VP files. Generally, it should either write a completely good VP file, or fail and erase the partial file with an error. (There are some special partial cases where it's unable to write a file, and will go on to write the rest of the file with a warning...but I think I'm going to remove that functionality)
Importing and exporting "package files" is done modularly. Adding new package types is pretty easy, mostly just a matter of deriving a new class and filling out the functions.
VP file support is complete. CVP read support is about 90% complete (But untested). Unfortunately, neither supports decryption of FS1-encrypted files at this point. Given that the algorithm is protected by licensing, it's unlikely that I'll end up including it in Maja.
I've done my best to keep the GUI separated from the underlying library, so a command line tool should be fairly straightforward to write.
One thing that's incomplete right now is better "Sync" and "disconnected" status support. Files that get removed are considered "disconnected", while files that are modified (outside of Maja) are considered to have gone out of sync. The interface doesn't have a good way of letting you reconnect moved files right now, for example.
Odds and endsThis is actually the program I've started going to whenever I need to consult a TBL file in a VP file. I haven't had to install VPView yet.
Click me for the release