Gui pack
Before Width: | Height: | Size: 386 B |
@ -1,10 +0,0 @@
|
||||
<?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>
|
@ -1,200 +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.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
|
||||
*/
|
||||
@NavigatorPanel.Registration(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);
|
||||
|
||||
}
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
<?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>
|
@ -36,7 +36,7 @@ import org.openide.windows.TopComponent;
|
||||
resource = "NiftyGuiResolver.xml")
|
||||
@DataObject.Registration(
|
||||
mimeType = "text/x-niftygui+xml",
|
||||
iconBase = "com/jme3/gde/gui/multiview/icons/Computer_File_043.gif",
|
||||
iconBase = "com/jme3/gde/gui/multiview/icons/gui-icon.png",
|
||||
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/multiview/icons/Computer_File_043.gif");
|
||||
node.setIconBaseWithExtension("com/jme3/gde/gui/multiview/icons/gui-icon.png");
|
||||
return node;
|
||||
}
|
||||
|
||||
@ -136,7 +136,7 @@ public class NiftyGuiDataObject extends MultiDataObject {
|
||||
|
||||
@MultiViewElement.Registration(
|
||||
displayName = "#LBL_NiftyGui_EDITOR",
|
||||
iconBase = "com/jme3/gde/gui/multiview/icons/Computer_File_043.gif",
|
||||
iconBase = "com/jme3/gde/gui/multiview/icons/gui-icon.png",
|
||||
mimeType = "text/x-niftygui+xml",
|
||||
persistenceType = TopComponent.PERSISTENCE_ONLY_OPENED,
|
||||
preferredID = "NiftyGui",
|
||||
|
@ -1,403 +0,0 @@
|
||||
/*
|
||||
* To change this template, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.jme3.gde.gui;
|
||||
|
||||
import com.jme3.app.Application;
|
||||
import com.jme3.gde.core.assets.ProjectAssetManager;
|
||||
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;
|
||||
|
||||
@MultiViewElement.Registration(
|
||||
displayName = "#LBL_NiftyGui_VISUAL",
|
||||
iconBase = "com/jme3/gde/gui/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.NiftyGuiVisualElement.GuiSavable){
|
||||
return this.gui.equals(((com.jme3.gde.gui.NiftyGuiVisualElement.GuiSavable)obj).gui);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return this.gui.hashCode();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
BIN
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/icons/GButton.png
Normal file
After Width: | Height: | Size: 348 B |
BIN
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/icons/GChat.png
Normal file
After Width: | Height: | Size: 674 B |
BIN
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/icons/GCheckbox.png
Normal file
After Width: | Height: | Size: 435 B |
BIN
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/icons/GConsole.png
Normal file
After Width: | Height: | Size: 492 B |
BIN
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/icons/GDraggable.png
Normal file
After Width: | Height: | Size: 768 B |
BIN
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/icons/GDropDown.png
Normal file
After Width: | Height: | Size: 454 B |
BIN
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/icons/GDroppable.png
Normal file
After Width: | Height: | Size: 556 B |
BIN
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/icons/GHSlider.png
Normal file
After Width: | Height: | Size: 478 B |
BIN
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/icons/GImage.png
Normal file
After Width: | Height: | Size: 540 B |
After Width: | Height: | Size: 602 B |
BIN
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/icons/GLable.png
Normal file
After Width: | Height: | Size: 524 B |
BIN
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/icons/GLayer.png
Normal file
After Width: | Height: | Size: 392 B |
BIN
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/icons/GListBox.png
Normal file
After Width: | Height: | Size: 415 B |
BIN
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/icons/GPanel.png
Normal file
After Width: | Height: | Size: 305 B |
After Width: | Height: | Size: 478 B |
After Width: | Height: | Size: 557 B |
BIN
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/icons/GScreen.png
Normal file
After Width: | Height: | Size: 536 B |
After Width: | Height: | Size: 361 B |
BIN
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/icons/GTextfield.png
Normal file
After Width: | Height: | Size: 359 B |
BIN
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/icons/GTree.png
Normal file
After Width: | Height: | Size: 520 B |
BIN
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/icons/GVSlider.png
Normal file
After Width: | Height: | Size: 458 B |
BIN
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/icons/GWindow.png
Normal file
After Width: | Height: | Size: 341 B |
After Width: | Height: | Size: 608 B |
BIN
sdk/jme3-gui/src/com/jme3/gde/gui/multiview/icons/gui-icon.png
Normal file
After Width: | Height: | Size: 538 B |
After Width: | Height: | Size: 349 B |
After Width: | Height: | Size: 390 B |
@ -27,12 +27,15 @@ import sun.beans.editors.BooleanEditor;
|
||||
*/
|
||||
public class GElementNode extends AbstractNode{
|
||||
private final GElement element;
|
||||
|
||||
private static final String basePath="com/jme3/gde/gui/multiview/icons";
|
||||
public GElementNode(GElement element) {
|
||||
super(Children.create(new GElementChildFactory(element), false));
|
||||
|
||||
this.element = element;
|
||||
this.setName(element.getID());
|
||||
String name = this.element.getClass().getSimpleName();
|
||||
this.setName(name);
|
||||
this.setIconBaseWithExtension(basePath+"/"+name+".png");
|
||||
|
||||
}
|
||||
|
||||
|
@ -14,10 +14,11 @@ import org.openide.nodes.Children;
|
||||
*/
|
||||
public class GUINode extends AbstractNode{
|
||||
private final GUI gui;
|
||||
private static final String basePath="com/jme3/gde/gui/multiview/icons";
|
||||
public GUINode(GUI gui) {
|
||||
super(Children.create(new ScreenChildFactory(gui),false));
|
||||
this.gui = gui;
|
||||
|
||||
this.setIconBaseWithExtension(basePath+"/"+"game-monitor"+".png");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -30,18 +30,14 @@ import org.openide.util.Exceptions;
|
||||
*/
|
||||
public class WidgetNode extends AbstractNode{
|
||||
private final Class<?extends GElement> clazz;
|
||||
private static final String basePath="jada/ngeditor/resources";
|
||||
private static final String basePath="com/jme3/gde/gui/multiview/icons";
|
||||
|
||||
public WidgetNode(Class<?extends GElement> wrappedClass) {
|
||||
super(Children.LEAF);
|
||||
this.clazz = wrappedClass;
|
||||
String name = wrappedClass.getSimpleName();
|
||||
this.setName(name);
|
||||
|
||||
this.setIconBaseWithExtension(basePath+"/"+name+".png");
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -73,7 +73,7 @@ import sun.rmi.runtime.Log;
|
||||
|
||||
@MultiViewElement.Registration(
|
||||
displayName = "#LBL_NiftyGui_VISUAL",
|
||||
iconBase = "com/jme3/gde/gui/multiview/icons/Computer_File_043.gif",
|
||||
iconBase = "com/jme3/gde/gui/multiview/icons/game-monitor.png",
|
||||
mimeType = "text/x-niftygui+xml",
|
||||
persistenceType = TopComponent.PERSISTENCE_NEVER,
|
||||
preferredID = "NiftyGuiVisual",
|
||||
|