- Fixed focus issue in the sdk (part 1)

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@9607 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
3.0
rem..om 13 years ago
parent 3f8d7f0807
commit 737b765cb0
  1. 18
      sdk/jme3-core/src/com/jme3/gde/core/scene/controller/AbstractCameraController.java
  2. 99
      sdk/jme3-core/src/com/jme3/gde/core/sceneviewer/SceneViewerTopComponent.java

@ -27,6 +27,7 @@ package com.jme3.gde.core.scene.controller;
import com.jme3.app.Application;
import com.jme3.app.state.AbstractAppState;
import com.jme3.app.state.AppStateManager;
import com.jme3.gde.core.Installer;
import com.jme3.gde.core.scene.SceneApplication;
import com.jme3.gde.core.scene.controller.toolbars.CameraToolbar;
import com.jme3.gde.core.sceneviewer.SceneViewerTopComponent;
@ -50,6 +51,7 @@ import com.jme3.renderer.RenderManager;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import org.openide.util.Exceptions;
import org.openide.util.NbPreferences;
/**
*
@ -418,13 +420,15 @@ public abstract class AbstractCameraController extends AbstractAppState implemen
public void onMouseButtonEvent(MouseButtonEvent mbe) {
//on a click release we request the focus for the top component
//this allow netbeans to catch keyEvents and trigger actions according to keymapping
if (mbe.isReleased()) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
SceneViewerTopComponent.findInstance().requestActive();
}
});
if ("true".equals(NbPreferences.forModule(Installer.class).get("use_lwjgl_canvas", "false"))) {
if (mbe.isReleased()) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
SceneViewerTopComponent.findInstance().requestActive();
}
});
}
}
}

@ -24,7 +24,6 @@
*/
package com.jme3.gde.core.sceneviewer;
import com.jme3.gde.core.Installer;
import com.jme3.gde.core.filters.FilterExplorerTopComponent;
import com.jme3.gde.core.scene.SceneApplication;
import com.jme3.gde.core.scene.SceneRequest;
@ -49,7 +48,6 @@ import org.openide.awt.UndoRedo;
import org.openide.util.Exceptions;
import org.openide.util.HelpCtx;
import org.openide.util.Lookup;
import org.openide.util.NbPreferences;
/**
* Top component which displays something.
@ -80,6 +78,7 @@ public final class SceneViewerTopComponent extends TopComponent {
app = SceneApplication.getApplication();
// oglCanvas = ((JmeCanvasContext) app.getContext()).getCanvas();
oglCanvas = app.getMainPanel();
oglCanvas.setFocusable(false);
oGLPanel.add(oglCanvas);
} catch (Exception e) {
@ -92,59 +91,61 @@ public final class SceneViewerTopComponent extends TopComponent {
//We add a mouse wheel listener to the top conmponent in order to correctly dispatch the event ot the cam controller
//the oGLPanel may naver have the focus.
if ("true".equals(NbPreferences.forModule(Installer.class).get("use_lwjgl_canvas", "false"))) {
addMouseWheelListener(new MouseWheelListener() {
// if ("true".equals(NbPreferences.forModule(Installer.class).get("use_lwjgl_canvas", "false"))) {
addMouseWheelListener(new MouseWheelListener() {
public void mouseWheelMoved(final MouseWheelEvent e) {
SceneApplication.getApplication().enqueue(new Callable<Void>() {
public void mouseWheelMoved(final MouseWheelEvent e) {
SceneApplication.getApplication().enqueue(new Callable<Void>() {
public Void call() throws Exception {
String action = "MouseWheel-";
if (e.getWheelRotation() < 0) {
action = "MouseWheel";
}
public Void call() throws Exception {
String action = "MouseWheel-";
if (e.getWheelRotation() < 0) {
action = "MouseWheel";
}
if (app.getActiveCameraController() != null) {
app.getActiveCameraController().onAnalog(action, e.getWheelRotation(), 0);
return null;
}
});
}
});
addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent evt) {
}
public void keyPressed(final KeyEvent evt) {
SceneApplication.getApplication().enqueue(new Callable<Void>() {
public Void call() throws Exception {
int code = AwtKeyInput.convertAwtKey(evt.getKeyCode());
KeyInputEvent keyEvent = new KeyInputEvent(code, evt.getKeyChar(), true, false);
keyEvent.setTime(evt.getWhen());
if (app.getActiveCameraController() != null) {
app.getActiveCameraController().onKeyEvent(keyEvent);
}
return null;
return null;
}
});
}
});
addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent evt) {
}
public void keyPressed(final KeyEvent evt) {
SceneApplication.getApplication().enqueue(new Callable<Void>() {
public Void call() throws Exception {
int code = AwtKeyInput.convertAwtKey(evt.getKeyCode());
KeyInputEvent keyEvent = new KeyInputEvent(code, evt.getKeyChar(), true, false);
keyEvent.setTime(evt.getWhen());
if (app.getActiveCameraController() != null) {
app.getActiveCameraController().onKeyEvent(keyEvent);
}
});
}
public void keyReleased(final KeyEvent evt) {
SceneApplication.getApplication().enqueue(new Callable<Void>() {
public Void call() throws Exception {
int code = AwtKeyInput.convertAwtKey(evt.getKeyCode());
KeyInputEvent keyEvent = new KeyInputEvent(code, evt.getKeyChar(), false, false);
keyEvent.setTime(evt.getWhen());
if (app.getActiveCameraController() != null) {
app.getActiveCameraController().onKeyEvent(keyEvent);
}
return null;
return null;
}
});
}
public void keyReleased(final KeyEvent evt) {
SceneApplication.getApplication().enqueue(new Callable<Void>() {
public Void call() throws Exception {
int code = AwtKeyInput.convertAwtKey(evt.getKeyCode());
KeyInputEvent keyEvent = new KeyInputEvent(code, evt.getKeyChar(), false, false);
keyEvent.setTime(evt.getWhen());
if (app.getActiveCameraController() != null) {
app.getActiveCameraController().onKeyEvent(keyEvent);
}
});
}
});
}
return null;
}
});
}
});
//}
}

Loading…
Cancel
Save