|
@@ -22,10 +22,13 @@ import java.io.IOException;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.Arrays;
|
|
import java.util.Collections;
|
|
import java.util.Collections;
|
|
|
|
+import java.util.LinkedHashMap;
|
|
import java.util.LinkedList;
|
|
import java.util.LinkedList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
+import java.util.Map;
|
|
import java.util.Map.Entry;
|
|
import java.util.Map.Entry;
|
|
import java.util.logging.Logger;
|
|
import java.util.logging.Logger;
|
|
|
|
+import java.util.stream.Collectors;
|
|
import javax.swing.event.DocumentEvent;
|
|
import javax.swing.event.DocumentEvent;
|
|
import javax.swing.event.DocumentListener;
|
|
import javax.swing.event.DocumentListener;
|
|
import org.openide.loaders.DataObjectNotFoundException;
|
|
import org.openide.loaders.DataObjectNotFoundException;
|
|
@@ -111,25 +114,27 @@ public final class MaterialEditorTopComponent extends CloneableTopComponent impl
|
|
|
|
|
|
jPanel2 = new javax.swing.JPanel();
|
|
jPanel2 = new javax.swing.JPanel();
|
|
jTabbedPane1 = new javax.swing.JTabbedPane();
|
|
jTabbedPane1 = new javax.swing.JTabbedPane();
|
|
- jPanel4 = new javax.swing.JPanel();
|
|
|
|
- jTabbedPane2 = new javax.swing.JTabbedPane();
|
|
|
|
|
|
+ jScrollPane4 = new javax.swing.JScrollPane();
|
|
|
|
+ editorPanel = new javax.swing.JPanel();
|
|
|
|
+ texturesAndColorsPane = new javax.swing.JTabbedPane();
|
|
jScrollPane3 = new javax.swing.JScrollPane();
|
|
jScrollPane3 = new javax.swing.JScrollPane();
|
|
texturePanel = new javax.swing.JPanel();
|
|
texturePanel = new javax.swing.JPanel();
|
|
- jScrollPane9 = new javax.swing.JScrollPane();
|
|
|
|
- statesPanel = new javax.swing.JPanel();
|
|
|
|
jTabbedPane3 = new javax.swing.JTabbedPane();
|
|
jTabbedPane3 = new javax.swing.JTabbedPane();
|
|
jScrollPane2 = new javax.swing.JScrollPane();
|
|
jScrollPane2 = new javax.swing.JScrollPane();
|
|
optionsPanel = new javax.swing.JPanel();
|
|
optionsPanel = new javax.swing.JPanel();
|
|
jToolBar2 = new javax.swing.JToolBar();
|
|
jToolBar2 = new javax.swing.JToolBar();
|
|
- jLabel1 = new javax.swing.JLabel();
|
|
|
|
jPanel3 = new javax.swing.JPanel();
|
|
jPanel3 = new javax.swing.JPanel();
|
|
|
|
+ jLabel1 = new javax.swing.JLabel();
|
|
jComboBox1 = new javax.swing.JComboBox();
|
|
jComboBox1 = new javax.swing.JComboBox();
|
|
jToolBar3 = new javax.swing.JToolBar();
|
|
jToolBar3 = new javax.swing.JToolBar();
|
|
- jLabel3 = new javax.swing.JLabel();
|
|
|
|
jPanel1 = new javax.swing.JPanel();
|
|
jPanel1 = new javax.swing.JPanel();
|
|
|
|
+ jLabel3 = new javax.swing.JLabel();
|
|
jTextField1 = new javax.swing.JTextField();
|
|
jTextField1 = new javax.swing.JTextField();
|
|
jCheckBox1 = new javax.swing.JCheckBox();
|
|
jCheckBox1 = new javax.swing.JCheckBox();
|
|
materialPreviewWidget1 = new com.jme3.gde.materials.multiview.widgets.MaterialPreviewWidget();
|
|
materialPreviewWidget1 = new com.jme3.gde.materials.multiview.widgets.MaterialPreviewWidget();
|
|
|
|
+ additionalRenderStatePane = new javax.swing.JTabbedPane();
|
|
|
|
+ jScrollPane10 = new javax.swing.JScrollPane();
|
|
|
|
+ statesPanel = new javax.swing.JPanel();
|
|
jScrollPane1 = new javax.swing.JScrollPane();
|
|
jScrollPane1 = new javax.swing.JScrollPane();
|
|
jTextArea1 = new javax.swing.JTextArea();
|
|
jTextArea1 = new javax.swing.JTextArea();
|
|
|
|
|
|
@@ -144,10 +149,17 @@ public final class MaterialEditorTopComponent extends CloneableTopComponent impl
|
|
.addGap(0, 100, Short.MAX_VALUE)
|
|
.addGap(0, 100, Short.MAX_VALUE)
|
|
);
|
|
);
|
|
|
|
|
|
|
|
+ jTabbedPane1.setTabLayoutPolicy(javax.swing.JTabbedPane.SCROLL_TAB_LAYOUT);
|
|
jTabbedPane1.setMinimumSize(new java.awt.Dimension(0, 0));
|
|
jTabbedPane1.setMinimumSize(new java.awt.Dimension(0, 0));
|
|
jTabbedPane1.setPreferredSize(new java.awt.Dimension(0, 0));
|
|
jTabbedPane1.setPreferredSize(new java.awt.Dimension(0, 0));
|
|
|
|
|
|
- jPanel4.setPreferredSize(new java.awt.Dimension(0, 0));
|
|
|
|
|
|
+ jScrollPane4.setPreferredSize(new java.awt.Dimension(0, 0));
|
|
|
|
+
|
|
|
|
+ editorPanel.setPreferredSize(new java.awt.Dimension(0, 0));
|
|
|
|
+
|
|
|
|
+ texturesAndColorsPane.setTabLayoutPolicy(javax.swing.JTabbedPane.SCROLL_TAB_LAYOUT);
|
|
|
|
+ texturesAndColorsPane.setMinimumSize(new java.awt.Dimension(150, 31));
|
|
|
|
+ texturesAndColorsPane.setPreferredSize(new java.awt.Dimension(480, 355));
|
|
|
|
|
|
jScrollPane3.setBorder(null);
|
|
jScrollPane3.setBorder(null);
|
|
jScrollPane3.setMinimumSize(new java.awt.Dimension(0, 0));
|
|
jScrollPane3.setMinimumSize(new java.awt.Dimension(0, 0));
|
|
@@ -155,19 +167,15 @@ public final class MaterialEditorTopComponent extends CloneableTopComponent impl
|
|
texturePanel.setLayout(new javax.swing.BoxLayout(texturePanel, javax.swing.BoxLayout.PAGE_AXIS));
|
|
texturePanel.setLayout(new javax.swing.BoxLayout(texturePanel, javax.swing.BoxLayout.PAGE_AXIS));
|
|
jScrollPane3.setViewportView(texturePanel);
|
|
jScrollPane3.setViewportView(texturePanel);
|
|
|
|
|
|
- jTabbedPane2.addTab(org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jScrollPane3.TabConstraints.tabTitle"), jScrollPane3); // NOI18N
|
|
|
|
-
|
|
|
|
- jScrollPane9.setBorder(null);
|
|
|
|
-
|
|
|
|
- statesPanel.setLayout(new javax.swing.BoxLayout(statesPanel, javax.swing.BoxLayout.PAGE_AXIS));
|
|
|
|
- jScrollPane9.setViewportView(statesPanel);
|
|
|
|
|
|
+ texturesAndColorsPane.addTab(org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jScrollPane3.TabConstraints.tabTitle"), jScrollPane3); // NOI18N
|
|
|
|
|
|
- jTabbedPane2.addTab(org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jScrollPane9.TabConstraints.tabTitle"), jScrollPane9); // NOI18N
|
|
|
|
|
|
+ jTabbedPane3.setMinimumSize(new java.awt.Dimension(380, 355));
|
|
|
|
+ jTabbedPane3.setPreferredSize(new java.awt.Dimension(500, 355));
|
|
|
|
|
|
jScrollPane2.setBorder(null);
|
|
jScrollPane2.setBorder(null);
|
|
jScrollPane2.setMinimumSize(new java.awt.Dimension(220, 0));
|
|
jScrollPane2.setMinimumSize(new java.awt.Dimension(220, 0));
|
|
|
|
|
|
- optionsPanel.setLayout(new javax.swing.BoxLayout(optionsPanel, javax.swing.BoxLayout.PAGE_AXIS));
|
|
|
|
|
|
+ optionsPanel.setLayout(new java.awt.GridLayout(0, 2));
|
|
jScrollPane2.setViewportView(optionsPanel);
|
|
jScrollPane2.setViewportView(optionsPanel);
|
|
|
|
|
|
jTabbedPane3.addTab(org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jScrollPane2.TabConstraints.tabTitle_1"), jScrollPane2); // NOI18N
|
|
jTabbedPane3.addTab(org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jScrollPane2.TabConstraints.tabTitle_1"), jScrollPane2); // NOI18N
|
|
@@ -175,18 +183,24 @@ public final class MaterialEditorTopComponent extends CloneableTopComponent impl
|
|
jToolBar2.setFloatable(false);
|
|
jToolBar2.setFloatable(false);
|
|
jToolBar2.setRollover(true);
|
|
jToolBar2.setRollover(true);
|
|
|
|
|
|
|
|
+ jPanel3.setPreferredSize(new java.awt.Dimension(0, 21));
|
|
|
|
+
|
|
org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jLabel1.text")); // NOI18N
|
|
org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jLabel1.text")); // NOI18N
|
|
- jToolBar2.add(jLabel1);
|
|
|
|
|
|
|
|
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
|
|
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
|
|
jPanel3.setLayout(jPanel3Layout);
|
|
jPanel3.setLayout(jPanel3Layout);
|
|
jPanel3Layout.setHorizontalGroup(
|
|
jPanel3Layout.setHorizontalGroup(
|
|
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
- .addGap(0, 131, Short.MAX_VALUE)
|
|
|
|
|
|
+ .addGroup(jPanel3Layout.createSequentialGroup()
|
|
|
|
+ .addContainerGap()
|
|
|
|
+ .addComponent(jLabel1)
|
|
|
|
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
|
);
|
|
);
|
|
jPanel3Layout.setVerticalGroup(
|
|
jPanel3Layout.setVerticalGroup(
|
|
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
- .addGap(0, 21, Short.MAX_VALUE)
|
|
|
|
|
|
+ .addGroup(jPanel3Layout.createSequentialGroup()
|
|
|
|
+ .addComponent(jLabel1)
|
|
|
|
+ .addGap(0, 4, Short.MAX_VALUE))
|
|
);
|
|
);
|
|
|
|
|
|
jToolBar2.add(jPanel3);
|
|
jToolBar2.add(jPanel3);
|
|
@@ -194,28 +208,34 @@ public final class MaterialEditorTopComponent extends CloneableTopComponent impl
|
|
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { " ", "Common/MatDefs/Misc/SolidColor.j3md", "Common/MatDefs/Misc/VertexColor.j3md", "Common/MatDefs/Misc/SimpleTextured.j3md", "Common/MatDefs/Misc/ColoredTextured.j3md", "Common/MatDefs/Misc/Particle.j3md", "Common/MatDefs/Misc/Sky.j3md", "Common/MatDefs/Gui/Gui.j3md", "Common/MatDefs/Light/Lighting.j3md", "Common/MatDefs/Light/Reflection.j3md", "Common/MatDefs/Misc/ShowNormals.j3md", "Common/MatDefs/Hdr/LogLum.j3md", "Common/MatDefs/Hdr/ToneMap.j3md", "Common/MatDefs/Shadow/PreShadow.j3md", "Common/MatDefs/Shadow/PostShadow.j3md" }));
|
|
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { " ", "Common/MatDefs/Misc/SolidColor.j3md", "Common/MatDefs/Misc/VertexColor.j3md", "Common/MatDefs/Misc/SimpleTextured.j3md", "Common/MatDefs/Misc/ColoredTextured.j3md", "Common/MatDefs/Misc/Particle.j3md", "Common/MatDefs/Misc/Sky.j3md", "Common/MatDefs/Gui/Gui.j3md", "Common/MatDefs/Light/Lighting.j3md", "Common/MatDefs/Light/Reflection.j3md", "Common/MatDefs/Misc/ShowNormals.j3md", "Common/MatDefs/Hdr/LogLum.j3md", "Common/MatDefs/Hdr/ToneMap.j3md", "Common/MatDefs/Shadow/PreShadow.j3md", "Common/MatDefs/Shadow/PostShadow.j3md" }));
|
|
jComboBox1.setMaximumSize(new java.awt.Dimension(32767, 27));
|
|
jComboBox1.setMaximumSize(new java.awt.Dimension(32767, 27));
|
|
jComboBox1.setMinimumSize(new java.awt.Dimension(256, 27));
|
|
jComboBox1.setMinimumSize(new java.awt.Dimension(256, 27));
|
|
|
|
+ jComboBox1.setPreferredSize(new java.awt.Dimension(390, 23));
|
|
jComboBox1.addActionListener(new java.awt.event.ActionListener() {
|
|
jComboBox1.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
jComboBox1ActionPerformed(evt);
|
|
jComboBox1ActionPerformed(evt);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
jToolBar2.add(jComboBox1);
|
|
jToolBar2.add(jComboBox1);
|
|
-
|
|
|
|
jToolBar3.setFloatable(false);
|
|
jToolBar3.setFloatable(false);
|
|
jToolBar3.setRollover(true);
|
|
jToolBar3.setRollover(true);
|
|
|
|
|
|
|
|
+ jPanel1.setPreferredSize(new java.awt.Dimension(140, 21));
|
|
|
|
+
|
|
org.openide.awt.Mnemonics.setLocalizedText(jLabel3, org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jLabel3.text")); // NOI18N
|
|
org.openide.awt.Mnemonics.setLocalizedText(jLabel3, org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jLabel3.text")); // NOI18N
|
|
- jToolBar3.add(jLabel3);
|
|
|
|
|
|
|
|
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
|
|
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
|
|
jPanel1.setLayout(jPanel1Layout);
|
|
jPanel1.setLayout(jPanel1Layout);
|
|
jPanel1Layout.setHorizontalGroup(
|
|
jPanel1Layout.setHorizontalGroup(
|
|
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
- .addGap(0, 100, Short.MAX_VALUE)
|
|
|
|
|
|
+ .addGroup(jPanel1Layout.createSequentialGroup()
|
|
|
|
+ .addContainerGap()
|
|
|
|
+ .addComponent(jLabel3)
|
|
|
|
+ .addContainerGap(100, Short.MAX_VALUE))
|
|
);
|
|
);
|
|
jPanel1Layout.setVerticalGroup(
|
|
jPanel1Layout.setVerticalGroup(
|
|
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
- .addGap(0, 21, Short.MAX_VALUE)
|
|
|
|
|
|
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
|
|
|
|
+ .addGap(0, 4, Short.MAX_VALUE)
|
|
|
|
+ .addComponent(jLabel3))
|
|
);
|
|
);
|
|
|
|
|
|
jToolBar3.add(jPanel1);
|
|
jToolBar3.add(jPanel1);
|
|
@@ -236,43 +256,61 @@ public final class MaterialEditorTopComponent extends CloneableTopComponent impl
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
- javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
|
|
|
|
- jPanel4.setLayout(jPanel4Layout);
|
|
|
|
- jPanel4Layout.setHorizontalGroup(
|
|
|
|
- jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
|
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
|
|
|
|
- .addComponent(materialPreviewWidget1, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
|
- .addGap(32, 32, 32)
|
|
|
|
- .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
|
- .addComponent(jToolBar3, javax.swing.GroupLayout.DEFAULT_SIZE, 596, Short.MAX_VALUE)
|
|
|
|
- .addComponent(jToolBar2, javax.swing.GroupLayout.DEFAULT_SIZE, 596, Short.MAX_VALUE)
|
|
|
|
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
|
|
|
|
- .addComponent(jCheckBox1)
|
|
|
|
- .addContainerGap())))
|
|
|
|
- .addGroup(jPanel4Layout.createSequentialGroup()
|
|
|
|
- .addComponent(jTabbedPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 223, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
|
|
|
+ additionalRenderStatePane.setMinimumSize(new java.awt.Dimension(150, 100));
|
|
|
|
+ additionalRenderStatePane.setPreferredSize(new java.awt.Dimension(380, 355));
|
|
|
|
+
|
|
|
|
+ jScrollPane10.setBorder(null);
|
|
|
|
+
|
|
|
|
+ statesPanel.setLayout(new javax.swing.BoxLayout(statesPanel, javax.swing.BoxLayout.PAGE_AXIS));
|
|
|
|
+ jScrollPane10.setViewportView(statesPanel);
|
|
|
|
+
|
|
|
|
+ additionalRenderStatePane.addTab(org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jScrollPane10.TabConstraints.tabTitle"), jScrollPane10); // NOI18N
|
|
|
|
+
|
|
|
|
+ javax.swing.GroupLayout editorPanelLayout = new javax.swing.GroupLayout(editorPanel);
|
|
|
|
+ editorPanel.setLayout(editorPanelLayout);
|
|
|
|
+ editorPanelLayout.setHorizontalGroup(
|
|
|
|
+ editorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
|
+ .addGroup(editorPanelLayout.createSequentialGroup()
|
|
|
|
+ .addGroup(editorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
|
+ .addComponent(materialPreviewWidget1, javax.swing.GroupLayout.PREFERRED_SIZE, 255, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
|
+ .addComponent(jTabbedPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 477, Short.MAX_VALUE))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
- .addComponent(jTabbedPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 525, Short.MAX_VALUE))
|
|
|
|
|
|
+ .addGroup(editorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
|
+ .addGroup(editorPanelLayout.createSequentialGroup()
|
|
|
|
+ .addComponent(texturesAndColorsPane, javax.swing.GroupLayout.PREFERRED_SIZE, 496, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
|
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
|
|
+ .addComponent(additionalRenderStatePane, javax.swing.GroupLayout.DEFAULT_SIZE, 352, Short.MAX_VALUE)
|
|
|
|
+ .addContainerGap(12, Short.MAX_VALUE))
|
|
|
|
+ .addGroup(editorPanelLayout.createSequentialGroup()
|
|
|
|
+ .addGroup(editorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
|
+ .addComponent(jToolBar3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
|
|
+ .addComponent(jToolBar2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
|
|
|
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
|
|
+ .addComponent(jCheckBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 148, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
|
+ .addGap(39, 39, 39))))
|
|
);
|
|
);
|
|
- jPanel4Layout.setVerticalGroup(
|
|
|
|
- jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
|
- .addGroup(jPanel4Layout.createSequentialGroup()
|
|
|
|
- .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
|
- .addGroup(jPanel4Layout.createSequentialGroup()
|
|
|
|
|
|
+ editorPanelLayout.setVerticalGroup(
|
|
|
|
+ editorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
|
+ .addGroup(editorPanelLayout.createSequentialGroup()
|
|
|
|
+ .addGroup(editorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
|
+ .addGroup(editorPanelLayout.createSequentialGroup()
|
|
.addContainerGap()
|
|
.addContainerGap()
|
|
- .addComponent(jToolBar3, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
|
|
|
+ .addGroup(editorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
|
|
|
+ .addComponent(jToolBar3, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
|
+ .addComponent(jCheckBox1))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
- .addComponent(jToolBar2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
|
|
- .addGap(23, 23, 23)
|
|
|
|
- .addComponent(jCheckBox1))
|
|
|
|
- .addComponent(materialPreviewWidget1, javax.swing.GroupLayout.PREFERRED_SIZE, 152, javax.swing.GroupLayout.PREFERRED_SIZE))
|
|
|
|
|
|
+ .addComponent(jToolBar2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
|
|
|
|
+ .addComponent(materialPreviewWidget1, javax.swing.GroupLayout.PREFERRED_SIZE, 225, javax.swing.GroupLayout.PREFERRED_SIZE))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
- .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
|
|
|
- .addComponent(jTabbedPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 320, Short.MAX_VALUE)
|
|
|
|
- .addComponent(jTabbedPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 326, Short.MAX_VALUE)))
|
|
|
|
|
|
+ .addGroup(editorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
|
|
+ .addComponent(jTabbedPane3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
|
|
+ .addComponent(texturesAndColorsPane, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
|
|
+ .addComponent(additionalRenderStatePane, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
|
|
);
|
|
);
|
|
|
|
|
|
- jTabbedPane1.addTab(org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jPanel4.TabConstraints.tabTitle"), jPanel4); // NOI18N
|
|
|
|
|
|
+ jScrollPane4.setViewportView(editorPanel);
|
|
|
|
+
|
|
|
|
+ jTabbedPane1.addTab(org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jScrollPane4.TabConstraints.tabTitle"), jScrollPane4); // NOI18N
|
|
|
|
|
|
jTextArea1.setColumns(20);
|
|
jTextArea1.setColumns(20);
|
|
jTextArea1.setRows(5);
|
|
jTextArea1.setRows(5);
|
|
@@ -284,35 +322,38 @@ public final class MaterialEditorTopComponent extends CloneableTopComponent impl
|
|
this.setLayout(layout);
|
|
this.setLayout(layout);
|
|
layout.setHorizontalGroup(
|
|
layout.setHorizontalGroup(
|
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
- .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 769, Short.MAX_VALUE)
|
|
|
|
|
|
+ .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 1351, Short.MAX_VALUE)
|
|
);
|
|
);
|
|
layout.setVerticalGroup(
|
|
layout.setVerticalGroup(
|
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
- .addComponent(jTabbedPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 524, Short.MAX_VALUE)
|
|
|
|
|
|
+ .addComponent(jTabbedPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 619, Short.MAX_VALUE)
|
|
);
|
|
);
|
|
}// </editor-fold>//GEN-END:initComponents
|
|
}// </editor-fold>//GEN-END:initComponents
|
|
|
|
|
|
- private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBox1ActionPerformed
|
|
|
|
|
|
+ private void jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox1ActionPerformed
|
|
|
|
+ saveImmediate = jCheckBox1.isSelected();
|
|
|
|
+ }//GEN-LAST:event_jCheckBox1ActionPerformed
|
|
|
|
+
|
|
|
|
+ private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField1ActionPerformed
|
|
if (materialFile != null) {
|
|
if (materialFile != null) {
|
|
- updateProperties = true;
|
|
|
|
- materialFile.setMatDefName((String) jComboBox1.getSelectedItem());
|
|
|
|
|
|
+ materialFile.setName(jTextField1.getText());
|
|
String string = materialFile.getUpdatedContent();
|
|
String string = materialFile.getUpdatedContent();
|
|
jTextArea1.setText(string);
|
|
jTextArea1.setText(string);
|
|
}
|
|
}
|
|
- }//GEN-LAST:event_jComboBox1ActionPerformed
|
|
|
|
|
|
+ }//GEN-LAST:event_jTextField1ActionPerformed
|
|
|
|
|
|
- private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField1ActionPerformed
|
|
|
|
|
|
+ private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBox1ActionPerformed
|
|
if (materialFile != null) {
|
|
if (materialFile != null) {
|
|
- materialFile.setName(jTextField1.getText());
|
|
|
|
|
|
+ updateProperties = true;
|
|
|
|
+ materialFile.setMatDefName((String) jComboBox1.getSelectedItem());
|
|
String string = materialFile.getUpdatedContent();
|
|
String string = materialFile.getUpdatedContent();
|
|
jTextArea1.setText(string);
|
|
jTextArea1.setText(string);
|
|
}
|
|
}
|
|
-}//GEN-LAST:event_jTextField1ActionPerformed
|
|
|
|
|
|
+ }//GEN-LAST:event_jComboBox1ActionPerformed
|
|
|
|
|
|
- private void jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox1ActionPerformed
|
|
|
|
- saveImmediate = jCheckBox1.isSelected();
|
|
|
|
- }//GEN-LAST:event_jCheckBox1ActionPerformed
|
|
|
|
// Variables declaration - do not modify//GEN-BEGIN:variables
|
|
// Variables declaration - do not modify//GEN-BEGIN:variables
|
|
|
|
+ private javax.swing.JTabbedPane additionalRenderStatePane;
|
|
|
|
+ private javax.swing.JPanel editorPanel;
|
|
private javax.swing.JCheckBox jCheckBox1;
|
|
private javax.swing.JCheckBox jCheckBox1;
|
|
private javax.swing.JComboBox jComboBox1;
|
|
private javax.swing.JComboBox jComboBox1;
|
|
private javax.swing.JLabel jLabel1;
|
|
private javax.swing.JLabel jLabel1;
|
|
@@ -320,13 +361,12 @@ public final class MaterialEditorTopComponent extends CloneableTopComponent impl
|
|
private javax.swing.JPanel jPanel1;
|
|
private javax.swing.JPanel jPanel1;
|
|
private javax.swing.JPanel jPanel2;
|
|
private javax.swing.JPanel jPanel2;
|
|
private javax.swing.JPanel jPanel3;
|
|
private javax.swing.JPanel jPanel3;
|
|
- private javax.swing.JPanel jPanel4;
|
|
|
|
private javax.swing.JScrollPane jScrollPane1;
|
|
private javax.swing.JScrollPane jScrollPane1;
|
|
|
|
+ private javax.swing.JScrollPane jScrollPane10;
|
|
private javax.swing.JScrollPane jScrollPane2;
|
|
private javax.swing.JScrollPane jScrollPane2;
|
|
private javax.swing.JScrollPane jScrollPane3;
|
|
private javax.swing.JScrollPane jScrollPane3;
|
|
- private javax.swing.JScrollPane jScrollPane9;
|
|
|
|
|
|
+ private javax.swing.JScrollPane jScrollPane4;
|
|
private javax.swing.JTabbedPane jTabbedPane1;
|
|
private javax.swing.JTabbedPane jTabbedPane1;
|
|
- private javax.swing.JTabbedPane jTabbedPane2;
|
|
|
|
private javax.swing.JTabbedPane jTabbedPane3;
|
|
private javax.swing.JTabbedPane jTabbedPane3;
|
|
private javax.swing.JTextArea jTextArea1;
|
|
private javax.swing.JTextArea jTextArea1;
|
|
private javax.swing.JTextField jTextField1;
|
|
private javax.swing.JTextField jTextField1;
|
|
@@ -336,6 +376,7 @@ public final class MaterialEditorTopComponent extends CloneableTopComponent impl
|
|
private javax.swing.JPanel optionsPanel;
|
|
private javax.swing.JPanel optionsPanel;
|
|
private javax.swing.JPanel statesPanel;
|
|
private javax.swing.JPanel statesPanel;
|
|
private javax.swing.JPanel texturePanel;
|
|
private javax.swing.JPanel texturePanel;
|
|
|
|
+ private javax.swing.JTabbedPane texturesAndColorsPane;
|
|
// End of variables declaration//GEN-END:variables
|
|
// End of variables declaration//GEN-END:variables
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -550,12 +591,16 @@ public final class MaterialEditorTopComponent extends CloneableTopComponent impl
|
|
}
|
|
}
|
|
optionsPanel.removeAll();
|
|
optionsPanel.removeAll();
|
|
texturePanel.removeAll();
|
|
texturePanel.removeAll();
|
|
- List<Component> optionList = new LinkedList<Component>();
|
|
|
|
- List<Component> colorList = new LinkedList<Component>();
|
|
|
|
- List<Component> valueList = new LinkedList<Component>();
|
|
|
|
- List<Component> textureList = new LinkedList<Component>();
|
|
|
|
- List<Component> otherList = new LinkedList<Component>();
|
|
|
|
- for (Entry<String, MaterialProperty> entry : materialFile.getParameterMap().entrySet()) {
|
|
|
|
|
|
+ List<Component> optionList = new LinkedList<>();
|
|
|
|
+ List<Component> colorList = new LinkedList<>();
|
|
|
|
+ List<Component> valueList = new LinkedList<>();
|
|
|
|
+ List<Component> textureList = new LinkedList<>();
|
|
|
|
+ List<Component> otherList = new LinkedList<>();
|
|
|
|
+ Map<String, MaterialProperty> sorted = materialFile.getParameterMap().entrySet().stream()
|
|
|
|
+ .sorted(Map.Entry.comparingByKey())
|
|
|
|
+ .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
|
|
|
|
+ (oldValue, newValue) -> oldValue, LinkedHashMap::new));
|
|
|
|
+ for (Entry<String, MaterialProperty> entry : sorted.entrySet()) {
|
|
MaterialPropertyWidget widget = WidgetFactory.getWidget(entry.getValue(), manager);
|
|
MaterialPropertyWidget widget = WidgetFactory.getWidget(entry.getValue(), manager);
|
|
widget.registerChangeListener(this);
|
|
widget.registerChangeListener(this);
|
|
if ("Boolean".equals(entry.getValue().getType())) {
|
|
if ("Boolean".equals(entry.getValue().getType())) {
|