Set material group non-null in the constructor

This commit is contained in:
SiboVG 2024-08-07 12:17:34 +02:00
parent 4e45a194e2
commit f2fbcc69d3
6 changed files with 12 additions and 8 deletions

View File

@ -152,9 +152,9 @@ public abstract class Material implements Comparable<Material> {
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<Material> {
/**
* 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<Material> {
}
public String toStorableString() {
return getType().name() + "|" + name.replace('|', ' ') + '|' + density + '|' + getEquivalentGroup().getDatabaseString();
return getType().name() + "|" + name.replace('|', ' ') + '|' + density + '|' + group.getDatabaseString();
}

View File

@ -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() {

View File

@ -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,

View File

@ -210,7 +210,7 @@ public class MaterialPanel extends JPanel implements Invalidatable, Invalidating
for (MaterialGroup group : sortedGroups) {
List<Material> itemsForGroup = new ArrayList<>();
for (Material material : materials) {
materialGroup = material.getEquivalentGroup();
materialGroup = material.getGroup();
if (materialGroup.equals(group)) {
itemsForGroup.add(material);
}

View File

@ -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);
}

View File

@ -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