Always start from a blank material when creating a new custom material
This commit is contained in:
parent
48e9536769
commit
00acb8b68f
@ -94,7 +94,7 @@ public class MaterialModel extends AbstractListModel<Material> implements
|
|||||||
public void addCustomMaterial() {
|
public void addCustomMaterial() {
|
||||||
CustomMaterialDialog dialog = new CustomMaterialDialog(
|
CustomMaterialDialog dialog = new CustomMaterialDialog(
|
||||||
SwingUtilities.getWindowAncestor(parentUIComponent),
|
SwingUtilities.getWindowAncestor(parentUIComponent),
|
||||||
(Material) getSelectedItem(), true, false,
|
(Material) getSelectedItem(), true, false, true,
|
||||||
trans.get("MaterialModel.title.Defcustmat"));
|
trans.get("MaterialModel.title.Defcustmat"));
|
||||||
|
|
||||||
dialog.setVisible(true);
|
dialog.setVisible(true);
|
||||||
|
@ -37,6 +37,7 @@ public class CustomMaterialDialog extends JDialog {
|
|||||||
private static final Translator trans = Application.getTranslator();
|
private static final Translator trans = Application.getTranslator();
|
||||||
|
|
||||||
private final Material originalMaterial;
|
private final Material originalMaterial;
|
||||||
|
private final boolean onlyCopyTypeFromMaterial;
|
||||||
|
|
||||||
private boolean okClicked = false;
|
private boolean okClicked = false;
|
||||||
private JComboBox<Material.Type> typeBox;
|
private JComboBox<Material.Type> typeBox;
|
||||||
@ -52,6 +53,11 @@ public class CustomMaterialDialog extends JDialog {
|
|||||||
this(parent, material, saveOption, addToApplicationDatabase, title, null);
|
this(parent, material, saveOption, addToApplicationDatabase, title, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public CustomMaterialDialog(Window parent, Material material, boolean saveOption, boolean addToApplicationDatabase,
|
||||||
|
boolean onlyCopyTypeFromMaterial, String title) {
|
||||||
|
this(parent, material, saveOption, addToApplicationDatabase, onlyCopyTypeFromMaterial, title, null);
|
||||||
|
}
|
||||||
|
|
||||||
public CustomMaterialDialog(Window parent, Material material, boolean saveOption,
|
public CustomMaterialDialog(Window parent, Material material, boolean saveOption,
|
||||||
String title) {
|
String title) {
|
||||||
this(parent, material, saveOption, material != null && !material.isDocumentMaterial(), title);
|
this(parent, material, saveOption, material != null && !material.isDocumentMaterial(), title);
|
||||||
@ -59,10 +65,16 @@ public class CustomMaterialDialog extends JDialog {
|
|||||||
|
|
||||||
public CustomMaterialDialog(Window parent, Material material, boolean saveOption, boolean addToApplicationDatabase,
|
public CustomMaterialDialog(Window parent, Material material, boolean saveOption, boolean addToApplicationDatabase,
|
||||||
String title, String note) {
|
String title, String note) {
|
||||||
|
this(parent, material, saveOption, addToApplicationDatabase, false, title, note);
|
||||||
|
}
|
||||||
|
|
||||||
|
public CustomMaterialDialog(Window parent, Material material, boolean saveOption, boolean addToApplicationDatabase,
|
||||||
|
boolean onlyCopyTypeFromMaterial, String title, String note) {
|
||||||
//// Custom material
|
//// Custom material
|
||||||
super(parent, trans.get("custmatdlg.title.Custommaterial"), Dialog.ModalityType.APPLICATION_MODAL);
|
super(parent, trans.get("custmatdlg.title.Custommaterial"), Dialog.ModalityType.APPLICATION_MODAL);
|
||||||
|
|
||||||
this.originalMaterial = material;
|
this.originalMaterial = material;
|
||||||
|
this.onlyCopyTypeFromMaterial = onlyCopyTypeFromMaterial;
|
||||||
|
|
||||||
JPanel panel = new JPanel(new MigLayout("fill, gap rel unrel"));
|
JPanel panel = new JPanel(new MigLayout("fill, gap rel unrel"));
|
||||||
|
|
||||||
@ -80,7 +92,7 @@ public class CustomMaterialDialog extends JDialog {
|
|||||||
//// Material name
|
//// Material name
|
||||||
panel.add(new JLabel(trans.get("custmatdlg.lbl.Materialname")));
|
panel.add(new JLabel(trans.get("custmatdlg.lbl.Materialname")));
|
||||||
nameField = new JTextField(15);
|
nameField = new JTextField(15);
|
||||||
if (material != null) {
|
if (!onlyCopyTypeFromMaterial && material != null) {
|
||||||
nameField.setText(material.getName());
|
nameField.setText(material.getName());
|
||||||
}
|
}
|
||||||
panel.add(nameField, "span, growx, wrap");
|
panel.add(nameField, "span, growx, wrap");
|
||||||
@ -123,7 +135,7 @@ public class CustomMaterialDialog extends JDialog {
|
|||||||
// Material group
|
// Material group
|
||||||
panel.add(new JLabel(trans.get("custmatdlg.lbl.MaterialGroup")));
|
panel.add(new JLabel(trans.get("custmatdlg.lbl.MaterialGroup")));
|
||||||
groupBox = new JComboBox<>(MaterialGroup.ALL_GROUPS);
|
groupBox = new JComboBox<>(MaterialGroup.ALL_GROUPS);
|
||||||
if (material != null && !material.isUserDefined()) {
|
if (!onlyCopyTypeFromMaterial && material != null && !material.isUserDefined()) {
|
||||||
groupBox.setSelectedItem(material.getGroup());
|
groupBox.setSelectedItem(material.getGroup());
|
||||||
} else {
|
} else {
|
||||||
groupBox.setSelectedItem(MaterialGroup.CUSTOM);
|
groupBox.setSelectedItem(MaterialGroup.CUSTOM);
|
||||||
@ -207,7 +219,8 @@ public class CustomMaterialDialog extends JDialog {
|
|||||||
private void updateDensityModel() {
|
private void updateDensityModel() {
|
||||||
if (originalMaterial != null) {
|
if (originalMaterial != null) {
|
||||||
if (density == null) {
|
if (density == null) {
|
||||||
density = new DoubleModel(originalMaterial.getDensity(),
|
double densityValue = onlyCopyTypeFromMaterial ? 0 : originalMaterial.getDensity();
|
||||||
|
density = new DoubleModel(densityValue,
|
||||||
originalMaterial.getType().getUnitGroup(), 0);
|
originalMaterial.getType().getUnitGroup(), 0);
|
||||||
densitySpinner.setModel(density.getSpinnerModel());
|
densitySpinner.setModel(density.getSpinnerModel());
|
||||||
densitySpinner.setEditor(new SpinnerEditor(densitySpinner));
|
densitySpinner.setEditor(new SpinnerEditor(densitySpinner));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user