import java.beans.PropertyChangeSupport;
import java.lang.reflect.Method;
-import javax.swing.event.ChangeListener;
-
-import com.billkuker.rocketry.motorsim.grain.MultiGrain;
-
public aspect ChangeListening {
public interface Subject {
import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
-import java.beans.PropertyVetoException;
import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import javax.measure.unit.Unit;
import org.jscience.physics.amount.Amount;
-import com.billkuker.rocketry.motorsim.ChangeListening.Subject;
-import com.billkuker.rocketry.motorsim.grain.CoredCylindricalGrain;
public aspect QuantityChecking {
import javax.swing.SwingUtilities;\r
import javax.swing.UIManager;\r
import javax.swing.WindowConstants;\r
-import javax.swing.event.ChangeEvent;\r
-import javax.swing.event.ChangeListener;\r
-import javax.swing.event.DocumentEvent;\r
-import javax.swing.event.DocumentListener;\r
\r
import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;\r
import org.fife.ui.rsyntaxtextarea.SyntaxConstants;\r
import com.billkuker.rocketry.motorsim.visual.Editor;\r
import com.billkuker.rocketry.motorsim.visual.GrainPanel;\r
import com.billkuker.rocketry.motorsim.visual.NozzlePanel;\r
-import com.billkuker.rocketry.motorsim.visual.Chart.IntervalDomain;\r
\r
public class MotorEditor extends JTabbedPane implements PropertyChangeListener {\r
private static final long serialVersionUID = 1L;\r
import java.util.HashMap;\r
\r
import javax.swing.ButtonGroup;\r
-import javax.swing.JButton;\r
import javax.swing.JFileChooser;\r
import javax.swing.JFrame;\r
import javax.swing.JMenu;\r
import javax.swing.JSeparator;\r
import javax.swing.JSplitPane;\r
import javax.swing.JTabbedPane;\r
-import javax.swing.JToolBar;\r
import javax.swing.JTree;\r
-import javax.swing.UIManager;\r
import javax.swing.WindowConstants;\r
import javax.swing.event.TreeSelectionEvent;\r
import javax.swing.event.TreeSelectionListener;\r