Merge pull request #34 from bkuker/kruland-integration-unselect

Unselect component when figure is clicked outside the rocket
This commit is contained in:
plaa 2013-01-06 08:00:04 -08:00
commit 31f620d1bd
2 changed files with 11 additions and 4 deletions

View File

@ -267,13 +267,17 @@ public class RocketFigure3d extends JPanel implements GLEventListener {
gl.glDisable(GLLightingFunc.GL_LIGHTING);
final RocketComponent picked = rr.pick(drawable, configuration,
pickPoint, pickEvent.isShiftDown() ? selection : null);
if (csl != null && picked != null) {
if (csl != null) {
final MouseEvent e = pickEvent;
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
csl.componentClicked(new RocketComponent[] { picked },
e);
if ( picked == null ){
log.debug("unselecting");
csl.componentClicked(new RocketComponent[] { }, e);
} else {
csl.componentClicked(new RocketComponent[] { picked }, e);
}
}
});

View File

@ -530,8 +530,10 @@ public class RocketPanel extends JPanel implements TreeSelectionListener, Change
private void handleComponentClick(RocketComponent[] clicked, MouseEvent event){
// If no component is clicked, do nothing
if (clicked.length == 0)
if (clicked.length == 0){
selectionModel.setSelectionPath(null);
return;
}
// Check whether the currently selected component is in the clicked components.
TreePath path = selectionModel.getSelectionPath();
@ -827,6 +829,7 @@ public class RocketPanel extends JPanel implements TreeSelectionListener, Change
TreePath[] paths = selectionModel.getSelectionPaths();
if (paths == null) {
figure.setSelection(null);
figure3d.setSelection(null);
return;
}