Stage 1 Planning

Fix soon

System Requirements should include Mac and Linux. Don't make requirements unnecessarily restrictive.

Make sure all installation instructions needed are on the download/install page.

Feature Number Status Contact
1 Working Bill
2 Stage 1 Terence
3 Working (needs to be proven) Brian
4 Stage 1 Bill
5 Not Replicated Bill
6 Stage 1 Jim
7 Can't Reproduce Every time Jamie
8 Can't Reproduce Every time Jamie
9 Not Replicated Jim
10 Not Replicated Brian
11 Not Feasible Terence

Features for Stage 1

1. Fix Anomaly on startup - Format menuitem disabled.
Response Working in Stage 0.1 Release

2. Formatting should not cause file state to become "uncompiled."
Response by Terence This is not a problem. The compile function can be called after the the file is formatted. There is also a feature in BPackage that allows the whole package to be compiled. This is important because when a dependent class is changed in BlueJ, it causes the using class to also become uncompiled. So, calling compile on the package should fix this problem. It may seem a bit overkill, but it works.

3. When trying to export conventions to a folder that you don't have write access to, a scary permission denied message appears. This should be changed to a more helpful error message.
Response by Brian This feature actually works. The way to get the "Name" and "Description" fields to save, you have to click the Apply or OK buttons on Jalopy's preference menu. After doing that, you can export to an xml file and those values will save. I suggest we put that into the user manual. =)

4. Import

Can we have pre-defined conventions in a default folder? Can we have pre-defined conventions appear in a drop down menu? Can we change the default directory that "browse" uses?

Response by Bill It is very possible to have a drop down menu right next to the import/export buttons for default configurations. These default xml files might even be loaded as resources in the jar file so we don't even need to install a folder with them. "browse" uses the folder specified in the combo box. I think I can change the value stored as a default in the combo box, but I couldn't find the exact place to do it. If we have the conventions in a drop down menu, I think it would be more helpful to leave the import folder the way it is, where it remembers the last folder used.

5. Export

Doesn't preserve Name and Description fields of the convention. Steps to reproduce. From the White Space Settings panel, check all checkboxes. Click Apply. Change to the General Settings page. Type "AllSpaces?" in the Name field. Type "All white space settings on" in the Description field. Click Export. Enter a file name, "allspace", and click OK. Change to the White Space Settings, panel, clear all checkboxes, click Apply. Change to the General Settings page. Click Import, enter filename "allspace" and click OK. Observe the name field is changed to "Sun", not "AllSpaces?". Change to the White Space Settings and observe that all checkboxes are selected indicating that indeed, it did import the settings.

Response by Bill Jalopy uses the LocationDialog?.java class for exporting the file. I could not find where this denied error message would be generated, and I suspect it's the printout from an IO exception that jalopy catches. Even if we could find it, I'm not sure how you could be more helpful than saying "permission denied" when the user tries to write to a write protected folder?

6. Add a hyperlink to jalopy manual from the settings panel for individual settings, especially for obscure features like "deep indent" or "grouping".
Response by Jim Well, after looking through the source code on jalopy's 1.5b1 (didn't find downloadable source code for 1.5rc3), I was able to pinpoint the java files for the specific panels that are shown in the preferences pane. I found the java files under:

main/src/java -> de.hunsicker -> jalopy -> swing -> <Panel>SettingsPage?.java (<Panel> standing for the particular setting that you can see when you bring up Jalopy's Preferences.)

From there its just a matter of modifying the "initialize" method in order to include hyperlinks. Found this link:

http://www.javaworld.com/javaworld/jw-10-2005/jw-1031-jepane.html

That supposedly helps on putting hyperlinks down. However, it requires JEditorPane...so I'll have to look into it a little more to see if I can include the HTMLEditorKit into the SettingsPage?.java files.

However, if that doesn't work, then we can just add a "setToolTipText" to each of the components and we should be fine (it would require a bit of writing).

I could see this being done for Stage 1.

7. Fix the source code used in the Preview Pane so that EVERY setting causes something to happen in the preview pane.
Response by Jamie This option is possible to do by going into the de> hunsicker > jalopy > swing folder to find the methods that switch the preview pane. By adding code to the correct switch statements and adding the new preview pane code views into the resources folder, added preview panes can be added.

8. During the walkthrough with the customer on a Mac, Preview for White Space settings, "Space before - Statement parentheses" -- caused the Preview pane to go blank.
Response by Jamie This option is possible to do by going into the de> hunsicker > jalopy > swing folder to find the methods that switch the preview pane. By adding code to the correct switch statements and adding the new preview pane code views into the resources folder, added preview panes can be added. Does the Preview Window need scroll bars?

9. Headers/footers seems hard to use. Needs a link to instructions. Needs a better error message for the "Error: key missing" error, probably one that explains what to do, not just what is wrong. Explain "Smart Mode".
Response by Jim I'm actually kind of confused about this one myself. I'm not sure what its trying to do, what "Delete Footers" is referring to, or how to go about correcting this particular confusion. I'll have to look into this one a little more and find out what the heck they were trying to do with this one. Most likely a Stage 2 item (if not Stage ?).

10. What is the history feature (Under Misc)? Does it work? How to use? We experienced a strange BlueJ error "class already exists". Is this caused by the history feature?
Response by Brian I could not reproduce the error that this was supposed to cause. From what I got from the Jalopy user manual, this is supposed to provide a few different features for keeping track of whether or not a file was changed. It's supposed to reduce Jalopy execution time for when you format multiple files by only formatting files that have been modified. Unfortunately I did not notice anything as proof of it functioning. I looked their the code as much as I could and nothing really popped out at me as the reason for it not working. I'll look into it more when I have time.

11. After a format, clicking Undo Button ONCE causes editor window to go blank.
Response by Terence This function is unfeasabile to fix. The only fix to this is to gain access to the BlueJ undo feature and change it so hitting the undo features has the effect of hitting the undo feature twice. This will cause undo results outsid of the extension when the clicking the undo button is only meant to go back once. The reason for this is that BlueJ undo feature sees this: When text is highlighted and a new key is entered, the deleting of the text is one move and the adding of the new key is another move. Thus, the undo feature needs to be hit twice to get back to the orignal text to get past the deleting of the text. This is exactly how the text work in jst highlighting mode. In using java code and using the BlueJ editor to do this, it works the same way. Thus, this fix is unfeasable. Plus, if I hit undo and all my text disappeared, my natural instinct would be to hit undo again. This would produce the initial disired result.

Items from our staged delivery plan:

#1 not feasible. Instead, Put format menu item on BOTH class menu and project Tools menu.
#2, #3 low priority
#5 not feasible
#7 mentioned above
#8 omit
#9 (multiple file formatting) low priority, probably won't use .
#10 omit
#11 wait for user feedback.
Advanced formatting rules:

Insert default case for switch stmts. Modify the style of array type definitions. int[] x or int x[]

Turn inline conditionals into if() statements.

Others? See early versions of SRS or Preliminary Features list.