Class JXTreeTable.TreeTableHackerExt2

  • Direct Known Subclasses:
    JXTreeTable.TreeTableHackerExt3
    Enclosing class:
    JXTreeTable

    public class JXTreeTable.TreeTableHackerExt2
    extends JXTreeTable.TreeTableHackerExt
    Patch for #471-swingx: no selection on click in hierarchical column if outside of node-text. Mar 2007.

    Note: with 1.6 the expansion control was broken even with the "normal extended" TreeTableHackerExt. When fixing that (renderer must have correct width for BasicTreeUI since 1.6) took a look into why this didn't work and made it work. So, now this is bidi-compliant.

    Author:
    tiberiu@dev.java.net
    • Constructor Detail

      • TreeTableHackerExt2

        public TreeTableHackerExt2()
    • Method Detail

      • expandOrCollapseNode

        protected boolean expandOrCollapseNode​(int column,
                                               EventObject e)
        Description copied from class: JXTreeTable.TreeTableHacker
        Tricksery to make the tree expand/collapse.

        This might be - indirectly - called from one of two places:

        1. editCellAt: original, stable but buggy (#332, #222) the table's own selection had been changed due to the click before even entering into editCellAt so all tree selection state is lost.
        2. processMouseEvent: the idea is to catch the mouseEvent, check if it triggered an expanded/collapsed, consume and return if so or pass to super if not.

        widened access for testing ...

        Overrides:
        expandOrCollapseNode in class JXTreeTable.TreeTableHacker
        Parameters:
        column - the column index under the event, if any.
        e - the event which might trigger a expand/collapse.
        Returns:
        this methods evaluation as to whether the event triggered a expand/collaps
      • getTreeMousePoint

        protected Point getTreeMousePoint​(int column,
                                          MouseEvent me)
        This is a patch provided for Issue #980-swingx which should improve the bidi-compliance. Still doesn't work in our visual tests...

        Problem was not in the translation to renderer coordinate system, it was in the method itself: the check whether we are "beyond" the cell content box is bidi-dependent. Plus (since 1.6), width of renderer must be > 0.

        Parameters:
        column - the column index under the event, if any.
        e - the event which might trigger a expand/collapse.
        Returns:
        the Point adjusted for bidi