JDecisiontable Changelog

What's new in JDecisiontable 2.3.3

Jun 21, 2017
  • Added an option which allows to write JSON files readable for humans.
  • Per default (the option disabled) the JSON is hardly readable for humans (i.e. the whole structure in one line).
  • With the option enabled the JSON is formatted, also known as pretty-printing, so that the user can compare two files and see what the differences are.
  • Applies to decision tables (*.5dt) and test specifications (*.5ts).

New in JDecisiontable 2.3.2 (Aug 12, 2016)

  • The language resources outside the jar was incorrect. It was not the folder where the jar file is but the current folder. So if you launch from /home/john/ java -jar path/to/jdt/JDecisiontable-2.3.1.jar this folder was not /home/john/path/to/jdt/ but just /home/john/. This made it impossible to roll out extra language files by copy them next to the jar file.

New in JDecisiontable 2.3.1 (Aug 12, 2016)

  • Open more than one file at once (decision table or node descriptions).
  • Make a screenshot of the current program window. The screenshot will not include the window title bar because this wastes space in documents.
  • Minor bugfix: When the verification of a decision table fails (= invalid decision table) it now displays the red icon as expected after the message box was closed.

New in JDecisiontable 2.3.0 (Aug 12, 2016)

  • Fixed a very minor bug which does not affect the function of JDecisiontable but test automation:
  • The objects behind the menu items for "Undo" and "Redo" did not got names so that the test automation solution could not find them.

New in JDecisiontable 2.3.0 Beta 1 (Jun 6, 2014)

  • FEATURE:
  • Implemented undo/redo feature.
  • CODE:
  • Tasks like getting a decision table object from JSON string were moved from main class to class DecisiontableChangeManager
  • which keeps not only track of changes but cares also about creating decision tables, building test specifications and building
  • reports. DecisiontableChangeManager only allows readable access to the decision table. So any tasks altering the decision table
  • were moved into DecisiontableChangeManager.

New in JDecisiontable 2.2.0 (May 22, 2014)

  • FEATURE: New menu point to copy the decision table from current tab to the clipboard. Ctrl + c works only when you click on the label on top of the tab first and then press Ctrl + c. (Catching Ctrl + c for writing the decision table to clipboard no matter what control has th focus would break the existing behaviour that you can copy the content any cell or range of cells to the clipboard.)
  • FEATURE: Two menu points to get a test specification (either with checking the decision table and splitting the rules or without both) from the decision table in the current tab and write it to the clipboard.

New in JDecisiontable 2.1.0 (May 15, 2014)

  • Changes that affect all users:
  • FEATURE: JDecisiontable now remembers the last path used to save a decision-table as JSON (*.5dt) or to create a decision table from a text file. If you save a decision table as JSON (*.5dt) a last saved path from above will be proposed. If no path was saved yet it proposes the home folder of the current user. If you want to export a decision table as CSV (*.dt.csv) or export a test specification (as CSV, *.ts.csv, or JSON, *.ts) it will check first if you saved the decision table as JSON (*.5dt). If so it proposes the same path and file name but the file name suffix for this type of file (see above). If you did not save the decision table as JSON (*.5dt) before it proposes the last path where the current user saved a decision table as JSON. It remembers this path as described above. If such path is not available it proposes the home folder of the current user.
  • BUGFIX: On Microsoft Windows you do not need to provide resource files (currently there are two, StringResource.json and StringResource_de.json) in the same folder with the JDecisiontable*.jar/JDecisiontable*.exe file any longer.
  • BUGFIX: On Microsoft Windows you may use Windows Editor (aka notepad.exe) to create, edit and save StringResource files. Sorry Microsoft for blaming Windows - it was my fault.
  • BUGFIX: Column headers on left table were always in English. Now they should appear in same language as menus, messages and so on.
  • FEATURE: If the existing rules fill the complete space available in right pane and then another rule is created it should scroll to the very right so the new rule is visible immediately.
  • BUGFIX: Added two non-editable rows at bottom of left table so if scroll the left table to bottom you got the last node on same height as is't decisions on the right table.
  • FEATURE: The left table shows as first column an ID for each node. The ID consists of numbers from 1..n.
  • FEATURE: When working on the right table the whole row of the left table gets a different colour. So the ID of the current node is highlighted too.
  • FEATURE: If you scroll down (horizontal) on left table the right table will move down too - and vice versa. Thus you see always each node in opposite to the corresponding decisions of the rules. At all, I won't recommend to create decision tables that large that one need to scroll up and down to view them because they are much to hard to understand. Better connect several small decision tables by using the successor field (last row of right table). But if you know what you're doing you can work on incredible large decision tables.
  • FEATURE: The user may choose the background colour for the active row in the left table when working with rules. The selected colour will be saved in the user preferences so this colour appears again after the program was quitted.
  • FEATURE: I added a new menu item: Help > Licence for JDecisiontable which shows the licence only. Help > About JDecisiontable now tells about this programs author, home page, and where it is hosted only.
  • Important for TRANSLATORs: I changed the resource strings "msgHelpHelp0" "msgHelpHelp1" and "msgHelpAbout0" "msgHelpAbout1" so that "msgHelp.*0" is always the string shown in the title of the dialog window while "msgHelp.*[1-9]" is the message text shown in the dialog window.
  • CODE/FEATURE: JDecisiontable now uses the much simpler facility de.mgmechanics.myflipflops.File.SimplestCsv instead of net.sf.opencsv (http://opencsv.sourceforge.net/). Therefore net.sf.opencsv was removed from project dependencies and THIRD_PARTY_LICENSES. The feature in it is that if you managed to copy line feeds or tab white-space in the description field of a node these white spaces will be removed in the CSV-file (but not in the 5DT- or 5TS-file).
  • BUGFIX: I changed the encoding for CSV files from UTF-8 without BOM to UTF-16LE (with BOM) because I figured out that Microsoft Excel can open these files just as it's own file format. No more "split text in columns"! Furthermore Microsoft Excel isn't able to decode CSV files encoded as UTF-8 without BOM properly becuase it doesn't use UTF-8 as default character encoding. So you can not use letters which are not part of the English alphabet like like German umlaut with version prior to 2.1. Therefore this is a bug-fix.
  • BUGFIX: In version 2.0.1 and earlier if you tried to save a file file.5dt in a folder my.path and typed only "file" at the dialog you got a file my.5dt due a unsuitable algorithm in the library myflipflops. This bug is fixed. (Workaround: Always type the file extension at the file save dialog.
  • FEATURE: The proposed file name suffixes for CSV files were extended: decision tables now are named *.dt.csv and test specifications are named *.ts.csv. Reason: If you want to export a decision table and it's test specification to CSV you never overwrite the file .dt.csv with .ts.csv. I use to export the decision table as CSV too for documentation purposes.
  • FEATURE: This one is interesting for translators: The StringResource files now must use {1}, {2}, {3} and so on to insert strings at run time. ({1} will replaced by the first string, {2} by the second and so on). The place holders specified by String.format(...) does no longer work!
  • FEATURE: I changed the numbers causing to switch the comparisons in the node (= left) part of the table. The existing combination was hard to remember. Now it is: 5: >, 4: > = , 3: =, 2: < =, 1 : < (Mnemonic: 5 is the biggest number, it is greater than the other numbers; 1 is the least number, it is less than the other numbers.)
  • Changes that affect developers only:
  • CODE: Moved GUI-tests from main project to a sub-project named "Test". Now you can build the whole project without running through all GUI-tests each time. Also, the ugly duplication of dependencies in the pom file is gone. "Real" Unit-tests (testing non-GUI classes) remains in the main project because they're done fast.
  • CODE: Updated myflipflops to version 1.1.0. First, it means to upgrade the code for reading text resources in JDecisiontable(String title, String[] args).
  • CODE: Replaced using class de.mgmechanics.myflipflops.io.File by java.io.file using de.mgmechanics.myflipflops.File.FileExtensionUtils.
  • CODE: Is uses now JDecisiontableLib version 2.0.0. There should be no changes in behaviour or any use case.
  • CODE: Updated included library Google Gson from version 2.2.2 to 2.2.4. Reason: There are some bug fixes available, read http://sites.google.com/site/gson/gson-roadmap
  • CODE: We use now an enumeration instead of raw strings as keys for text resources.

New in JDecisiontable 2.0.1 (Feb 19, 2013)

  • Solved the problem with german umlauts and other non-ASCII chars in the version for Microsoft® .NET®. The solution was to change the class de.mgmechanics.myflipflops.File.TextResource. Now it is possible to read _all_ resource files either from outside the jar or exe file XOR from inside. Which one will be used - those from inside or outside jar/exe? While launching JDecisiontable looks for a file StringResource.json in the same folder as the jar/exe is. If found it used it as default resource file and tries to read all other resource files from same place. If they are not there they are considered to be not available. So we ship the resource files for the Microsoft .NET - version of JDecisiontable in same folder as JDecisiontable*.exe and IKVM*.dlls. For the Java version this is not needed so all you need to run JDecisiontable is the JDecisiontable*jar file.
  • Ctrl + "#" does not work in JDecisiontable for Microsoft® .NET®. Use Ctrl + T instead.
  • Ctrl + "-" does not work in JDecisiontable for Microsoft .NET. Type "d" to get a "don't care" - decision.
  • Catching letters to know which key user typed does not work in JDecisiontable for Microsoft® .NET®. Thus, I removed the feature to use custom type keys and get displayed custom letters for non-editable cells, i.e. German localisation type an "j" and get a "J" for a Yes-decision. Now all localisations use same keys and get same letters displayed (as in English version). For this reason version 2.0.0 is considered broken and removed from download.

New in JDecisiontable 2.0.0 (Feb 13, 2013)

  • Testspecification -> export to csv -check: Tell that this is meant for intermediate results; "NOT VALID" (always provided because the dt is never checked using this menu) should give a hint because the dt is not finished yet. Otherwise use " Testspecification -> export to csv +check".
  • Write document about how to use probabilities basing on
  • show numbers for nodes as rules already have numbers; while rules have their numbers in a column header nodes needs it in a list next to most left column
  • add "Recent Files" to menu Decisiontable -> Open

New in JDecisiontable 1.2.0 (Jan 30, 2013)

  • Internationalization to enable translations in every language
  • Translation to German

New in JDecisiontable 1.1.3 (Jan 30, 2013)

  • Use of other libraries from same author:
  • JDecisiontableLib 1.2.2
  • myflipflops 1.0007
  • Bugfix: Fixed problem related to new feature "create a new decision table using a list of node descriptions as input". If you use "New from Node Descriptions" and hit "Save" it will save the decision table as file with suffix .txt rather than .5dt.

New in JDecisiontable 1.1.2 (Jan 12, 2013)

  • Added a facility to create a new decision table using a list of node descriptions as input. See JDecisiontable_Manual chapter "New from Node Descriptions".
  • Adjusted position of split pane divider at start to make the horizontal scrollbar on left side disappear. It will appear again if the the table on left side is made wider.
  • Added tests which prove that JDecisionstable reads *.5dt files created/altered using Windows(R) "Editor" editor (notepad.exe) to save it as "UTF-8" as expected. These tests were successful even for JDecisionstable version 1.1.1. If interested you may have a look at the documentation JDecisionstable_Manual at chapter "File Formats".

New in JDecisiontable 1.1.1 (Jan 7, 2013)

  • Added a facility to create a new decision table using a list of node descriptions (= Node.name) as input. This needs to add such a facility to JDecisiontableLib.
  • Wrote complete manual for application.
  • Wrote document about how to use probabilities.

New in JDecisiontable 1.1.0 (Dec 10, 2012)

  • If you used this software in version 1.1-PRE-5 and earlier: Since version 1.1-PRE-5 some checks moved from menu "Verify Dt" to menu "Tools" to avoid confusion. "Verify Dt" now contains menu items for the "run all checks" function and for such checks which are part of "run all checks". Other checks moved to "Tools".
  • You do not need to press the F2 key before typing some test into field "description" or successor no more! I found a simple and reliable solution, much simpler as expected.
  • New Feature: If the check if all rules are disjunct fails JDecisiontable shows the first two rules which are not disjunct with pink background. It also displays these two rules (= their positions) in the message. With the menu "clear results" you may reset the flags which were set during the check if all rules are disjunct (used to mark the first not-disjunct rules with pink background) causing the the pink background disappears. This may be important for disabled users.
  • BUGFIX: The column "Probability" on left side of the table does now displaying really percent values i.e. "12%"! You may insert "19" or "19%" to set make it displaying "19%". BUT NOW PROBABILITY IS ALSO STORED AS PERCENT. That means "100%" is stored as float value 1.0f, "10%" is stored as 0.1f ("f" for "float"), "1%" => 0.01f. The reason is that calculating with these number should work without further conversion: 100% of 100% => 1.0 * 1.0 = 1.0 => 100%; 10% of 10% => 0.1 * 0.1 = 0.01 => 1%. If 100% would be stored as 100.0f calculating with this numbers would fail: 100 * 100 = 10,000 => wrong! Thus this feature is now working as it should while the behavior of former versions is now considered to be a bug. It shows up to two decimal places. If you insert more than two decimal places it will round to two decimal places and store that number. I.e. your input of "123.456" will be shown and stored as "1.2346".
  • BUGFIX: Menu "copy rule" did not work by it's original shortcut Ctrl+C. Thus it was replaced it with new shortcut Ctrl+Shift+C.
  • New Feature: New menu "sum probabilities" which let raises a message showing you the sum of the probabilities for all nodes which has the isCondition flag set and for all other nodes as two numbers. This enables you to say "how probably will this condition raise?" or "how probably will this action run?" guessing importance of features or how expensive certain operations will be.
  • New Feature but a Feature less: I inserted a few command line options in version 1.0-PRE-4 as quick-and-dirty replacement for saving user settings. This options are now gone - but we have real saving of user preferences now! Please remove this options from desktop launchers and so on because they lead to an unnecessary error message "Could not open this file! ...". This does not harm, you may go on with your work. Instead of --debug switch the application will behave as if this switch is used (= print some messages i.e. if it could not open a file to STDOUT).
  • New feature: You may give any number of file names as parameters at command line causing that JDecisiontable tries to open them at launch. If one file does not exists the error message "Could not open this file! ...". This is not a problem, you can go on opening another table or creating a new one.
  • Improvement: When you insert a new rule and the last Yes-decision is replaced by a No-decision then the focus will be on that cell where replacing happened because this is in most cases the cell from which you will go on with setting decisions.
  • BUGFIX: Fixed that bug which made the application ask if you want to save the changes right after you saved it by "Save As".
  • I altered the "This file already exists" message because listing the complete path in it makes the message box too broad; thus I list the file name only now. (If you can break things by overwriting the wrong file I recommend the use of some version control software. See FAQ.)
  • New feature: You may use Ctrl + # to switch between both tables. Please read the FAQ above in this file for details.
  • New feature: Behavior of past versions: When the last rule is removed then a new rule is created automatically. All decisions of this new rule are "don't care" decisions. Change: Now the the first decision is a Yes - decision. (Note that this does not happens if you remove the last node with intend because it could overwrite data which the user would like to preserve.)
  • BUGFIX: Double-clicking with the mouse did not cause the fields "Description", "Probability", "Comparison" and "Successor" switch into edit mode to take the text the user just typed in.
  • New feature: Allow Backspace to clear fields "isCondition" and "isValid".
  • New feature: Now there is a check if all nodes have at least one Yes-decision in a valid rule. If this check fails JDecisiontable displays a message which nodes do not have at least one Yes-decision in any valid rule. Important: Any decision table for which this check fails can be still valid! Therefore this check is meant for detecting possible flaws in a decision table. Of course a decision table for which this check passes can be still invalid.
  • The update of the version 1.2.0 of the library JDecisiontableLib causes the file format *.5dt to change back to the same format as in version 1.0.x. But you should be able to work with any version of JDecisiontable using *.5dt files prepared with any version of JDecisiontable. This was successfully tested with *.5dt files made with version 1.0.2, 1.1-PRE- and 1.2.0.

New in JDecisiontable 1.0.1 (Aug 28, 2012)

  • BUGFIX: In one place in the sources, the decision table was cloned but the clone was used there a reference was expected. This could have serious odd effects in relation with checking and saving decision tables.
  • I'm glad that this software is released under the terms of the Apache License 2.0

New in JDecisiontable 1.0 (Aug 27, 2012)

  • BUGFIX: When the user saved a decision table and then closes it, JDecisiontable told the user that there are unsaved changes. Of course, there were no changes to save in this use case.
  • BUGFIX: Running Node -> Remove Node always removed the last node. I don't really understand what happened because I found the piece of code what caused the bug and I'm sure it did work in the past since I insert it to fix the problem that the wrong node was selected.
  • BUGFIX: Running Node -> Copy Node always copied the last node.

New in JDecisiontable 1.0 Pre 6 (Aug 4, 2012)

  • Now all files will be stored UTF-8 encoded. Reason: I discovered that json files were not UTF encoded. Thus tried to encode them with UTF-16 but was not able to open this files. I can not fix this problem with UTF-16 because I do not understand the error message which Java gave me. Thus I changed to UTF-8. Disallowed to reorder all columns. Reason: When you change column 1 and 2 and type something in column 1, row 1 the value in column 2, row 1 will change. You're typing to the right cell but the wrong cell is shown as focused.

New in JDecisiontable 1.0 Pre 5 (Aug 4, 2012)

  • Changed the icons on each tab. There are only three icons: red circle/cross: running all checks failed, green circle/black circle: running all checks passed, yellow circle/triangle: decision table was changed.

New in JDecisiontable 1.0 Pre 4 (Aug 4, 2012)

  • Switched to OpenJDK 7 (as provided by Fedora Linux) because some behavior of javax.swing.JTable and javax.swing.table.
  • seemed odd to me so I wanted to make sure that this is not an issue with openJDK
  • (No it doesn't - same 'strange' behavior in OpenJDK 7 as with OpenJDK 6.) Currently it is: $ /usr/bin/java -version $ java version "1.7.0_b147-icedtea" $ OpenJDK Runtime Environment (fedora-2.1.fc16.1-x86_64) $ OpenJDK 64-Bit Server VM (build 22.0-b10, mixed mode)

New in JDecisiontable 1.0 Pre 3 (Apr 20, 2012)

  • When editing the decisions in the right hand table the corresponding description in the left hand table gets a yellow background. When you return to the left hand table the yellow background disappears. This is a great improvement because it is difficult in more complex tables to see for which condition you're setting the decisions now.

New in JDecisiontable 1.0 Pre 2 (Apr 20, 2012)

  • When editing a cell and hitting enter the next cell get the focus now.
  • Bugfix: Inserting and removing a rule was done with Ctrl+R => this was wrong. Now: Insert a new rule by making a (independ) copy of the current marked rule and setting the last Yes to No: Ctrl+I. Insert an empty new rule by Ctrl+Shift+I.
  • Added a menue "Options" with an option to make the rows higher; unsetting the option will remove the extra height.
  • Made horizontal scrollbars appear and work. Right table: There is still a problem: All column has some fixed width. This wastes space if no successor is given and is not enough space to show full successor if some longer name is given. Left table: There may be not enough space to show longer descriptions. I'm working on this.

New in JDecisiontable 1.0 Pre 1 (Apr 20, 2012)

  • Decisiontable now uses JDecisiontableLib-1.0-RC-3. See http://sourceforge.net/projects/jdtlib/. There is a detailled blog entry from today describing a change wich affects the way you create new rules with Rule -> New Rule.
  • When creating a new rule by Rule -> New Rule the new rule will be set to be invalid. In most cases it is invalid so this change saved work and is less prone to errors.