diff --git a/plugins/javaFX/FxBuilderEmbedder/FxBuilderEmbedder.iml b/plugins/javaFX/FxBuilderEmbedder/FxBuilderEmbedder.iml
index 3e312abc5d95..9379a8f49a6f 100644
--- a/plugins/javaFX/FxBuilderEmbedder/FxBuilderEmbedder.iml
+++ b/plugins/javaFX/FxBuilderEmbedder/FxBuilderEmbedder.iml
@@ -8,6 +8,7 @@
+
diff --git a/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/com/oracle/javafx/scenebuilder/kit/editor/EditorController.java b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/com/oracle/javafx/scenebuilder/kit/editor/EditorController.java
index 43d7230ba00a..042a83411fc8 100644
--- a/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/com/oracle/javafx/scenebuilder/kit/editor/EditorController.java
+++ b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/com/oracle/javafx/scenebuilder/kit/editor/EditorController.java
@@ -1,9 +1,14 @@
package com.oracle.javafx.scenebuilder.kit.editor;
+import java.io.IOException;
import java.net.URL;
public class EditorController {
- public URL getFxmlLocation() {
- return null; // TODO: Auto-generated method stub
- }
+ public URL getFxmlLocation() {
+ return null; // TODO: Auto-generated method stub
+ }
+
+ public void setFxmlTextAndLocation(String fxmlText, URL fxmlLocation) throws IOException {
+ // TODO: Auto-generated method stub
+ }
}
\ No newline at end of file
diff --git a/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanelController.java b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanelController.java
new file mode 100644
index 000000000000..25a9cc877112
--- /dev/null
+++ b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanelController.java
@@ -0,0 +1,13 @@
+package com.oracle.javafx.scenebuilder.kit.editor.panel.content;
+
+import com.oracle.javafx.scenebuilder.kit.editor.EditorController;
+import com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractPanelController;
+
+/**
+ * @author Alexander Lobas
+ */
+public class ContentPanelController extends AbstractPanelController {
+ public ContentPanelController(EditorController editorController) {
+ // TODO: Auto-generated method stub
+ }
+}
\ No newline at end of file
diff --git a/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeViewController.java b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeViewController.java
new file mode 100644
index 000000000000..197cbe23909d
--- /dev/null
+++ b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/com/oracle/javafx/scenebuilder/kit/editor/panel/hierarchy/treeview/HierarchyTreeViewController.java
@@ -0,0 +1,13 @@
+package com.oracle.javafx.scenebuilder.kit.editor.panel.hierarchy.treeview;
+
+import com.oracle.javafx.scenebuilder.kit.editor.EditorController;
+import com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractPanelController;
+
+/**
+ * @author Alexander Lobas
+ */
+public class HierarchyTreeViewController extends AbstractPanelController {
+ public HierarchyTreeViewController(EditorController editorController) {
+ // TODO: Auto-generated method stub
+ }
+}
\ No newline at end of file
diff --git a/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/InspectorPanelController.java b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/InspectorPanelController.java
new file mode 100644
index 000000000000..26c6a3927f0f
--- /dev/null
+++ b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/com/oracle/javafx/scenebuilder/kit/editor/panel/inspector/InspectorPanelController.java
@@ -0,0 +1,13 @@
+package com.oracle.javafx.scenebuilder.kit.editor.panel.inspector;
+
+import com.oracle.javafx.scenebuilder.kit.editor.EditorController;
+import com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractPanelController;
+
+/**
+ * @author Alexander Lobas
+ */
+public class InspectorPanelController extends AbstractPanelController {
+ public InspectorPanelController(EditorController editorController) {
+ // TODO: Auto-generated method stub
+ }
+}
\ No newline at end of file
diff --git a/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryPanelController.java b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryPanelController.java
new file mode 100644
index 000000000000..eea756708ca6
--- /dev/null
+++ b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/com/oracle/javafx/scenebuilder/kit/editor/panel/library/LibraryPanelController.java
@@ -0,0 +1,13 @@
+package com.oracle.javafx.scenebuilder.kit.editor.panel.library;
+
+import com.oracle.javafx.scenebuilder.kit.editor.EditorController;
+import com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractPanelController;
+
+/**
+ * @author Alexander Lobas
+ */
+public class LibraryPanelController extends AbstractPanelController {
+ public LibraryPanelController(EditorController c) {
+ // TODO: Auto-generated method stub
+ }
+}
\ No newline at end of file
diff --git a/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractPanelController.java b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractPanelController.java
new file mode 100644
index 000000000000..f9c4506e19c3
--- /dev/null
+++ b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/com/oracle/javafx/scenebuilder/kit/editor/panel/util/AbstractPanelController.java
@@ -0,0 +1,12 @@
+package com.oracle.javafx.scenebuilder.kit.editor.panel.util;
+
+import javafx.scene.Parent;
+
+/**
+ * @author Alexander Lobas
+ */
+public class AbstractPanelController {
+ public Parent getPanelRoot() {
+ return null; // TODO: Auto-generated method stub
+ }
+}
\ No newline at end of file
diff --git a/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/com/oracle/javafx/scenebuilder/kit/fxom/FXOMDocument.java b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/com/oracle/javafx/scenebuilder/kit/fxom/FXOMDocument.java
new file mode 100644
index 000000000000..6003ffab64d6
--- /dev/null
+++ b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/com/oracle/javafx/scenebuilder/kit/fxom/FXOMDocument.java
@@ -0,0 +1,13 @@
+package com.oracle.javafx.scenebuilder.kit.fxom;
+
+import java.io.IOException;
+import java.net.URL;
+
+/**
+ * @author Alexander Lobas
+ */
+public class FXOMDocument {
+ public static String readContentFromURL(URL url) throws IOException {
+ return null; // TODO: Auto-generated method stub
+ }
+}
\ No newline at end of file
diff --git a/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/collections/ObservableList.java b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/collections/ObservableList.java
new file mode 100644
index 000000000000..f79e5136e489
--- /dev/null
+++ b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/collections/ObservableList.java
@@ -0,0 +1,10 @@
+package javafx.collections;
+
+import java.util.List;
+
+/**
+ * @author Alexander Lobas
+ */
+public interface ObservableList extends List {
+ public boolean addAll(E... elements);
+}
\ No newline at end of file
diff --git a/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/geometry/Orientation.java b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/geometry/Orientation.java
new file mode 100644
index 000000000000..39c5dc971f94
--- /dev/null
+++ b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/geometry/Orientation.java
@@ -0,0 +1,8 @@
+package javafx.geometry;
+
+/**
+ * @author Alexander Lobas
+ */
+public enum Orientation {
+ HORIZONTAL, VERTICAL
+}
\ No newline at end of file
diff --git a/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/scene/Node.java b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/scene/Node.java
new file mode 100644
index 000000000000..d3e351aee893
--- /dev/null
+++ b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/scene/Node.java
@@ -0,0 +1,7 @@
+package javafx.scene;
+
+/**
+ * @author Alexander Lobas
+ */
+public class Node {
+}
\ No newline at end of file
diff --git a/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/scene/Parent.java b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/scene/Parent.java
new file mode 100644
index 000000000000..b51a0ef9683c
--- /dev/null
+++ b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/scene/Parent.java
@@ -0,0 +1,7 @@
+package javafx.scene;
+
+/**
+ * @author Alexander Lobas
+ */
+public abstract class Parent extends Node {
+}
\ No newline at end of file
diff --git a/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/scene/Scene.java b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/scene/Scene.java
index a0d16fafda3c..f3c8bd7c7776 100644
--- a/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/scene/Scene.java
+++ b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/scene/Scene.java
@@ -1,4 +1,7 @@
package javafx.scene;
public class Scene {
+ public Scene(Parent root, double width, double height) {
+ // TODO: Auto-generated method stub
+ }
}
\ No newline at end of file
diff --git a/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/scene/control/Control.java b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/scene/control/Control.java
new file mode 100644
index 000000000000..6a1d0fb4078b
--- /dev/null
+++ b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/scene/control/Control.java
@@ -0,0 +1,9 @@
+package javafx.scene.control;
+
+import javafx.scene.layout.Region;
+
+/**
+ * @author Alexander Lobas
+ */
+public abstract class Control extends Region {
+}
\ No newline at end of file
diff --git a/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/scene/control/SplitPane.java b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/scene/control/SplitPane.java
new file mode 100644
index 000000000000..6a56a5826f99
--- /dev/null
+++ b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/scene/control/SplitPane.java
@@ -0,0 +1,22 @@
+package javafx.scene.control;
+
+import javafx.collections.ObservableList;
+import javafx.geometry.Orientation;
+import javafx.scene.Node;
+
+/**
+ * @author Alexander Lobas
+ */
+public class SplitPane extends Control {
+ public final void setOrientation(Orientation value) {
+ // TODO: Auto-generated method stub
+ }
+
+ public void setDividerPositions(double... positions) {
+ // TODO: Auto-generated method stub
+ }
+
+ public ObservableList getItems() {
+ return null; // TODO: Auto-generated method stub
+ }
+}
\ No newline at end of file
diff --git a/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/scene/layout/Region.java b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/scene/layout/Region.java
new file mode 100644
index 000000000000..5bd724c71684
--- /dev/null
+++ b/plugins/javaFX/FxBuilderEmbedder/Stubs/stubsSrc/javafx/scene/layout/Region.java
@@ -0,0 +1,9 @@
+package javafx.scene.layout;
+
+import javafx.scene.Parent;
+
+/**
+ * @author Alexander Lobas
+ */
+public class Region extends Parent {
+}
\ No newline at end of file
diff --git a/plugins/javaFX/FxBuilderEmbedder/src/org/jetbrains/plugins/javaFX/sceneBuilder/SceneBuilderKitWrapper.java b/plugins/javaFX/FxBuilderEmbedder/src/org/jetbrains/plugins/javaFX/sceneBuilder/SceneBuilderKitWrapper.java
new file mode 100644
index 000000000000..4ebceb0f835e
--- /dev/null
+++ b/plugins/javaFX/FxBuilderEmbedder/src/org/jetbrains/plugins/javaFX/sceneBuilder/SceneBuilderKitWrapper.java
@@ -0,0 +1,76 @@
+package org.jetbrains.plugins.javaFX.sceneBuilder;
+
+import com.intellij.openapi.diagnostic.Logger;
+import com.oracle.javafx.scenebuilder.kit.editor.EditorController;
+import com.oracle.javafx.scenebuilder.kit.editor.drag.source.AbstractDragSource;
+import com.oracle.javafx.scenebuilder.kit.editor.panel.content.ContentPanelController;
+import com.oracle.javafx.scenebuilder.kit.editor.panel.hierarchy.treeview.HierarchyTreeViewController;
+import com.oracle.javafx.scenebuilder.kit.editor.panel.inspector.InspectorPanelController;
+import com.oracle.javafx.scenebuilder.kit.editor.panel.library.LibraryPanelController;
+import com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument;
+import javafx.application.Platform;
+import javafx.embed.swing.JFXPanel;
+import javafx.fxml.FXMLLoader;
+import javafx.geometry.Orientation;
+import javafx.scene.Scene;
+import javafx.scene.control.SplitPane;
+import javafx.scene.input.DataFormat;
+
+import javax.swing.*;
+import java.io.File;
+import java.lang.reflect.Field;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+
+/**
+ * @author Alexander Lobas
+ */
+public class SceneBuilderKitWrapper {
+ private static final Logger LOG = Logger.getInstance("#org.jetbrains.plugins.javaFX.sceneBuilder.SceneBuilderWrapper");
+
+ public static JComponent create(final String path) throws Exception {
+ Field identifier = DataFormat.class.getDeclaredField("identifier");
+ identifier.setAccessible(true);
+ identifier.set(AbstractDragSource.INTERNAL_DATA_FORMAT, Collections
+ .unmodifiableSet(new HashSet(Arrays.asList("application/scene.builder.internal"))));
+
+ FXMLLoader.setDefaultClassLoader(SceneBuilderKitWrapper.class.getClassLoader());
+
+ final JFXPanel panel = new JFXPanel();
+ Platform.runLater(new Runnable() {
+ @Override
+ public void run() {
+ EditorController editor = new EditorController();
+ HierarchyTreeViewController componentTree = new HierarchyTreeViewController(editor);
+ ContentPanelController canvas = new ContentPanelController(editor);
+ InspectorPanelController propertyTable = new InspectorPanelController(editor);
+ LibraryPanelController palette = new LibraryPanelController(editor);
+
+ try {
+ URL fxmlURL = new File(path).toURI().toURL();
+ String fxmlText = FXOMDocument.readContentFromURL(fxmlURL);
+ editor.setFxmlTextAndLocation(fxmlText, fxmlURL);
+ }
+ catch (Throwable e) {
+ LOG.error(e);
+ }
+
+ SplitPane leftPane = new SplitPane();
+ leftPane.setOrientation(Orientation.VERTICAL);
+ leftPane.getItems().addAll(palette.getPanelRoot(), componentTree.getPanelRoot());
+ leftPane.setDividerPositions(0.5, 0.5);
+
+ SplitPane mainPane = new SplitPane();
+
+ mainPane.getItems().addAll(leftPane, canvas.getPanelRoot(), propertyTable.getPanelRoot());
+ mainPane.setDividerPositions(0, 0.5, 1);
+
+ panel.setScene(new Scene(mainPane, 900, 600));
+ }
+ });
+
+ return panel;
+ }
+}
\ No newline at end of file
diff --git a/plugins/javaFX/javaFX.iml b/plugins/javaFX/javaFX.iml
index c521ba65f5f2..3abff64396de 100644
--- a/plugins/javaFX/javaFX.iml
+++ b/plugins/javaFX/javaFX.iml
@@ -6,7 +6,6 @@
-
diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/sceneBuilder/SceneBuilderEditor.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/sceneBuilder/SceneBuilderEditor.java
index 45ccc220d3eb..891ab95c0550 100644
--- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/sceneBuilder/SceneBuilderEditor.java
+++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/sceneBuilder/SceneBuilderEditor.java
@@ -1,7 +1,6 @@
package org.jetbrains.plugins.javaFX.sceneBuilder;
import com.intellij.codeHighlighting.BackgroundEditorHighlighter;
-import com.intellij.ide.plugins.PluginManager;
import com.intellij.ide.plugins.cl.PluginClassLoader;
import com.intellij.ide.structureView.StructureViewBuilder;
import com.intellij.openapi.diagnostic.Logger;
@@ -114,7 +113,7 @@ public class SceneBuilderEditor extends UserDataHolderBase implements FileEditor
private void loadSceneBuilder(SceneBuilderInfo info) throws Exception {
mySceneLoader = createSceneLoader(info);
- Class> wrapperClass = Class.forName("org.jetbrains.plugins.javaFX.sceneBuilder.SceneBuilderWrapper", false, mySceneLoader);
+ Class> wrapperClass = Class.forName("org.jetbrains.plugins.javaFX.sceneBuilder.SceneBuilderKitWrapper", false, mySceneLoader);
myFxPanel = (JComponent)wrapperClass.getMethod("create", String.class).invoke(null, myFile.getPath());
myPanel.add(myFxPanel, SCENE_CARD);