Task |
Comments |
Status |
---|---|---|
Documentation |
||
most of the methods are not properly documented even in its JavaDoc. This needs to be changed, the library is too complicated for the “see sources for the logic” type of learning. There are 3 levels of documentation that need to be addressed, listed in order of importance: | ||
A) HowTo's, code snippets, tip & tricks, etc | Patrick's started a wiki with JXTable
HowTo |
started |
B) JavaDoc | ||
C) High level "whitepaper" documentation | ||
Other Meta-Issues |
||
I18n: all strings and resources definitions should be replaced with the call to UIManager, even if these are bogus calls. Good example is JXDatePicker. | added a default swingx framework
properties file and made the LookAndFeelAddons load it. see JXTable for an example |
started |
UI:Classes which don't have their own UI but use existing Swing components for UI (like *dialogs) should be checked for the UI changing procedure. Ensure proper behavior when changing look and feels for all components. | special care needed for all
components which are only temporarily contained in the container
hierarchy (mostly renderers, editors) see JXTable for an example |
started |
Code cleanup: there is a lot of the commented code that became obsolete and non-actual. For the easiness of future development is would be nice to clean up all the code. | foreever in progress........... |
|
Coding Style: reformat all components according one coding style? Currently some components are looks like garbage in terms of indentation. The coding style will be the same as is used by Swing and the JDK development team. Coding guidelines must be written and published on the SwingLabs website, and be used throughout the swinglabs projects. (TODO Insert link to coding style) | ||
"Eat our own food" - Consistently use JXPanel (or other JX* where available) throughout SwingX and throughout the demos. | ||
Code - swingx |
||
* improve searching facilities: add reusable FindModel | The current name is
"PatternModel" |
started |
* PaintUtils: move to swingx.utils | done |
|
* JXRootPane: there are links in JavaDoc that leads to “org.jdesktop.swing.*” | sometime during community
cleanup |
done |
* JXTable | ||
- extract tableHeader related behaviour into JXTableHeader; make sure we can add header grouping later on | done |
|
- improve column configuration (need some pluggable Configurator which is arbitrarily dumb by default but can be replaced if the context is MetaData-aware) | The basic support is added:
ColumnFactory in swingx and ColumnFactoryExt in databinding. Need to be
filled with value... |
done |
- move some of the interactive tests into the demos to demonstrate the capabilities | The demos are JXTableDemo and
DecoratorDemo |
done |
- bug fixing (todo - list and prioritize most annoying misbehaviour) | ||
#169 - header renderer
must not override LF specific look |
not sure if it is completely
solved related issues: #25 - JN'Table and Mac |
done |
#227 (fun) - expose auto-resize
in columnControl |
added localizable bound actions
to JXTable's actionMap, used in ColumnControl |
done |
#85 cleanup in
setTableHeader |
removed - use super:
JXTableHeader takes care of swingx specifics |
done |
#101 position of
re-showing columns - fixed? |
done |
|
#109 cursor shape? |
done |
|
#192 visibility tracking
in column control - fixed? |
done |
|
#11-swingx - add api to sort
programmatically (interactive sorter) |
postponed |
|
#119 setModel and sorting -
exception? |
done |
|
#125 setFilters(null) and update? |
done |
|
#149 individual rowheights
lost when sorting/filtering |
added RowSizing for coordinate
mapping between model/view dirty: rowModel private to super - reflection with access mod needed |
started |
#187 keep sorter when
filtering |
solved during filter/sorter
overhaul |
done |
* JXTreeTable tree method exposure (todo - list most wanted methods) | in discussion |
|
#186 - getRowForPath |
done |
|
#62, #200, #203 -- access to
listeners |
done |
|
#70 - convertValueToText
(can be closed?) |
open |
|
*
JXTreeTable bugs |
||
#52 - visible gridlines?
columnMargin == 1? |
open |
|
#120 - collapse while
editing --> datacorruption |
open |
|
#131 - renderer, setRowHeight? |
postponed |
|
#136 - support setRowHeight(int,
int) |
postponed |
|
#10(swingx) - treetable not
updated on property change |
done |
|
#204 - support sorting/filtering |
postponed |
|
* Replace JXHyperlink code with code from JXHyperlinkButton (merge with L2FProd?). Clean up. Use JXHyperlink as the final name | done |
|
* summarize hyperlink spec from forum discussion | ||
* use/enable hyperlink in JXList/JXTree/JXTreeTable | done for JXList, JXTable |
started |
* cleanup LinkRenderer (respect and visualize selection, focused state), possible rename | ||
* merge Thomas' autocomplete into SwingX | done |
|
* JXGlassPane: dismiss on arbitrary click? dismiss on Esc? | ||
* remove JXListPanel (auto-insert into Scrollpane is JN* behaviour) | done |
|
* consistently use JXPanel (or other JX* where available) throughout swingx (and demos) | started |
|
* extract logic from view in JX<special>Dialogs/Panels | ||
* status of JXStatusBar? | ||
* status of MouseMessagingHandler? really use the long description (probably doesn't fit into the visible part of a textfield/label)? relation to RolloverProducer? | ||
* remove ScrollUp*, (replace ScrollUpLayout with VerticalLayout) | done |
|
* add JXCollapsible, JXTaskPane, JXTaskPaneContainer | done |
|
Code - swingx.util |
||
* SwingWorker, EOL it, need to know when to kill it (in Mustang, in separate SwingLabs project) (UPDATE: I looked into SwingWorker, it is only being used by JDNC right now. I'd like to get it out of SwingX since there is another SwingLabs project for it, and SwingX doesn't require it) | ||
* Remove UIManagerUtils in favor of AddOn support | ||
* Build in preferences support | postponed |
|
* Spatial - the name has the notion of 3D when in fact it's an area in a plane, remove and use Rectangle instead | ||
* Refactor WindowUtils as needed | ||
* Link needs to be refactored as HyperlinkModel | renamed LinkModel, moved into
swingx |
done |
Code - swingx.plaf |
||
* add per-component LF support (ComponentAddon/LFAddOn) | done |
|
* change components with ui-delegates (JXTitledPanel, ...) to use the addon api | done |
|
* Remove ScrollUp PLAF support | done |
|
* Refactor JXTitledPanel PLAF support. Use gradient laf, except on Mac use Glossy laf | ||
Code - swingx.decorator |
||
* use functors | ||
* try to further abstract the filter/sort/highlight pipelining functionality for re-use across "collection views" (table, list, tree) | moved responsibility for
interactive sorter into pipeline abstracted Selection for model/view coordinate mapping of selection added filter support to JXList |
started |
* Pipelines need to be mutable, modifiable (there's an issue filed about it as well), but I'm not too convinced that this is an easy to implement enhancement, probably there's a reason they are not | Highlighter/-Pipeline is changed
to fire a state change on modification/mutation |
|
* bug fixing (todo - list of most prominent misbehaviour) | ||
#222 patternfilter exception |
||
#189, #221, #214 sorting and
classcastexception (fix suggested) |
done |
|
#218 - allow mutable pipelines
(add/remove filters) |
||
Code - swingx.calendar |
||
* move DateSpan & DateUtils to swingx.util | ||
* move JXMonthView to swingx | ||
* finish implementing new LAF for components (Josh Outwater) | ||
Code - swingx.border |
||
* confirm code review on MatteBorderExt | ||
* Implement Romain's DropShadowBorder code for alternate width shadows | ||
Code - swingx.auth |
||
* SaveMode should be an Enum | ||
* Need more convenience methods | ||
* I don't like embedding the Dialog in a JXLoginPanel | ||
* Why are we using a class for the resource bundle instead of a file? | ||
* Check Shai Almog's login dialog enhancements | ||
Code - swingx.action |
||
* Debug makes no sense here, should be moved or removed | ||
* Rename "TargetableAction" and "BoundAction" | ||
* Change so Swing components are targetable without having to implement "Targetable" | ||
* Consider changing "Targetable" to use an ActionMap instead of it's current 3 methods | ||
* Look into simplifying the architecture | future |
|
Code - swingx.icon |
||
* Consider moving these? | ||
--------------------------------------------------------------------- | ||
Thoughts |
||
swingx.decorator | ||
* Filtering | ||
- Can filters modify data? | no |
|
- The first two sorting "serious problem" bullets in the online documentation are straw men | ||
- Sorting is weird -- sorters within and without a pipeline? | ||
- Filter should not be stateful!!!! |