Move out the genuinely GPL tainted code, while I make a decision.
[sw/motorsim] / gui / com / billkuker / rocketry / motorsim / visual / openRocket / RocketSimTable.java
diff --git a/gui/com/billkuker/rocketry/motorsim/visual/openRocket/RocketSimTable.java b/gui/com/billkuker/rocketry/motorsim/visual/openRocket/RocketSimTable.java
deleted file mode 100644 (file)
index b6155f3..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-package com.billkuker.rocketry.motorsim.visual.openRocket;\r
-\r
-import java.awt.event.MouseAdapter;\r
-import java.awt.event.MouseEvent;\r
-import java.io.File;\r
-import java.util.Iterator;\r
-import java.util.List;\r
-import java.util.Vector;\r
-\r
-import javax.measure.unit.SI;\r
-import javax.swing.JScrollPane;\r
-import javax.swing.JTable;\r
-import javax.swing.SwingUtilities;\r
-import javax.swing.table.AbstractTableModel;\r
-\r
-import net.sf.openrocket.document.OpenRocketDocument;\r
-import net.sf.openrocket.document.Simulation;\r
-import net.sf.openrocket.file.RocketLoadException;\r
-import net.sf.openrocket.file.openrocket.OpenRocketLoader;\r
-import net.sf.openrocket.gui.plot.PlotConfiguration;\r
-import net.sf.openrocket.gui.plot.SimulationPlotDialog;\r
-import net.sf.openrocket.gui.util.SwingPreferences;\r
-import net.sf.openrocket.l10n.ResourceBundleTranslator;\r
-import net.sf.openrocket.rocketcomponent.MotorMount;\r
-import net.sf.openrocket.rocketcomponent.RocketComponent;\r
-import net.sf.openrocket.simulation.exception.SimulationException;\r
-import net.sf.openrocket.startup.Application;\r
-import net.sf.openrocket.unit.UnitGroup;\r
-\r
-import org.jscience.physics.amount.Amount;\r
-\r
-import com.billkuker.rocketry.motorsim.Burn;\r
-import com.billkuker.rocketry.motorsim.Motor;\r
-import com.billkuker.rocketry.motorsim.RocketScience;\r
-import com.billkuker.rocketry.motorsim.RocketScience.UnitPreference;\r
-import com.billkuker.rocketry.motorsim.visual.workbench.BurnWatcher;\r
-\r
-public class RocketSimTable extends JScrollPane implements BurnWatcher,\r
-               RocketScience.UnitPreferenceListener {\r
-       static final long serialVersionUID = 1L;\r
-\r
-       static {\r
-               Application.setBaseTranslator(new ResourceBundleTranslator(\r
-                               "l10n.messages"));\r
-               Application.setMotorSetDatabase(new OneMotorDatabase());\r
-               Application.setPreferences(new SwingPreferences());\r
-\r
-       }\r
-\r
-       class Entry {\r
-               Entry(Motor m, Simulation s, Burn b) {\r
-                       this.m = m;\r
-                       this.s = s;\r
-                       this.b = b;\r
-               }\r
-\r
-               boolean ready = false;\r
-               Simulation s;\r
-               Motor m;\r
-               Burn b;\r
-       }\r
-\r
-       List<Entry> entries = new Vector<Entry>();\r
-\r
-       class TM extends AbstractTableModel {\r
-               private static final long serialVersionUID = 1L;\r
-\r
-               @Override\r
-               public String getColumnName(int col) {\r
-                       switch (col) {\r
-                       case 0:\r
-                               return "Motor";\r
-                       case 1:\r
-                               return "Apogee";\r
-                       case 2:\r
-                               return "Vmax";\r
-                       case 3:\r
-                               return "Vdeploy";\r
-                       case 4:\r
-                               return "Vground";\r
-                       case 5:\r
-                               return "Tapogee";\r
-                       case 6:\r
-                               return "Tflight";\r
-                       }\r
-                       return "??";\r
-               }\r
-\r
-               @Override\r
-               public int getColumnCount() {\r
-                       return 7;\r
-               }\r
-\r
-               @Override\r
-               public int getRowCount() {\r
-                       return entries.size();\r
-               }\r
-\r
-               @Override\r
-               public Object getValueAt(int row, int col) {\r
-                       Entry e = entries.get(row);\r
-                       if (e == null)\r
-                               return "???";\r
-                       if (e.ready == false)\r
-                               return "...";\r
-                       switch (col) {\r
-                       case 0:\r
-                               return e.m.getName();\r
-                       case 1:\r
-                               return RocketScience.ammountToRoundedString(Amount.valueOf(e.s\r
-                                               .getSimulatedData().getMaxAltitude(), SI.METER));\r
-                       case 2:\r
-                               return RocketScience.ammountToRoundedString(Amount.valueOf(e.s\r
-                                               .getSimulatedData().getMaxVelocity(),\r
-                                               SI.METERS_PER_SECOND));\r
-                       case 3:\r
-                               return RocketScience.ammountToRoundedString(Amount.valueOf(e.s\r
-                                               .getSimulatedData().getDeploymentVelocity(),\r
-                                               SI.METERS_PER_SECOND));\r
-                       case 4:\r
-                               return RocketScience.ammountToRoundedString(Amount.valueOf(e.s\r
-                                               .getSimulatedData().getGroundHitVelocity(),\r
-                                               SI.METERS_PER_SECOND));\r
-                       case 5:\r
-                               return RocketScience.ammountToRoundedString(Amount.valueOf(e.s\r
-                                               .getSimulatedData().getTimeToApogee(), SI.SECOND));\r
-                       case 6:\r
-                               return RocketScience.ammountToRoundedString(Amount.valueOf(e.s\r
-                                               .getSimulatedData().getFlightTime(), SI.SECOND));\r
-                       }\r
-                       return "??";\r
-               }\r
-\r
-       }\r
-\r
-       private TM tm = new TM();\r
-       private JTable table = new JTable(tm);\r
-       private OpenRocketDocument doc;\r
-\r
-       public RocketSimTable() {\r
-               setViewportView(table);\r
-               RocketScience.addUnitPreferenceListener(this);\r
-               table.addMouseListener(new MouseAdapter() {\r
-                       public void mouseClicked(MouseEvent e) {\r
-                               if (e.getClickCount() == 2) {\r
-                                       Entry entry = entries.get(table.getSelectedRow());\r
-                                       SimulationPlotDialog.showPlot(SwingUtilities\r
-                                                       .getWindowAncestor(RocketSimTable.this), entry.s,\r
-                                                       PlotConfiguration.DEFAULT_CONFIGURATIONS[0]\r
-                                                                       .resetUnits());\r
-                               }\r
-                       }\r
-               });\r
-               preferredUnitsChanged();\r
-       }\r
-\r
-       public void openRocket(File f) throws RocketLoadException {\r
-               this.doc = new OpenRocketLoader().load(f);\r
-       }\r
-\r
-       private Entry toEntry(Burn b) {\r
-               final Entry e = new Entry(b.getMotor(), doc.getSimulation(0).copy(), b);\r
-               OneMotorDatabase.setBurn(b);\r
-\r
-               e.s.getConfiguration().getMotorConfigurationID();\r
-               Iterator<RocketComponent> iterator = doc.getRocket().iterator();\r
-               while (iterator.hasNext()) {\r
-                       RocketComponent c = iterator.next();\r
-                       if (c instanceof MotorMount) {\r
-                               ((MotorMount) c).setMotorDelay(e.s.getConfiguration()\r
-                                               .getMotorConfigurationID(), b.getMotor()\r
-                                               .getEjectionDelay().doubleValue(SI.SECOND));\r
-                       }\r
-               }\r
-\r
-               tm.fireTableDataChanged();\r
-               new Thread() {\r
-                       @Override\r
-                       public void run() {\r
-                               try {\r
-                                       e.s.simulate();\r
-                                       e.ready = true;\r
-                                       tm.fireTableDataChanged();\r
-                               } catch (SimulationException e1) {\r
-                                       e1.printStackTrace();\r
-                               }\r
-\r
-                       }\r
-               }.start();\r
-\r
-               return e;\r
-       }\r
-\r
-       @Override\r
-       public void replace(Burn oldBurn, Burn newBurn) {\r
-               if (doc == null) {\r
-                       return; // TODO, deal with changing rockets\r
-               }\r
-\r
-               if (oldBurn != null) {\r
-                       for (int i = 0; i < entries.size(); i++) {\r
-                               if (entries.get(i).b == oldBurn) {\r
-                                       if (newBurn != null) {\r
-                                               entries.set(i, toEntry(newBurn));\r
-                                       } else {\r
-                                               entries.remove(i);\r
-                                       }\r
-                                       break;\r
-                               }\r
-                       }\r
-               } else {\r
-                       entries.add(toEntry(newBurn));\r
-               }\r
-               tm.fireTableDataChanged();\r
-       }\r
-\r
-       @Override\r
-       public void preferredUnitsChanged() {\r
-               tm.fireTableDataChanged();\r
-               if (UnitPreference.getUnitPreference() == UnitPreference.NONSI) {\r
-                       System.err.println("NONSI");\r
-                       UnitGroup.setDefaultImperialUnits();\r
-               } else {\r
-                       System.err.println("SI");\r
-                       UnitGroup.setDefaultMetricUnits();\r
-               }\r
-       }\r
-}\r