OpenJDK / openjfx / 8u-dev / rt
changeset 7381:1f847b5308e6
[SCENEBUILDER] Fix for DTL-6700 (SceneBuilder does not open FXML with fx:script).
author | eric.le.ponner <eric.le.ponner@oracle.com> |
---|---|
date | Fri, 27 Jun 2014 16:06:52 +0200 |
parents | 02a6408b0e83 |
children | 1a3b2ab2d3dd |
files | apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMLoader.java apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/TransientIgnored.java |
diffstat | 2 files changed, 55 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMLoader.java Fri Jun 27 14:38:48 2014 +0200 +++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/FXOMLoader.java Fri Jun 27 16:06:52 2014 +0200 @@ -204,14 +204,20 @@ @Override public void beginUnknownStaticPropertyElement(String string) { + currentTransientNode = new TransientIgnored(currentTransientNode); + glueCursor.moveToNextElement(); } @Override public void beginScriptElement() { + currentTransientNode = new TransientIgnored(currentTransientNode); + glueCursor.moveToNextElement(); } @Override public void beginDefineElement() { + currentTransientNode = new TransientIgnored(currentTransientNode); + glueCursor.moveToNextElement(); } @Override @@ -275,6 +281,9 @@ } else if (currentParent instanceof TransientObject) { final TransientObject parentInstance = (TransientObject) currentParent; parentInstance.getCollectedItems().add(currentFxomObject); + } else if (currentParent instanceof TransientIgnored) { + // currentObject is an object inside an fx:define section + // Nothing to do for now } else { assert currentParent == null; document.updateRoots(currentFxomObject, currentFxomObject.getSceneGraphObject()); @@ -291,6 +300,9 @@ } else if (currentParent instanceof TransientObject) { final TransientObject parentInstance = (TransientObject) currentParent; parentInstance.getCollectedItems().add(currentFxomIntrinsic); + } else if (currentParent instanceof TransientIgnored) { + // currentObject is an object inside an fx:define section + // Nothing to do for now } else { assert currentParent == null; document.updateRoots(currentFxomIntrinsic, currentFxomIntrinsic.getSceneGraphObject()); @@ -303,6 +315,9 @@ final TransientObject parentObject = (TransientObject) currentParent; parentObject.getProperties().add(currentFxomProperty); // We ignore sceneGraphObject + } else { + assert currentTransientNode instanceof TransientIgnored; + // Nothing to do in this case } currentTransientNode = currentTransientNode.getParentNode();
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/apps/scenebuilder/SceneBuilderKit/src/com/oracle/javafx/scenebuilder/kit/fxom/TransientIgnored.java Fri Jun 27 16:06:52 2014 +0200 @@ -0,0 +1,40 @@ +/* + * 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; + +class TransientIgnored extends TransientNode { + + public TransientIgnored(TransientNode parentNode) { + super(parentNode); + } + +}