Skip to content

Commit f96aab3

Browse files
authored
Merge pull request #602 from neph1/Issue#597
Issue 597 - Avoid duplicates in matdef list
2 parents 3866623 + 3e3733d commit f96aab3

File tree

1 file changed

+12
-27
lines changed

1 file changed

+12
-27
lines changed

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

Lines changed: 12 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,13 @@
2424
import java.io.IOException;
2525
import java.util.ArrayList;
2626
import java.util.Arrays;
27-
import java.util.Collections;
2827
import java.util.LinkedHashMap;
2928
import java.util.LinkedList;
3029
import java.util.List;
3130
import java.util.Map;
3231
import java.util.Map.Entry;
32+
import java.util.Set;
33+
import java.util.TreeSet;
3334
import java.util.logging.Logger;
3435
import java.util.stream.Collectors;
3536
import javax.swing.event.DocumentEvent;
@@ -39,31 +40,24 @@
3940
import org.openide.util.NbBundle;
4041
import org.openide.windows.TopComponent;
4142
import org.openide.windows.WindowManager;
42-
//import org.openide.util.ImageUtilities;
4343
import org.netbeans.api.settings.ConvertAsProperties;
4444
import org.openide.cookies.SaveCookie;
4545
import org.openide.filesystems.FileUtil;
4646
import org.openide.loaders.DataObject;
4747
import org.openide.nodes.Node;
4848
import org.openide.util.HelpCtx;
49-
import org.openide.util.lookup.InstanceContent;
5049
import org.openide.windows.CloneableTopComponent;
5150

5251
/**
53-
* Top component which displays something.
52+
* Top component for Material Editor
5453
*/
5554
@ConvertAsProperties(dtd = "-//com.jme3.gde.materials.multiview//MaterialEditor//EN",
5655
autostore = false)
5756
@SuppressWarnings({"unchecked", "rawtypes"})
5857
public final class MaterialEditorTopComponent extends CloneableTopComponent implements MaterialWidgetListener, MaterialChangeProvider {
5958

6059
private static MaterialEditorTopComponent instance;
61-
/** path to the icon used by the component and its open action */
62-
// static final String ICON_PATH = "SET/PATH/TO/ICON/HERE";
6360
private static final String PREFERRED_ID = "MaterialEditorTopComponent";
64-
//private Lookup lookup;
65-
private final InstanceContent lookupContents = new InstanceContent();
66-
// private SaveNode saveNode;
6761
private DataObject dataObject;
6862
private EditableMaterialFile materialFile;
6963
private String materialFileName;
@@ -457,8 +451,6 @@ public int getPersistenceType() {
457451
@Override
458452
public HelpCtx getHelpCtx() {
459453
HelpCtx ctx = new HelpCtx("sdk.material_editing");
460-
//this call is for single components:
461-
//HelpCtx.setHelpIDString(this, "com.jme3.gde.core.sceneviewer");
462454
return ctx;
463455
}
464456

@@ -483,11 +475,8 @@ public void componentClosed() {
483475
}
484476

485477
void writeProperties(java.util.Properties p) {
486-
// better to version settings since initial version as advocated at
487-
// http://wiki.apidesign.org/wiki/PropertyFiles
488478
p.setProperty("version", "1.0");
489479
p.setProperty("MaterialFileName", materialFileName);
490-
// TODO store your settings
491480
}
492481

493482
Object readProperties(java.util.Properties p) {
@@ -543,8 +532,6 @@ public void addAllMaterialChangeListener(List<MaterialChangeListener> listeners)
543532

544533
private class DocumentChangeListener implements DocumentListener {
545534

546-
String newline = "\n";
547-
548535
@Override
549536
public void insertUpdate(DocumentEvent e) {
550537
checkSave();
@@ -598,25 +585,23 @@ public void setMatDefList(final String[] matDefs, String selected) {
598585
materialFile = null;
599586
jComboBox1.removeAllItems();
600587
jComboBox1.addItem("");
601-
List<String> matDefList = Arrays.asList(matDefs);
602-
Collections.sort(matDefList);
603-
for (String matDef : matDefList) {
604-
jComboBox1.addItem(matDef);
588+
Set<String> matDefList = new TreeSet<>(Arrays.asList(matDefs));
589+
for (String string : matDefList) {
590+
jComboBox1.addItem(string);
605591
}
606-
607592
jComboBox1.setSelectedItem(selected);
608593
materialFile = prop;
609594
}
610595

611596
private void updateProperties() {
612597
for (Component component : optionsPanel.getComponents()) {
613-
if (component instanceof MaterialPropertyWidget) {
614-
((MaterialPropertyWidget) component).registerChangeListener(null);
598+
if (component instanceof MaterialPropertyWidget materialPropertyWidget) {
599+
materialPropertyWidget.registerChangeListener(null);
615600
}
616601
}
617602
for (Component component : texturePanel.getComponents()) {
618-
if (component instanceof MaterialPropertyWidget) {
619-
((MaterialPropertyWidget) component).registerChangeListener(null);
603+
if (component instanceof MaterialPropertyWidget materialPropertyWidget) {
604+
materialPropertyWidget.registerChangeListener(null);
620605
}
621606
}
622607
optionsPanel.removeAll();
@@ -674,8 +659,8 @@ private void updateProperties() {
674659

675660
private void updateStates() {
676661
for (Component component : statesPanel.getComponents()) {
677-
if (component instanceof MaterialPropertyWidget) {
678-
((MaterialPropertyWidget) component).registerChangeListener(null);
662+
if (component instanceof MaterialPropertyWidget materialPropertyWidget) {
663+
materialPropertyWidget.registerChangeListener(null);
679664
}
680665
}
681666
statesPanel.removeAll();

0 commit comments

Comments
 (0)