< prev index next >

modules/graphics/src/main/java/com/sun/javafx/tk/Toolkit.java

Print this page
rev 9717 : 8151320: Remove unnecessary addReads from JavaFX


  71 import java.util.concurrent.CountDownLatch;
  72 import java.util.concurrent.Future;
  73 import com.sun.glass.ui.CommonDialogs.FileChooserResult;
  74 import com.sun.glass.utils.NativeLibLoader;
  75 import com.sun.javafx.PlatformUtil;
  76 import com.sun.javafx.beans.event.AbstractNotifyListener;
  77 import com.sun.javafx.embed.HostInterface;
  78 import com.sun.javafx.geom.Path2D;
  79 import com.sun.javafx.geom.transform.BaseTransform;
  80 import com.sun.javafx.jmx.HighlightRegion;
  81 import com.sun.javafx.perf.PerformanceTracker;
  82 import com.sun.javafx.runtime.VersionInfo;
  83 import com.sun.javafx.runtime.async.AsyncOperation;
  84 import com.sun.javafx.runtime.async.AsyncOperationListener;
  85 import com.sun.javafx.scene.SceneHelper;
  86 import com.sun.javafx.scene.text.HitInfo;
  87 import com.sun.javafx.scene.text.TextLayoutFactory;
  88 import com.sun.javafx.sg.prism.NGCamera;
  89 import com.sun.javafx.sg.prism.NGLightBase;
  90 import com.sun.javafx.sg.prism.NGNode;
  91 import com.sun.javafx.util.ModuleHelper;
  92 import com.sun.scenario.DelayedRunnable;
  93 import com.sun.scenario.animation.AbstractMasterTimer;
  94 import com.sun.scenario.effect.AbstractShadow.ShadowMode;
  95 import com.sun.scenario.effect.Color4f;
  96 import com.sun.scenario.effect.FilterContext;
  97 import com.sun.scenario.effect.Filterable;
  98 
  99 
 100 public abstract class Toolkit {
 101     private static String tk;
 102     private static Toolkit TOOLKIT;
 103     private static Thread fxUserThread = null;
 104 
 105     private static final String QUANTUM_TOOLKIT     = "com.sun.javafx.tk.quantum.QuantumToolkit";
 106     private static final String DEFAULT_TOOLKIT     = QUANTUM_TOOLKIT;
 107 
 108     private static final Map gradientMap = new WeakHashMap();
 109 
 110     private static String lookupToolkitClass(String name) {
 111         if ("prism".equalsIgnoreCase(name)) {


 195                 || (userSpecifiedToolkit && !forcedToolkit.endsWith("StubToolkit"));
 196 
 197         try {
 198             Class clz = null;
 199 
 200             try {
 201                 // try our priveledged loader first
 202                 final ClassLoader loader = Toolkit.class.getClassLoader();
 203                 clz = Class.forName(forcedToolkit, false, loader);
 204             } catch (ClassNotFoundException e) {
 205                 // fall back and try the application class loader
 206                 final ClassLoader loader = Thread.currentThread().getContextClassLoader();
 207                 clz = Class.forName(forcedToolkit, false, loader);
 208             }
 209 
 210             // Check that clz is a subclass of Toolkit
 211             if (!Toolkit.class.isAssignableFrom(clz)) {
 212                 throw new IllegalArgumentException("Unrecognized FX Toolkit class: "
 213                         + forcedToolkit);
 214             }
 215 
 216             Object thisModule = ModuleHelper.getModule(Toolkit.class);
 217             ModuleHelper.addReads(thisModule, ModuleHelper.getModule(clz));
 218 
 219             TOOLKIT = (Toolkit)clz.newInstance();
 220             if (TOOLKIT.init()) {
 221                 if (printToolkit) {
 222                     System.err.println("JavaFX: using " + forcedToolkit);
 223                 }
 224                 return TOOLKIT;
 225             }
 226             TOOLKIT = null;
 227         } catch (Exception any) {
 228             TOOLKIT = null;
 229             any.printStackTrace();
 230         }
 231 
 232         throw new RuntimeException("No toolkit found");
 233     }
 234 
 235     protected static Thread getFxUserThread() {
 236         return fxUserThread;
 237     }




  71 import java.util.concurrent.CountDownLatch;
  72 import java.util.concurrent.Future;
  73 import com.sun.glass.ui.CommonDialogs.FileChooserResult;
  74 import com.sun.glass.utils.NativeLibLoader;
  75 import com.sun.javafx.PlatformUtil;
  76 import com.sun.javafx.beans.event.AbstractNotifyListener;
  77 import com.sun.javafx.embed.HostInterface;
  78 import com.sun.javafx.geom.Path2D;
  79 import com.sun.javafx.geom.transform.BaseTransform;
  80 import com.sun.javafx.jmx.HighlightRegion;
  81 import com.sun.javafx.perf.PerformanceTracker;
  82 import com.sun.javafx.runtime.VersionInfo;
  83 import com.sun.javafx.runtime.async.AsyncOperation;
  84 import com.sun.javafx.runtime.async.AsyncOperationListener;
  85 import com.sun.javafx.scene.SceneHelper;
  86 import com.sun.javafx.scene.text.HitInfo;
  87 import com.sun.javafx.scene.text.TextLayoutFactory;
  88 import com.sun.javafx.sg.prism.NGCamera;
  89 import com.sun.javafx.sg.prism.NGLightBase;
  90 import com.sun.javafx.sg.prism.NGNode;

  91 import com.sun.scenario.DelayedRunnable;
  92 import com.sun.scenario.animation.AbstractMasterTimer;
  93 import com.sun.scenario.effect.AbstractShadow.ShadowMode;
  94 import com.sun.scenario.effect.Color4f;
  95 import com.sun.scenario.effect.FilterContext;
  96 import com.sun.scenario.effect.Filterable;
  97 
  98 
  99 public abstract class Toolkit {
 100     private static String tk;
 101     private static Toolkit TOOLKIT;
 102     private static Thread fxUserThread = null;
 103 
 104     private static final String QUANTUM_TOOLKIT     = "com.sun.javafx.tk.quantum.QuantumToolkit";
 105     private static final String DEFAULT_TOOLKIT     = QUANTUM_TOOLKIT;
 106 
 107     private static final Map gradientMap = new WeakHashMap();
 108 
 109     private static String lookupToolkitClass(String name) {
 110         if ("prism".equalsIgnoreCase(name)) {


 194                 || (userSpecifiedToolkit && !forcedToolkit.endsWith("StubToolkit"));
 195 
 196         try {
 197             Class clz = null;
 198 
 199             try {
 200                 // try our priveledged loader first
 201                 final ClassLoader loader = Toolkit.class.getClassLoader();
 202                 clz = Class.forName(forcedToolkit, false, loader);
 203             } catch (ClassNotFoundException e) {
 204                 // fall back and try the application class loader
 205                 final ClassLoader loader = Thread.currentThread().getContextClassLoader();
 206                 clz = Class.forName(forcedToolkit, false, loader);
 207             }
 208 
 209             // Check that clz is a subclass of Toolkit
 210             if (!Toolkit.class.isAssignableFrom(clz)) {
 211                 throw new IllegalArgumentException("Unrecognized FX Toolkit class: "
 212                         + forcedToolkit);
 213             }



 214 
 215             TOOLKIT = (Toolkit)clz.newInstance();
 216             if (TOOLKIT.init()) {
 217                 if (printToolkit) {
 218                     System.err.println("JavaFX: using " + forcedToolkit);
 219                 }
 220                 return TOOLKIT;
 221             }
 222             TOOLKIT = null;
 223         } catch (Exception any) {
 224             TOOLKIT = null;
 225             any.printStackTrace();
 226         }
 227 
 228         throw new RuntimeException("No toolkit found");
 229     }
 230 
 231     protected static Thread getFxUserThread() {
 232         return fxUserThread;
 233     }


< prev index next >