Selaa lähdekoodia

Code cleaning

I cleaned a bit the code creating some other packages and deleting old
unused classes
relu91 11 vuotta sitten
vanhempi
commit
74c14377e2
28 muutettua tiedostoa jossa 638 lisäystä ja 1339 poistoa
  1. BIN
      sdk/jme3-gui/release/modules/ext/Nifty-Editor0.5.9.jar
  2. 0 28
      sdk/jme3-gui/src/com/jme3/gde/gui/Navigator.form
  3. 3 3
      sdk/jme3-gui/src/com/jme3/gde/gui/NiftyGuiDataObject.java
  4. 0 4
      sdk/jme3-gui/src/com/jme3/gde/gui/NiftyGuiResolver.xml
  5. 0 29
      sdk/jme3-gui/src/com/jme3/gde/gui/NiftyGuiVisualElement.form
  6. 0 89
      sdk/jme3-gui/src/com/jme3/gde/gui/OldNiftyGuiDataObject.java
  7. 0 4
      sdk/jme3-gui/src/com/jme3/gde/gui/multiview/Bundle.properties
  8. 0 62
      sdk/jme3-gui/src/com/jme3/gde/gui/multiview/ErrorPanel.form
  9. 0 114
      sdk/jme3-gui/src/com/jme3/gde/gui/multiview/ErrorPanel.java
  10. 0 27
      sdk/jme3-gui/src/com/jme3/gde/gui/multiview/MouseInputEvent.java
  11. 0 55
      sdk/jme3-gui/src/com/jme3/gde/gui/multiview/NiftyFileChildren.java
  12. 0 22
      sdk/jme3-gui/src/com/jme3/gde/gui/multiview/NiftyFileNode.java
  13. 0 167
      sdk/jme3-gui/src/com/jme3/gde/gui/multiview/NiftyJmeDisplay.java
  14. 0 53
      sdk/jme3-gui/src/com/jme3/gde/gui/multiview/NiftyPreviewInputHandler.java
  15. 0 335
      sdk/jme3-gui/src/com/jme3/gde/gui/multiview/NiftyPreviewPanel.java
  16. 0 22
      sdk/jme3-gui/src/com/jme3/gde/gui/multiview/NiftyScreenNode.java
  17. 0 48
      sdk/jme3-gui/src/com/jme3/gde/gui/multiview/PreviewToolbarElement.java
  18. 0 35
      sdk/jme3-gui/src/com/jme3/gde/gui/multiview/PreviewView.java
  19. 0 73
      sdk/jme3-gui/src/com/jme3/gde/gui/multiview/XmlHelper.java
  20. BIN
      sdk/jme3-gui/src/com/jme3/gde/gui/multiview/icons/Computer_File_043.gif
  21. 2 2
      sdk/jme3-gui/src/com/jme3/gde/gui/package-info.java
  22. 0 88
      sdk/jme3-gui/src/com/jme3/gde/gui/palette/JmePaletteUtilities.java
  23. 0 63
      sdk/jme3-gui/src/com/jme3/gde/gui/palette/Screen.java
  24. 0 16
      sdk/jme3-gui/src/com/jme3/gde/gui/palette/Screen.xml
  25. 10 0
      sdk/jme3-gui/src/com/jme3/gde/gui/templates/EmptyNiftyGui.xml
  26. 19 0
      sdk/jme3-gui/src/com/jme3/gde/gui/templates/NiftyGui.xml
  27. 200 0
      sdk/jme3-gui/src/com/jme3/gde/gui/view/Navigator.java
  28. 404 0
      sdk/jme3-gui/src/com/jme3/gde/gui/view/NiftyGuiVisualElement.java

BIN
sdk/jme3-gui/release/modules/ext/Nifty-Editor0.5.9.jar


+ 0 - 28
sdk/jme3-gui/src/com/jme3/gde/gui/Navigator.form

@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<Form version="1.3" maxVersion="1.8" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
-  <AuxValues>
-    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
-    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
-    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
-    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
-    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
-  </AuxValues>
-
-  <Layout>
-    <DimensionLayout dim="0">
-      <Group type="103" groupAlignment="0" attributes="0">
-          <EmptySpace min="0" pref="244" max="32767" attributes="0"/>
-      </Group>
-    </DimensionLayout>
-    <DimensionLayout dim="1">
-      <Group type="103" groupAlignment="0" attributes="0">
-          <EmptySpace min="0" pref="274" max="32767" attributes="0"/>
-      </Group>
-    </DimensionLayout>
-  </Layout>
-</Form>

+ 3 - 3
sdk/jme3-gui/src/com/jme3/gde/gui/NiftyGuiDataObject.java

@@ -36,7 +36,7 @@ import org.openide.windows.TopComponent;
         resource = "NiftyGuiResolver.xml")
 @DataObject.Registration(
         mimeType = "text/x-niftygui+xml",
-        iconBase = "com/jme3/gde/gui/Computer_File_043.gif",
+        iconBase = "com/jme3/gde/gui/multiview/icons/Computer_File_043.gif",
         displayName = "#LBL_NiftyGui_LOADER",
         position = 300)
 @ActionReferences({
@@ -125,7 +125,7 @@ public class NiftyGuiDataObject extends MultiDataObject {
     @Override
     protected Node createNodeDelegate() {
         DataNode node = new DataNode(this, Children.LEAF, getLookup());
-        node.setIconBaseWithExtension("com/jme3/gde/gui/Computer_File_043.gif");
+        node.setIconBaseWithExtension("com/jme3/gde/gui/multiview/icons/Computer_File_043.gif");
         return node;
     }
     
@@ -136,7 +136,7 @@ public class NiftyGuiDataObject extends MultiDataObject {
 
     @MultiViewElement.Registration(
             displayName = "#LBL_NiftyGui_EDITOR",
-            iconBase = "com/jme3/gde/gui/Computer_File_043.gif",
+            iconBase = "com/jme3/gde/gui/multiview/icons/Computer_File_043.gif",
             mimeType = "text/x-niftygui+xml",
             persistenceType = TopComponent.PERSISTENCE_ONLY_OPENED,
             preferredID = "NiftyGui",

+ 0 - 4
sdk/jme3-gui/src/com/jme3/gde/gui/NiftyGuiResolver.xml

@@ -1,8 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!--
-To change this template, choose Tools | Templates
-and open the template in the editor.
--->
 <!DOCTYPE MIME-resolver PUBLIC "-//NetBeans//DTD MIME Resolver 1.0//EN" "http://www.netbeans.org/dtds/mime-resolver-1_0.dtd">
 <MIME-resolver>
     <file>

+ 0 - 29
sdk/jme3-gui/src/com/jme3/gde/gui/NiftyGuiVisualElement.form

@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<Form version="1.3" maxVersion="1.8" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
-  <AuxValues>
-    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
-    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
-    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="true"/>
-    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
-    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
-    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
-    <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,44,0,0,1,-112"/>
-  </AuxValues>
-
-  <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
-  <SubComponents>
-    <Container class="javax.swing.JScrollPane" name="scrollArea">
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
-          <BorderConstraints direction="Center"/>
-        </Constraint>
-      </Constraints>
-
-      <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
-    </Container>
-  </SubComponents>
-</Form>

+ 0 - 89
sdk/jme3-gui/src/com/jme3/gde/gui/OldNiftyGuiDataObject.java

@@ -1,89 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-package com.jme3.gde.gui;
-
-import com.jme3.gde.core.assets.ProjectAssetManager;
-import com.jme3.gde.gui.multiview.PreviewView;
-import java.io.IOException;
-import org.netbeans.api.project.Project;
-import org.netbeans.api.project.ProjectManager;
-import org.netbeans.modules.xml.multiview.DesignMultiViewDesc;
-import org.netbeans.modules.xml.multiview.XmlMultiViewDataObject;
-import org.openide.filesystems.FileObject;
-import org.openide.loaders.DataNode;
-import org.openide.loaders.DataObjectExistsException;
-import org.openide.loaders.MultiFileLoader;
-import org.openide.nodes.Node;
-import org.openide.nodes.Children;
-import org.openide.util.Lookup;
-import org.openide.util.lookup.AbstractLookup;
-import org.openide.util.lookup.InstanceContent;
-import org.openide.util.lookup.ProxyLookup;
-
-public class OldNiftyGuiDataObject extends XmlMultiViewDataObject {
-
-    private static final int TYPE_TOOLBAR = 0;
-    protected final Lookup lookup;
-    protected final InstanceContent lookupContents = new InstanceContent();
-
-    public OldNiftyGuiDataObject(FileObject pf, MultiFileLoader loader) throws DataObjectExistsException, IOException {
-        super(pf, loader);
-        lookup = new ProxyLookup(getCookieSet().getLookup(), new AbstractLookup(getLookupContents()));
-        findAssetManager();
-    }
-
-    protected void findAssetManager() {
-        FileObject file = getPrimaryFile();
-        ProjectManager pm = ProjectManager.getDefault();
-        while (file != null) {
-            if (file.isFolder() && pm.isProject(file)) {
-                try {
-                    Project project = ProjectManager.getDefault().findProject(file);
-                    if (project != null) {
-                        ProjectAssetManager mgr = project.getLookup().lookup(ProjectAssetManager.class);
-                        if (mgr != null) {
-                            getLookupContents().add(mgr);
-                            return;
-                        }
-                    }
-                } catch (IOException ex) {
-                } catch (IllegalArgumentException ex) {
-                }
-            }
-            file = file.getParent();
-        }
-    }
-
-    @Override
-    public Lookup getLookup() {
-        return lookup;
-    }
-
-    public InstanceContent getLookupContents() {
-        return lookupContents;
-    }
-
-    @Override
-    protected Node createNodeDelegate() {
-        DataNode node = new DataNode(this, Children.LEAF, getLookup());
-        node.setIconBaseWithExtension("com/jme3/gde/gui/Computer_File_043.gif");
-        return node;
-    }
-
-    @Override
-    protected DesignMultiViewDesc[] getMultiViewDesc() {
-        if (getLookup().lookup(ProjectAssetManager.class) == null) {
-            return new DesignMultiViewDesc[]{};
-        } else {
-
-            return new DesignMultiViewDesc[]{new PreviewView(this, TYPE_TOOLBAR)};
-        }
-    }
-
-    @Override
-    protected String getPrefixMark() {
-        return "Nifty";
-    }
-}

+ 0 - 4
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/Bundle.properties

@@ -1,4 +0,0 @@
-
-PreviewPanel.jLabel1.text=jLabel1
-ErrorPanel.jLabel1.text=jLabel1
-ErrorPanel.jLabel2.text=\ Errors

+ 0 - 62
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/ErrorPanel.form

@@ -1,62 +0,0 @@
-<?xml version="1.1" encoding="UTF-8" ?>
-
-<Form version="1.5" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.PanelFormInfo">
-  <NonVisualComponents>
-    <Component class="javax.swing.JLabel" name="jLabel1">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="com/jme3/gde/gui/multiview/Bundle.properties" key="ErrorPanel.jLabel1.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-    </Component>
-  </NonVisualComponents>
-  <AuxValues>
-    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/>
-    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
-    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
-    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
-    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
-    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
-    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
-    <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,0,93,0,0,3,24"/>
-  </AuxValues>
-
-  <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
-  <SubComponents>
-    <Container class="javax.swing.JScrollPane" name="jScrollPane1">
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
-          <BorderConstraints direction="Center"/>
-        </Constraint>
-      </Constraints>
-
-      <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
-      <SubComponents>
-        <Component class="javax.swing.JList" name="jList1">
-          <Properties>
-            <Property name="model" type="javax.swing.ListModel" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
-              <Connection code="errors" type="code"/>
-            </Property>
-          </Properties>
-        </Component>
-      </SubComponents>
-    </Container>
-    <Component class="javax.swing.JLabel" name="jLabel2">
-      <Properties>
-        <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
-          <Color blue="c8" green="c8" red="c8" type="rgb"/>
-        </Property>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="com/jme3/gde/gui/multiview/Bundle.properties" key="ErrorPanel.jLabel2.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription">
-          <BorderConstraints direction="North"/>
-        </Constraint>
-      </Constraints>
-    </Component>
-  </SubComponents>
-</Form>

+ 0 - 114
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/ErrorPanel.java

@@ -1,114 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-
-/*
- * ErrorPanel.java
- *
- * Created on 23 janv. 2012, 22:19:24
- */
-package com.jme3.gde.gui.multiview;
-
-import java.awt.Component;
-import javax.swing.DefaultListCellRenderer;
-import javax.swing.DefaultListModel;
-import javax.swing.ImageIcon;
-import javax.swing.JLabel;
-import javax.swing.JList;
-import javax.swing.SwingConstants;
-
-/**
- *
- * @author Nehon
- */
-public class ErrorPanel extends java.awt.Panel {
-    
-    private DefaultListModel errors = new DefaultListModel();
-    private static ImageIcon fatalImage = null, nonFatalImage = null;
-
-    /** Creates new form ErrorPanel */
-    public ErrorPanel() {
-        initComponents();
-        jList1.setCellRenderer(new DefaultListCellRenderer() {
-
-            @Override
-            public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
-                super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
-                if (value instanceof JLabel) {
-                    setIcon(((JLabel) value).getIcon());
-                    setText(((JLabel) value).getText());
-                }
-                return this;
-            }
-        });
-    }
-    
-    private static ImageIcon getFatalErrorIcon() {
-        if (fatalImage == null) {
-            fatalImage = new ImageIcon(ErrorPanel.class.getResource("/com/jme3/gde/gui/multiview/icons/error.png")); //NOI18N
-        }
-        return fatalImage;
-    }
-    
-    private static ImageIcon getNonfatalErrorIcon() {
-        if (nonFatalImage == null) {
-            nonFatalImage = new ImageIcon(ErrorPanel.class.getResource("/com/jme3/gde/gui/multiview/icons/warning.png")); //NOI18N
-        }
-        return nonFatalImage;
-    }
-
-    public void addError(String error) {
-         errors.addElement(new JLabel(
-              error,
-              getFatalErrorIcon(),
-              SwingConstants.LEFT));
-      
-    }
-   
-    public void addWarning(String error) {
-         errors.addElement(new JLabel(
-              error,
-              getNonfatalErrorIcon(),
-              SwingConstants.LEFT));
-      
-    }
-    
-    public void clear(){
-        errors.clear();
-    }
- 
-
-    /** This method is called from within the constructor to
-     * initialize the form.
-     * WARNING: Do NOT modify this code. The content of this method is
-     * always regenerated by the Form Editor.
-     */
-    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
-    private void initComponents() {
-
-        jLabel1 = new javax.swing.JLabel();
-        jScrollPane1 = new javax.swing.JScrollPane();
-        jList1 = new javax.swing.JList();
-        jLabel2 = new javax.swing.JLabel();
-
-        jLabel1.setText(org.openide.util.NbBundle.getMessage(ErrorPanel.class, "ErrorPanel.jLabel1.text")); // NOI18N
-
-        setLayout(new java.awt.BorderLayout());
-
-        jList1.setModel(errors);
-        jScrollPane1.setViewportView(jList1);
-
-        add(jScrollPane1, java.awt.BorderLayout.CENTER);
-
-        jLabel2.setBackground(new java.awt.Color(200, 200, 200));
-        jLabel2.setText(org.openide.util.NbBundle.getMessage(ErrorPanel.class, "ErrorPanel.jLabel2.text")); // NOI18N
-        add(jLabel2, java.awt.BorderLayout.NORTH);
-    }// </editor-fold>//GEN-END:initComponents
-    // Variables declaration - do not modify//GEN-BEGIN:variables
-    private javax.swing.JLabel jLabel1;
-    private javax.swing.JLabel jLabel2;
-    private javax.swing.JList jList1;
-    private javax.swing.JScrollPane jScrollPane1;
-    // End of variables declaration//GEN-END:variables
-}

+ 0 - 27
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/MouseInputEvent.java

@@ -1,27 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-
-package com.jme3.gde.gui.multiview;
-
-/**
- *
- * @author normenhansen
- */
-public class MouseInputEvent {
-    int x;
-    int y;
-    int button;
-    int huh;
-    boolean pressed;
-
-    public MouseInputEvent(int x, int y, int button, int huh, boolean pressed) {
-        this.x = x;
-        this.y = y;
-        this.button = button;
-        this.huh = huh;
-        this.pressed = pressed;
-    }
-
-}

+ 0 - 55
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/NiftyFileChildren.java

@@ -1,55 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-package com.jme3.gde.gui.multiview;
-
-import java.util.LinkedList;
-import java.util.List;
-import org.openide.nodes.Children;
-import org.openide.nodes.Node;
-import org.w3c.dom.Element;
-
-/**
- *
- * @author normenhansen
- */
-public class NiftyFileChildren extends Children.Keys<Element> {
-
-    Element xmlNode;
-
-    public NiftyFileChildren(Element xmlNode) {
-        this.xmlNode = xmlNode;        
-    }
-
-    @Override
-    protected void addNotify() {
-        super.addNotify();
-        setKeys(createKeys());
-    }
-
-    protected List<Element> createKeys() {
-        LinkedList<Element> ret = new LinkedList<Element>();
-        Element curElement = XmlHelper.findFirstChildElement(xmlNode);
-        while (curElement != null) {
-            if (checkElement(curElement)) {
-                ret.add(curElement);
-            }
-            curElement = XmlHelper.findNextSiblingElement(curElement);
-        }
-
-        return ret;
-    }
-
-    private boolean checkElement(Element curElement) {
-        if (!"screen".equals(curElement.getTagName())) {
-            return false;
-        }
-        return true;
-    }
-
-    @Override
-    protected Node[] createNodes(Element key) {
-        return new Node[]{new NiftyScreenNode(key.getAttribute("id"))};
-    }
-}

+ 0 - 22
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/NiftyFileNode.java

@@ -1,22 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-
-package com.jme3.gde.gui.multiview;
-
-import org.openide.nodes.AbstractNode;
-import org.w3c.dom.Element;
-
-/**
- *
- * @author normenhansen
- */
-public class NiftyFileNode extends AbstractNode{
-
-    public NiftyFileNode(Element xmlNode) {
-        super(new NiftyFileChildren(xmlNode));
-    }
-    
-
-}

+ 0 - 167
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/NiftyJmeDisplay.java

@@ -1,167 +0,0 @@
-/*
- * Copyright (c) 2009-2010 jMonkeyEngine
- * All rights reserved.
- *
- * 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 'jMonkeyEngine' 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.jme3.gde.gui.multiview;
-
-import com.jme3.asset.AssetInfo;
-import com.jme3.asset.AssetKey;
-import com.jme3.asset.AssetManager;
-import com.jme3.asset.AssetNotFoundException;
-import com.jme3.asset.DesktopAssetManager;
-import com.jme3.audio.AudioRenderer;
-import com.jme3.niftygui.RenderDeviceJme;
-import com.jme3.niftygui.SoundDeviceJme;
-import com.jme3.post.SceneProcessor;
-import com.jme3.renderer.RenderManager;
-import com.jme3.renderer.Renderer;
-import com.jme3.renderer.ViewPort;
-import com.jme3.renderer.queue.RenderQueue;
-import com.jme3.texture.FrameBuffer;
-import de.lessvoid.nifty.Nifty;
-import de.lessvoid.nifty.spi.input.InputSystem;
-import de.lessvoid.nifty.tools.TimeProvider;
-import de.lessvoid.nifty.tools.resourceloader.ResourceLocation;
-import java.io.InputStream;
-import java.net.URL;
-
-public class NiftyJmeDisplay extends com.jme3.niftygui.NiftyJmeDisplay implements SceneProcessor {
-
-    protected class ResourceLocationJmp implements ResourceLocation {
-
-        public InputStream getResourceAsStream(String path) {
-            AssetKey<Object> key = new AssetKey<Object>(path);
-            AssetInfo info = assetManager.locateAsset(key);
-            if (info != null){
-                return info.openStream();
-            }else{
-                throw new AssetNotFoundException(path);
-            }
-        }
-
-        public URL getResource(String path) {
-            throw new UnsupportedOperationException();
-        }
-    }
-    
-    private ResourceLocation resourceLocation = new ResourceLocationJmp();
-    
-    public NiftyJmeDisplay(AssetManager assetManager, 
-                           InputSystem inputManager,
-                           AudioRenderer audioRenderer,
-                           ViewPort vp){
-        this.assetManager = assetManager;
-        //TODO: move
-        ((DesktopAssetManager)assetManager).clearCache();
-        w = vp.getCamera().getWidth();
-        h = vp.getCamera().getHeight();
-
-        soundDev = new SoundDeviceJme(assetManager, audioRenderer);
-        renderDev = new RenderDeviceJme(this);
-        nifty = new Nifty(renderDev, soundDev, inputManager, new TimeProvider());
-        nifty.getResourceLoader().addResourceLocation(resourceLocation);
-    }
-
-    @Override
-    public void initialize(RenderManager rm, ViewPort vp) {
-        this.renderManager = rm;
-        renderDev.setRenderManager(rm);
-        inited = true;
-        this.vp = vp;
-        this.renderer = rm.getRenderer();
-        
-    }
-
-    @Override
-    public Nifty getNifty() {
-        return nifty;
-    }
-
-    RenderDeviceJme getRenderDevice() {
-        return renderDev;
-    }
-
-    AssetManager getAssetManager() {
-        return assetManager;
-    }
-
-    RenderManager getRenderManager() {
-        return renderManager;
-    }
-
-    int getHeight() {
-        return h;
-    }
-
-    int getWidth() {
-        return w;
-    }
-
-    Renderer getRenderer(){
-        return renderer;
-    }
-
-    @Override
-    public void reshape(ViewPort vp, int w, int h) {
-        this.w = w;
-        this.h = h;
-        nifty.resolutionChanged();
-    }
-
-    @Override
-    public boolean isInitialized() {
-        return inited;
-    }
-
-    @Override
-    public void preFrame(float tpf) {
-    }
-
-    @Override
-    public void postQueue(RenderQueue rq) {
-        // render nifty before anything else
-        renderManager.setCamera(vp.getCamera(), true);
-        nifty.render(false);
-        renderManager.setCamera(vp.getCamera(), false);
-    }
-
-    @Override
-    public void postFrame(FrameBuffer out) {
-    }
-
-    @Override
-    public void cleanup() {
-        nifty.getResourceLoader().removeResourceLocation(resourceLocation);
-        inited = false;
-//        nifty.exit();
-    }
-
-}

+ 0 - 53
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/NiftyPreviewInputHandler.java

@@ -1,53 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-package com.jme3.gde.gui.multiview;
-
-import de.lessvoid.nifty.NiftyInputConsumer;
-import de.lessvoid.nifty.input.keyboard.KeyboardInputEvent;
-import de.lessvoid.nifty.tools.resourceloader.NiftyResourceLoader;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- *
- * @author normenhansen
- */
-public class NiftyPreviewInputHandler implements de.lessvoid.nifty.spi.input.InputSystem {
-
-    private List<MouseInputEvent> mouseEvents = new LinkedList<MouseInputEvent>();
-    private List<KeyboardInputEvent> keyEvents = new LinkedList<KeyboardInputEvent>();
-
-    public synchronized void forwardEvents(NiftyInputConsumer nic) {
-        for (Iterator<MouseInputEvent> it = mouseEvents.iterator(); it.hasNext();) {
-            MouseInputEvent mouseInputEvent = it.next();
-            nic.processMouseEvent(mouseInputEvent.x, mouseInputEvent.y, mouseInputEvent.button, mouseInputEvent.huh, mouseInputEvent.pressed);
-            it.remove();
-        }
-        for (Iterator<KeyboardInputEvent> it = keyEvents.iterator(); it.hasNext();) {
-            KeyboardInputEvent keyInputEvent = it.next();
-            nic.processKeyboardEvent(keyInputEvent);
-            it.remove();
-        }
-    }
-
-    public synchronized void addMouseEvent(int newMouseX, int newMouseY, boolean mouseDown) {
-        MouseInputEvent event = new MouseInputEvent(newMouseX, newMouseY, 0, 0, mouseDown);
-        mouseEvents.add(event);
-    }
-
-    public synchronized void addKeyEvent(int newKey, char newCharacter, boolean newKeyDown, boolean newShiftDown, boolean newControlDown) {
-        KeyboardInputEvent event = new KeyboardInputEvent(newKey, newCharacter, newKeyDown, newShiftDown, newControlDown);
-        keyEvents.add(event);
-    }
-
-    public void setMousePosition(int i, int i1) {
-//        throw new UnsupportedOperationException("Not supported yet.");
-    }
-
-    public void setResourceLoader(NiftyResourceLoader nrl) {
-    }
-    
-}

+ 0 - 335
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/NiftyPreviewPanel.java

@@ -1,335 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-package com.jme3.gde.gui.multiview;
-
-import com.jme3.audio.AudioRenderer;
-import com.jme3.gde.core.assets.ProjectAssetManager;
-import com.jme3.gde.core.scene.OffScenePanel;
-import com.jme3.gde.core.scene.SceneApplication;
-import com.jme3.gde.gui.OldNiftyGuiDataObject;
-import com.jme3.renderer.ViewPort;
-import de.lessvoid.nifty.Nifty;
-import java.awt.Dimension;
-import java.awt.event.ItemEvent;
-import java.awt.event.ItemListener;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
-import java.awt.event.MouseMotionListener;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.concurrent.Callable;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import javax.swing.JComboBox;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JToolBar;
-import org.netbeans.modules.xml.multiview.Error;
-import org.netbeans.modules.xml.multiview.ui.PanelView;
-import org.netbeans.modules.xml.multiview.ui.ToolBarDesignEditor;
-import org.openide.NotifyDescriptor;
-import org.openide.NotifyDescriptor.Message;
-import org.openide.nodes.Node;
-import org.openide.util.Exceptions;
-import org.openide.xml.XMLUtil;
-import org.w3c.dom.Document;
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- *
- * @author normenhansen
- */
-public class NiftyPreviewPanel extends PanelView implements ErrorHandler {
-
-    private OldNiftyGuiDataObject niftyObject;
-    private OffScenePanel offPanel;
-    private Nifty nifty;
-    private Document doc;
-    private ToolBarDesignEditor comp;
-    private String screen = "";
-    private NiftyPreviewInputHandler inputHandler;
-    private NiftyJmeDisplay niftyDisplay;
-    private JScrollPane scrollPanel;
-    private int width = 640, height = 480;
-    private ErrorPanel errors;
-
-    public NiftyPreviewPanel(OldNiftyGuiDataObject niftyObject, ToolBarDesignEditor comp) {
-        super();
-        setRoot(Node.EMPTY);
-        this.niftyObject = niftyObject;
-        this.comp = comp;
-        comp.setContentView(this);
-        preparePreview();
-        updatePreView();
-    }
-
-    private void createToolbar() {
-        JToolBar toolBar = new JToolBar();
-        toolBar.setPreferredSize(new Dimension(10000, 24));
-        toolBar.setMaximumSize(new Dimension(10000, 24));
-        toolBar.setFloatable(false);
-        JComboBox comboBox = new JComboBox(new String[]{"640x480", "480x800", "800x480", "800x600", "1024x768", "1280x720"});
-        comboBox.addItemListener(new ItemListener() {
-
-            public void itemStateChanged(ItemEvent e) {
-                String string = (String) e.getItem();
-                if ("640x480".equals(string)) {
-                    width = 640;
-                    height = 480;
-                } else if ("1024x768".equals(string)) {
-                    width = 1024;
-                    height = 768;
-                } else if ("1280x720".equals(string)) {
-                    width = 1280;
-                    height = 720;
-                } else if ("800x600".equals(string)) {
-                    width = 800;
-                    height = 600;
-                } else if ("800x480".equals(string)) {
-                    width = 800;
-                    height = 480;
-                } else if ("480x800".equals(string)) {
-                    width = 480;
-                    height = 800;
-                } else {
-                    width = 640;
-                    height = 480;
-                }
-                offPanel.resizeGLView(width, height);
-
-                SceneApplication.getApplication().enqueue(new Callable<Object>() {
-
-                    public Object call() throws Exception {
-                        niftyDisplay.reshape(offPanel.getViewPort(), width, height);
-                        return null;
-                    }
-                });
-
-//                updatePreView();
-            }
-        });
-        toolBar.add(comboBox);
-        toolBar.add(new JPanel());
-        setLayout(new java.awt.BorderLayout());
-        add(toolBar, java.awt.BorderLayout.NORTH);
-        errors = new ErrorPanel();
-        errors.setPreferredSize(new Dimension(0, 80));
-
-
-        add(errors, java.awt.BorderLayout.SOUTH);
-
-    }
-
-    public void updatePreView() {
-        updatePreView(screen);
-    }
-
-    public void updatePreView(final String screen) {
-        errors.clear();
-        final ProjectAssetManager pm = niftyObject.getLookup().lookup(ProjectAssetManager.class);
-        if (pm == null) {
-            Logger.getLogger(NiftyPreviewPanel.class.getName()).log(Level.WARNING, "No Project AssetManager found!");
-        }
-        InputStream stream = null;
-        try {
-            stream = niftyObject.getPrimaryFile().getInputStream();
-            doc = XMLUtil.parse(new InputSource(stream), false, false, this, null);
-            NiftyFileNode rootContext = new NiftyFileNode(doc.getDocumentElement());
-            setRoot(rootContext);
-            comp.setRootContext(rootContext);
-        } catch (Exception ex) {
-//            Message msg = new NotifyDescriptor.Message(
-//                    "Error parsing File:" + ex,
-//                    NotifyDescriptor.ERROR_MESSAGE);
-            //  DialogDisplayer.getDefault().notifyLater(msg);
-            Exceptions.printStackTrace(ex);            
-            // return;
-        } finally {
-            try {
-                if (stream != null) {
-                    stream.close();
-                }
-            } catch (IOException ex) {
-                Exceptions.printStackTrace(ex);
-            }
-        }
-        try {
-
-            if (nifty != null) {
-                nifty.validateXml(niftyObject.getPrimaryFile().getPath());
-
-            }
-        } catch (Exception e) {
-            if (e instanceof SAXParseException) {
-                SAXParseException spe = (SAXParseException) e;
-                errors.addError("Line " + spe.getLineNumber() + " col :" + spe.getColumnNumber() + " : " + spe.getMessage());
-            } else {
-                errors.addError(e.getMessage());
-            }
-            Exceptions.printStackTrace(e);
-        }
-        SceneApplication.getApplication().enqueue(new Callable<Object>() {
-
-            public Object call() throws Exception {
-
-                try {
-                    nifty.fromXml(pm.getRelativeAssetPath(niftyObject.getPrimaryFile().getPath()), screen);
-                    if (screen == null || screen.length() == 0) {
-                        Collection<String> screens = nifty.getAllScreensName();
-                        for (Iterator<String> it = screens.iterator(); it.hasNext();) {
-                            String string = it.next();
-                            nifty.gotoScreen(string);
-                            return null;
-                        }
-                    }
-                } catch (Exception ex) {
-                    Message msg = new NotifyDescriptor.Message(
-                            "Error opening File:" + ex,
-                            NotifyDescriptor.ERROR_MESSAGE);
-                    //  DialogDisplayer.getDefault().notifyLater(msg);                   
-                    Exceptions.printStackTrace(ex);
-                    errors.addError(ex.getMessage());
-                }
-                return null;
-            }
-        });
-//        java.awt.EventQueue.invokeLater(new Runnable() {
-//
-//            public void run() {
-//                validateTree();
-//            }
-//        });
-    }
-
-    @Override
-    public void initComponents() {
-        super.initComponents();
-        setLayout(new javax.swing.BoxLayout(this, javax.swing.BoxLayout.PAGE_AXIS));
-        createToolbar();
-        scrollPanel = new JScrollPane();
-        offPanel = new OffScenePanel(640, 480);
-        scrollPanel.getViewport().add(offPanel);
-        add(scrollPanel);
-        offPanel.startPreview();
-        prepareInputHandler();
-    }
-
-    private void prepareInputHandler() {
-        inputHandler = new NiftyPreviewInputHandler();
-        offPanel.addMouseMotionListener(new MouseMotionListener() {
-
-            public void mouseDragged(MouseEvent e) {
-                inputHandler.addMouseEvent(e.getX(), e.getY(), e.getButton() == MouseEvent.NOBUTTON ? false : true);
-            }
-
-            public void mouseMoved(MouseEvent e) {
-                inputHandler.addMouseEvent(e.getX(), e.getY(), e.getButton() == MouseEvent.NOBUTTON ? false : true);
-            }
-        });
-        offPanel.addMouseListener(new MouseListener() {
-
-            public void mouseClicked(MouseEvent e) {
-            }
-
-            public void mousePressed(MouseEvent e) {
-                inputHandler.addMouseEvent(e.getX(), e.getY(), e.getButton() == MouseEvent.NOBUTTON ? false : true);
-            }
-
-            public void mouseReleased(MouseEvent e) {
-            }
-
-            public void mouseEntered(MouseEvent e) {
-            }
-
-            public void mouseExited(MouseEvent e) {
-            }
-        });
-        offPanel.addKeyListener(new KeyListener() {
-
-            public void keyTyped(KeyEvent e) {
-            }
-
-            public void keyPressed(KeyEvent e) {
-                inputHandler.addKeyEvent(e.getKeyCode(), e.getKeyChar(), true, e.isShiftDown(), e.isControlDown());
-            }
-
-            public void keyReleased(KeyEvent e) {
-            }
-        });
-    }
-
-    private void preparePreview() {
-        SceneApplication.getApplication().enqueue(new Callable<Object>() {
-
-            public Object call() throws Exception {
-                ViewPort guiViewPort = offPanel.getViewPort();
-                ProjectAssetManager pm = niftyObject.getLookup().lookup(ProjectAssetManager.class);
-                if (pm == null) {
-                    Logger.getLogger(NiftyPreviewPanel.class.getName()).log(Level.WARNING, "No Project AssetManager found!");
-                    return null;
-                }
-                AudioRenderer audioRenderer = SceneApplication.getApplication().getAudioRenderer();
-                niftyDisplay = new NiftyJmeDisplay(pm,
-                        inputHandler,
-                        audioRenderer,
-                        guiViewPort);
-                nifty = niftyDisplay.getNifty();
-
-                // attach the nifty display to the gui view port as a processor
-                guiViewPort.addProcessor(niftyDisplay);
-                return null;
-            }
-        });
-    }
-
-    @Override
-    protected Error validateView() {
-        return null;
-    }
-
-    @Override
-    public void showSelection(Node[] nodes) {
-        this.screen = nodes[0].getName();
-        final String screen = this.screen;
-        SceneApplication.getApplication().enqueue(new Callable<Object>() {
-
-            public Object call() throws Exception {
-                nifty.gotoScreen(screen);
-                return null;
-            }
-        });
-    }
-
-    public void cleanup() {
-        offPanel.stopPreview();
-        SceneApplication.getApplication().enqueue(new Callable<Object>() {
-
-            public Object call() throws Exception {
-                ViewPort guiViewPort = offPanel.getViewPort();
-                guiViewPort.removeProcessor(niftyDisplay);
-                return null;
-            }
-        });
-    }
-
-    public void warning(SAXParseException exception) throws SAXException {
-        //errors.addWarning("Line " + exception.getLineNumber() + " : " + exception.getMessage());
-    }
-
-    public void error(SAXParseException exception) throws SAXException {
-        //errors.addError("Line " + exception.getLineNumber() + " : " + exception.getMessage());
-    }
-
-    public void fatalError(SAXParseException exception) throws SAXException {
-        //errors.addError("Line " + exception.getLineNumber() + " : " + exception.getMessage());
-    }
-}

+ 0 - 22
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/NiftyScreenNode.java

@@ -1,22 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-
-package com.jme3.gde.gui.multiview;
-
-import org.openide.nodes.AbstractNode;
-import org.openide.nodes.Children;
-
-/**
- *
- * @author normenhansen
- */
-public class NiftyScreenNode extends AbstractNode{
-
-    public NiftyScreenNode(String name) {
-        super(Children.LEAF);
-        setName(name);
-    }
-
-}

+ 0 - 48
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/PreviewToolbarElement.java

@@ -1,48 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-
-package com.jme3.gde.gui.multiview;
-
-import com.jme3.gde.gui.OldNiftyGuiDataObject;
-import org.netbeans.modules.xml.multiview.ToolBarMultiViewElement;
-import org.netbeans.modules.xml.multiview.ui.SectionView;
-import org.netbeans.modules.xml.multiview.ui.ToolBarDesignEditor;
-import org.openide.nodes.Node;
-
-/**
- *
- * @author normenhansen
- */
-public class PreviewToolbarElement extends ToolBarMultiViewElement {
-//    private NiftyGuiDataObject dObj;
-    private ToolBarDesignEditor comp;
-    private NiftyPreviewPanel viewPanel;
-
-    public PreviewToolbarElement(OldNiftyGuiDataObject dObj) {
-        super(dObj);
-//        this.dObj = dObj;
-        comp = new ToolBarDesignEditor();
-        setVisualEditor(comp);
-        viewPanel=new NiftyPreviewPanel(dObj, comp);
-    }
-
-    @Override
-    public SectionView getSectionView() {
-        return null;
-    }
-
-    @Override
-    public void componentShowing() {
-        super.componentShowing();
-        viewPanel.updatePreView();
-    }
-
-    @Override
-    public void componentClosed() {
-        super.componentClosed();
-        viewPanel.cleanup();
-    }
-
-}

+ 0 - 35
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/PreviewView.java

@@ -1,35 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-package com.jme3.gde.gui.multiview;
-
-import com.jme3.gde.gui.OldNiftyGuiDataObject;
-import org.netbeans.modules.xml.multiview.DesignMultiViewDesc;
-
-/**
- *
- * @author normenhansen
- */
-public class PreviewView extends DesignMultiViewDesc {
-
-    private int type;
-
-    public PreviewView(OldNiftyGuiDataObject dObj, int type) {
-        super(dObj, "Design");
-        this.type = type;
-    }
-
-    public org.netbeans.core.spi.multiview.MultiViewElement createElement() {
-        OldNiftyGuiDataObject dObj = (OldNiftyGuiDataObject) getDataObject();
-        return new PreviewToolbarElement(dObj);
-    }
-
-    public java.awt.Image getIcon() {
-        return org.openide.util.Utilities.loadImage("com/jme3/gde/gui/Computer_File_043.gif"); //NOI18N
-    }
-
-    public String preferredID() {
-        return "Toc_multiview_design" + String.valueOf(type);
-    }
-}

+ 0 - 73
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/XmlHelper.java

@@ -1,73 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-
-package com.jme3.gde.gui.multiview;
-
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- *
- * @author normenhansen
- */
-public class XmlHelper {
-    public static Element findFirstChildElement(Element parent) {
-        org.w3c.dom.Node ret = parent.getFirstChild();
-        while (ret != null && (!(ret instanceof Element))) {
-            ret = ret.getNextSibling();
-        }
-        return (Element) ret;
-    }
-
-    public static Element findChildElement(Element parent, String name) {
-        if (parent == null) {
-            return null;
-        }
-        org.w3c.dom.Node ret = parent.getFirstChild();
-        while (ret != null && (!(ret instanceof Element) || !ret.getNodeName().equals(name))) {
-            ret = ret.getNextSibling();
-        }
-        return (Element) ret;
-    }
-
-    public static Element findNextElement(Node ret, String name) {
-        ret = ret.getNextSibling();
-        while (ret != null && (!(ret instanceof Element) || !ret.getNodeName().equals(name))) {
-            ret = ret.getNextSibling();
-        }
-        return (Element) ret;
-    }
-
-    public static Element findChildElementWithAttribute(Element parent, String name, String attribute, String value) {
-        if (parent == null) {
-            return null;
-        }
-        org.w3c.dom.Node ret = parent.getFirstChild();
-        while (ret != null && (!(ret instanceof Element) || !ret.getNodeName().equals(name) || ((Element)ret).getAttribute(attribute)==null || !((Element)ret).getAttribute(attribute).equals(value))) {
-            ret = ret.getNextSibling();
-        }
-        return (Element) ret;
-    }
-
-    public static Element findNextElementWithAttribute(Node ret, String name, String attribute, String value) {
-        ret = ret.getNextSibling();
-        while (ret != null && (!(ret instanceof Element) || !ret.getNodeName().equals(name) || ((Element)ret).getAttribute(attribute)==null || !((Element)ret).getAttribute(attribute).equals(value))) {
-            ret = ret.getNextSibling();
-        }
-        return (Element) ret;
-    }
-
-    public static Element findNextSiblingElement(Element current) {
-        org.w3c.dom.Node ret = current.getNextSibling();
-        while (ret != null) {
-            if (ret instanceof Element) {
-                return (Element) ret;
-            }
-            ret = ret.getNextSibling();
-        }
-        return null;
-    }
-
-}

BIN
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/icons/Computer_File_043.gif


+ 2 - 2
sdk/jme3-gui/src/com/jme3/gde/gui/package-info.java

@@ -2,8 +2,8 @@
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
-@TemplateRegistrations(value = {@TemplateRegistration(folder = "GUI", displayName = "Empty Gui",content = "EmptyNiftyGui.xml"),
-@TemplateRegistration(folder = "GUI", displayName = "HelloJme",content = "NiftyGui.xml")})
+@TemplateRegistrations(value = {@TemplateRegistration(folder = "GUI", displayName = "Empty Gui",content = "templates/EmptyNiftyGui.xml"),
+@TemplateRegistration(folder = "GUI", displayName = "HelloJme",content = "templates/NiftyGui.xml")})
 package com.jme3.gde.gui;
 
 import org.netbeans.api.templates.TemplateRegistration;

+ 0 - 88
sdk/jme3-gui/src/com/jme3/gde/gui/palette/JmePaletteUtilities.java

@@ -1,88 +0,0 @@
-/*
- *  Copyright (c) 2009-2010 jMonkeyEngine
- *  All rights reserved.
- * 
- *  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 'jMonkeyEngine' 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.jme3.gde.gui.palette;
-
-import javax.swing.text.BadLocationException;
-import javax.swing.text.Caret;
-import javax.swing.text.Document;
-import javax.swing.text.JTextComponent;
-import javax.swing.text.StyledDocument;
-import org.openide.text.NbDocument;
-
-public class JmePaletteUtilities {
-
-    public static void insert(final String s,final JTextComponent target) throws BadLocationException {
-
-        final StyledDocument doc = (StyledDocument)target.getDocument();
-
-        class AtomicChange implements Runnable {
-
-            public void run() {
-                Document value = target.getDocument();
-                if (value == null)
-                    return;
-                try {
-                    insert(s, target, doc);
-                } catch (BadLocationException e) {}
-            }
-        }
-
-        try {
-            NbDocument.runAtomicAsUser(doc, new AtomicChange());
-        } catch (BadLocationException ex) {}
-
-    }
-
-    private static int insert(String s, JTextComponent target, Document doc) throws BadLocationException {
-
-        int start = -1;
-
-        try {
-
-            //firstly, find selected text range:
-            Caret caret = target.getCaret();
-            int p0 = Math.min(caret.getDot(), caret.getMark());
-            int p1 = Math.max(caret.getDot(), caret.getMark());
-            doc.remove(p0, p1 - p0);
-
-            //then, replace selected text range with the inserted one:
-            start = caret.getDot();
-            doc.insertString(start, s, null);
-
-        } catch (BadLocationException ble) {}
-
-        return start;
-
-    }
-
-}

+ 0 - 63
sdk/jme3-gui/src/com/jme3/gde/gui/palette/Screen.java

@@ -1,63 +0,0 @@
-/*
- *  Copyright (c) 2009-2010 jMonkeyEngine
- *  All rights reserved.
- * 
- *  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 'jMonkeyEngine' 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.jme3.gde.gui.palette;
-import javax.swing.text.BadLocationException;
-import javax.swing.text.JTextComponent;
-import org.openide.text.ActiveEditorDrop;
-
-/**
- *
- * @author normenhansen, zathras
- */
-public class Screen implements ActiveEditorDrop {
-
-    public Screen() {
-    }
-
-    private String createBody() {
-
-        String body = "<screen></screen>";
-        return body;
-    }
-
-    public boolean handleTransfer(JTextComponent targetComponent) {
-        String body = createBody();
-        try {
-            JmePaletteUtilities.insert(body, targetComponent);
-        } catch (BadLocationException ble) {
-            return false;
-        }
-        return true;
-    }
-
-}

+ 0 - 16
sdk/jme3-gui/src/com/jme3/gde/gui/palette/Screen.xml

@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE editor_palette_item PUBLIC "-//NetBeans//Editor Palette Item 1.1//EN"
-  "http://www.netbeans.org/dtds/editor-palette-item-1_1.dtd">
-
-<editor_palette_item version="1.0">
-
-    <class name="com.jme3.gde.gui.palette.Screen" />
-
-    <icon16 urlvalue="com/jme3/gde/core/sceneviewer/jme-logo.png" />
-    <icon32 urlvalue="com/jme3/gde/core/sceneviewer/jme-logo.png" />
-
-    <inline-description>
-       <display-name>Screen</display-name>
-       <tooltip>Nifty-gui Screen</tooltip>
-    </inline-description>
-</editor_palette_item>

+ 10 - 0
sdk/jme3-gui/src/com/jme3/gde/gui/templates/EmptyNiftyGui.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<nifty xmlns="http://nifty-gui.lessvoid.com/nifty-gui" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://raw.githubusercontent.com/void256/nifty-gui/1.4/nifty-core/src/main/resources/nifty.xsd https://raw.githubusercontent.com/void256/nifty-gui/1.4/nifty-core/src/main/resources/nifty.xsd">
+  <!-- +++++++++++++++++++++++++++++++++++++++ -->
+  <!-- start screen -->
+  <!-- +++++++++++++++++++++++++++++++++++++++ -->
+  <screen id="GScreen0" controller="mygame.Main">
+    <layer id="GLayer0" childLayout="absolute">
+    </layer>
+  </screen>
+</nifty>

+ 19 - 0
sdk/jme3-gui/src/com/jme3/gde/gui/templates/NiftyGui.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<nifty xmlns="http://nifty-gui.sourceforge.net/nifty-1.3.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://nifty-gui.sourceforge.net/nifty-1.3.xsd http://nifty-gui.sourceforge.net/nifty-1.3.xsd">
+  <!-- +++++++++++++++++++++++++++++++++++++++ -->
+  <!-- start screen -->
+  <!-- +++++++++++++++++++++++++++++++++++++++ -->
+  <screen id="start" controller="mygame.Main">
+    <layer id="layer" backgroundColor="#003f" childLayout="center">
+      <panel id="panel" height="25%" width="35%" align="center" valign="center" backgroundColor="#f60f" childLayout="center" visibleToMouse="true">
+        <interact onClick="quit()"/>
+        <effect>
+          <onStartScreen name="move" mode="in" direction="top" length="300" startDelay="0" inherit="true"/>
+          <onEndScreen name="move" mode="out" direction="bottom" length="300" startDelay="0" inherit="true"/>
+          <onHover name="pulsate" scaleFactor="0.008" startColor="#f600" endColor="#ffff" post="true"/>
+        </effect>
+        <text id="text" font="aurulent-sans-17.fnt" color="#000f" text="Hello World!" align="center" valign="center" />
+      </panel>
+    </layer>
+  </screen>
+</nifty>

+ 200 - 0
sdk/jme3-gui/src/com/jme3/gde/gui/view/Navigator.java

@@ -0,0 +1,200 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package com.jme3.gde.gui.view;
+
+import com.jme3.gde.gui.nodes.GElementNode;
+import com.jme3.gde.gui.nodes.GUINode;
+import jada.ngeditor.controller.CommandProcessor;
+import jada.ngeditor.controller.GUIEditor;
+import jada.ngeditor.controller.commands.SelectCommand;
+import jada.ngeditor.listeners.events.SelectionChanged;
+import jada.ngeditor.model.GUI;
+import jada.ngeditor.model.GuiEditorModel;
+import jada.ngeditor.model.elements.GElement;
+import java.awt.BorderLayout;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyVetoException;
+import java.util.ArrayList;
+import java.util.Observable;
+import java.util.Observer;
+import javax.swing.JComponent;
+import org.netbeans.spi.navigator.NavigatorPanel;
+import org.openide.explorer.ExplorerManager;
+import org.openide.explorer.ExplorerUtils;
+import org.openide.explorer.view.BeanTreeView;
+import org.openide.nodes.AbstractNode;
+import org.openide.nodes.Node;
+import org.openide.util.Exceptions;
+import org.openide.util.Lookup;
+import org.openide.util.lookup.ProxyLookup;
+
+/**
+ *
+ * @author cris
+ */
[email protected](mimeType = "text/x-niftygui+xml", displayName="Gui View")
+public class Navigator extends javax.swing.JPanel implements NavigatorPanel,ExplorerManager.Provider , Observer, PropertyChangeListener{
+    private Lookup lookup;
+    private  ExplorerManager mgr = new ExplorerManager();
+    private final BeanTreeView beanTreeView;
+    /**
+     * Creates new form Navigator
+     */
+    public Navigator() {
+        initComponents();
+        setLayout(new BorderLayout());
+        beanTreeView = new BeanTreeView();
+        add(beanTreeView, BorderLayout.CENTER);
+        final GuiEditorModel model = (GuiEditorModel) CommandProcessor.getInstance().getObservable();
+        model.addObserver(this);
+        if(model.getCurrent() != null){
+            try {
+                this.intNavigator(model.getCurrent());
+            } catch (PropertyVetoException ex) {
+                Exceptions.printStackTrace(ex);
+            }
+        }
+        
+        
+    }
+
+    /**
+     * This method is called from within the constructor to initialize the form.
+     * WARNING: Do NOT modify this code. The content of this method is always
+     * regenerated by the Form Editor.
+     */
+    @SuppressWarnings("unchecked")
+    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+    private void initComponents() {
+
+        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
+        this.setLayout(layout);
+        layout.setHorizontalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGap(0, 244, Short.MAX_VALUE)
+        );
+        layout.setVerticalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGap(0, 274, Short.MAX_VALUE)
+        );
+    }// </editor-fold>//GEN-END:initComponents
+    // Variables declaration - do not modify//GEN-BEGIN:variables
+    // End of variables declaration//GEN-END:variables
+
+    @Override
+    public String getDisplayName() {
+       return "GuiView";
+    }
+
+    @Override
+    public String getDisplayHint() {
+       return "Easy view for your gui";
+    }
+
+    @Override
+    public JComponent getComponent() {
+       return this;
+    }
+
+    @Override
+    public void panelActivated(Lookup context) {
+        
+    }
+
+    @Override
+    public void panelDeactivated() {
+        ExplorerUtils.activateActions(mgr, false);
+    }
+
+    @Override
+    public Lookup getLookup() {
+       return lookup;
+    }
+
+    @Override
+    public ExplorerManager getExplorerManager() {
+        return mgr;
+    }
+
+    @Override
+    public void update(Observable o, Object arg) {
+       if(o instanceof GuiEditorModel){
+           try {
+               GuiEditorModel model = (GuiEditorModel) o;
+               model.getCurrent().addObserver(this);
+               model.getCurrent().getSelection().addObserver(this);
+               this.intNavigator(model.getCurrent());
+           } catch (PropertyVetoException ex) {
+               Exceptions.printStackTrace(ex);
+           }
+       }
+       
+       if(arg instanceof SelectionChanged){
+           SelectionChanged event = (SelectionChanged) arg;
+           if(event.getNewSelection().isEmpty()){
+               return;
+           }
+           ArrayList<String> path = new ArrayList<String>();
+           GElement parent = ((SelectionChanged)arg).getElement();
+           while(parent!=null){
+               path.add(parent.getID());
+               parent = parent.getParent();
+           }
+           Node result = mgr.getRootContext();
+           for(int i=path.size()-1;i>=0;i--){
+               result = result.getChildren().findChild(path.get(i));
+           }
+            try {
+                mgr.setSelectedNodes(new Node[]{result});
+            } catch (PropertyVetoException ex) {
+                Exceptions.printStackTrace(ex);
+            }
+       }
+        beanTreeView.updateUI();
+    }
+
+    @Override
+    public void propertyChange(PropertyChangeEvent evt) {
+        if (evt.getPropertyName().equals(ExplorerManager.PROP_SELECTED_NODES)) {
+            Node[] newValue = (Node[]) evt.getNewValue();
+            if (newValue.length > 0) {
+                AbstractNode firstSelected = (AbstractNode) newValue[0];
+                if (firstSelected instanceof GElementNode) {
+                    GElement element = ((GElementNode) firstSelected).getGelement();
+                    GUI gui = ((GUINode)mgr.getRootContext()).getGui();
+                    gui.getSelection().deleteObserver(this); // I don't wont to get notified about this selection change
+                    SelectCommand command = CommandProcessor.getInstance().getCommand(SelectCommand.class);
+                    command.setElement(element);
+                    try {
+                        CommandProcessor.getInstance().excuteCommand(command);
+                    } catch (Exception ex) {
+                        Exceptions.printStackTrace(ex);
+                    }
+                     gui.getSelection().addObserver(this);
+                    
+                }
+            }
+        }
+    }
+
+
+    private void intNavigator(GUI gui) throws PropertyVetoException {
+        
+       
+        ExplorerUtils.activateActions(mgr, true);
+       
+        
+        AbstractNode guiRoot = new GUINode(gui);
+        guiRoot.setName("Gui");
+        this.mgr.setRootContext(guiRoot);
+        this.beanTreeView.updateUI();
+        mgr.addPropertyChangeListener(this);
+        this.mgr.setSelectedNodes(new Node[]{guiRoot});
+        Lookup lookup1 = ExplorerUtils.createLookup(mgr, getActionMap());
+        lookup = new ProxyLookup(lookup1);
+        
+    }
+}

+ 404 - 0
sdk/jme3-gui/src/com/jme3/gde/gui/view/NiftyGuiVisualElement.java

@@ -0,0 +1,404 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package com.jme3.gde.gui.view;
+
+import com.jme3.app.Application;
+import com.jme3.gde.core.assets.ProjectAssetManager;
+import com.jme3.gde.gui.NiftyGuiDataObject;
+import com.jme3.gde.gui.nodes.GElementNode;
+import com.jme3.gde.gui.nodes.GUINode;
+import de.lessvoid.nifty.Nifty;
+import jada.ngeditor.controller.CommandProcessor;
+import jada.ngeditor.controller.GUIEditor;
+import jada.ngeditor.guiviews.DND.PaletteDropTarget;
+import jada.ngeditor.guiviews.DND.TrasferHandling;
+import jada.ngeditor.guiviews.J2DNiftyView;
+import jada.ngeditor.listeners.events.SelectionChanged;
+import jada.ngeditor.model.GUI;
+import jada.ngeditor.model.GuiEditorModel;
+import jada.ngeditor.model.elements.GElement;
+import jada.ngeditor.model.elements.GLayer;
+import jada.ngeditor.model.exception.NoProductException;
+import jada.ngeditor.persistence.GUIWriter;
+import java.awt.Dimension;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyVetoException;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Observable;
+import java.util.Observer;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.swing.Action;
+import javax.swing.ActionMap;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.JComboBox;
+import javax.swing.JComponent;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JToolBar;
+import javax.xml.bind.JAXBException;
+import javax.xml.parsers.ParserConfigurationException;
+import org.netbeans.api.progress.ProgressHandle;
+import org.netbeans.api.progress.ProgressHandleFactory;
+import org.netbeans.core.spi.multiview.CloseOperationState;
+import org.netbeans.core.spi.multiview.MultiViewElement;
+import org.netbeans.core.spi.multiview.MultiViewElementCallback;
+import org.netbeans.spi.actions.AbstractSavable;
+import org.openide.awt.UndoRedo;
+import org.openide.explorer.ExplorerManager;
+import org.openide.explorer.ExplorerUtils;
+import org.openide.loaders.DataObject;
+import org.openide.nodes.Node;
+import org.openide.util.Exceptions;
+import org.openide.util.Lookup;
+import org.openide.util.NbBundle.Messages;
+import org.openide.util.lookup.AbstractLookup;
+import org.openide.util.lookup.InstanceContent;
+import org.openide.util.lookup.ProxyLookup;
+import org.openide.windows.TopComponent;
+import org.xml.sax.SAXException;
+import sun.rmi.runtime.Log;
+
[email protected](
+        displayName = "#LBL_NiftyGui_VISUAL",
+        iconBase = "com/jme3/gde/gui/multiview/icons/Computer_File_043.gif",
+        mimeType = "text/x-niftygui+xml",
+        persistenceType = TopComponent.PERSISTENCE_NEVER,
+        preferredID = "NiftyGuiVisual",
+        position = 2000)
+@Messages("LBL_NiftyGui_VISUAL=Visual")
+public final class NiftyGuiVisualElement extends JPanel implements MultiViewElement , ExplorerManager.Provider,Observer, PropertyChangeListener {
+    private static final Logger logger = Logger.getLogger(NiftyGuiVisualElement.class.getName());
+    private NiftyGuiDataObject obj;
+    private JToolBar toolbar = new JToolBar();
+    private transient MultiViewElementCallback callback;
+    private GUIEditor editor;
+    private final Nifty nifty;
+    private final J2DNiftyView view;
+    private final JComboBox layers = new JComboBox();
+    private final ExplorerManager nodesManager;
+    private final UndoRedo.Manager undoSupport;
+    private int guiID;
+     private final InstanceContent content = new InstanceContent();
+     private Lookup lookup;
+
+    public NiftyGuiVisualElement(Lookup lkp) {
+        obj = lkp.lookup(NiftyGuiDataObject.class);
+        assert obj != null;
+        initComponents();
+        view = new J2DNiftyView(800, 600);
+        view.init();
+        this.scrollArea.getViewport().addChangeListener(view);
+        this.scrollArea.setViewportView(view);
+        TrasferHandling tranf = new TrasferHandling();
+        PaletteDropTarget tmp = new PaletteDropTarget();
+        editor = obj.getLookup().lookup(GUIEditor.class);
+        nodesManager = new ExplorerManager();
+        nifty = view.getNifty();
+        view.setTransferHandler(tranf);
+        view.setDropTarget(tmp);
+       // editor.addObserver(view);
+       // editor.addObserver(tranf);
+        this.obj.addPropertyChangeListener(this);
+        this.createToolbar();
+        this.undoSupport = new UndoRedo.Manager();
+        CommandProcessor.getInstance().setUndoManager(undoSupport);
+        this.content.set(Collections.singleton(obj.getNodeDelegate()), null);
+        lookup = new AbstractLookup(content);
+    }
+ /**
+ * Old code
+ * @author normenhansen
+ */
+     private void createToolbar() {
+        toolbar.setPreferredSize(new Dimension(10000, 24));
+        toolbar.setMaximumSize(new Dimension(10000, 24));
+        toolbar.setFloatable(false);
+        toolbar.add(new JLabel("Change Resolution"));
+        JComboBox comboBox = new JComboBox(new String[]{"640x480", "480x800", "800x480", "800x600", "1024x768", "1280x720"});
+        comboBox.addItemListener(new ItemListener() {
+
+            public void itemStateChanged(ItemEvent e) {
+                String string = (String) e.getItem();
+                if ("640x480".equals(string)) {
+                    view.setResoltion(640, 480);
+                } else if ("1024x768".equals(string)) {
+                     view.setResoltion(1024, 768);
+                } else if ("1280x720".equals(string)) {
+                     view.setResoltion(1280, 720);
+                } else if ("800x600".equals(string)) {
+                     view.setResoltion(800, 600);
+                } else if ("800x480".equals(string)) {
+                     view.setResoltion(800, 480);
+                } else if ("480x800".equals(string)) {
+                     view.setResoltion(480, 800);
+                } else {
+                     view.setResoltion(800, 600);
+                }
+            }
+        });
+        toolbar.add(comboBox);
+        comboBox.setSelectedItem("800x600");
+        toolbar.add(new JLabel("Current Layer"));
+        layers.addItemListener(new ItemListener() {
+
+            public void itemStateChanged(ItemEvent e) {
+                GLayer item = (GLayer) e.getItem();
+                editor.selectElement(item);
+            }
+        });
+        toolbar.add(layers);
+     }
+    @Override
+    public String getName() {
+        return "NiftyGuiVisualElement";
+    }
+
+    /**
+     * This method is called from within the constructor to initialize the form.
+     * WARNING: Do NOT modify this code. The content of this method is always
+     * regenerated by the Form Editor.
+     */
+    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+    private void initComponents() {
+
+        scrollArea = new javax.swing.JScrollPane();
+
+        setLayout(new java.awt.BorderLayout());
+        add(scrollArea, java.awt.BorderLayout.CENTER);
+    }// </editor-fold>//GEN-END:initComponents
+
+    // Variables declaration - do not modify//GEN-BEGIN:variables
+    private javax.swing.JScrollPane scrollArea;
+    // End of variables declaration//GEN-END:variables
+    @Override
+    public JComponent getVisualRepresentation() {
+        return this;
+    }
+
+    @Override
+    public JComponent getToolbarRepresentation() {
+        return toolbar;
+    }
+
+    @Override
+    public Action[] getActions() {
+        return new Action[0];
+    }
+
+    @Override
+    public Lookup getLookup() {
+        return this.lookup ;
+    }
+    /**
+     * Raw implementation , just to prototype the editor
+     */
+    @Override
+    public void componentOpened() {
+       loadGui();
+    }
+
+    @Override
+    public void componentClosed() {
+        
+    }
+    /**
+     * Raw implementation , just to prototype the editor
+     */
+    @Override
+    public void componentShowing() {
+        if(!this.obj.isModified()){
+            return;
+        }
+        loadGui();
+        
+    }
+    /**
+     * Raw implementation , just to prototype the editor
+     */
+    @Override
+    public void componentHidden() {
+        String path = this.obj.getPrimaryFile().getPath();
+        try {
+            this.editor.saveGui(path);
+        } catch (FileNotFoundException ex) {
+            Exceptions.printStackTrace(ex);
+        } catch (JAXBException ex) {
+            Exceptions.printStackTrace(ex);
+        } catch (NullPointerException ex){
+             Exceptions.printStackTrace(ex);
+        }
+    }
+
+    @Override
+    public void componentActivated() {
+        try{
+        GuiEditorModel model = (GuiEditorModel) CommandProcessor.getInstance().getObservable();
+        model.setCurrentGUI(guiID);
+        model.getCurrent().addObserver(this);
+        CommandProcessor.getInstance().setUndoManager(undoSupport);
+        }catch(java.lang.IllegalArgumentException ex){
+            logger.log(Level.SEVERE,"Can't load your gui", ex);
+        }
+    }
+
+    @Override
+    public void componentDeactivated() {
+    }
+
+    @Override
+    public UndoRedo getUndoRedo() {
+        return this.undoSupport;
+    }
+
+    @Override
+    public void setMultiViewCallback(MultiViewElementCallback callback) {
+        this.callback = callback;
+    }
+
+    @Override
+    public CloseOperationState canCloseElement() {
+        return CloseOperationState.STATE_OK;
+    }
+
+    @Override
+    public ExplorerManager getExplorerManager() {
+       return nodesManager;
+    }
+
+    @Override
+    public void update(Observable o, Object arg) {
+       if(arg instanceof SelectionChanged ){
+           SelectionChanged event = (SelectionChanged) arg;
+           if(event.getNewSelection().isEmpty()){
+               return;
+           }
+           GElement parent = event.getElement();
+           GElementNode node = new GElementNode(parent);
+           this.content.set(Collections.singleton(node), null);
+           
+       }else if(o instanceof GUI){
+           //Add a save. We don't add multible savable because they cointains the same
+           //information about editing.
+           GuiSavable savable = this.lookup.lookup(GuiSavable.class);
+           if(savable == null){
+           String path = this.obj.getPrimaryFile().getPath();
+           final GuiSavable guiSavable = new NiftyGuiVisualElement.GuiSavable(((GUI)o),path);
+           this.content.add(guiSavable);
+           }
+       }
+    }
+
+    @Override
+    public void propertyChange(PropertyChangeEvent evt) {
+        if(evt.getPropertyName().equals(DataObject.PROP_MODIFIED)){
+            boolean old = (Boolean)evt.getOldValue();
+            boolean nev = (Boolean)evt.getNewValue();
+            if(old && !nev){
+                this.loadGui();
+            }
+        }
+      
+    }
+
+    private void loadGui() {
+        try {
+            ProgressHandle handle = ProgressHandleFactory.createHandle("Loading the gui file");
+            InputStream is = this.obj.getPrimaryFile().getInputStream();
+            handle.start();
+            ProjectAssetManager mgr = this.obj.getLookup().lookup(ProjectAssetManager.class);
+            String assetPath = mgr.getAssetFolder().getPath();
+            this.editor.createNewGui(nifty,is,new File(assetPath));
+            this.view.newGui(this.editor.getGui());
+            nodesManager.setRootContext(new GUINode(this.editor.getGui()));
+            this.editor.getGui().getSelection().addObserver(this);
+            Collection<GLayer> layers1 = this.editor.getGui().getLayers();
+            guiID = this.editor.getGui().getGUIid();
+            this.editor.getGui().addObserver(this);
+            DefaultComboBoxModel<GLayer> model = new DefaultComboBoxModel<GLayer>(layers1.toArray(new GLayer[0]));
+            layers.setModel(model);
+            layers.setSelectedItem(this.editor.getCurrentLayer());
+            
+            handle.finish();
+        } catch (ParserConfigurationException ex) {
+            Exceptions.printStackTrace(ex);
+        } catch (JAXBException ex) {
+            Exceptions.printStackTrace(ex);
+        } catch (ClassNotFoundException ex) {
+            Exceptions.printStackTrace(ex);
+        } catch (IOException ex) {
+            Exceptions.printStackTrace(ex);
+        } catch (NoProductException ex) {
+            Exceptions.printStackTrace(ex);
+        } catch (SAXException ex) {
+            Exceptions.printStackTrace(ex);
+        } catch (Exception ex) {
+            Exceptions.printStackTrace(ex);
+        }
+        
+        
+        
+    }
+    
+    private class GuiSavable extends AbstractSavable {
+    private final GUI gui;
+   
+    private final String filename;
+    
+    public GuiSavable(GUI gui,String filename){
+        
+        this.gui = gui;
+        this.filename = filename;
+        this.register();
+        
+        
+    }
+    @Override
+    protected String findDisplayName() {
+        return "Save "+ this.gui + " changes";
+    }
+
+    @Override
+    protected void handleSave() throws IOException {
+        try {
+            GUIWriter writer = new GUIWriter(this.gui);
+            writer.writeGUI(filename);
+            NiftyGuiVisualElement.this.content.remove(this);
+          
+            
+        } catch (FileNotFoundException ex) {
+            Exceptions.printStackTrace(ex);
+        } catch (JAXBException ex) {
+            Exceptions.printStackTrace(ex);
+        } catch (ClassNotFoundException ex) {
+            Exceptions.printStackTrace(ex);
+        }
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if(obj instanceof com.jme3.gde.gui.view.NiftyGuiVisualElement.GuiSavable){
+            return this.gui.equals(((com.jme3.gde.gui.view.NiftyGuiVisualElement.GuiSavable)obj).gui);
+        }
+        return false;
+    }
+
+    @Override
+    public int hashCode() {
+        return this.gui.hashCode();
+    }
+    
+}
+}