diff -r e9e53f954f1c o.n.swing.outline/apichanges.xml --- a/o.n.swing.outline/apichanges.xml Thu Jan 17 14:54:45 2013 +0100 +++ b/o.n.swing.outline/apichanges.xml Thu Jan 24 16:56:34 2013 +0100 @@ -108,6 +108,21 @@ + + + A protected checkAt() method added to Outline + + + + + +

Outline has a checkAt() method to perform a selection/deselection of + a check box on the given row and column. +

+
+ + +
Ability to listen on changes of Quick Filter diff -r e9e53f954f1c o.n.swing.outline/manifest.mf --- a/o.n.swing.outline/manifest.mf Thu Jan 17 14:54:45 2013 +0100 +++ b/o.n.swing.outline/manifest.mf Thu Jan 24 16:56:34 2013 +0100 @@ -1,5 +1,5 @@ Manifest-Version: 1.0 OpenIDE-Module: org.netbeans.swing.outline OpenIDE-Module-Localizing-Bundle: org/netbeans/swing/outline/Bundle.properties -OpenIDE-Module-Specification-Version: 1.24 +OpenIDE-Module-Specification-Version: 1.25 diff -r e9e53f954f1c o.n.swing.outline/src/org/netbeans/swing/outline/Outline.java --- a/o.n.swing.outline/src/org/netbeans/swing/outline/Outline.java Thu Jan 17 14:54:45 2013 +0100 +++ b/o.n.swing.outline/src/org/netbeans/swing/outline/Outline.java Thu Jan 24 16:56:34 2013 +0100 @@ -839,7 +839,19 @@ return false; } - private boolean checkAt(int row, int column, MouseEvent me) { + /** + * Perform a selection/deselection of a check box on the given row and column, + * if a check box exists on the given position. + * @param row The row of the check box + * @param column The column of the check box + * @param me The mouse event that performs the check, or null. + * @return true if a {@link CheckRenderDataProvider} is found + * on the given row and column, is checkable and enabled and the + * mouse event is either null or upon the check-box + * location. Returns false otherwise. + * @since 1.25 + */ + protected final boolean checkAt(int row, int column, MouseEvent me) { RenderDataProvider render = getRenderDataProvider(); TableCellRenderer tcr = getDefaultRenderer(Object.class); if (render instanceof CheckRenderDataProvider && tcr instanceof DefaultOutlineCellRenderer) { @@ -863,8 +875,7 @@ int chEnd = chStart + chWidth; //TODO: Translate x/y to position of column if non-0 - chBoxPosition = (me.getX() > ins.left && me.getX() >= chStart && me.getX() <= chEnd) && - me.getClickCount() == 1; + chBoxPosition = (me.getX() > ins.left && me.getX() >= chStart && me.getX() <= chEnd); } if (chBoxPosition) { Boolean selected = crender.isSelected(value); diff -r e9e53f954f1c openide.explorer/nbproject/project.xml --- a/openide.explorer/nbproject/project.xml Thu Jan 17 14:54:45 2013 +0100 +++ b/openide.explorer/nbproject/project.xml Thu Jan 24 16:56:34 2013 +0100 @@ -54,7 +54,7 @@ - 1.12 + 1.25 diff -r e9e53f954f1c openide.explorer/src/org/openide/explorer/view/OutlineView.java --- a/openide.explorer/src/org/openide/explorer/view/OutlineView.java Thu Jan 17 14:54:45 2013 +0100 +++ b/openide.explorer/src/org/openide/explorer/view/OutlineView.java Thu Jan 24 16:56:34 2013 +0100 @@ -1921,6 +1921,9 @@ boolean actionPerformed = false; boolean isTreeColumn = convertColumnIndexToModel(column) == 0; if (isTreeColumn && row != -1 && e instanceof MouseEvent && SwingUtilities.isLeftMouseButton ((MouseEvent) e)) { + if (checkAt(row, column, (MouseEvent) e)) { + return false; + } int clickCount = ((MouseEvent) e).getClickCount(); if (clickCount > 1) { // Default action.