Skip to content

Commit d02c3ca

Browse files
authored
Merge pull request #616 from neph1/Issue#606-duplicate-materials
Issue-606. replace String list with TreeSet
2 parents e5b33e8 + fe12153 commit d02c3ca

File tree

2 files changed

+46
-46
lines changed

2 files changed

+46
-46
lines changed

jme3-assetbrowser/src/com/jme3/gde/assetbrowser/AssetBrowser.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public class AssetBrowser extends javax.swing.JPanel implements PreviewInteracti
9090

9191
private int lastGridColumns = 0;
9292
private int lastGridRows = 0;
93-
private String lastFilter;
93+
private String lastFilter = "";
9494

9595
private int sizeX = Constants.sizeX;
9696
private int sizeY = Constants.sizeY;
@@ -155,7 +155,7 @@ private void loadAssets(String filter) {
155155
Dimension size = previewsPanel.getSize();
156156

157157
int rows = Math.min(size.height, getHeight() - 30) / sizeY;
158-
158+
159159
final var textures = Arrays.stream(assetManager.getTextures()).filter(s -> filter.isEmpty() || s.toLowerCase().contains(filter)).collect(Collectors.toList());
160160
final var materials = Arrays.stream(assetManager.getMaterials()).filter(s -> filter.isEmpty() || s.toLowerCase().contains(filter)).collect(Collectors.toList());
161161
final var models = Arrays.stream(assetManager.getModels()).filter(s -> filter.isEmpty() || s.toLowerCase().contains(filter)).collect(Collectors.toList());

jme3-core/src/com/jme3/gde/core/assets/ProjectAssetManager.java

Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2009-2010 jMonkeyEngine
2+
* Copyright (c) 2009-2024 jMonkeyEngine
33
* All rights reserved.
44
*
55
* Redistribution and use in source and binary forms, with or without
@@ -50,6 +50,7 @@
5050
import java.util.LinkedList;
5151
import java.util.List;
5252
import java.util.Set;
53+
import java.util.TreeSet;
5354
import java.util.logging.Level;
5455
import java.util.logging.Logger;
5556
import org.netbeans.api.java.classpath.ClassPath;
@@ -215,9 +216,7 @@ private void loadGradleClassLoader(List<URL> urls) {
215216
runtimeFiles = sourceSet.getRuntimeClassPath();
216217
}
217218
}
218-
} catch (IOException ex) {
219-
Exceptions.printStackTrace(ex);
220-
} catch (IllegalArgumentException ex) {
219+
} catch (IOException | IllegalArgumentException ex) {
221220
Exceptions.printStackTrace(ex);
222221
}
223222

@@ -243,25 +242,31 @@ private void loadGradleClassLoader(List<URL> urls) {
243242
}
244243

245244
FileChangeListener listener = new FileChangeListener() {
245+
@Override
246246
public void fileFolderCreated(FileEvent fe) {
247247
fireChange(fe);
248248
}
249249

250+
@Override
250251
public void fileDataCreated(FileEvent fe) {
251252
fireChange(fe);
252253
}
253254

255+
@Override
254256
public void fileChanged(FileEvent fe) {
255257
fireChange(fe);
256258
}
257259

260+
@Override
258261
public void fileDeleted(FileEvent fe) {
259262
}
260263

264+
@Override
261265
public void fileRenamed(FileRenameEvent fe) {
262266
fireChange(fe);
263267
}
264268

269+
@Override
265270
public void fileAttributeChanged(FileAttributeEvent fae) {
266271
}
267272

@@ -271,26 +276,22 @@ private void fireChange(FileEvent fe) {
271276
}
272277
};
273278

274-
private PropertyChangeListener classPathListener = new PropertyChangeListener() {
275-
public void propertyChange(PropertyChangeEvent evt) {
276-
logger.log(Level.FINE, "Classpath event: {0}", evt);
277-
if (null != evt.getPropertyName()) switch (evt.getPropertyName()) {
278-
case ClassPath.PROP_ROOTS -> updateClassLoader();
279-
case ClassPath.PROP_ENTRIES -> updateClassLoader();
280-
case ClassPath.PROP_INCLUDES -> updateClassLoader();
281-
default -> {
282-
}
279+
private PropertyChangeListener classPathListener = (PropertyChangeEvent evt) -> {
280+
logger.log(Level.FINE, "Classpath event: {0}", evt);
281+
if (null != evt.getPropertyName()) switch (evt.getPropertyName()) {
282+
case ClassPath.PROP_ROOTS -> updateClassLoader();
283+
case ClassPath.PROP_ENTRIES -> updateClassLoader();
284+
case ClassPath.PROP_INCLUDES -> updateClassLoader();
285+
default -> {
283286
}
284287
}
285288
};
286289

287290
public void updateClassLoader() {
288-
ProjectManager.mutex().postWriteRequest(new Runnable() {
289-
public void run() {
290-
synchronized (classPathItems) {
291-
clearClassLoader();
292-
loadClassLoader();
293-
}
291+
ProjectManager.mutex().postWriteRequest(() -> {
292+
synchronized (classPathItems) {
293+
clearClassLoader();
294+
loadClassLoader();
294295
}
295296
});
296297
notifyClassPathListeners();
@@ -303,6 +304,7 @@ public void setAssetEventListener(AssetEventListener listener) {
303304

304305
private void prepAssetEventListeners() {
305306
super.setAssetEventListener(new AssetEventListener() {
307+
@Override
306308
public void assetLoaded(AssetKey ak) {
307309
synchronized (assetEventListeners) {
308310
for (AssetEventListener assetEventListener : assetEventListeners) {
@@ -311,6 +313,7 @@ public void assetLoaded(AssetKey ak) {
311313
}
312314
}
313315

316+
@Override
314317
public void assetRequested(AssetKey ak) {
315318
synchronized (assetEventListeners) {
316319
for (AssetEventListener assetEventListener : assetEventListeners) {
@@ -319,6 +322,7 @@ public void assetRequested(AssetKey ak) {
319322
}
320323
}
321324

325+
@Override
322326
public void assetDependencyNotFound(AssetKey ak, AssetKey ak1) {
323327
synchronized (assetEventListeners) {
324328
for (AssetEventListener assetEventListener : assetEventListeners) {
@@ -425,6 +429,7 @@ public FileObject createAsset(String path, FileObject source) {
425429

426430
/**
427431
* Adds a locator to a folder within the main project directory
432+
* @param relativePath
428433
*/
429434
public void addFolderLocator(String relativePath) {
430435
String string = project.getProjectDirectory().getPath() + "/" + relativePath + "/";
@@ -506,12 +511,12 @@ public String[] getMatDefs(boolean includeDependencies) {
506511
return filesWithSuffix("j3md", includeDependencies);
507512
}
508513

509-
public List<String> getProjectShaderNodeDefs() {
510-
return collectProjectFilesWithSuffix("j3sn", new LinkedList<>());
514+
public Set<String> getProjectShaderNodeDefs() {
515+
return collectProjectFilesWithSuffix("j3sn", new TreeSet<>());
511516
}
512517

513-
public List<String> getDependenciesShaderNodeDefs() {
514-
return collectDependenciesFilesWithSuffix("j3sn", new LinkedList<>());
518+
public Set<String> getDependenciesShaderNodeDefs() {
519+
return collectDependenciesFilesWithSuffix("j3sn", new TreeSet<>());
515520
}
516521

517522
public String[] getAssetsWithSuffix(String string) {
@@ -523,20 +528,20 @@ public String[] getAssetsWithSuffix(String string, boolean includeDependencies)
523528
}
524529

525530
private String[] filesWithSuffix(String string, boolean includeDependencies) {
526-
List<String> list = collectFilesWithSuffix(string, includeDependencies);
531+
Set<String> list = collectFilesWithSuffix(string, includeDependencies);
527532
return list.toArray(String[]::new);
528533
}
529534

530-
private List<String> collectFilesWithSuffix(String suffix, boolean includeDependencies) {
531-
List<String> list = new LinkedList<>();
535+
private Set<String> collectFilesWithSuffix(String suffix, boolean includeDependencies) {
536+
Set<String> list = new TreeSet<>();
532537
collectProjectFilesWithSuffix(suffix, list);
533538
if(includeDependencies) {
534539
collectDependenciesFilesWithSuffix(suffix, list);
535540
}
536541
return list;
537542
}
538543

539-
private List<String> collectProjectFilesWithSuffix(String suffix, List<String> list) {
544+
private Set<String> collectProjectFilesWithSuffix(String suffix, Set<String> list) {
540545
FileObject assetsFolder = getAssetFolder();
541546
if (assetsFolder != null) {
542547
Enumeration<FileObject> assets = (Enumeration<FileObject>) assetsFolder.getChildren(true);
@@ -550,12 +555,9 @@ private List<String> collectProjectFilesWithSuffix(String suffix, List<String> l
550555
return list;
551556
}
552557

553-
private List<String> collectDependenciesFilesWithSuffix(String suffix, List<String> list) {
558+
private Set<String> collectDependenciesFilesWithSuffix(String suffix, Set<String> list) {
554559
synchronized (classPathItems) {
555-
// TODO I need to find out if classPathItems contains all jars added to a project
556-
Iterator<ClassPathItem> classPathItemsIter = classPathItems.iterator();
557-
while (classPathItemsIter.hasNext()) {
558-
ClassPathItem classPathItem = classPathItemsIter.next();
560+
for (ClassPathItem classPathItem : classPathItems) {
559561
FileObject jarFile = classPathItem.object;
560562

561563
// Gradle projects don't know that the dependency is a Jar file
@@ -572,19 +574,18 @@ private List<String> collectDependenciesFilesWithSuffix(String suffix, List<Stri
572574
}
573575
}
574576
}
575-
576577
}
577-
return list;
578+
// TODO I need to find out if classPathItems contains all jars added to a project
579+
return list;
578580
}
579581
}
580582

581583
public InputStream getResourceAsStream(String name) {
582584
InputStream in = null;//JmeSystem.getResourceAsStream(name);
583585
synchronized (classPathItems) {
584586
// TODO I need to find out if classPathItems contains all jars added to a project
585-
Iterator<ClassPathItem> classPathItemsIter = classPathItems.iterator();
586-
while (classPathItemsIter.hasNext()) {
587-
ClassPathItem classPathItem = classPathItemsIter.next();
587+
588+
for (ClassPathItem classPathItem : classPathItems) {
588589
FileObject jarFile = classPathItem.object;
589590

590591
Enumeration<FileObject> jarEntry;
@@ -692,12 +693,10 @@ public void removeClassPathEventListener(ClassPathChangeListener listener) {
692693

693694
private void notifyClassPathListeners() {
694695
final ProjectAssetManager pm = this;
695-
java.awt.EventQueue.invokeLater(new Runnable() {
696-
public void run() {
697-
synchronized (classPathListeners) {
698-
for (ClassPathChangeListener classPathChangeListener : classPathListeners) {
699-
classPathChangeListener.classPathChanged(pm);
700-
}
696+
java.awt.EventQueue.invokeLater(() -> {
697+
synchronized (classPathListeners) {
698+
for (ClassPathChangeListener classPathChangeListener : classPathListeners) {
699+
classPathChangeListener.classPathChanged(pm);
701700
}
702701
}
703702
});
@@ -729,10 +728,12 @@ public DummyProject(ProjectAssetManager pm) {
729728
this.pm = pm;
730729
}
731730

731+
@Override
732732
public Lookup getLookup() {
733733
return Lookups.fixed(this, pm);
734734
}
735735

736+
@Override
736737
public FileObject getProjectDirectory() {
737738
if (folder != null) {
738739
return folder;
@@ -743,7 +744,6 @@ public FileObject getProjectDirectory() {
743744

744745
private static class ClassPathItem {
745746

746-
ClassPath path;
747747
FileObject object;
748748
FileChangeListener listener;
749749

0 commit comments

Comments
 (0)