--- old/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMImageBuilder.java 2015-09-03 15:38:25.733875000 -0700 +++ /dev/null 2015-09-03 15:38:26.000000000 -0700 @@ -1,95 +0,0 @@ -/* - * Copyright (c) 2012, 2014, Oracle and/or its affiliates. - * All rights reserved. Use is subject to license terms. - * - * This file is available and licensed under the following license: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the distribution. - * - Neither the name of Oracle Corporation nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package com.oracle.javafx.scenebuilder.kit.fxom; - -import com.oracle.javafx.scenebuilder.kit.util.URLUtils; -import com.sun.javafx.fxml.builder.JavaFXImageBuilder; -import java.io.File; -import java.net.URISyntaxException; -import java.net.URL; - -/** - * - */ -class FXOMImageBuilder extends JavaFXImageBuilder { - - /* - * JavaFXImageBuilder - */ - - @Override - public Object put(String key, Object value) { - Object fixedValue; - - if ("url".equals(key)) { //NOI18N - if (value == null) { - fixedValue = getMissingImageURL().toExternalForm(); - } else { - try { - // Check that value is a valid URI - final File imageFile = URLUtils.getFile(value.toString()); - if (imageFile == null) { // Not a file URI - fixedValue = getMissingImageURL().toExternalForm(); - } else if (imageFile.canRead()) { - fixedValue = value; - } else { - fixedValue = getMissingImageURL().toExternalForm(); - } - } catch(URISyntaxException x) { - fixedValue = getMissingImageURL().toExternalForm(); - } - } - } else { - fixedValue = value; - } - - return super.put(key, fixedValue); - } - - - /* - * Private - */ - - private static URL missingImageURL; - - private static URL getMissingImageURL() { - if (missingImageURL == null) { - missingImageURL = FXOMImageBuilder.class.getResource("missing-image.png"); //NOI18N - if (missingImageURL == null) { - throw new RuntimeException("Cannot find missing-image.png"); //NOI18N - } - } - return missingImageURL; - } -}