Skip to content

Commit 3e3733d

Browse files
committed
Merge branch 'master' into Issue#597
# Conflicts: # jme3-materialeditor/src/com/jme3/gde/materials/multiview/MaterialEditorTopComponent.java
2 parents a805bd7 + 828da64 commit 3e3733d

File tree

3 files changed

+52
-32
lines changed

3 files changed

+52
-32
lines changed

jme3-materialeditor/src/com/jme3/gde/materials/EditableMaterialFile.java

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,13 @@ public class EditableMaterialFile {
5959
private final List<String> matDefEntries = new ArrayList<>();
6060
private final ProjectAssetManager manager;
6161
private FileSystem fs;
62-
public static final String[] variableTypes = new String[]{"Int", "Boolean", "Float", "Vector2", "Vector3", "Vector4", "Color", "Texture2D", "Texture3D", "TextureArray", "TextureBuffer", "TextureCubeMap"};
62+
63+
// Note that these are tested with startsWith, so the ordering matters (i.e. FloatArray & Float)
64+
public static final String[] variableTypes = new String[]{
65+
"IntArray", "Int", "Boolean", "FloatArray", "Float", "Vector2Array",
66+
"Vector3Array", "Vector4Array", "Vector2", "Vector3", "Vector4",
67+
"Color", "Texture2D", "Texture3D", "TextureArray", "TextureBuffer",
68+
"TextureCubeMap"};
6369

6470
public EditableMaterialFile(FileObject material, ProjectAssetManager manager) {
6571
this.material = material;
@@ -188,24 +194,26 @@ private void initMatDef() {
188194
matDef = manager.getAssetFolder().getFileObject(getMatDefName());
189195

190196
//try to read from classpath if not in assets folder and store in a virtual filesystem folder
191-
if (matDef == null || !matDef.isValid()) {
192-
try {
193-
fs = FileUtil.createMemoryFileSystem();
194-
matDef = fs.getRoot().createData(name, "j3md");
195-
try ( OutputStream out = matDef.getOutputStream()) {
196-
InputStream in = manager.getResourceAsStream(getMatDefName());
197-
if (in != null) {
198-
int input = in.read();
199-
while (input != -1) {
200-
out.write(input);
201-
input = in.read();
202-
}
203-
in.close();
197+
if (matDef != null && matDef.isValid()) {
198+
return;
199+
}
200+
201+
try {
202+
fs = FileUtil.createMemoryFileSystem();
203+
matDef = fs.getRoot().createData(name, "j3md");
204+
try ( OutputStream out = matDef.getOutputStream()) {
205+
InputStream in = manager.getResourceAsStream(getMatDefName());
206+
if (in != null) {
207+
int input = in.read();
208+
while (input != -1) {
209+
out.write(input);
210+
input = in.read();
204211
}
212+
in.close();
205213
}
206-
} catch (IOException ex) {
207-
Exceptions.printStackTrace(ex);
208214
}
215+
} catch (IOException ex) {
216+
Exceptions.printStackTrace(ex);
209217
}
210218
}
211219

@@ -255,6 +263,8 @@ private void checkWithMatDef() {
255263
materialParameters.put(prop.getName(), prop);
256264
}
257265
prop.setType(string);
266+
267+
break;
258268
}
259269
}
260270
}

jme3-materialeditor/src/com/jme3/gde/materials/multiview/MaterialEditorTopComponent.form

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -354,9 +354,6 @@
354354
<ResourceString bundle="com/jme3/gde/materials/multiview/Bundle.properties" key="MaterialEditorTopComponent.jTextField1.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
355355
</Property>
356356
</Properties>
357-
<Events>
358-
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jTextField1ActionPerformed"/>
359-
</Events>
360357
</Component>
361358
</SubComponents>
362359
</Container>

jme3-materialeditor/src/com/jme3/gde/materials/multiview/MaterialEditorTopComponent.java

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,32 @@ public void componentHidden(ComponentEvent e) {
121121
materialPreviewWidget1.showMaterial(manager, materialFileName);
122122

123123
relativeMaterialFileName = manager.getRelativeAssetPath(materialFileName);
124+
125+
jTextField1.getDocument().addDocumentListener(new DocumentListener() {
126+
@Override
127+
public void insertUpdate(DocumentEvent e) {
128+
updateName();
129+
}
130+
131+
@Override
132+
public void removeUpdate(DocumentEvent e) {
133+
updateName();
134+
}
135+
136+
@Override
137+
public void changedUpdate(DocumentEvent e) {
138+
updateName();
139+
}
140+
141+
private void updateName() {
142+
if (materialFile != null) {
143+
materialFile.setName(jTextField1.getText());
144+
String string = materialFile.getUpdatedContent();
145+
jTextArea1.setText(string);
146+
}
147+
}
148+
149+
});
124150
}
125151

126152
/** This method is called from within the constructor to
@@ -260,11 +286,6 @@ public void actionPerformed(java.awt.event.ActionEvent evt) {
260286
jToolBar3.add(jPanel1);
261287

262288
jTextField1.setText(org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jTextField1.text")); // NOI18N
263-
jTextField1.addActionListener(new java.awt.event.ActionListener() {
264-
public void actionPerformed(java.awt.event.ActionEvent evt) {
265-
jTextField1ActionPerformed(evt);
266-
}
267-
});
268289
jToolBar3.add(jTextField1);
269290

270291
jCheckBox1.setSelected(true);
@@ -354,14 +375,6 @@ private void jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FI
354375
saveImmediate = jCheckBox1.isSelected();
355376
}//GEN-LAST:event_jCheckBox1ActionPerformed
356377

357-
private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField1ActionPerformed
358-
if (materialFile != null) {
359-
materialFile.setName(jTextField1.getText());
360-
String string = materialFile.getUpdatedContent();
361-
jTextArea1.setText(string);
362-
}
363-
}//GEN-LAST:event_jTextField1ActionPerformed
364-
365378
private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBox1ActionPerformed
366379
if (materialFile != null) {
367380
updateProperties = true;

0 commit comments

Comments
 (0)