diff --git a/core/src/main/java/info/openrocket/core/material/Material.java b/core/src/main/java/info/openrocket/core/material/Material.java index 1b0e61f72..2fee1bd49 100644 --- a/core/src/main/java/info/openrocket/core/material/Material.java +++ b/core/src/main/java/info/openrocket/core/material/Material.java @@ -152,9 +152,9 @@ public abstract class Material implements Comparable { private Material(String name, double density, MaterialGroup group, boolean userDefined, boolean documentMaterial) { this.name = name; this.density = density; - this.group = group; this.userDefined = userDefined; this.documentMaterial = documentMaterial; + this.group = getEquivalentGroup(group, userDefined); } private Material(String name, double density, MaterialGroup group, boolean userDefined) { @@ -198,9 +198,13 @@ public abstract class Material implements Comparable { /** * Some materials have a null group. This method returns the equivalent group, i.e. CUSTOM for user-defined materials, * and OTHER for materials with a null group. + * + * @param group: the group of the material + * @param userDefined: whether the material is user-defined or not + * * @return the equivalent group */ - public MaterialGroup getEquivalentGroup() { + private static MaterialGroup getEquivalentGroup(MaterialGroup group, boolean userDefined) { if (group != null) { return group; } @@ -298,7 +302,7 @@ public abstract class Material implements Comparable { } public String toStorableString() { - return getType().name() + "|" + name.replace('|', ' ') + '|' + density + '|' + getEquivalentGroup().getDatabaseString(); + return getType().name() + "|" + name.replace('|', ' ') + '|' + density + '|' + group.getDatabaseString(); } diff --git a/core/src/main/java/info/openrocket/core/preset/xml/BaseComponentDTO.java b/core/src/main/java/info/openrocket/core/preset/xml/BaseComponentDTO.java index 03ef5e4c9..802df8e31 100644 --- a/core/src/main/java/info/openrocket/core/preset/xml/BaseComponentDTO.java +++ b/core/src/main/java/info/openrocket/core/preset/xml/BaseComponentDTO.java @@ -218,7 +218,7 @@ public abstract class BaseComponentDTO { AnnotatedMaterialDTO(Material theMaterial) { type = theMaterial.getType().name(); material = theMaterial.getName(); - materialGroup = theMaterial.getEquivalentGroup().getDatabaseString(); + materialGroup = theMaterial.getGroup().getDatabaseString(); } public Material.Type getORMaterialType() { diff --git a/core/src/main/java/info/openrocket/core/preset/xml/MaterialDTO.java b/core/src/main/java/info/openrocket/core/preset/xml/MaterialDTO.java index 00f162d44..05db99714 100644 --- a/core/src/main/java/info/openrocket/core/preset/xml/MaterialDTO.java +++ b/core/src/main/java/info/openrocket/core/preset/xml/MaterialDTO.java @@ -40,7 +40,7 @@ public class MaterialDTO { public MaterialDTO(final Material theMaterial) { this(theMaterial.getName(), theMaterial.getDensity(), MaterialTypeDTO.asDTO(theMaterial.getType()), theMaterial.getType().getUnitGroup().getDefaultUnit().toString(), - MaterialGroupDTO.asDTO(theMaterial.getEquivalentGroup())); + MaterialGroupDTO.asDTO(theMaterial.getGroup())); } public MaterialDTO(final String theName, final double theDensity, final MaterialTypeDTO theType, diff --git a/swing/src/main/java/info/openrocket/swing/gui/configdialog/MaterialPanel.java b/swing/src/main/java/info/openrocket/swing/gui/configdialog/MaterialPanel.java index a49e553e2..fcdd7e36c 100644 --- a/swing/src/main/java/info/openrocket/swing/gui/configdialog/MaterialPanel.java +++ b/swing/src/main/java/info/openrocket/swing/gui/configdialog/MaterialPanel.java @@ -210,7 +210,7 @@ public class MaterialPanel extends JPanel implements Invalidatable, Invalidating for (MaterialGroup group : sortedGroups) { List itemsForGroup = new ArrayList<>(); for (Material material : materials) { - materialGroup = material.getEquivalentGroup(); + materialGroup = material.getGroup(); if (materialGroup.equals(group)) { itemsForGroup.add(material); } diff --git a/swing/src/main/java/info/openrocket/swing/gui/dialogs/CustomMaterialDialog.java b/swing/src/main/java/info/openrocket/swing/gui/dialogs/CustomMaterialDialog.java index f868ae9e9..e9221877a 100644 --- a/swing/src/main/java/info/openrocket/swing/gui/dialogs/CustomMaterialDialog.java +++ b/swing/src/main/java/info/openrocket/swing/gui/dialogs/CustomMaterialDialog.java @@ -124,7 +124,7 @@ public class CustomMaterialDialog extends JDialog { panel.add(new JLabel(trans.get("custmatdlg.lbl.MaterialGroup"))); groupBox = new JComboBox<>(MaterialGroup.ALL_GROUPS); if (material != null && !material.isUserDefined()) { - groupBox.setSelectedItem(material.getEquivalentGroup()); + groupBox.setSelectedItem(material.getGroup()); } else { groupBox.setSelectedItem(MaterialGroup.CUSTOM); } diff --git a/swing/src/main/java/info/openrocket/swing/gui/dialogs/preferences/MaterialEditPanel.java b/swing/src/main/java/info/openrocket/swing/gui/dialogs/preferences/MaterialEditPanel.java index 694ae6a0b..cba559903 100644 --- a/swing/src/main/java/info/openrocket/swing/gui/dialogs/preferences/MaterialEditPanel.java +++ b/swing/src/main/java/info/openrocket/swing/gui/dialogs/preferences/MaterialEditPanel.java @@ -105,7 +105,7 @@ public class MaterialEditPanel extends JPanel { new Column(trans.get("matedtpan.col.Group")) { @Override public Object getValueAt(int row) { - return getMaterial(row).getEquivalentGroup().getName(); + return getMaterial(row).getGroup().getName(); } @Override