NavigationButton.this).requestFocusInWindow();
}
});
// Create a timer that will update camera angles and location
final Timer timer = new Timer(50, new ActionListener() {
public void actionPerformed(ActionEvent ev) {
controller.moveCamera(shiftDown ? moveDelta : moveDelta / 5);
controller.rotateCameraYaw(shiftDown ? yawDelta : yawDelta / 5);
controller.rotateCameraPitch(pitchDelta);
}
});
timer.setInitialDelay(0);
// Update camera when button is armed
addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent ev) {
if (getModel().isArmed()
&& !timer.isRunning()) {
timer.restart();
} else if (!getModel().isArmed()
&& timer.isRunning()) {
timer.stop();
}
}
});
setFocusable(false);
setBorder(null);