@Override
 public void updateData(boolean urgent) {
   if (!positionPanel.hasFocus()
       && !rotationPanel.getSliderPanel().getxSlider().hasFocus()
       && !rotationPanel.getSliderPanel().getySlider().hasFocus()
       && !rotationPanel.getSliderPanel().getzSlider().hasFocus()
       && !rotationPanel.getFloat3Panel().hasFocus()) {
     positionPanel.setVector(((SpotLight) lightModel.getLight()).getPosition());
     updateLightDirection(((SpotLight) lightModel.getLight()).getDirection());
   }
 }
 private void updateLightDirection(final Vector3f direction) {
   rotationPanel.getFloat3Panel().setVector(direction);
   CurrentData.getEditorWindow()
       .getB3DApp()
       .enqueue(
           new Callable<Void>() {
             @Override
             public Void call() throws Exception {
               ((SpotLight) lightModel.getLight()).setDirection(direction);
               Vector3f end =
                   lightModel
                       .getRepresentative()
                       .getLocalTranslation()
                       .add(
                           ((SpotLight) lightModel.getLight())
                               .getDirection()
                               .mult(((SpotLight) lightModel.getLight()).getSpotRange()));
               Mesh mesh = new Line(lightModel.getRepresentative().getLocalTranslation(), end);
               mesh.setPointSize(5);
               lightModel.getSymbol().setMesh(mesh);
               return null;
             }
           });
 }