Created a ShaderNodeDefinition creation wizard
This commit is contained in:
parent
1a59cf5318
commit
f36cdfe0b9
@ -0,0 +1,115 @@
|
|||||||
|
/*
|
||||||
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
|
* To change this template file, choose Tools | Templates
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
package com.jme3.gde.shadernodedefinition;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import org.netbeans.core.spi.multiview.MultiViewElement;
|
||||||
|
import org.netbeans.core.spi.multiview.text.MultiViewEditorElement;
|
||||||
|
import org.openide.awt.ActionID;
|
||||||
|
import org.openide.awt.ActionReference;
|
||||||
|
import org.openide.awt.ActionReferences;
|
||||||
|
import org.openide.filesystems.FileObject;
|
||||||
|
import org.openide.filesystems.MIMEResolver;
|
||||||
|
import org.openide.loaders.DataObject;
|
||||||
|
import org.openide.loaders.DataObjectExistsException;
|
||||||
|
import org.openide.loaders.MultiDataObject;
|
||||||
|
import org.openide.loaders.MultiFileLoader;
|
||||||
|
import org.openide.util.Lookup;
|
||||||
|
import org.openide.util.NbBundle.Messages;
|
||||||
|
import org.openide.windows.TopComponent;
|
||||||
|
|
||||||
|
@Messages({
|
||||||
|
"LBL_SNDef_LOADER=Files of SNDef"
|
||||||
|
})
|
||||||
|
@MIMEResolver.ExtensionRegistration(
|
||||||
|
displayName = "#LBL_SNDef_LOADER",
|
||||||
|
mimeType = "text/x-j3sn",
|
||||||
|
extension = {"j3sn", "J3SN"}
|
||||||
|
)
|
||||||
|
@DataObject.Registration(
|
||||||
|
mimeType = "text/x-j3sn",
|
||||||
|
iconBase = "com/jme3/gde/materialdefinition/icons/node.png",
|
||||||
|
displayName = "#LBL_SNDef_LOADER",
|
||||||
|
position = 300
|
||||||
|
)
|
||||||
|
@ActionReferences({
|
||||||
|
@ActionReference(
|
||||||
|
path = "Loaders/text/x-j3sn/Actions",
|
||||||
|
id = @ActionID(category = "System", id = "org.openide.actions.OpenAction"),
|
||||||
|
position = 100,
|
||||||
|
separatorAfter = 200
|
||||||
|
),
|
||||||
|
@ActionReference(
|
||||||
|
path = "Loaders/text/x-j3sn/Actions",
|
||||||
|
id = @ActionID(category = "Edit", id = "org.openide.actions.CutAction"),
|
||||||
|
position = 300
|
||||||
|
),
|
||||||
|
@ActionReference(
|
||||||
|
path = "Loaders/text/x-j3sn/Actions",
|
||||||
|
id = @ActionID(category = "Edit", id = "org.openide.actions.CopyAction"),
|
||||||
|
position = 400,
|
||||||
|
separatorAfter = 500
|
||||||
|
),
|
||||||
|
@ActionReference(
|
||||||
|
path = "Loaders/text/x-j3sn/Actions",
|
||||||
|
id = @ActionID(category = "Edit", id = "org.openide.actions.DeleteAction"),
|
||||||
|
position = 600
|
||||||
|
),
|
||||||
|
@ActionReference(
|
||||||
|
path = "Loaders/text/x-j3sn/Actions",
|
||||||
|
id = @ActionID(category = "System", id = "org.openide.actions.RenameAction"),
|
||||||
|
position = 700,
|
||||||
|
separatorAfter = 800
|
||||||
|
),
|
||||||
|
@ActionReference(
|
||||||
|
path = "Loaders/text/x-j3sn/Actions",
|
||||||
|
id = @ActionID(category = "System", id = "org.openide.actions.SaveAsTemplateAction"),
|
||||||
|
position = 900,
|
||||||
|
separatorAfter = 1000
|
||||||
|
),
|
||||||
|
@ActionReference(
|
||||||
|
path = "Loaders/text/x-j3sn/Actions",
|
||||||
|
id = @ActionID(category = "System", id = "org.openide.actions.FileSystemAction"),
|
||||||
|
position = 1100,
|
||||||
|
separatorAfter = 1200
|
||||||
|
),
|
||||||
|
@ActionReference(
|
||||||
|
path = "Loaders/text/x-j3sn/Actions",
|
||||||
|
id = @ActionID(category = "System", id = "org.openide.actions.ToolsAction"),
|
||||||
|
position = 1300
|
||||||
|
),
|
||||||
|
@ActionReference(
|
||||||
|
path = "Loaders/text/x-j3sn/Actions",
|
||||||
|
id = @ActionID(category = "System", id = "org.openide.actions.PropertiesAction"),
|
||||||
|
position = 1400
|
||||||
|
)
|
||||||
|
})
|
||||||
|
public class SNDefDataObject extends MultiDataObject {
|
||||||
|
|
||||||
|
public SNDefDataObject(FileObject pf, MultiFileLoader loader) throws DataObjectExistsException, IOException {
|
||||||
|
super(pf, loader);
|
||||||
|
registerEditor("text/x-j3sn", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int associateLookup() {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@MultiViewElement.Registration(
|
||||||
|
displayName = "#LBL_SNDef_EDITOR",
|
||||||
|
iconBase = "com/jme3/gde/materialdefinition/icons/node.png",
|
||||||
|
mimeType = "text/x-j3sn",
|
||||||
|
persistenceType = TopComponent.PERSISTENCE_ONLY_OPENED,
|
||||||
|
preferredID = "SNDef",
|
||||||
|
position = 1000
|
||||||
|
)
|
||||||
|
@Messages("LBL_SNDef_EDITOR=Source")
|
||||||
|
public static MultiViewEditorElement createEditor(Lookup lkp) {
|
||||||
|
return new MultiViewEditorElement(lkp);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
ShaderNodeDefinitions{
|
||||||
|
ShaderNodeDefinition ${defName} {
|
||||||
|
Type: ${defType}
|
||||||
|
Shader GLSL100: ${shaderSnippet}
|
||||||
|
Documentation{
|
||||||
|
${description}
|
||||||
|
<#list inputParams as param>
|
||||||
|
@input ${param[0]} ${param[1]} ${param[2]}
|
||||||
|
</#list>
|
||||||
|
<#list outputParams as param>
|
||||||
|
@output ${param[0]} ${param[1]} ${param[2]}
|
||||||
|
</#list>
|
||||||
|
}
|
||||||
|
Input {
|
||||||
|
<#list inputParams as param>
|
||||||
|
${param[0]} ${param[1]}
|
||||||
|
</#list>
|
||||||
|
}
|
||||||
|
Output {
|
||||||
|
<#list outputParams as param>
|
||||||
|
${param[0]} ${param[1]}
|
||||||
|
</#list>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
|
||||||
|
<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
|
||||||
|
<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="true"/>
|
||||||
|
<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"/>
|
||||||
|
</AuxValues>
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="400" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="300" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
</Form>
|
@ -0,0 +1,127 @@
|
|||||||
|
/*
|
||||||
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
|
* To change this template file, choose Tools | Templates
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
package com.jme3.gde.shadernodedefinition;
|
||||||
|
|
||||||
|
import javax.swing.Action;
|
||||||
|
import javax.swing.JComponent;
|
||||||
|
import javax.swing.JPanel;
|
||||||
|
import javax.swing.JToolBar;
|
||||||
|
import org.netbeans.core.spi.multiview.CloseOperationState;
|
||||||
|
import org.netbeans.core.spi.multiview.MultiViewElement;
|
||||||
|
import org.netbeans.core.spi.multiview.MultiViewElementCallback;
|
||||||
|
import org.openide.awt.UndoRedo;
|
||||||
|
import org.openide.util.Lookup;
|
||||||
|
import org.openide.util.NbBundle.Messages;
|
||||||
|
import org.openide.windows.TopComponent;
|
||||||
|
|
||||||
|
@MultiViewElement.Registration(
|
||||||
|
displayName = "#LBL_SNDef_VISUAL",
|
||||||
|
iconBase = "com/jme3/gde/materialdefinition/icons/node.png",
|
||||||
|
mimeType = "text/x-j3sn",
|
||||||
|
persistenceType = TopComponent.PERSISTENCE_NEVER,
|
||||||
|
preferredID = "SNDefVisual",
|
||||||
|
position = 2000
|
||||||
|
)
|
||||||
|
@Messages("LBL_SNDef_VISUAL=Visual")
|
||||||
|
public final class SNDefVisualElement extends JPanel implements MultiViewElement {
|
||||||
|
|
||||||
|
private SNDefDataObject obj;
|
||||||
|
private JToolBar toolbar = new JToolBar();
|
||||||
|
private transient MultiViewElementCallback callback;
|
||||||
|
|
||||||
|
public SNDefVisualElement(Lookup lkp) {
|
||||||
|
obj = lkp.lookup(SNDefDataObject.class);
|
||||||
|
assert obj != null;
|
||||||
|
initComponents();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return "SNDefVisualElement";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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() {
|
||||||
|
|
||||||
|
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
||||||
|
this.setLayout(layout);
|
||||||
|
layout.setHorizontalGroup(
|
||||||
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGap(0, 400, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
layout.setVerticalGroup(
|
||||||
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGap(0, 300, 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 JComponent getVisualRepresentation() {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JComponent getToolbarRepresentation() {
|
||||||
|
return toolbar;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Action[] getActions() {
|
||||||
|
return new Action[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Lookup getLookup() {
|
||||||
|
return obj.getLookup();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void componentOpened() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void componentClosed() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void componentShowing() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void componentHidden() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void componentActivated() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void componentDeactivated() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UndoRedo getUndoRedo() {
|
||||||
|
return UndoRedo.NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setMultiViewCallback(MultiViewElementCallback callback) {
|
||||||
|
this.callback = callback;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CloseOperationState canCloseElement() {
|
||||||
|
return CloseOperationState.STATE_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
<#list inputParams as param>
|
||||||
|
//@input ${param[0]} ${param[1]} ${param[2]}
|
||||||
|
</#list>
|
||||||
|
<#list outputParams as param>
|
||||||
|
//@output ${param[0]} ${param[1]} ${param[2]}
|
||||||
|
</#list>
|
||||||
|
void main(){
|
||||||
|
//insert glsl code here
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
<!--
|
||||||
|
To change this license header, choose License Headers in Project Properties.
|
||||||
|
To change this template file, choose Tools | Templates
|
||||||
|
and open the template in the editor.
|
||||||
|
-->
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
A new Shader Node Definition file that can be instantiated as a Shader Node in the Shader Node editor
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,10 @@
|
|||||||
|
SNDefVisualPanel1.jLabel1.text=Definition Name
|
||||||
|
SNDefVisualPanel1.defNameTextField.toolTipText=
|
||||||
|
SNDefVisualPanel1.defNameTextField.text=
|
||||||
|
SNDefVisualPanel1.jLabel2.text=Shader type
|
||||||
|
SNDefVisualPanel1.jPanel2.border.title=Description
|
||||||
|
SNDefVisualPanel2.addButton.text=
|
||||||
|
SNDefVisualPanel2.titleLabel.text=Inputs
|
||||||
|
SNDefVisualPanel2.addButton.toolTipText=Add an entry
|
||||||
|
SNDefVisualPanel2.delButton.toolTipText=Delete an entry
|
||||||
|
SNDefVisualPanel2.delButton.text=
|
@ -0,0 +1,158 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
|
||||||
|
<Form version="1.5" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
|
||||||
|
<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="true"/>
|
||||||
|
<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"/>
|
||||||
|
</AuxValues>
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Component id="jPanel1" alignment="0" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Component id="jPanel1" alignment="0" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
<SubComponents>
|
||||||
|
<Container class="javax.swing.JPanel" name="jPanel1">
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" alignment="1" attributes="0">
|
||||||
|
<Group type="103" groupAlignment="1" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="jPanel2" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<EmptySpace min="-2" pref="14" max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="1" attributes="0">
|
||||||
|
<Component id="jLabel2" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="jLabel1" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Component id="defNameTextField" max="32767" attributes="0"/>
|
||||||
|
<Component id="shaderTypeCB" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" alignment="0" attributes="0">
|
||||||
|
<EmptySpace min="-2" pref="40" max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="3" attributes="0">
|
||||||
|
<Component id="jLabel1" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="defNameTextField" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="3" attributes="0">
|
||||||
|
<Component id="jLabel2" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="shaderTypeCB" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="jPanel2" max="32767" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
<SubComponents>
|
||||||
|
<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/shadernodedefinition/wizard/Bundle.properties" key="SNDefVisualPanel1.jLabel1.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JTextField" name="defNameTextField">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||||
|
<ResourceString bundle="com/jme3/gde/shadernodedefinition/wizard/Bundle.properties" key="SNDefVisualPanel1.defNameTextField.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||||
|
<ResourceString bundle="com/jme3/gde/shadernodedefinition/wizard/Bundle.properties" key="SNDefVisualPanel1.defNameTextField.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JLabel" name="jLabel2">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||||
|
<ResourceString bundle="com/jme3/gde/shadernodedefinition/wizard/Bundle.properties" key="SNDefVisualPanel1.jLabel2.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JComboBox" name="shaderTypeCB">
|
||||||
|
<Properties>
|
||||||
|
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
|
||||||
|
<StringArray count="4">
|
||||||
|
<StringItem index="0" value="Item 1"/>
|
||||||
|
<StringItem index="1" value="Item 2"/>
|
||||||
|
<StringItem index="2" value="Item 3"/>
|
||||||
|
<StringItem index="3" value="Item 4"/>
|
||||||
|
</StringArray>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Container class="javax.swing.JPanel" name="jPanel2">
|
||||||
|
<Properties>
|
||||||
|
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
|
||||||
|
<Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
|
||||||
|
<TitledBorder title="Description">
|
||||||
|
<ResourceString PropertyName="titleX" bundle="com/jme3/gde/shadernodedefinition/wizard/Bundle.properties" key="SNDefVisualPanel1.jPanel2.border.title" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
|
</TitledBorder>
|
||||||
|
</Border>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Component id="jScrollPane1" alignment="0" pref="376" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Component id="jScrollPane1" alignment="0" pref="157" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
<SubComponents>
|
||||||
|
<Container class="javax.swing.JScrollPane" name="jScrollPane1">
|
||||||
|
<AuxValues>
|
||||||
|
<AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
|
||||||
|
</AuxValues>
|
||||||
|
|
||||||
|
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
|
||||||
|
<SubComponents>
|
||||||
|
<Component class="javax.swing.JTextArea" name="descriptionTextArea">
|
||||||
|
<Properties>
|
||||||
|
<Property name="columns" type="int" value="20"/>
|
||||||
|
<Property name="rows" type="int" value="5"/>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
</SubComponents>
|
||||||
|
</Container>
|
||||||
|
</SubComponents>
|
||||||
|
</Container>
|
||||||
|
</SubComponents>
|
||||||
|
</Container>
|
||||||
|
</SubComponents>
|
||||||
|
</Form>
|
@ -0,0 +1,146 @@
|
|||||||
|
/*
|
||||||
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
|
* To change this template file, choose Tools | Templates
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
package com.jme3.gde.shadernodedefinition.wizard;
|
||||||
|
|
||||||
|
import com.jme3.shader.Shader;
|
||||||
|
import javax.swing.DefaultComboBoxModel;
|
||||||
|
import javax.swing.JPanel;
|
||||||
|
|
||||||
|
public final class SNDefVisualPanel1 extends JPanel {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates new form SNDefVisualPanel1
|
||||||
|
*/
|
||||||
|
public SNDefVisualPanel1() {
|
||||||
|
initComponents();
|
||||||
|
DefaultComboBoxModel<String> model = new DefaultComboBoxModel<String>();
|
||||||
|
for (Shader.ShaderType shaderType : Shader.ShaderType.values()) {
|
||||||
|
model.addElement(shaderType.name());
|
||||||
|
}
|
||||||
|
shaderTypeCB.setModel(model);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return "Shader node informations";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDefName(){
|
||||||
|
return defNameTextField.getText();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDefType(){
|
||||||
|
return (String)shaderTypeCB.getModel().getSelectedItem();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDefDescription(){
|
||||||
|
return descriptionTextArea.getText();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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() {
|
||||||
|
|
||||||
|
jPanel1 = new javax.swing.JPanel();
|
||||||
|
jLabel1 = new javax.swing.JLabel();
|
||||||
|
defNameTextField = new javax.swing.JTextField();
|
||||||
|
jLabel2 = new javax.swing.JLabel();
|
||||||
|
shaderTypeCB = new javax.swing.JComboBox();
|
||||||
|
jPanel2 = new javax.swing.JPanel();
|
||||||
|
jScrollPane1 = new javax.swing.JScrollPane();
|
||||||
|
descriptionTextArea = new javax.swing.JTextArea();
|
||||||
|
|
||||||
|
org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(SNDefVisualPanel1.class, "SNDefVisualPanel1.jLabel1.text")); // NOI18N
|
||||||
|
|
||||||
|
defNameTextField.setText(org.openide.util.NbBundle.getMessage(SNDefVisualPanel1.class, "SNDefVisualPanel1.defNameTextField.text")); // NOI18N
|
||||||
|
defNameTextField.setToolTipText(org.openide.util.NbBundle.getMessage(SNDefVisualPanel1.class, "SNDefVisualPanel1.defNameTextField.toolTipText")); // NOI18N
|
||||||
|
|
||||||
|
org.openide.awt.Mnemonics.setLocalizedText(jLabel2, org.openide.util.NbBundle.getMessage(SNDefVisualPanel1.class, "SNDefVisualPanel1.jLabel2.text")); // NOI18N
|
||||||
|
|
||||||
|
shaderTypeCB.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
|
||||||
|
|
||||||
|
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(org.openide.util.NbBundle.getMessage(SNDefVisualPanel1.class, "SNDefVisualPanel1.jPanel2.border.title"))); // NOI18N
|
||||||
|
|
||||||
|
descriptionTextArea.setColumns(20);
|
||||||
|
descriptionTextArea.setRows(5);
|
||||||
|
jScrollPane1.setViewportView(descriptionTextArea);
|
||||||
|
|
||||||
|
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
|
||||||
|
jPanel2.setLayout(jPanel2Layout);
|
||||||
|
jPanel2Layout.setHorizontalGroup(
|
||||||
|
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 376, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
jPanel2Layout.setVerticalGroup(
|
||||||
|
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 157, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
|
||||||
|
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
|
||||||
|
jPanel1.setLayout(jPanel1Layout);
|
||||||
|
jPanel1Layout.setHorizontalGroup(
|
||||||
|
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
|
||||||
|
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
||||||
|
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||||
|
.addContainerGap()
|
||||||
|
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||||
|
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||||
|
.addGap(14, 14, 14)
|
||||||
|
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
||||||
|
.addComponent(jLabel2)
|
||||||
|
.addComponent(jLabel1))
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addComponent(defNameTextField)
|
||||||
|
.addComponent(shaderTypeCB, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
|
||||||
|
.addContainerGap())
|
||||||
|
);
|
||||||
|
jPanel1Layout.setVerticalGroup(
|
||||||
|
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||||
|
.addGap(40, 40, 40)
|
||||||
|
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||||
|
.addComponent(jLabel1)
|
||||||
|
.addComponent(defNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||||
|
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||||
|
.addComponent(jLabel2)
|
||||||
|
.addComponent(shaderTypeCB, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addContainerGap())
|
||||||
|
);
|
||||||
|
|
||||||
|
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
||||||
|
this.setLayout(layout);
|
||||||
|
layout.setHorizontalGroup(
|
||||||
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
layout.setVerticalGroup(
|
||||||
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
}// </editor-fold>//GEN-END:initComponents
|
||||||
|
|
||||||
|
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||||
|
private javax.swing.JTextField defNameTextField;
|
||||||
|
private javax.swing.JTextArea descriptionTextArea;
|
||||||
|
private javax.swing.JLabel jLabel1;
|
||||||
|
private javax.swing.JLabel jLabel2;
|
||||||
|
private javax.swing.JPanel jPanel1;
|
||||||
|
private javax.swing.JPanel jPanel2;
|
||||||
|
private javax.swing.JScrollPane jScrollPane1;
|
||||||
|
private javax.swing.JComboBox shaderTypeCB;
|
||||||
|
// End of variables declaration//GEN-END:variables
|
||||||
|
}
|
@ -0,0 +1,141 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
|
||||||
|
<Form version="1.5" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
|
||||||
|
<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="true"/>
|
||||||
|
<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"/>
|
||||||
|
</AuxValues>
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Component id="jPanel1" alignment="0" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Component id="jPanel1" alignment="0" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
<SubComponents>
|
||||||
|
<Container class="javax.swing.JPanel" name="jPanel1">
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<DimensionLayout dim="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Component id="jScrollPane1" pref="388" max="32767" attributes="0"/>
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<Component id="titleLabel" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="32767" attributes="0"/>
|
||||||
|
<Component id="addButton" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="delButton" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
<DimensionLayout dim="1">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" alignment="1" attributes="0">
|
||||||
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
|
<Group type="102" attributes="0">
|
||||||
|
<EmptySpace max="32767" attributes="0"/>
|
||||||
|
<Component id="titleLabel" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<Group type="102" alignment="1" attributes="0">
|
||||||
|
<Component id="delButton" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<Group type="102" alignment="0" attributes="0">
|
||||||
|
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
|
||||||
|
<Component id="addButton" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="jScrollPane1" min="-2" pref="278" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
</Group>
|
||||||
|
</DimensionLayout>
|
||||||
|
</Layout>
|
||||||
|
<SubComponents>
|
||||||
|
<Container class="javax.swing.JScrollPane" name="jScrollPane1">
|
||||||
|
<AuxValues>
|
||||||
|
<AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
|
||||||
|
</AuxValues>
|
||||||
|
|
||||||
|
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
|
||||||
|
<SubComponents>
|
||||||
|
<Component class="javax.swing.JTable" name="varTable">
|
||||||
|
<Properties>
|
||||||
|
<Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
|
||||||
|
<Color blue="ee" green="ee" id="Label.background" palette="3" red="ee" type="palette"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.editors2.TableModelEditor">
|
||||||
|
<Table columnCount="3" rowCount="0">
|
||||||
|
<Column editable="true" title="Type" type="java.lang.String"/>
|
||||||
|
<Column editable="true" title="Name" type="java.lang.String"/>
|
||||||
|
<Column editable="true" title="Description" type="java.lang.String"/>
|
||||||
|
</Table>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
</SubComponents>
|
||||||
|
</Container>
|
||||||
|
<Component class="javax.swing.JLabel" name="titleLabel">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||||
|
<ResourceString bundle="com/jme3/gde/shadernodedefinition/wizard/Bundle.properties" key="SNDefVisualPanel2.titleLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JButton" name="addButton">
|
||||||
|
<Properties>
|
||||||
|
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
|
||||||
|
<Image iconType="3" name="/com/jme3/gde/materials/multiview/widgets/icons/picture_add.png"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||||
|
<ResourceString bundle="com/jme3/gde/shadernodedefinition/wizard/Bundle.properties" key="SNDefVisualPanel2.addButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||||
|
<ResourceString bundle="com/jme3/gde/shadernodedefinition/wizard/Bundle.properties" key="SNDefVisualPanel2.addButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="alignmentX" type="float" value="0.5"/>
|
||||||
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="addButtonActionPerformed"/>
|
||||||
|
</Events>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JButton" name="delButton">
|
||||||
|
<Properties>
|
||||||
|
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
|
||||||
|
<Image iconType="3" name="/com/jme3/gde/materials/multiview/widgets/icons/picture_delete.png"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||||
|
<ResourceString bundle="com/jme3/gde/shadernodedefinition/wizard/Bundle.properties" key="SNDefVisualPanel2.delButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||||
|
<ResourceString bundle="com/jme3/gde/shadernodedefinition/wizard/Bundle.properties" key="SNDefVisualPanel2.delButton.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="alignmentX" type="float" value="0.5"/>
|
||||||
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="delButtonActionPerformed"/>
|
||||||
|
</Events>
|
||||||
|
</Component>
|
||||||
|
</SubComponents>
|
||||||
|
</Container>
|
||||||
|
</SubComponents>
|
||||||
|
</Form>
|
@ -0,0 +1,209 @@
|
|||||||
|
/*
|
||||||
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
|
* To change this template file, choose Tools | Templates
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
package com.jme3.gde.shadernodedefinition.wizard;
|
||||||
|
|
||||||
|
import java.awt.EventQueue;
|
||||||
|
import javax.swing.JPanel;
|
||||||
|
import javax.swing.JTextField;
|
||||||
|
import javax.swing.event.ListSelectionEvent;
|
||||||
|
import javax.swing.event.ListSelectionListener;
|
||||||
|
import javax.swing.table.DefaultTableModel;
|
||||||
|
|
||||||
|
public final class SNDefVisualPanel2 extends JPanel {
|
||||||
|
|
||||||
|
private final Object[] emptyObj = {"", "", ""};
|
||||||
|
private final String type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates new form SNDefVisualPanel2
|
||||||
|
*/
|
||||||
|
public SNDefVisualPanel2(String type) {
|
||||||
|
initComponents();
|
||||||
|
this.type = type;
|
||||||
|
titleLabel.setText(type);
|
||||||
|
varTable.getColumnModel().getSelectionModel().addListSelectionListener(new ExploreSelectionListener());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String[][] getData() {
|
||||||
|
|
||||||
|
DefaultTableModel model = (DefaultTableModel) varTable.getModel();
|
||||||
|
String[][] data = new String[model.getRowCount()][3];
|
||||||
|
for (int i = 0; i < model.getRowCount(); i++) {
|
||||||
|
data[i][0] = (String) model.getValueAt(i, 0);
|
||||||
|
data[i][1] = (String) model.getValueAt(i, 1);
|
||||||
|
data[i][2] = (String) model.getValueAt(i, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add this class to the body of MyTable class.
|
||||||
|
private class ExploreSelectionListener implements ListSelectionListener {
|
||||||
|
|
||||||
|
public void valueChanged(ListSelectionEvent e) {
|
||||||
|
if (!e.getValueIsAdjusting()) {
|
||||||
|
int row = varTable.getSelectedRow();
|
||||||
|
int col = varTable.getSelectedColumn();
|
||||||
|
// Make sure we start with legal values.
|
||||||
|
if (col < 0) {
|
||||||
|
col = 0;
|
||||||
|
}
|
||||||
|
if (row < 0) {
|
||||||
|
row = 0;
|
||||||
|
}
|
||||||
|
// Find the next editable cell.
|
||||||
|
while (!varTable.isCellEditable(row, col)) {
|
||||||
|
col++;
|
||||||
|
if (col > varTable.getColumnCount() - 1) {
|
||||||
|
col = 1;
|
||||||
|
row = (row == varTable.getRowCount() - 1) ? 1 : row + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Select the cell in the table.
|
||||||
|
final int r = row, c = col;
|
||||||
|
EventQueue.invokeLater(new Runnable() {
|
||||||
|
public void run() {
|
||||||
|
varTable.changeSelection(r, c, false, false);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// Edit.
|
||||||
|
if (varTable.isCellEditable(row, col)) {
|
||||||
|
varTable.editCellAt(row, col);
|
||||||
|
((JTextField) varTable.getEditorComponent()).selectAll();
|
||||||
|
varTable.getEditorComponent().requestFocusInWindow();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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() {
|
||||||
|
|
||||||
|
jPanel1 = new javax.swing.JPanel();
|
||||||
|
jScrollPane1 = new javax.swing.JScrollPane();
|
||||||
|
varTable = new javax.swing.JTable();
|
||||||
|
titleLabel = new javax.swing.JLabel();
|
||||||
|
addButton = new javax.swing.JButton();
|
||||||
|
delButton = new javax.swing.JButton();
|
||||||
|
|
||||||
|
varTable.setBackground(javax.swing.UIManager.getDefaults().getColor("Label.background"));
|
||||||
|
varTable.setModel(new javax.swing.table.DefaultTableModel(
|
||||||
|
new Object [][] {
|
||||||
|
|
||||||
|
},
|
||||||
|
new String [] {
|
||||||
|
"Type", "Name", "Description"
|
||||||
|
}
|
||||||
|
) {
|
||||||
|
Class[] types = new Class [] {
|
||||||
|
java.lang.String.class, java.lang.String.class, java.lang.String.class
|
||||||
|
};
|
||||||
|
|
||||||
|
public Class getColumnClass(int columnIndex) {
|
||||||
|
return types [columnIndex];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
jScrollPane1.setViewportView(varTable);
|
||||||
|
|
||||||
|
org.openide.awt.Mnemonics.setLocalizedText(titleLabel, org.openide.util.NbBundle.getMessage(SNDefVisualPanel2.class, "SNDefVisualPanel2.titleLabel.text")); // NOI18N
|
||||||
|
|
||||||
|
addButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/materials/multiview/widgets/icons/picture_add.png"))); // NOI18N
|
||||||
|
org.openide.awt.Mnemonics.setLocalizedText(addButton, org.openide.util.NbBundle.getMessage(SNDefVisualPanel2.class, "SNDefVisualPanel2.addButton.text")); // NOI18N
|
||||||
|
addButton.setToolTipText(org.openide.util.NbBundle.getMessage(SNDefVisualPanel2.class, "SNDefVisualPanel2.addButton.toolTipText")); // NOI18N
|
||||||
|
addButton.setAlignmentX(0.5F);
|
||||||
|
addButton.addActionListener(new java.awt.event.ActionListener() {
|
||||||
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
|
addButtonActionPerformed(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
delButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/materials/multiview/widgets/icons/picture_delete.png"))); // NOI18N
|
||||||
|
org.openide.awt.Mnemonics.setLocalizedText(delButton, org.openide.util.NbBundle.getMessage(SNDefVisualPanel2.class, "SNDefVisualPanel2.delButton.text")); // NOI18N
|
||||||
|
delButton.setToolTipText(org.openide.util.NbBundle.getMessage(SNDefVisualPanel2.class, "SNDefVisualPanel2.delButton.toolTipText")); // NOI18N
|
||||||
|
delButton.setAlignmentX(0.5F);
|
||||||
|
delButton.addActionListener(new java.awt.event.ActionListener() {
|
||||||
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
|
delButtonActionPerformed(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
|
||||||
|
jPanel1.setLayout(jPanel1Layout);
|
||||||
|
jPanel1Layout.setHorizontalGroup(
|
||||||
|
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||||
|
.addContainerGap()
|
||||||
|
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 388, Short.MAX_VALUE)
|
||||||
|
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||||
|
.addComponent(titleLabel)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addComponent(addButton)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addComponent(delButton)))
|
||||||
|
.addContainerGap())
|
||||||
|
);
|
||||||
|
jPanel1Layout.setVerticalGroup(
|
||||||
|
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
|
||||||
|
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||||
|
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
.addComponent(titleLabel))
|
||||||
|
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
|
||||||
|
.addComponent(delButton)
|
||||||
|
.addGap(0, 0, Short.MAX_VALUE))
|
||||||
|
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||||
|
.addGap(0, 0, Short.MAX_VALUE)
|
||||||
|
.addComponent(addButton)))
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 278, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
|
);
|
||||||
|
|
||||||
|
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
||||||
|
this.setLayout(layout);
|
||||||
|
layout.setHorizontalGroup(
|
||||||
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
layout.setVerticalGroup(
|
||||||
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
|
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
|
);
|
||||||
|
}// </editor-fold>//GEN-END:initComponents
|
||||||
|
|
||||||
|
private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addButtonActionPerformed
|
||||||
|
DefaultTableModel model = (DefaultTableModel) varTable.getModel();
|
||||||
|
model.addRow(emptyObj);
|
||||||
|
}//GEN-LAST:event_addButtonActionPerformed
|
||||||
|
|
||||||
|
private void delButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_delButtonActionPerformed
|
||||||
|
DefaultTableModel model = (DefaultTableModel) varTable.getModel();
|
||||||
|
int selRow = varTable.getSelectedRow();
|
||||||
|
if (selRow >= 0) {
|
||||||
|
model.removeRow(selRow);
|
||||||
|
}
|
||||||
|
}//GEN-LAST:event_delButtonActionPerformed
|
||||||
|
|
||||||
|
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||||
|
private javax.swing.JButton addButton;
|
||||||
|
private javax.swing.JButton delButton;
|
||||||
|
private javax.swing.JPanel jPanel1;
|
||||||
|
private javax.swing.JScrollPane jScrollPane1;
|
||||||
|
private javax.swing.JLabel titleLabel;
|
||||||
|
private javax.swing.JTable varTable;
|
||||||
|
// End of variables declaration//GEN-END:variables
|
||||||
|
}
|
@ -0,0 +1,222 @@
|
|||||||
|
/*
|
||||||
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
|
* To change this template file, choose Tools | Templates
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
package com.jme3.gde.shadernodedefinition.wizard;
|
||||||
|
|
||||||
|
import com.jme3.gde.core.assets.ProjectAssetManager;
|
||||||
|
import java.awt.Component;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.NoSuchElementException;
|
||||||
|
import java.util.Set;
|
||||||
|
import javax.swing.JComponent;
|
||||||
|
import javax.swing.event.ChangeListener;
|
||||||
|
import javax.xml.transform.Templates;
|
||||||
|
import org.netbeans.api.project.Project;
|
||||||
|
import org.netbeans.api.project.ProjectUtils;
|
||||||
|
import org.netbeans.api.project.SourceGroup;
|
||||||
|
import org.netbeans.api.project.Sources;
|
||||||
|
import org.netbeans.api.templates.TemplateRegistration;
|
||||||
|
import org.netbeans.api.templates.TemplateRegistrations;
|
||||||
|
import org.netbeans.spi.project.ui.templates.support.Templates;
|
||||||
|
import org.openide.WizardDescriptor;
|
||||||
|
import org.openide.filesystems.FileObject;
|
||||||
|
import org.openide.loaders.DataFolder;
|
||||||
|
import org.openide.loaders.DataObject;
|
||||||
|
import org.openide.util.NbBundle.Messages;
|
||||||
|
|
||||||
|
// TODO define position attribute
|
||||||
|
@TemplateRegistrations({
|
||||||
|
@TemplateRegistration(folder = "Material", content = "../SNDefTemplate.j3sn", displayName = "#SNDefWizardIterator_displayName", iconBase = "com/jme3/gde/materialdefinition/icons/node.png", description = "../sNDef.html", scriptEngine = "freemarker"),
|
||||||
|
@TemplateRegistration(folder = "Material", content = "../ShaderNodeSource", scriptEngine = "freemarker")
|
||||||
|
})
|
||||||
|
@Messages("SNDefWizardIterator_displayName=Shader Node Definition")
|
||||||
|
public final class SNDefWizardIterator implements WizardDescriptor.InstantiatingIterator<WizardDescriptor> {
|
||||||
|
|
||||||
|
private int index;
|
||||||
|
|
||||||
|
private WizardDescriptor wizard;
|
||||||
|
private List<WizardDescriptor.Panel<WizardDescriptor>> panels;
|
||||||
|
|
||||||
|
private List<WizardDescriptor.Panel<WizardDescriptor>> getPanels() {
|
||||||
|
if (panels == null) {
|
||||||
|
panels = new ArrayList<WizardDescriptor.Panel<WizardDescriptor>>();
|
||||||
|
// Change to default new file panel and add our panel at bottom
|
||||||
|
Project p = Templates.getProject(wizard);
|
||||||
|
SourceGroup[] groups = ProjectUtils.getSources(p).getSourceGroups(Sources.TYPE_GENERIC);
|
||||||
|
|
||||||
|
// SimpleTargetChooser is the default new file panel,
|
||||||
|
// Add our panel at the bottom
|
||||||
|
WizardDescriptor.Panel<WizardDescriptor> advNewFilePanel = Templates.buildSimpleTargetChooser(p, groups).create();
|
||||||
|
panels.add(advNewFilePanel);
|
||||||
|
panels.add(new SNDefWizardPanel1());
|
||||||
|
panels.add(new SNDefWizardPanel2("Inputs"));
|
||||||
|
panels.add(new SNDefWizardPanel2("Outputs"));
|
||||||
|
String[] steps = createSteps();
|
||||||
|
for (int i = 0; i < panels.size(); i++) {
|
||||||
|
Component c = panels.get(i).getComponent();
|
||||||
|
if (steps[i] == null) {
|
||||||
|
// Default step name to component name of panel. Mainly
|
||||||
|
// useful for getting the name of the target chooser to
|
||||||
|
// appear in the list of steps.
|
||||||
|
steps[i] = c.getName();
|
||||||
|
}
|
||||||
|
if (c instanceof JComponent) { // assume Swing components
|
||||||
|
JComponent jc = (JComponent) c;
|
||||||
|
jc.putClientProperty(WizardDescriptor.PROP_CONTENT_SELECTED_INDEX, i);
|
||||||
|
jc.putClientProperty(WizardDescriptor.PROP_CONTENT_DATA, steps);
|
||||||
|
jc.putClientProperty(WizardDescriptor.PROP_AUTO_WIZARD_STYLE, true);
|
||||||
|
jc.putClientProperty(WizardDescriptor.PROP_CONTENT_DISPLAYED, true);
|
||||||
|
jc.putClientProperty(WizardDescriptor.PROP_CONTENT_NUMBERED, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return panels;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Set<?> instantiate() throws IOException {
|
||||||
|
|
||||||
|
FileObject createdFile = null;
|
||||||
|
|
||||||
|
// Read Title from wizard
|
||||||
|
// String HtmlTitle = (String) wizard.getProperty(SNDefWizardPanel1.TITLE);
|
||||||
|
// FreeMarker Template will get its variables from HashMap.
|
||||||
|
// HashMap key is the variable name.
|
||||||
|
SNDefVisualPanel1 panel1 = ((SNDefWizardPanel1) panels.get(1)).getComponent();
|
||||||
|
SNDefVisualPanel2 panel2 = ((SNDefWizardPanel2) panels.get(2)).getComponent();
|
||||||
|
SNDefVisualPanel2 panel3 = ((SNDefWizardPanel2) panels.get(3)).getComponent();
|
||||||
|
|
||||||
|
Map args = new HashMap();
|
||||||
|
args.put("defName", panel1.getDefName());
|
||||||
|
args.put("defType", panel1.getDefType());
|
||||||
|
args.put("description", panel1.getDefDescription());
|
||||||
|
args.put("inputParams", panel2.getData());
|
||||||
|
args.put("outputParams", panel3.getData());
|
||||||
|
|
||||||
|
//Get the template and convert it:
|
||||||
|
FileObject tplSnd = Templates.getTemplate(wizard);
|
||||||
|
FileObject tplShd = tplSnd.getParent().getChildren()[1];
|
||||||
|
|
||||||
|
DataObject templateSnd = DataObject.find(tplSnd);
|
||||||
|
DataObject templateShd = DataObject.find(tplShd);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//Get the package:
|
||||||
|
FileObject dir = Templates.getTargetFolder(wizard);
|
||||||
|
DataFolder df = DataFolder.findFolder(dir);
|
||||||
|
|
||||||
|
ProjectAssetManager assetManager = new ProjectAssetManager(Templates.getProject(wizard),"assets");
|
||||||
|
|
||||||
|
//Get the class:
|
||||||
|
String targetName = Templates.getTargetName(wizard);
|
||||||
|
String shaderName = targetName;
|
||||||
|
if (panel1.getDefType().equals("Fragment")) {
|
||||||
|
shaderName += ".frag";
|
||||||
|
} else if (panel1.getDefType().equals("Vertex")) {
|
||||||
|
shaderName += ".vert";
|
||||||
|
} else {
|
||||||
|
shaderName += ".frag";
|
||||||
|
}
|
||||||
|
|
||||||
|
args.put("shaderSnippet",assetManager.getRelativeAssetPath(dir.getPath()+"/"+shaderName));
|
||||||
|
|
||||||
|
//Define the template from the above,
|
||||||
|
//passing the package, the file name, and the map of strings to the template:
|
||||||
|
// DataObject dobj = templateSnd.createFromTemplate(df, targetName, args);
|
||||||
|
|
||||||
|
|
||||||
|
DataObject sobj = templateShd.createFromTemplate(df, shaderName, args);
|
||||||
|
DataObject dobj = templateSnd.createFromTemplate(df, targetName, args);
|
||||||
|
//Obtain a FileObject:
|
||||||
|
createdFile = dobj.getPrimaryFile();
|
||||||
|
|
||||||
|
// Return the created file.
|
||||||
|
return Collections.singleton(createdFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initialize(WizardDescriptor wizard) {
|
||||||
|
this.wizard = wizard;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void uninitialize(WizardDescriptor wizard) {
|
||||||
|
panels = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public WizardDescriptor.Panel<WizardDescriptor> current() {
|
||||||
|
return getPanels().get(index);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String name() {
|
||||||
|
return index + 1 + ". from " + getPanels().size();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasNext() {
|
||||||
|
return index < getPanels().size() - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasPrevious() {
|
||||||
|
return index > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void nextPanel() {
|
||||||
|
if (!hasNext()) {
|
||||||
|
throw new NoSuchElementException();
|
||||||
|
}
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void previousPanel() {
|
||||||
|
if (!hasPrevious()) {
|
||||||
|
throw new NoSuchElementException();
|
||||||
|
}
|
||||||
|
index--;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If nothing unusual changes in the middle of the wizard, simply:
|
||||||
|
@Override
|
||||||
|
public void addChangeListener(ChangeListener l) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeChangeListener(ChangeListener l) {
|
||||||
|
}
|
||||||
|
// If something changes dynamically (besides moving between panels), e.g.
|
||||||
|
// the number of panels changes in response to user input, then use
|
||||||
|
// ChangeSupport to implement add/removeChangeListener and call fireChange
|
||||||
|
// when needed
|
||||||
|
|
||||||
|
// You could safely ignore this method. Is is here to keep steps which were
|
||||||
|
// there before this wizard was instantiated. It should be better handled
|
||||||
|
// by NetBeans Wizard API itself rather than needed to be implemented by a
|
||||||
|
// client code.
|
||||||
|
private String[] createSteps() {
|
||||||
|
String[] beforeSteps = (String[]) wizard.getProperty("WizardPanel_contentData");
|
||||||
|
assert beforeSteps != null : "This wizard may only be used embedded in the template wizard";
|
||||||
|
String[] res = new String[(beforeSteps.length - 1) + panels.size()];
|
||||||
|
for (int i = 0; i < res.length; i++) {
|
||||||
|
if (i < (beforeSteps.length - 1)) {
|
||||||
|
res[i] = beforeSteps[i];
|
||||||
|
} else {
|
||||||
|
res[i] = panels.get(i - beforeSteps.length + 1).getComponent().getName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,68 @@
|
|||||||
|
/*
|
||||||
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
|
* To change this template file, choose Tools | Templates
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
package com.jme3.gde.shadernodedefinition.wizard;
|
||||||
|
|
||||||
|
import javax.swing.event.ChangeListener;
|
||||||
|
import org.openide.WizardDescriptor;
|
||||||
|
import org.openide.util.HelpCtx;
|
||||||
|
|
||||||
|
public class SNDefWizardPanel1 implements WizardDescriptor.Panel<WizardDescriptor> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The visual component that displays this panel. If you need to access the
|
||||||
|
* component from this class, just use getComponent().
|
||||||
|
*/
|
||||||
|
private SNDefVisualPanel1 component;
|
||||||
|
|
||||||
|
// Get the visual component for the panel. In this template, the component
|
||||||
|
// is kept separate. This can be more efficient: if the wizard is created
|
||||||
|
// but never displayed, or not all panels are displayed, it is better to
|
||||||
|
// create only those which really need to be visible.
|
||||||
|
@Override
|
||||||
|
public SNDefVisualPanel1 getComponent() {
|
||||||
|
if (component == null) {
|
||||||
|
component = new SNDefVisualPanel1();
|
||||||
|
}
|
||||||
|
return component;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HelpCtx getHelp() {
|
||||||
|
// Show no Help button for this panel:
|
||||||
|
return HelpCtx.DEFAULT_HELP;
|
||||||
|
// If you have context help:
|
||||||
|
// return new HelpCtx("help.key.here");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isValid() {
|
||||||
|
// If it is always OK to press Next or Finish, then:
|
||||||
|
return true;
|
||||||
|
// If it depends on some condition (form filled out...) and
|
||||||
|
// this condition changes (last form field filled in...) then
|
||||||
|
// use ChangeSupport to implement add/removeChangeListener below.
|
||||||
|
// WizardDescriptor.ERROR/WARNING/INFORMATION_MESSAGE will also be useful.
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addChangeListener(ChangeListener l) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeChangeListener(ChangeListener l) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void readSettings(WizardDescriptor wiz) {
|
||||||
|
// use wiz.getProperty to retrieve previous panel state
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void storeSettings(WizardDescriptor wiz) {
|
||||||
|
// use wiz.putProperty to remember current panel state
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,73 @@
|
|||||||
|
/*
|
||||||
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
|
* To change this template file, choose Tools | Templates
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
package com.jme3.gde.shadernodedefinition.wizard;
|
||||||
|
|
||||||
|
import javax.swing.event.ChangeListener;
|
||||||
|
import org.openide.WizardDescriptor;
|
||||||
|
import org.openide.util.HelpCtx;
|
||||||
|
|
||||||
|
public class SNDefWizardPanel2 implements WizardDescriptor.Panel<WizardDescriptor> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The visual component that displays this panel. If you need to access the
|
||||||
|
* component from this class, just use getComponent().
|
||||||
|
*/
|
||||||
|
private SNDefVisualPanel2 component;
|
||||||
|
private final String type;
|
||||||
|
|
||||||
|
public SNDefWizardPanel2(String type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the visual component for the panel. In this template, the component
|
||||||
|
// is kept separate. This can be more efficient: if the wizard is created
|
||||||
|
// but never displayed, or not all panels are displayed, it is better to
|
||||||
|
// create only those which really need to be visible.
|
||||||
|
@Override
|
||||||
|
public SNDefVisualPanel2 getComponent() {
|
||||||
|
if (component == null) {
|
||||||
|
component = new SNDefVisualPanel2(type);
|
||||||
|
}
|
||||||
|
return component;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HelpCtx getHelp() {
|
||||||
|
// Show no Help button for this panel:
|
||||||
|
return HelpCtx.DEFAULT_HELP;
|
||||||
|
// If you have context help:
|
||||||
|
// return new HelpCtx("help.key.here");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isValid() {
|
||||||
|
// If it is always OK to press Next or Finish, then:
|
||||||
|
return true;
|
||||||
|
// If it depends on some condition (form filled out...) and
|
||||||
|
// this condition changes (last form field filled in...) then
|
||||||
|
// use ChangeSupport to implement add/removeChangeListener below.
|
||||||
|
// WizardDescriptor.ERROR/WARNING/INFORMATION_MESSAGE will also be useful.
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addChangeListener(ChangeListener l) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeChangeListener(ChangeListener l) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void readSettings(WizardDescriptor wiz) {
|
||||||
|
// use wiz.getProperty to retrieve previous panel state
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void storeSettings(WizardDescriptor wiz) {
|
||||||
|
// use wiz.putProperty to remember current panel state
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
<!--
|
||||||
|
To change this license header, choose License Headers in Project Properties.
|
||||||
|
To change this template file, choose Tools | Templates
|
||||||
|
and open the template in the editor.
|
||||||
|
-->
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!--
|
||||||
|
TODO replace this with a description what your wizard is supposed to do.
|
||||||
|
This information will be displayed in the New Wizard Description area.
|
||||||
|
-->
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
x
Reference in New Issue
Block a user