Merged l10n branch to trunk
[debian/openrocket] / src / net / sf / openrocket / rocketcomponent / ShockCord.java
1 package net.sf.openrocket.rocketcomponent;
2
3 import net.sf.openrocket.l10n.Translator;
4 import net.sf.openrocket.material.Material;
5 import net.sf.openrocket.startup.Application;
6 import net.sf.openrocket.util.BugException;
7 import net.sf.openrocket.util.MathUtil;
8 import net.sf.openrocket.util.Prefs;
9
10 public class ShockCord extends MassObject {
11         private static final Translator trans = Application.getTranslator();
12
13         private Material material;
14         private double cordLength;
15         
16         public ShockCord() {
17                 material = Prefs.getDefaultComponentMaterial(ShockCord.class, Material.Type.LINE);
18                 cordLength = 0.4;
19         }
20         
21         
22
23         public Material getMaterial() {
24                 return material;
25         }
26         
27         public void setMaterial(Material m) {
28                 if (m.getType() != Material.Type.LINE)
29                         throw new BugException("Attempting to set non-linear material.");
30                 if (material.equals(m))
31                         return;
32                 this.material = m;
33                 fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE);
34         }
35         
36         
37         public double getCordLength() {
38                 return cordLength;
39         }
40         
41         public void setCordLength(double length) {
42                 length = MathUtil.max(length, 0);
43                 if (MathUtil.equals(length, this.length))
44                         return;
45                 this.cordLength = length;
46                 fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE);
47         }
48         
49         
50
51         @Override
52         public double getComponentMass() {
53                 return material.getDensity() * cordLength;
54         }
55         
56         @Override
57         public String getComponentName() {
58                 //// Shock cord
59                 return trans.get("ShockCord.ShockCord");
60         }
61         
62         @Override
63         public boolean allowsChildren() {
64                 return false;
65         }
66         
67         @Override
68         public boolean isCompatible(Class<? extends RocketComponent> type) {
69                 return false;
70         }
71         
72 }