import java.awt.Shape;\r
import java.awt.geom.Area;\r
import java.awt.geom.Rectangle2D;\r
-import java.beans.PropertyChangeEvent;\r
-import java.beans.PropertyChangeListener;\r
\r
import javax.measure.quantity.Length;\r
import javax.measure.quantity.Pressure;\r
import java.io.OutputStream;
import java.text.DecimalFormat;
import java.text.NumberFormat;
-import java.util.Collection;
-import java.util.Set;
import javax.measure.quantity.Duration;
import javax.measure.quantity.Force;
import org.jscience.physics.amount.Amount;\r
\r
import com.billkuker.rocketry.motorsim.Burn;\r
-import com.billkuker.rocketry.motorsim.RocketScience;\r
import com.billkuker.rocketry.motorsim.Burn.Interval;\r
+import com.billkuker.rocketry.motorsim.RocketScience;\r
\r
public class BurnPanel extends JPanel {\r
private static final long serialVersionUID = 1L;\r
import java.awt.Graphics2D;\r
import java.awt.Rectangle;\r
import java.awt.Shape;\r
-import java.awt.geom.Area;\r
import java.beans.PropertyChangeEvent;\r
import java.beans.PropertyChangeListener;\r
\r
import java.beans.PropertyVetoException;\r
import java.io.IOException;\r
import java.util.HashMap;\r
-import java.util.HashSet;\r
-import java.util.List;\r
import java.util.Map;\r
import java.util.Vector;\r
\r
-import javax.measure.quantity.Pressure;\r
-import javax.measure.quantity.Velocity;\r
import javax.measure.unit.SI;\r
import javax.swing.BoxLayout;\r
import javax.swing.ComboBoxModel;\r
import javax.swing.SwingUtilities;\r
import javax.swing.UIManager;\r
import javax.swing.WindowConstants;\r
-import javax.swing.event.ListDataListener;\r
\r
import org.apache.log4j.Logger;\r
import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;\r
import com.billkuker.rocketry.motorsim.Grain;\r
import com.billkuker.rocketry.motorsim.Motor;\r
import com.billkuker.rocketry.motorsim.Nozzle;\r
-import com.billkuker.rocketry.motorsim.fuel.EditableFuel;\r
-import com.billkuker.rocketry.motorsim.fuel.KNDX;\r
-import com.billkuker.rocketry.motorsim.fuel.KNER;\r
-import com.billkuker.rocketry.motorsim.fuel.KNSB;\r
import com.billkuker.rocketry.motorsim.fuel.KNSU;\r
import com.billkuker.rocketry.motorsim.grain.CSlot;\r
import com.billkuker.rocketry.motorsim.grain.CoredCylindricalGrain;\r
import com.billkuker.rocketry.motorsim.grain.RodAndTubeGrain;\r
import com.billkuker.rocketry.motorsim.io.MotorIO;\r
import com.billkuker.rocketry.motorsim.visual.BurnPanel;\r
-import com.billkuker.rocketry.motorsim.visual.Chart;\r
import com.billkuker.rocketry.motorsim.visual.Editor;\r
import com.billkuker.rocketry.motorsim.visual.GrainPanel;\r
import com.billkuker.rocketry.motorsim.visual.HardwarePanel;\r
package com.billkuker.rocketry.motorsim.visual.workbench;\r
\r
import java.awt.BorderLayout;\r
-import java.awt.Component;\r
import java.awt.Dimension;\r
import java.awt.FileDialog;\r
import java.awt.event.ActionEvent;\r
import java.beans.PropertyChangeListener;\r
import java.io.File;\r
import java.util.HashMap;\r
-import java.util.HashSet;\r
-import java.util.List;\r
import java.util.Vector;\r
\r
import javax.swing.ButtonGroup;\r
import javax.swing.DefaultComboBoxModel;\r
-import javax.swing.JFileChooser;\r
import javax.swing.JFrame;\r
import javax.swing.JMenu;\r
import javax.swing.JMenuBar;\r
import com.billkuker.rocketry.motorsim.Fuel;\r
import com.billkuker.rocketry.motorsim.Motor;\r
import com.billkuker.rocketry.motorsim.RocketScience.UnitPreference;\r
-import com.billkuker.rocketry.motorsim.fuel.EditableFuel;\r
import com.billkuker.rocketry.motorsim.fuel.KNDX;\r
import com.billkuker.rocketry.motorsim.fuel.KNER;\r
import com.billkuker.rocketry.motorsim.fuel.KNSB;\r
package com.billkuker.rocketry.motorsim.visual.workbench;
-import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
-import java.awt.event.FocusEvent;
-import java.awt.event.FocusListener;
-import java.awt.event.TextListener;
import java.beans.PropertyChangeEvent;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
-import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTable;
-import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
-import javax.swing.event.DocumentEvent;
-import javax.swing.event.DocumentListener;
import javax.swing.table.AbstractTableModel;
-import javax.swing.table.TableModel;
import org.jscience.physics.amount.Amount;
import com.billkuker.rocketry.motorsim.Fuel;
import com.billkuker.rocketry.motorsim.RocketScience;
-import com.billkuker.rocketry.motorsim.RocketScience.UnitPreference;
+import com.billkuker.rocketry.motorsim.fuel.EditableFuel.EditableCombustionProduct;
import com.billkuker.rocketry.motorsim.fuel.PiecewiseSaintRobertFuel;
import com.billkuker.rocketry.motorsim.fuel.SaintRobertFuel;
-import com.billkuker.rocketry.motorsim.fuel.EditableFuel.EditableCombustionProduct;
import com.billkuker.rocketry.motorsim.fuel.SaintRobertFuel.Type;
import com.billkuker.rocketry.motorsim.visual.Chart;
import com.billkuker.rocketry.motorsim.visual.Editor;
-import com.billkuker.rocketry.motorsim.visual.Chart.IntervalDomain;
public class SRFuelEditor extends JSplitPane {
private static final NumberFormat nf = new DecimalFormat("##########.###");
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
-import javax.swing.tree.MutableTreeNode;
import javax.swing.tree.TreeNode;
import com.billkuker.rocketry.motorsim.ChangeListening;