TreeForm updated to 1.1

After 11 years, I have finally written a new update to TreeForm to address the issues people have been having with incompatibility with newer operating systems. This version of TreeForm is also a LOT easier to run and install. On Windows and Linux machines with Java Installed, you can just click and run the JAR file directly – all the menus and help screens are incorporated directly, and the file runs anywhere. This helps a LOT with university computers where you often are not allowed to install software.

On Macs, I have provided a package that will install the software. It still requires permission through the “security and privacy” tab of “system preferences”, but after that it will run, even on the Mojave operating system. (If anyone knows how to get Apple to let this app install without activating their “gatekeeper” program, please let me know. I really do not enjoy Apple’s war on open-source programs.)

This version also fixes the color chooser bugs that Oracle inadvertently introduced, allowing color choices to be available again. I have also updated the help, about, and what’s new screens. Lastly, I disabled the custom look and feel – TreeForm now obtains the operating system’s look and feel, and so is slightly different on each system.

You can always find TreeForm at SourceForge, and I will soon put the new source on gitHub.

7 thoughts on “TreeForm updated to 1.1

  1. Jiahao Chen

    Dear Dr. Derrick,
    I download the latest jar, but failed to run it on Windows 10. Here’s the error messgae:

    >java -jar TreeForm.jar
    Aug 10, 2019 7:07:25 AM userInterface.Start main
    INFO: Launching the application…
    Exception in thread “main” java.util.MissingResourceException: Can’t find bundle for base name TreeFormBundle, locale en_CA
    at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
    at java.util.ResourceBundle.getBundleImpl(Unknown Source)
    at java.util.ResourceBundle.getBundle(Unknown Source)
    at userInterface.UserFrame.seti18n(UserFrame.java:408)
    at userInterface.UserFrame.(UserFrame.java:253)
    at userInterface.Start.main(Start.java:63)
    Caused by: java.lang.NullPointerException
    at javax.swing.ImageIcon.(Unknown Source)
    at TreeFormBundle.(TreeFormBundle.java:35)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at java.util.ResourceBundle$Control.newBundle(Unknown Source)
    at java.util.ResourceBundle.loadBundle(Unknown Source)
    at java.util.ResourceBundle.findBundle(Unknown Source)
    at java.util.ResourceBundle.findBundle(Unknown Source)
    at java.util.ResourceBundle.findBundle(Unknown Source)
    … 5 more

    It seems like a languageTag/Locale issue.
    Besides possible approaches to fix this issue, I am also hoping that you may publish this project on Github, so that the open-source community may contribute to this project.

    Thank you in advance!

    Reply
    1. Donald Derrick Post author

      I will have to find a windows machine to test this with. I really don’t know why my language file would encode on mac but not windows, but in theory I should be able to fix this relatively quickly once I am back from my vacation. I expect a fix by Monday or Tuesday.

      Reply
  2. Marc

    I’m having the exact same problem. It’s now September 3, 2 weeks later, and my homework is due day after tomorrow. (Of course, it didn’t help that my PC crashed and I had to get a new one and freshly install Java.) Will the fix be ready tomorrow, or do I need to draw my syntax trees by hand (which is forbidden, by the way)?
    What’s weirdest to me is that the locale is not defaulted to EN_US, but EN_CA instead.

    Reply
    1. Donald Derrick Post author

      Two things: 1) Download the previous version from SourceForge. It should still work. 2) I *think* I fixed the problem, but don’t have access to a Windows 10 machine on which to test, so if you email me at donald.derrick@canterbury.ac.nz I will be able to send you the new draft, which should work. 3) I wrote the program in Canada, and wrote the internationalization file, which in the old version of JAVA defaulted to EN_CA no matter what. Apparently, the update overrides my commands – but only on Windows 10 machines (grrr.)

      Reply
      1. Donald Derrick Post author

        I hope loading the previous version from sourceforge worked for you. I have tried to solve this windows problem for several hours without success, and it may be a few *weeks* before I can find the time to solve the problem. Basically Java implemented different rules for different operating systems despite their stated goal to not do such things.

        Reply
  3. Aleks

    Dear Donald,

    I’ve been trying to run TreeForm on Linux (Ubuntu 18.10) and I first get the error message that the jar. file is not executable (“the file ‘../TreeForm.jar’ is not marked as executable. If this was downloaded or copied from an untrusted source, it may be dangerous to run). I resolved this issue by using the command “sudo chmod +x”. Now, when I click on the java file nothing happens. When I run it through the terminal I receive the error message “Exception in thread “main” java.lang.NoClassDefFoundError: sun.misc.Launcher
    at userInterface.Start.(Start.java:54)”. I’ve downloaded and tried to run TreeForm 1.0.3 and TreeForm 0.9.10. Thanks for your help.

    Best
    Aleks

    Reply
    1. Donald Derrick Post author

      You likely have a too-new version of Java. I have been trying to deal with the fact Java decided to unilaterally stop supporting the use of i18n for graphics files. This is actually a disaster for TreeFrom because I integrated i18n into EVERYTHING. I will need a weekend to fix this, and I wont’ have one until January.

      Reply

Leave a Reply to Marc Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.