فهرست منبع

SDK:
- remove invokeLater from TerrainEditor
- add isOgl() and isAwt() for asserting threading to SceneApplication

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@8622 75d07b2b-3a1a-0410-a2c5-0572b91ccdca

nor..67 14 سال پیش
والد
کامیت
627a963117

+ 11 - 2
jme3-core/src/com/jme3/gde/core/scene/SceneApplication.java

@@ -75,8 +75,7 @@ import org.openide.util.NbPreferences;
 import org.openide.util.lookup.Lookups;
 
 /**
- * <p/> <p/> <p/> <p/>
- * <p/>
+ * 
  * @author normenhansen
  */
 @SuppressWarnings("unchecked")
@@ -115,6 +114,7 @@ public class SceneApplication extends Application implements LookupProvider {
     private ViewPort overlayView;
     boolean useCanvas = false;
     private BulletAppState physicsState;
+    private Thread thread;
 
     public SceneApplication() {
         progressHandle.start(7);
@@ -200,6 +200,7 @@ public class SceneApplication extends Application implements LookupProvider {
 
     @Override
     public void initialize() {
+        thread = Thread.currentThread();
         try {
             super.initialize();
             {
@@ -600,4 +601,12 @@ public class SceneApplication extends Application implements LookupProvider {
     public void setActiveCameraController(AbstractCameraController activeCamController) {
         this.activeCamController = activeCamController;
     }
+
+    public boolean isOgl() {
+        return Thread.currentThread() == thread;
+    }
+
+    public boolean isAwt() {
+        return java.awt.EventQueue.isDispatchThread();
+    }
 }

+ 10 - 17
jme3-terrain-editor/src/com/jme3/gde/terraineditor/TerrainEditorTopComponent.java

@@ -1087,32 +1087,25 @@ public final class TerrainEditorTopComponent extends TopComponent implements Sce
 
     private void setSceneInfo(final JmeNode jmeNode, final boolean active) {
         final TerrainEditorTopComponent inst = this;
-        java.awt.EventQueue.invokeLater(new Runnable() {
-
-            public void run() {
-                if (jmeNode != null) {
-                } else {
-                }
+        if (jmeNode != null) {
+        } else {
+        }
 
-                if (!active) {
-                    result.removeLookupListener(inst);
-                    close();
-                } else {
-                    open();
-                    requestActive();
-                }
-            }
-        });
+        if (!active) {
+            result.removeLookupListener(inst);
+            close();
+        } else {
+            open();
+            requestActive();
+        }
     }
 
     public void sceneClosed(SceneRequest request) {
         if (request.equals(currentRequest)) {
-//            if (checkSaved()) {
             SceneApplication.getApplication().removeSceneListener(this);
             setSceneInfo(null, false);
             currentRequest = null;
             cleanupControllers();
-//            }
         }
     }