JAPI Pending Tasks
This is a scratch board for pending tasks that need to be done with JAPI. The tasks are not in any particular order, just random. They are here for public discussion before they become BUG / RFE entries in the bug tracker.
- Review package descriptions
- Some package descriptions might be inaccurate or not good enough.
- Improve java2html
-
java2html needs some improvement to create XHTML 1.1 with properly identifiable lines.
E.g.
<span id="line10" class="even line">...</span>
. The stylesheet should allow for alternating background of odd and even lines. - Finnish JTreeTable
- The class JTreeTable needs to be finnished.
- Finnish preferences modules
- The preferences modules for keyboard, menu, toolbar, dialogs (bringing onetime dialogs back again) and proxy need to be finnished resp. created.
- Increase JAPI
- Cher has some old JAPI versions from the time of JAPI before SF, which might contain some useful classes that should go into JAPI.
- Add Cursor Handling to ActionFactory
- ActionFactory should be able to automatically set the cursors for components it creates.
- Improve ToolbarLayout
- ToolbarLayout needs an improvement to allow toolbars to be placed next to each other.
- Create font browser tool
- This goes in tools/font
- Create a jar browser tool
- This goes in tools/jar
- Rework guide on XInclude
- Some source code in the guide is not yet included using java2html and XInclude. This should be changed to let all source code look consistently.
- Website Layout improvement
- JAPI needs a logo and a better website.
- IDE project files
- Think about a concept of how to put IDE project files in the JAPI repository in a way that when users change them, they'll be working on their copies without creating new versions when they do commits. For a start, IntelliJ IDEA, NetBeans and Eclipse should be supported. Perhaps applying the UCM stream concept of ClearCase might also be a possible solution to this. Question: How to checkout a trunk directory from a branch instead.
- Unit Tests
- JAPI needs a unit test suite.
- Set svn:ignore properties properly
-
Some directories like tools/fonts should have settings for svn:ignore.
All sub project directories with their own build.xml should, for instance, set svn:ignore to exclude their
classes
directory. - NPE avoidance
-
There's much code, especially in ActionFactory, which will throw little useful NullPointerExceptions.
This code should be reworked by using
@Nullable
and@NotNull
annotations. All possible NullPointerException warnings should be removed except in acceptable cases. This task also includes the definition of a list of acceptable cases of possible NullPointerExceptions. - Properties handling
- Make sure all property files are iso-8859-1 and not any other encoding. Also make sure that in xi:include elements, property files are included as iso-8859-1.
- Add syntax highlighting for property files
- Add a syntax highlighting for property files.
- Remove unused meta stuff from XHTML sources
- Some XHTML sources contain unused meta stuff. This should be removed.
- Improve copyright handling
- Files get automatic copyright notices. Currently, the year and name are fixed. This should be improved.
- Unify Utility Classes
- Several Utility Classes do not yet have a private constructor. They all should get one. The documentation on all these private constructors should follow the same pattern.
- Unify SuppressWarnings in case of working around bugs
-
Several warning suppressions do not suppress valid warnings but bogus warnings that are bugs of IntelliJ IDEA.
These warning suppressions should be tagged as such with a special comment to find and remove them once the bugs in IntelliJ IDEA are
fixed.
Suggestion: // XXX workaround bug in IntelliJ IDEA (explanatory text).
Example:} catch (final InvocationTargetException ex) { // XXX workaround bug in IntelliJ IDEA (ex is NOT ignored) //noinspection ThrowInsideCatchBlockWhichIgnoresCaughtException throw new RuntimeException(ex.getCause()); }
Also think whether IntelliJ IDEA or Inspection Gadgets is to blame. - Create class for centering top level containers on different references
- AWT lacks good facilities for centering top level containers. Work around this.
- Create a library for good command line argument handling
- Usage effort should be kept at a minimum. An easy to use and easy to integrate pattern should be used.