Refactor MaterialPanel to custom class
This commit is contained in:
parent
bd1e9983b1
commit
03cd1df7d4
@ -6,8 +6,6 @@ import javax.swing.JDialog;
|
|||||||
import javax.swing.JLabel;
|
import javax.swing.JLabel;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
import javax.swing.JSpinner;
|
import javax.swing.JSpinner;
|
||||||
import javax.swing.JTextField;
|
|
||||||
import javax.swing.SwingUtilities;
|
|
||||||
|
|
||||||
import net.miginfocom.swing.MigLayout;
|
import net.miginfocom.swing.MigLayout;
|
||||||
import net.sf.openrocket.document.OpenRocketDocument;
|
import net.sf.openrocket.document.OpenRocketDocument;
|
||||||
@ -25,11 +23,9 @@ import net.sf.openrocket.rocketcomponent.SymmetricComponent;
|
|||||||
import net.sf.openrocket.startup.Application;
|
import net.sf.openrocket.startup.Application;
|
||||||
import net.sf.openrocket.unit.UnitGroup;
|
import net.sf.openrocket.unit.UnitGroup;
|
||||||
|
|
||||||
import java.awt.event.FocusEvent;
|
import java.awt.Component;
|
||||||
import java.awt.event.FocusListener;
|
import java.util.ArrayList;
|
||||||
import java.awt.event.MouseEvent;
|
import java.util.List;
|
||||||
import java.awt.event.MouseListener;
|
|
||||||
import java.util.Arrays;
|
|
||||||
|
|
||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
public class BodyTubeConfig extends RocketComponentConfig {
|
public class BodyTubeConfig extends RocketComponentConfig {
|
||||||
@ -106,8 +102,8 @@ public class BodyTubeConfig extends RocketComponentConfig {
|
|||||||
panel.add(check, "skip, span 2, wrap");
|
panel.add(check, "skip, span 2, wrap");
|
||||||
|
|
||||||
//// Material
|
//// Material
|
||||||
panel.add(materialPanel(Material.Type.BULK),
|
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.BULK);
|
||||||
"cell 4 0, gapleft paragraph, aligny 0%, spany");
|
panel.add(materialPanel, "cell 4 0, gapleft paragraph, aligny 0%, spany");
|
||||||
|
|
||||||
//// General and General properties
|
//// General and General properties
|
||||||
tabbedPane.insertTab(trans.get("BodyTubecfg.tab.General"), null, panel,
|
tabbedPane.insertTab(trans.get("BodyTubecfg.tab.General"), null, panel,
|
||||||
|
@ -174,7 +174,8 @@ public class EllipticalFinSetConfig extends FinSetConfig {
|
|||||||
|
|
||||||
|
|
||||||
//// Material
|
//// Material
|
||||||
panel.add(materialPanel(Material.Type.BULK), "span, wrap");
|
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.BULK);
|
||||||
|
panel.add(materialPanel, "span, wrap");
|
||||||
|
|
||||||
panel.add(filletMaterialPanel(), "span, wrap");
|
panel.add(filletMaterialPanel(), "span, wrap");
|
||||||
|
|
||||||
|
@ -202,7 +202,8 @@ public class FreeformFinSetConfig extends FinSetConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
{ //// Material
|
{ //// Material
|
||||||
panel.add(materialPanel(Material.Type.BULK), "span, wrap");
|
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.BULK);
|
||||||
|
panel.add(materialPanel, "span, wrap");
|
||||||
panel.add(filletMaterialPanel(), "span, wrap");
|
panel.add(filletMaterialPanel(), "span, wrap");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -144,8 +144,8 @@ public class InnerTubeConfig extends RocketComponentConfig {
|
|||||||
panel.add(new BasicSlider(m.getSliderModel(0, 0.1, 1.0)), "wmin 100lp, growx, wrap");
|
panel.add(new BasicSlider(m.getSliderModel(0, 0.1, 1.0)), "wmin 100lp, growx, wrap");
|
||||||
|
|
||||||
//// Material
|
//// Material
|
||||||
panel.add(materialPanel(Material.Type.BULK),
|
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.BULK);
|
||||||
"spanx 4, growx, wrap 15lp");
|
panel.add(materialPanel, "spanx 4, growx, wrap 15lp");
|
||||||
|
|
||||||
|
|
||||||
//// Right side of panel ----
|
//// Right side of panel ----
|
||||||
|
@ -142,7 +142,8 @@ public class LaunchLugConfig extends RocketComponentConfig {
|
|||||||
});
|
});
|
||||||
|
|
||||||
//// Material
|
//// Material
|
||||||
panel.add(materialPanel( Material.Type.BULK), "span, wrap");
|
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.BULK);
|
||||||
|
panel.add(materialPanel, "span, wrap");
|
||||||
|
|
||||||
|
|
||||||
primary.add(panel, "grow");
|
primary.add(panel, "grow");
|
||||||
|
108
swing/src/net/sf/openrocket/gui/configdialog/MaterialPanel.java
Normal file
108
swing/src/net/sf/openrocket/gui/configdialog/MaterialPanel.java
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
package net.sf.openrocket.gui.configdialog;
|
||||||
|
|
||||||
|
import net.miginfocom.swing.MigLayout;
|
||||||
|
import net.sf.openrocket.document.OpenRocketDocument;
|
||||||
|
import net.sf.openrocket.gui.adaptors.EnumModel;
|
||||||
|
import net.sf.openrocket.gui.adaptors.MaterialModel;
|
||||||
|
import net.sf.openrocket.gui.widgets.SelectColorButton;
|
||||||
|
import net.sf.openrocket.l10n.Translator;
|
||||||
|
import net.sf.openrocket.material.Material;
|
||||||
|
import net.sf.openrocket.rocketcomponent.ExternalComponent;
|
||||||
|
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||||
|
import net.sf.openrocket.startup.Application;
|
||||||
|
|
||||||
|
import javax.swing.JButton;
|
||||||
|
import javax.swing.JComboBox;
|
||||||
|
import javax.swing.JLabel;
|
||||||
|
import javax.swing.JPanel;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Panel for configuring a component's material and finish properties.
|
||||||
|
*/
|
||||||
|
public class MaterialPanel extends JPanel {
|
||||||
|
private static final Translator trans = Application.getTranslator();
|
||||||
|
|
||||||
|
private final JComboBox<Material> materialCombo;
|
||||||
|
private final JComboBox<ExternalComponent.Finish> finishCombo;
|
||||||
|
|
||||||
|
public MaterialPanel(RocketComponent component, OpenRocketDocument document,
|
||||||
|
Material.Type type, String materialString, String finishString, String partName) {
|
||||||
|
super(new MigLayout("insets 0"));
|
||||||
|
JLabel label = new JLabel(materialString);
|
||||||
|
//// The component material affects the weight of the component.
|
||||||
|
label.setToolTipText(trans.get("RocketCompCfg.lbl.ttip.componentmaterialaffects"));
|
||||||
|
this.add(label, "spanx 4, wrap rel");
|
||||||
|
|
||||||
|
this.materialCombo = new JComboBox<>(new MaterialModel(this, component, type, partName));
|
||||||
|
//// The component material affects the weight of the component.
|
||||||
|
this.materialCombo.setToolTipText(trans.get("RocketCompCfg.combo.ttip.componentmaterialaffects"));
|
||||||
|
this.add(this.materialCombo, "spanx 4, growx, wrap paragraph");
|
||||||
|
|
||||||
|
|
||||||
|
if (component instanceof ExternalComponent) {
|
||||||
|
label = new JLabel(finishString);
|
||||||
|
////<html>The component finish affects the aerodynamic drag of the component.<br>
|
||||||
|
String tip = trans.get("RocketCompCfg.lbl.longA1")
|
||||||
|
//// The value indicated is the average roughness height of the surface.
|
||||||
|
+ trans.get("RocketCompCfg.lbl.longA2");
|
||||||
|
label.setToolTipText(tip);
|
||||||
|
this.add(label, "spanx 4, wmin 220lp, wrap rel");
|
||||||
|
|
||||||
|
this.finishCombo = new JComboBox<ExternalComponent.Finish>(
|
||||||
|
new EnumModel<ExternalComponent.Finish>(component, "Finish"));
|
||||||
|
this.finishCombo.setToolTipText(tip);
|
||||||
|
this.add(this.finishCombo, "spanx 4, growx, split");
|
||||||
|
|
||||||
|
//// Set for all
|
||||||
|
JButton button = new SelectColorButton(trans.get("RocketCompCfg.but.Setforall"));
|
||||||
|
//// Set this finish for all components of the rocket.
|
||||||
|
button.setToolTipText(trans.get("RocketCompCfg.but.ttip.Setforall"));
|
||||||
|
button.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
ExternalComponent.Finish f = ((ExternalComponent) component).getFinish();
|
||||||
|
try {
|
||||||
|
document.startUndo("Set rocket finish");
|
||||||
|
|
||||||
|
// Do changes
|
||||||
|
Iterator<RocketComponent> iter = component.getRoot().iterator();
|
||||||
|
while (iter.hasNext()) {
|
||||||
|
RocketComponent c = iter.next();
|
||||||
|
if (c instanceof ExternalComponent) {
|
||||||
|
((ExternalComponent) c).setFinish(f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
document.stopUndo();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.add(button, "wrap paragraph");
|
||||||
|
} else {
|
||||||
|
this.finishCombo = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public MaterialPanel(RocketComponent component, OpenRocketDocument document,
|
||||||
|
Material.Type type, String partName) {
|
||||||
|
this(component, document, type, trans.get("RocketCompCfg.lbl.Componentmaterial"),
|
||||||
|
trans.get("RocketCompCfg.lbl.Componentfinish"), partName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public MaterialPanel(RocketComponent component, OpenRocketDocument document,
|
||||||
|
Material.Type type) {
|
||||||
|
this(component, document, type, trans.get("RocketCompCfg.lbl.Componentmaterial"),
|
||||||
|
trans.get("RocketCompCfg.lbl.Componentfinish"), "Material");
|
||||||
|
}
|
||||||
|
|
||||||
|
public JComboBox<Material> getMaterialCombo() {
|
||||||
|
return materialCombo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JComboBox<ExternalComponent.Finish> getFinishCombo() {
|
||||||
|
return finishCombo;
|
||||||
|
}
|
||||||
|
}
|
@ -147,7 +147,8 @@ public class NoseConeConfig extends RocketComponentConfig {
|
|||||||
|
|
||||||
|
|
||||||
//// Material
|
//// Material
|
||||||
panel2.add(materialPanel( Material.Type.BULK), "span, wrap");
|
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.BULK);
|
||||||
|
panel2.add(materialPanel, "span, wrap");
|
||||||
panel.add(panel2, "cell 4 0, gapleft paragraph, aligny 0%, spany");
|
panel.add(panel2, "cell 4 0, gapleft paragraph, aligny 0%, spany");
|
||||||
|
|
||||||
|
|
||||||
|
@ -7,7 +7,6 @@ import javax.swing.JPanel;
|
|||||||
import javax.swing.JSpinner;
|
import javax.swing.JSpinner;
|
||||||
|
|
||||||
import net.miginfocom.swing.MigLayout;
|
import net.miginfocom.swing.MigLayout;
|
||||||
import net.sf.openrocket.database.Databases;
|
|
||||||
import net.sf.openrocket.document.OpenRocketDocument;
|
import net.sf.openrocket.document.OpenRocketDocument;
|
||||||
import net.sf.openrocket.gui.SpinnerEditor;
|
import net.sf.openrocket.gui.SpinnerEditor;
|
||||||
import net.sf.openrocket.gui.adaptors.DoubleModel;
|
import net.sf.openrocket.gui.adaptors.DoubleModel;
|
||||||
@ -128,7 +127,8 @@ public class RailButtonConfig extends RocketComponentConfig {
|
|||||||
panel.add(instanceablePanel(rbc), "span, wrap");
|
panel.add(instanceablePanel(rbc), "span, wrap");
|
||||||
|
|
||||||
//// Material
|
//// Material
|
||||||
panel.add(materialPanel(Material.Type.BULK),"span, wrap");
|
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.BULK);
|
||||||
|
panel.add(materialPanel,"span, wrap");
|
||||||
|
|
||||||
primary.add(panel, "grow");
|
primary.add(panel, "grow");
|
||||||
|
|
||||||
|
@ -156,15 +156,15 @@ public class RingComponentConfig extends RocketComponentConfig {
|
|||||||
|
|
||||||
|
|
||||||
//// Material
|
//// Material
|
||||||
JPanel sub = materialPanel( Material.Type.BULK);
|
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.BULK);
|
||||||
|
|
||||||
if (component instanceof EngineBlock) {
|
if (component instanceof EngineBlock) {
|
||||||
final DescriptionArea desc = new DescriptionArea(6);
|
final DescriptionArea desc = new DescriptionArea(6);
|
||||||
//// <html>An <b>engine block</b> stops the motor from moving forwards in the motor mount tube.<br><br>In order to add a motor, create a <b>body tube</b> or <b>inner tube</b> and mark it as a motor mount in the <em>Motor</em> tab.
|
//// <html>An <b>engine block</b> stops the motor from moving forwards in the motor mount tube.<br><br>In order to add a motor, create a <b>body tube</b> or <b>inner tube</b> and mark it as a motor mount in the <em>Motor</em> tab.
|
||||||
desc.setText(trans.get("ringcompcfg.EngineBlock.desc"));
|
desc.setText(trans.get("ringcompcfg.EngineBlock.desc"));
|
||||||
sub.add(desc, "width 1px, growx, wrap");
|
materialPanel.add(desc, "width 1px, growx, wrap");
|
||||||
}
|
}
|
||||||
panel.add(sub, "cell 4 0, gapleft paragraph, aligny 0%, spany");
|
panel.add(materialPanel, "cell 4 0, gapleft paragraph, aligny 0%, spany");
|
||||||
|
|
||||||
return panel;
|
return panel;
|
||||||
}
|
}
|
||||||
|
@ -30,9 +30,7 @@ import net.sf.openrocket.document.OpenRocketDocument;
|
|||||||
import net.sf.openrocket.gui.SpinnerEditor;
|
import net.sf.openrocket.gui.SpinnerEditor;
|
||||||
import net.sf.openrocket.gui.adaptors.BooleanModel;
|
import net.sf.openrocket.gui.adaptors.BooleanModel;
|
||||||
import net.sf.openrocket.gui.adaptors.DoubleModel;
|
import net.sf.openrocket.gui.adaptors.DoubleModel;
|
||||||
import net.sf.openrocket.gui.adaptors.EnumModel;
|
|
||||||
import net.sf.openrocket.gui.adaptors.IntegerModel;
|
import net.sf.openrocket.gui.adaptors.IntegerModel;
|
||||||
import net.sf.openrocket.gui.adaptors.MaterialModel;
|
|
||||||
import net.sf.openrocket.gui.adaptors.PresetModel;
|
import net.sf.openrocket.gui.adaptors.PresetModel;
|
||||||
import net.sf.openrocket.gui.components.BasicSlider;
|
import net.sf.openrocket.gui.components.BasicSlider;
|
||||||
import net.sf.openrocket.gui.components.StyledLabel;
|
import net.sf.openrocket.gui.components.StyledLabel;
|
||||||
@ -42,10 +40,8 @@ import net.sf.openrocket.gui.dialogs.preset.ComponentPresetChooserDialog;
|
|||||||
import net.sf.openrocket.gui.util.GUIUtil;
|
import net.sf.openrocket.gui.util.GUIUtil;
|
||||||
import net.sf.openrocket.gui.widgets.SelectColorButton;
|
import net.sf.openrocket.gui.widgets.SelectColorButton;
|
||||||
import net.sf.openrocket.l10n.Translator;
|
import net.sf.openrocket.l10n.Translator;
|
||||||
import net.sf.openrocket.material.Material;
|
|
||||||
import net.sf.openrocket.preset.ComponentPreset;
|
import net.sf.openrocket.preset.ComponentPreset;
|
||||||
import net.sf.openrocket.rocketcomponent.*;
|
import net.sf.openrocket.rocketcomponent.*;
|
||||||
import net.sf.openrocket.rocketcomponent.ExternalComponent.Finish;
|
|
||||||
import net.sf.openrocket.rocketcomponent.position.AxialMethod;
|
import net.sf.openrocket.rocketcomponent.position.AxialMethod;
|
||||||
import net.sf.openrocket.startup.Application;
|
import net.sf.openrocket.startup.Application;
|
||||||
import net.sf.openrocket.unit.UnitGroup;
|
import net.sf.openrocket.unit.UnitGroup;
|
||||||
@ -278,79 +274,6 @@ public class RocketComponentConfig extends JPanel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected JPanel materialPanel(Material.Type type) {
|
|
||||||
////Component material: and Component finish:
|
|
||||||
return materialPanel(type,
|
|
||||||
trans.get("RocketCompCfg.lbl.Componentmaterial"),
|
|
||||||
trans.get("RocketCompCfg.lbl.Componentfinish"),
|
|
||||||
"Material");
|
|
||||||
}
|
|
||||||
|
|
||||||
protected JPanel materialPanel(Material.Type type, String partName){
|
|
||||||
return materialPanel(type, trans.get("RocketCompCfg.lbl.Componentmaterial"),
|
|
||||||
trans.get("RocketCompCfg.lbl.Componentfinish"), partName);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected JPanel materialPanel(Material.Type type,
|
|
||||||
String materialString,
|
|
||||||
String finishString,
|
|
||||||
String partName) {
|
|
||||||
|
|
||||||
JPanel subPanel = new JPanel(new MigLayout("insets 0"));
|
|
||||||
JLabel label = new JLabel(materialString);
|
|
||||||
//// The component material affects the weight of the component.
|
|
||||||
label.setToolTipText(trans.get("RocketCompCfg.lbl.ttip.componentmaterialaffects"));
|
|
||||||
subPanel.add(label, "spanx 4, wrap rel");
|
|
||||||
|
|
||||||
JComboBox<Material> materialCombo = new JComboBox<Material>(new MaterialModel(subPanel, component, type, partName));
|
|
||||||
//// The component material affects the weight of the component.
|
|
||||||
materialCombo.setToolTipText(trans.get("RocketCompCfg.combo.ttip.componentmaterialaffects"));
|
|
||||||
subPanel.add(materialCombo, "spanx 4, growx, wrap paragraph");
|
|
||||||
|
|
||||||
|
|
||||||
if (component instanceof ExternalComponent) {
|
|
||||||
label = new JLabel(finishString);
|
|
||||||
////<html>The component finish affects the aerodynamic drag of the component.<br>
|
|
||||||
String tip = trans.get("RocketCompCfg.lbl.longA1")
|
|
||||||
//// The value indicated is the average roughness height of the surface.
|
|
||||||
+ trans.get("RocketCompCfg.lbl.longA2");
|
|
||||||
label.setToolTipText(tip);
|
|
||||||
subPanel.add(label, "spanx 4, wmin 220lp, wrap rel");
|
|
||||||
|
|
||||||
JComboBox<ExternalComponent.Finish> finishCombo = new JComboBox<ExternalComponent.Finish>(
|
|
||||||
new EnumModel<ExternalComponent.Finish>(component, "Finish"));
|
|
||||||
finishCombo.setToolTipText(tip);
|
|
||||||
subPanel.add( finishCombo, "spanx 4, growx, split");
|
|
||||||
|
|
||||||
//// Set for all
|
|
||||||
JButton button = new SelectColorButton(trans.get("RocketCompCfg.but.Setforall"));
|
|
||||||
//// Set this finish for all components of the rocket.
|
|
||||||
button.setToolTipText(trans.get("RocketCompCfg.but.ttip.Setforall"));
|
|
||||||
button.addActionListener(new ActionListener() {
|
|
||||||
@Override
|
|
||||||
public void actionPerformed(ActionEvent e) {
|
|
||||||
Finish f = ((ExternalComponent) component).getFinish();
|
|
||||||
try {
|
|
||||||
document.startUndo("Set rocket finish");
|
|
||||||
|
|
||||||
// Do changes
|
|
||||||
Iterator<RocketComponent> iter = component.getRoot().iterator();
|
|
||||||
while (iter.hasNext()) {
|
|
||||||
RocketComponent c = iter.next();
|
|
||||||
if (c instanceof ExternalComponent) {
|
|
||||||
((ExternalComponent) c).setFinish(f);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} finally {
|
|
||||||
document.stopUndo();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
subPanel.add(button, "wrap paragraph");
|
|
||||||
}
|
|
||||||
return subPanel;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getSelectedTabIndex() {
|
public int getSelectedTabIndex() {
|
||||||
return tabbedPane.getSelectedIndex();
|
return tabbedPane.getSelectedIndex();
|
||||||
}
|
}
|
||||||
|
@ -56,7 +56,9 @@ public class ShockCordConfig extends RocketComponentConfig {
|
|||||||
|
|
||||||
// Material
|
// Material
|
||||||
//// Shock cord material:
|
//// Shock cord material:
|
||||||
panel.add(materialPanel(Material.Type.LINE, trans.get("ShockCordCfg.lbl.Shockcordmaterial"), null, "Material"), "spanx 4, wrap");
|
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.LINE,
|
||||||
|
trans.get("ShockCordCfg.lbl.Shockcordmaterial"), null, "Material");
|
||||||
|
panel.add(materialPanel, "spanx 4, wrap");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -178,7 +178,8 @@ public class TransitionConfig extends RocketComponentConfig {
|
|||||||
|
|
||||||
|
|
||||||
//// Material
|
//// Material
|
||||||
panel2.add(materialPanel(Material.Type.BULK), "span, wrap");
|
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.BULK);
|
||||||
|
panel2.add(materialPanel, "span, wrap");
|
||||||
panel.add(panel2, "cell 4 0, gapleft paragraph, aligny 0%, spany");
|
panel.add(panel2, "cell 4 0, gapleft paragraph, aligny 0%, spany");
|
||||||
|
|
||||||
//// General and General properties
|
//// General and General properties
|
||||||
|
@ -223,7 +223,8 @@ public class TrapezoidFinSetConfig extends FinSetConfig {
|
|||||||
|
|
||||||
|
|
||||||
//// Material
|
//// Material
|
||||||
panel.add(materialPanel(Material.Type.BULK), "span, wrap");
|
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.BULK);
|
||||||
|
panel.add(materialPanel, "span, wrap");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -158,7 +158,8 @@ public class TubeFinSetConfig extends RocketComponentConfig {
|
|||||||
|
|
||||||
|
|
||||||
//// Material
|
//// Material
|
||||||
panel.add(materialPanel(Material.Type.BULK), "span, wrap");
|
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.BULK);
|
||||||
|
panel.add(materialPanel, "span, wrap");
|
||||||
|
|
||||||
primary.add(panel, "grow");
|
primary.add(panel, "grow");
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user