1 /*
   2  * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package com.sun.javafx.tk;
  27 
  28 import javafx.geometry.Dimension2D;
  29 import javafx.scene.image.Image;
  30 import javafx.scene.input.Dragboard;
  31 import javafx.scene.input.InputMethodRequests;
  32 import javafx.scene.input.KeyCode;
  33 import javafx.scene.input.KeyEvent;
  34 import javafx.scene.input.TransferMode;
  35 import javafx.scene.paint.Color;
  36 import javafx.scene.paint.ImagePattern;
  37 import javafx.scene.paint.LinearGradient;
  38 import javafx.scene.paint.RadialGradient;
  39 import javafx.scene.shape.PathElement;
  40 import javafx.scene.shape.SVGPath;
  41 import javafx.scene.shape.StrokeLineCap;
  42 import javafx.scene.shape.StrokeLineJoin;
  43 import javafx.scene.shape.StrokeType;
  44 import javafx.stage.FileChooser.ExtensionFilter;
  45 import javafx.stage.Modality;
  46 import javafx.stage.Stage;
  47 import javafx.stage.StageStyle;
  48 import javafx.stage.Window;
  49 import java.io.File;
  50 import java.io.InputStream;
  51 import java.security.AccessControlContext;
  52 import java.util.List;
  53 import java.util.Map;
  54 import java.util.Set;
  55 import java.util.concurrent.Future;
  56 import com.sun.glass.ui.CommonDialogs.FileChooserResult;
  57 import com.sun.javafx.embed.HostInterface;
  58 import com.sun.javafx.geom.Path2D;
  59 import com.sun.javafx.geom.Shape;
  60 import com.sun.javafx.geom.transform.BaseTransform;
  61 import com.sun.javafx.perf.PerformanceTracker;
  62 import com.sun.javafx.runtime.async.AsyncOperation;
  63 import com.sun.javafx.runtime.async.AsyncOperationListener;
  64 import com.sun.javafx.scene.text.TextLayoutFactory;
  65 import com.sun.scenario.DelayedRunnable;
  66 import com.sun.scenario.animation.AbstractMasterTimer;
  67 import com.sun.scenario.effect.FilterContext;
  68 import com.sun.scenario.effect.Filterable;
  69 
  70 /**
  71  * A stubbed out Toolkit that provides no useful implementation. This is used
  72  * by the build to run the CSS to binary converter. The parser uses
  73  * PlatformLogger which requires a Toolkit.
  74  *
  75  */
  76 final public class DummyToolkit extends Toolkit {
  77 
  78     @Override
  79     public boolean init() {
  80         return true;
  81     }
  82 
  83     @Override
  84     public boolean canStartNestedEventLoop() {
  85         return false;
  86     }
  87 
  88     @Override
  89     public Object enterNestedEventLoop(Object key) {
  90         throw new UnsupportedOperationException("Not supported yet.");
  91     }
  92 
  93     @Override
  94     public void exitNestedEventLoop(Object key, Object rval) {
  95         throw new UnsupportedOperationException("Not supported yet.");
  96     }
  97 
  98     @Override
  99     public void exitAllNestedEventLoops() {
 100         throw new UnsupportedOperationException("Not supported yet.");
 101     }
 102 
 103     @Override
 104     public TKStage createTKStage(Window peerWindow, boolean securityDialog, StageStyle stageStyle, boolean primary, Modality modality, TKStage owner, boolean rtl, AccessControlContext acc) {
 105         throw new UnsupportedOperationException("Not supported yet.");
 106     }
 107 
 108     @Override
 109     public TKStage createTKPopupStage(Window peerWindow, StageStyle popupStyle, TKStage owner, AccessControlContext acc) {
 110         throw new UnsupportedOperationException("Not supported yet.");
 111     }
 112 
 113     @Override
 114     public TKStage createTKEmbeddedStage(HostInterface host, AccessControlContext acc) {
 115         throw new UnsupportedOperationException("Not supported yet.");
 116     }
 117 
 118     @Override
 119     public AppletWindow createAppletWindow(long parent, String serverName) {
 120         throw new UnsupportedOperationException("Not supported yet.");
 121     }
 122 
 123     @Override
 124     public void closeAppletWindow() {
 125         throw new UnsupportedOperationException("Not supported yet.");
 126     }
 127 
 128     @Override
 129     public TKSystemMenu getSystemMenu() {
 130         throw new UnsupportedOperationException("Not supported yet.");
 131     }
 132 
 133     @Override
 134     public ImageLoader loadImage(String url, double width, double height, boolean preserveRatio, boolean smooth) {
 135         throw new UnsupportedOperationException("Not supported yet.");
 136     }
 137 
 138     @Override
 139     public ImageLoader loadImage(InputStream stream, double width, double height, boolean preserveRatio, boolean smooth) {
 140         throw new UnsupportedOperationException("Not supported yet.");
 141     }
 142 
 143     @Override
 144     public AsyncOperation loadImageAsync(AsyncOperationListener<? extends ImageLoader> listener, String url, double width, double height, boolean preserveRatio, boolean smooth) {
 145         throw new UnsupportedOperationException("Not supported yet.");
 146     }
 147 
 148     @Override
 149     public ImageLoader loadPlatformImage(Object platformImage) {
 150         throw new UnsupportedOperationException("Not supported yet.");
 151     }
 152 
 153     @Override
 154     public PlatformImage createPlatformImage(int w, int h) {
 155         throw new UnsupportedOperationException("Not supported yet.");
 156     }
 157 
 158     @Override
 159     public void startup(Runnable runnable) {
 160         throw new UnsupportedOperationException("Not supported yet.");
 161     }
 162 
 163     @Override
 164     public void defer(Runnable runnable) {
 165         throw new UnsupportedOperationException("Not supported yet.");
 166     }
 167 
 168     @Override
 169     public Future addRenderJob(RenderJob rj) {
 170         throw new UnsupportedOperationException("Not supported yet.");
 171     }
 172 
 173     @Override
 174     public Map<Object, Object> getContextMap() {
 175         throw new UnsupportedOperationException("Not supported yet.");
 176     }
 177 
 178     @Override
 179     public int getRefreshRate() {
 180         throw new UnsupportedOperationException("Not supported yet.");
 181     }
 182 
 183     @Override
 184     public void setAnimationRunnable(DelayedRunnable animationRunnable) {
 185         throw new UnsupportedOperationException("Not supported yet.");
 186     }
 187 
 188     @Override
 189     public PerformanceTracker getPerformanceTracker() {
 190         throw new UnsupportedOperationException("Not supported yet.");
 191     }
 192 
 193     @Override public PerformanceTracker createPerformanceTracker() {
 194         throw new UnsupportedOperationException("Not supported yet.");
 195     }
 196 
 197     @Override
 198     public void waitFor(Task t) {
 199         throw new UnsupportedOperationException("Not supported yet.");
 200     }
 201 
 202     @Override
 203     protected Object createColorPaint(Color paint) {
 204         throw new UnsupportedOperationException("Not supported yet.");
 205     }
 206 
 207     @Override
 208     protected Object createLinearGradientPaint(LinearGradient paint) {
 209         throw new UnsupportedOperationException("Not supported yet.");
 210     }
 211 
 212     @Override
 213     protected Object createRadialGradientPaint(RadialGradient paint) {
 214         throw new UnsupportedOperationException("Not supported yet.");
 215     }
 216 
 217     @Override
 218     protected Object createImagePatternPaint(ImagePattern paint) {
 219         throw new UnsupportedOperationException("Not supported yet.");
 220     }
 221 
 222     @Override
 223     public void accumulateStrokeBounds(Shape shape, float[] bbox, StrokeType type, double strokewidth, StrokeLineCap cap, StrokeLineJoin join, float miterLimit, BaseTransform tx) {
 224         throw new UnsupportedOperationException("Not supported yet.");
 225     }
 226 
 227     @Override
 228     public boolean strokeContains(Shape shape, double x, double y, StrokeType type, double strokewidth, StrokeLineCap cap, StrokeLineJoin join, float miterLimit) {
 229         throw new UnsupportedOperationException("Not supported yet.");
 230     }
 231 
 232     @Override
 233     public Shape createStrokedShape(Shape shape, StrokeType pgtype, double strokewidth, StrokeLineCap pgcap, StrokeLineJoin pgjoin, float miterLimit, float[] dashArray, float dashOffset) {
 234         throw new UnsupportedOperationException("Not supported yet.");
 235     }
 236 
 237     @Override
 238     public int getKeyCodeForChar(String character) {
 239         throw new UnsupportedOperationException("Not supported yet.");
 240     }
 241 
 242     @Override
 243     public Dimension2D getBestCursorSize(int preferredWidth, int preferredHeight) {
 244         throw new UnsupportedOperationException("Not supported yet.");
 245     }
 246 
 247     @Override
 248     public int getMaximumCursorColors() {
 249         throw new UnsupportedOperationException("Not supported yet.");
 250     }
 251 
 252 
 253     @Override
 254     public PathElement[] convertShapeToFXPath(Object shape) {
 255         throw new UnsupportedOperationException("Not supported yet.");
 256     }
 257 
 258     @Override
 259     public Filterable toFilterable(Image img) {
 260         throw new UnsupportedOperationException("Not supported yet.");
 261     }
 262 
 263     @Override
 264     public FilterContext getFilterContext(Object config) {
 265         throw new UnsupportedOperationException("Not supported yet.");
 266     }
 267 
 268     @Override
 269     public boolean isForwardTraversalKey(KeyEvent e) {
 270         throw new UnsupportedOperationException("Not supported yet.");
 271     }
 272 
 273     @Override
 274     public boolean isBackwardTraversalKey(KeyEvent e) {
 275         throw new UnsupportedOperationException("Not supported yet.");
 276     }
 277 
 278     @Override
 279     public boolean isNestedLoopRunning() {
 280         throw new UnsupportedOperationException("Not supported yet.");
 281     }
 282 
 283     @Override
 284     public AbstractMasterTimer getMasterTimer() {
 285         return null;
 286     }
 287 
 288     @Override
 289     public FontLoader getFontLoader() {
 290         throw new UnsupportedOperationException("Not supported yet.");
 291     }
 292 
 293     @Override
 294     public TextLayoutFactory getTextLayoutFactory() {
 295         throw new UnsupportedOperationException("Not supported yet.");
 296     }
 297 
 298     @Override
 299     public Object createSVGPathObject(SVGPath svgpath) {
 300         throw new UnsupportedOperationException("Not supported yet.");
 301     }
 302 
 303     @Override
 304     public Path2D createSVGPath2D(SVGPath svgpath) {
 305         throw new UnsupportedOperationException("Not supported yet.");
 306     }
 307 
 308     @Override
 309     public boolean imageContains(Object image, float x, float y) {
 310         throw new UnsupportedOperationException("Not supported yet.");
 311     }
 312 
 313     @Override
 314     public com.sun.javafx.tk.TKClipboard getSystemClipboard() {
 315         throw new UnsupportedOperationException("Not supported yet.");
 316     }
 317 
 318     @Override
 319     public TKClipboard getNamedClipboard(String name) {
 320         throw new UnsupportedOperationException("Not supported yet.");
 321     }
 322 
 323     @Override
 324     public ScreenConfigurationAccessor setScreenConfigurationListener(TKScreenConfigurationListener listener) {
 325         throw new UnsupportedOperationException("Not supported yet.");
 326     }
 327 
 328     @Override
 329     public Object getPrimaryScreen() {
 330         throw new UnsupportedOperationException("Not supported yet.");
 331     }
 332 
 333     @Override
 334     public List<?> getScreens() {
 335         throw new UnsupportedOperationException("Not supported yet.");
 336     }
 337 
 338     @Override
 339     public ScreenConfigurationAccessor getScreenConfigurationAccessor() {
 340         throw new UnsupportedOperationException("Not supported yet.");
 341     }
 342 
 343     @Override
 344     public void registerDragGestureListener(TKScene s, Set<TransferMode> tms, TKDragGestureListener l) {
 345         throw new UnsupportedOperationException("Not supported yet.");
 346     }
 347 
 348     @Override
 349     public void startDrag(TKScene scene, Set<TransferMode> tms, TKDragSourceListener l, Dragboard dragboard) {
 350         throw new UnsupportedOperationException("Not supported yet.");
 351     }
 352 
 353     @Override
 354     public void enableDrop(TKScene s, TKDropTargetListener l) {
 355         throw new UnsupportedOperationException("Not supported yet.");
 356     }
 357 
 358     @Override
 359     public void installInputMethodRequests(TKScene scene, InputMethodRequests requests) {
 360         throw new UnsupportedOperationException("Not supported yet.");
 361     }
 362 
 363     @Override
 364     public Object renderToImage(ImageRenderingContext context) {
 365         throw new UnsupportedOperationException("Not supported yet.");
 366     }
 367 
 368     @Override
 369     public KeyCode getPlatformShortcutKey() {
 370         throw new UnsupportedOperationException("Not supported yet.");
 371     }
 372 
 373     @Override
 374     public FileChooserResult showFileChooser(TKStage ownerWindow,
 375                                       String title,
 376                                       File initialDirectory,
 377                                       String initialFileName,
 378                                       FileChooserType fileChooserType,
 379                                       List<ExtensionFilter> extensionFilters,
 380                                       ExtensionFilter selectedFilter) {
 381         throw new UnsupportedOperationException("Not supported yet.");
 382     }
 383 
 384 
 385     @Override
 386     public File showDirectoryChooser(TKStage ownerWindow,
 387                                      String title,
 388                                      File initialDirectory) {
 389         throw new UnsupportedOperationException("Not supported yet.");
 390     }
 391 
 392     @Override
 393     public long getMultiClickTime() {
 394         return 0L;
 395     }
 396 
 397     @Override
 398     public int getMultiClickMaxX() {
 399         return 0;
 400     }
 401 
 402     @Override
 403     public int getMultiClickMaxY() {
 404         return 0;
 405     }
 406 
 407     @Override
 408     public void requestNextPulse() {
 409         throw new UnsupportedOperationException("Not supported yet.");
 410     }
 411 
 412     }