Refactor material addition/removal
This commit is contained in:
parent
b5ff851263
commit
e63e521e90
@ -256,5 +256,15 @@ public class Databases {
|
||||
default -> throw new IllegalArgumentException("Illegal material type: " + type);
|
||||
};
|
||||
}
|
||||
|
||||
public static void addMaterial(Material material) {
|
||||
Database<Material> db = getDatabase(material.getType());
|
||||
db.add(material);
|
||||
}
|
||||
|
||||
public static void removeMaterial(Material material) {
|
||||
Database<Material> db = getDatabase(material.getType());
|
||||
db.remove(material);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -157,12 +157,8 @@ public class MaterialEditPanel extends JPanel {
|
||||
return;
|
||||
}
|
||||
Material mat = dialog.getMaterial();
|
||||
if (dialog.isAddSelected()) {
|
||||
Databases.getDatabase(mat.getType()).add(mat);
|
||||
} else {
|
||||
mat.setDocumentMaterial(true);
|
||||
document.getDocumentPreferences().addMaterial(mat);
|
||||
}
|
||||
mat.setDocumentMaterial(!dialog.isAddSelected());
|
||||
addMaterial(mat);
|
||||
model.fireTableDataChanged();
|
||||
setButtonStates();
|
||||
}
|
||||
@ -203,20 +199,14 @@ public class MaterialEditPanel extends JPanel {
|
||||
if (!dialog.getOkClicked()) {
|
||||
return;
|
||||
}
|
||||
if (m.isUserDefined()) {
|
||||
if (isDocumentMaterialPrior) {
|
||||
document.getDocumentPreferences().removeMaterial(m);
|
||||
} else {
|
||||
Databases.getDatabase(m.getType()).remove(m);
|
||||
}
|
||||
}
|
||||
// Remove the original material
|
||||
removeMaterial(m);
|
||||
|
||||
// Add the edited material
|
||||
Material mat = dialog.getMaterial();
|
||||
if (dialog.isAddSelected()) {
|
||||
Databases.getDatabase(mat.getType()).add(mat);
|
||||
} else {
|
||||
mat.setDocumentMaterial(true);
|
||||
document.getDocumentPreferences().addMaterial(mat);
|
||||
}
|
||||
mat.setDocumentMaterial(!dialog.isAddSelected());
|
||||
addMaterial(mat);
|
||||
|
||||
model.fireTableDataChanged();
|
||||
setButtonStates();
|
||||
}
|
||||
@ -237,11 +227,7 @@ public class MaterialEditPanel extends JPanel {
|
||||
Material m = getMaterial(sel);
|
||||
if (!m.isUserDefined())
|
||||
return;
|
||||
if (m.isDocumentMaterial()) {
|
||||
document.getDocumentPreferences().removeMaterial(m);
|
||||
} else {
|
||||
Databases.getDatabase(m.getType()).remove(m);
|
||||
}
|
||||
removeMaterial(m);
|
||||
model.fireTableDataChanged();
|
||||
setButtonStates();
|
||||
}
|
||||
@ -329,6 +315,23 @@ public class MaterialEditPanel extends JPanel {
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void addMaterial(Material m) {
|
||||
if (m.isDocumentMaterial()) {
|
||||
document.getDocumentPreferences().addMaterial(m);
|
||||
} else {
|
||||
Databases.addMaterial(m);
|
||||
}
|
||||
}
|
||||
|
||||
private void removeMaterial(Material m) {
|
||||
// TODO: what if a component is currently using the material?
|
||||
if (m.isDocumentMaterial()) {
|
||||
document.getDocumentPreferences().removeMaterial(m);
|
||||
} else {
|
||||
Databases.removeMaterial(m);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void setButtonStates() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user