From: kruland2607 Date: Tue, 26 Jun 2012 18:30:06 +0000 (+0000) Subject: Refactored by moving the Simulations fragment and SimulationEditFragment from net... X-Git-Tag: upstream/12.09^2~147 X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=822f4df9c5bb057d97f021c50b0a950fcf046680;p=debian%2Fopenrocket Refactored by moving the Simulations fragment and SimulationEditFragment from net.sf.openrocket.android.rocket to net.sf.openrocket.android.simulation. git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@812 180e2498-e6e9-4542-8430-84ac67f01cd8 --- diff --git a/android/src/net/sf/openrocket/android/rocket/OpenRocketViewer.java b/android/src/net/sf/openrocket/android/rocket/OpenRocketViewer.java index 2cb08e20..2dc2f459 100644 --- a/android/src/net/sf/openrocket/android/rocket/OpenRocketViewer.java +++ b/android/src/net/sf/openrocket/android/rocket/OpenRocketViewer.java @@ -7,6 +7,7 @@ import net.sf.openrocket.android.CurrentRocketHolder; import net.sf.openrocket.android.simulation.SimulationChart; import net.sf.openrocket.android.simulation.SimulationViewActivity; import net.sf.openrocket.android.simulation.SimulationViewFragment; +import net.sf.openrocket.android.simulation.Simulations; import net.sf.openrocket.android.util.AndroidLogWrapper; import net.sf.openrocket.document.OpenRocketDocument; import net.sf.openrocket.document.Simulation; diff --git a/android/src/net/sf/openrocket/android/rocket/SimulationEditFragment.java b/android/src/net/sf/openrocket/android/rocket/SimulationEditFragment.java deleted file mode 100644 index 01706658..00000000 --- a/android/src/net/sf/openrocket/android/rocket/SimulationEditFragment.java +++ /dev/null @@ -1,131 +0,0 @@ - -package net.sf.openrocket.android.rocket; - -import net.sf.openrocket.R; -import net.sf.openrocket.android.CurrentRocketHolder; -import net.sf.openrocket.android.simservice.SimulationService; -import net.sf.openrocket.android.simservice.SimulationTask; -import net.sf.openrocket.document.OpenRocketDocument; -import net.sf.openrocket.document.Simulation; -import net.sf.openrocket.simulation.SimulationOptions; -import net.sf.openrocket.unit.UnitGroup; -import android.os.Bundle; -import android.support.v4.app.DialogFragment; -import android.view.LayoutInflater; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.ViewGroup; -import android.widget.Button; -import android.widget.EditText; - -import com.actionbarsherlock.app.SherlockDialogFragment; - -/** - * An activity that encapsulates a graphical view of the chart. - */ -public class SimulationEditFragment extends SherlockDialogFragment { - - private int simulationId; - - private EditText windspeedField; - private EditText rodlengthField; - private EditText rodangleField; - private EditText roddirectionField; - private MotorConfigSpinner motorSpinner; - - public static SimulationEditFragment newInstance( int simulationId ) { - SimulationEditFragment frag = new SimulationEditFragment(); - Bundle b = new Bundle(); - b.putInt("simulationId", simulationId); - frag.setArguments(b); - return frag; - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setStyle(DialogFragment.STYLE_NO_TITLE,getTheme()); - - if ( savedInstanceState != null ) { - simulationId = savedInstanceState.getInt("simulationId"); - } else { - Bundle b = getArguments(); - simulationId = b.getInt("simulationId"); - } - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - View v = inflater.inflate(R.layout.simulation_condition_dialog, container, false); - - Button deleteButton = (Button) v.findViewById(R.id.simulationConditionDelete); - deleteButton.setOnClickListener( new OnClickListener() { - @Override - public void onClick(View v) { - onDelete(); - } - }); - - Button runButton = (Button) v.findViewById(R.id.simulationConditionRun); - runButton.setOnClickListener( new OnClickListener() { - @Override - public void onClick(View v) { - onRun(); - } - }); - - windspeedField = (EditText) v.findViewById(R.id.simulation_condition_windspeed); - rodlengthField = (EditText) v.findViewById(R.id.simulation_condition_rodlength); - rodangleField = (EditText) v.findViewById(R.id.simulation_condition_rodangle); - roddirectionField = (EditText) v.findViewById(R.id.simulation_condition_roddirection); - - motorSpinner = (MotorConfigSpinner) v.findViewById(R.id.simulationConditionConfigurationSpinner); - - OpenRocketDocument rocketDocument = CurrentRocketHolder.getCurrentRocket().getRocketDocument(); - - motorSpinner.createAdapter(rocketDocument.getRocket()); - - Simulation sim = rocketDocument.getSimulation(simulationId); - - SimulationOptions options = sim.getOptions(); - if ( options != null ) { - windspeedField.setText( UnitGroup.UNITS_VELOCITY.toString( options.getWindSpeedAverage() )); - rodlengthField.setText( UnitGroup.UNITS_LENGTH.toString( options.getLaunchRodLength() )); - rodangleField.setText( UnitGroup.UNITS_ANGLE.toString( options.getLaunchRodAngle() )); - roddirectionField.setText( UnitGroup.UNITS_ANGLE.toString( options.getLaunchRodDirection() )); - motorSpinner.setSelectedConfiguration(options.getMotorConfigurationID()); - } - - return v; - } - - @Override - public void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); - outState.putInt("simulationId", simulationId); - - } - - public void onDelete( ) { - CurrentRocketHolder.getCurrentRocket().deleteSimulation(simulationId); - getDialog().dismiss(); - } - - public void onRun() { - - OpenRocketDocument rocketDocument = CurrentRocketHolder.getCurrentRocket().getRocketDocument(); - Simulation sim = rocketDocument.getSimulation(simulationId); - SimulationOptions options = sim.getOptions(); - - options.setWindSpeedAverage( UnitGroup.UNITS_VELOCITY.fromUnit(Double.parseDouble( windspeedField.getText().toString() ))); - options.setLaunchRodLength( UnitGroup.UNITS_LENGTH.fromUnit(Double.parseDouble( rodlengthField.getText().toString() ))); - options.setLaunchRodAngle( UnitGroup.UNITS_ANGLE.fromUnit(Double.parseDouble( rodangleField.getText().toString() ))); - options.setLaunchRodDirection( UnitGroup.UNITS_ANGLE.fromUnit(Double.parseDouble( roddirectionField.getText().toString() ))); - options.setMotorConfigurationID( motorSpinner.getSelectedConfiguration() ); - - SimulationTask t = new SimulationTask(simulationId); - SimulationService.executeSimulationTask(getActivity(), t); - getDialog().dismiss(); - } -} \ No newline at end of file diff --git a/android/src/net/sf/openrocket/android/rocket/Simulations.java b/android/src/net/sf/openrocket/android/rocket/Simulations.java deleted file mode 100644 index 807d6be9..00000000 --- a/android/src/net/sf/openrocket/android/rocket/Simulations.java +++ /dev/null @@ -1,168 +0,0 @@ -package net.sf.openrocket.android.rocket; - -import net.sf.openrocket.R; -import net.sf.openrocket.android.CurrentRocketHolder; -import net.sf.openrocket.android.simulation.SimulationListItem; -import net.sf.openrocket.android.util.AndroidLogWrapper; -import net.sf.openrocket.document.OpenRocketDocument; -import net.sf.openrocket.document.Simulation; -import android.app.Activity; -import android.content.SharedPreferences; -import android.os.Bundle; -import android.preference.PreferenceManager; -import android.support.v4.app.FragmentTransaction; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.AdapterView; -import android.widget.AdapterView.OnItemClickListener; -import android.widget.AdapterView.OnItemLongClickListener; -import android.widget.ArrayAdapter; -import android.widget.ListView; - -import com.actionbarsherlock.app.SherlockFragment; -import com.actionbarsherlock.view.Menu; -import com.actionbarsherlock.view.MenuInflater; -import com.actionbarsherlock.view.MenuItem; - -public class Simulations extends SherlockFragment -implements SharedPreferences.OnSharedPreferenceChangeListener -{ - - private final static String wizardFrag = "wizardFrag"; - - public interface OnSimulationSelectedListener { - public void onSimulationSelected( int simulationId ); - } - - private ListView simulationList; - private OnSimulationSelectedListener listener; - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - setHasOptionsMenu(true); - View v = inflater.inflate(R.layout.rocket_simulations, container, false); - simulationList = (ListView) v.findViewById(R.id.openrocketviewerSimulationList); - return v; - } - - @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - inflater.inflate(R.menu.rocket_viewer_simulation_option_menu, menu); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) - { - case R.id.menu_add: - addSimulation(); - return true; - default: - return super.onOptionsItemSelected(item); - } - } - - @Override - public void onAttach(Activity activity) { - super.onAttach(activity); - if ( activity instanceof OnSimulationSelectedListener ) { - listener = (OnSimulationSelectedListener) activity; - } - } - - - public void setListener(OnSimulationSelectedListener listener) { - this.listener = listener; - } - - @Override - public void onActivityCreated(Bundle savedInstanceState) { - super.onActivityCreated(savedInstanceState); - - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); - prefs.registerOnSharedPreferenceChangeListener(this); - - } - - @Override - public void onResume() { - super.onResume(); - setup(); - - } - - @Override - public void onDestroy() { - super.onDestroy(); - - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); - prefs.unregisterOnSharedPreferenceChangeListener(this); - } - - @Override - public void onSharedPreferenceChanged(SharedPreferences arg0, String arg1) { - if ( this.isVisible() ) { - setup(); - } - } - - - public void refreshSimulationList() { - setup(); - } - - private void setup() { - final OpenRocketDocument rocketDocument = CurrentRocketHolder.getCurrentRocket().getRocketDocument(); - AndroidLogWrapper.d(Simulations.class,"activity = {0}", this.getActivity()); - - ArrayAdapter sims = new ArrayAdapter(this.getActivity(),android.R.layout.simple_list_item_2,rocketDocument.getSimulations()) { - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - SimulationListItem listItemView = (SimulationListItem) convertView; - - if (listItemView == null) { - listItemView = new SimulationListItem(parent.getContext()); - } - - Simulation sim = this.getItem(position); - listItemView.setSimulation(sim); - - return listItemView; - } - - }; - simulationList.setOnItemClickListener( new OnItemClickListener() { - @Override - public void onItemClick(AdapterView l, View v, int position, long id) { - if (listener != null ) { - listener.onSimulationSelected(position); - } - } - - }); - simulationList.setOnItemLongClickListener( new OnItemLongClickListener() { - - @Override - public boolean onItemLongClick(AdapterView parent, View view, - int position, long id) { - final SimulationEditFragment f = SimulationEditFragment.newInstance(position); - FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction(); - ft.add(f, wizardFrag); - ft.commit(); - - return true; - } - - }); - simulationList.setAdapter(sims); - - } - - private void addSimulation() { - CurrentRocketHolder.getCurrentRocket().addNewSimulation(); - } - -} diff --git a/android/src/net/sf/openrocket/android/simulation/SimulationEditFragment.java b/android/src/net/sf/openrocket/android/simulation/SimulationEditFragment.java new file mode 100644 index 00000000..147dec98 --- /dev/null +++ b/android/src/net/sf/openrocket/android/simulation/SimulationEditFragment.java @@ -0,0 +1,132 @@ + +package net.sf.openrocket.android.simulation; + +import net.sf.openrocket.R; +import net.sf.openrocket.android.CurrentRocketHolder; +import net.sf.openrocket.android.rocket.MotorConfigSpinner; +import net.sf.openrocket.android.simservice.SimulationService; +import net.sf.openrocket.android.simservice.SimulationTask; +import net.sf.openrocket.document.OpenRocketDocument; +import net.sf.openrocket.document.Simulation; +import net.sf.openrocket.simulation.SimulationOptions; +import net.sf.openrocket.unit.UnitGroup; +import android.os.Bundle; +import android.support.v4.app.DialogFragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.EditText; + +import com.actionbarsherlock.app.SherlockDialogFragment; + +/** + * An activity that encapsulates a graphical view of the chart. + */ +public class SimulationEditFragment extends SherlockDialogFragment { + + private int simulationId; + + private EditText windspeedField; + private EditText rodlengthField; + private EditText rodangleField; + private EditText roddirectionField; + private MotorConfigSpinner motorSpinner; + + public static SimulationEditFragment newInstance( int simulationId ) { + SimulationEditFragment frag = new SimulationEditFragment(); + Bundle b = new Bundle(); + b.putInt("simulationId", simulationId); + frag.setArguments(b); + return frag; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setStyle(DialogFragment.STYLE_NO_TITLE,getTheme()); + + if ( savedInstanceState != null ) { + simulationId = savedInstanceState.getInt("simulationId"); + } else { + Bundle b = getArguments(); + simulationId = b.getInt("simulationId"); + } + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View v = inflater.inflate(R.layout.simulation_condition_dialog, container, false); + + Button deleteButton = (Button) v.findViewById(R.id.simulationConditionDelete); + deleteButton.setOnClickListener( new OnClickListener() { + @Override + public void onClick(View v) { + onDelete(); + } + }); + + Button runButton = (Button) v.findViewById(R.id.simulationConditionRun); + runButton.setOnClickListener( new OnClickListener() { + @Override + public void onClick(View v) { + onRun(); + } + }); + + windspeedField = (EditText) v.findViewById(R.id.simulation_condition_windspeed); + rodlengthField = (EditText) v.findViewById(R.id.simulation_condition_rodlength); + rodangleField = (EditText) v.findViewById(R.id.simulation_condition_rodangle); + roddirectionField = (EditText) v.findViewById(R.id.simulation_condition_roddirection); + + motorSpinner = (MotorConfigSpinner) v.findViewById(R.id.simulationConditionConfigurationSpinner); + + OpenRocketDocument rocketDocument = CurrentRocketHolder.getCurrentRocket().getRocketDocument(); + + motorSpinner.createAdapter(rocketDocument.getRocket()); + + Simulation sim = rocketDocument.getSimulation(simulationId); + + SimulationOptions options = sim.getOptions(); + if ( options != null ) { + windspeedField.setText( UnitGroup.UNITS_VELOCITY.toString( options.getWindSpeedAverage() )); + rodlengthField.setText( UnitGroup.UNITS_LENGTH.toString( options.getLaunchRodLength() )); + rodangleField.setText( UnitGroup.UNITS_ANGLE.toString( options.getLaunchRodAngle() )); + roddirectionField.setText( UnitGroup.UNITS_ANGLE.toString( options.getLaunchRodDirection() )); + motorSpinner.setSelectedConfiguration(options.getMotorConfigurationID()); + } + + return v; + } + + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + outState.putInt("simulationId", simulationId); + + } + + public void onDelete( ) { + CurrentRocketHolder.getCurrentRocket().deleteSimulation(simulationId); + getDialog().dismiss(); + } + + public void onRun() { + + OpenRocketDocument rocketDocument = CurrentRocketHolder.getCurrentRocket().getRocketDocument(); + Simulation sim = rocketDocument.getSimulation(simulationId); + SimulationOptions options = sim.getOptions(); + + options.setWindSpeedAverage( UnitGroup.UNITS_VELOCITY.fromUnit(Double.parseDouble( windspeedField.getText().toString() ))); + options.setLaunchRodLength( UnitGroup.UNITS_LENGTH.fromUnit(Double.parseDouble( rodlengthField.getText().toString() ))); + options.setLaunchRodAngle( UnitGroup.UNITS_ANGLE.fromUnit(Double.parseDouble( rodangleField.getText().toString() ))); + options.setLaunchRodDirection( UnitGroup.UNITS_ANGLE.fromUnit(Double.parseDouble( roddirectionField.getText().toString() ))); + options.setMotorConfigurationID( motorSpinner.getSelectedConfiguration() ); + + SimulationTask t = new SimulationTask(simulationId); + SimulationService.executeSimulationTask(getActivity(), t); + getDialog().dismiss(); + } +} \ No newline at end of file diff --git a/android/src/net/sf/openrocket/android/simulation/Simulations.java b/android/src/net/sf/openrocket/android/simulation/Simulations.java new file mode 100644 index 00000000..61ef2a41 --- /dev/null +++ b/android/src/net/sf/openrocket/android/simulation/Simulations.java @@ -0,0 +1,167 @@ +package net.sf.openrocket.android.simulation; + +import net.sf.openrocket.R; +import net.sf.openrocket.android.CurrentRocketHolder; +import net.sf.openrocket.android.util.AndroidLogWrapper; +import net.sf.openrocket.document.OpenRocketDocument; +import net.sf.openrocket.document.Simulation; +import android.app.Activity; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.support.v4.app.FragmentTransaction; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.AdapterView.OnItemLongClickListener; +import android.widget.ArrayAdapter; +import android.widget.ListView; + +import com.actionbarsherlock.app.SherlockFragment; +import com.actionbarsherlock.view.Menu; +import com.actionbarsherlock.view.MenuInflater; +import com.actionbarsherlock.view.MenuItem; + +public class Simulations extends SherlockFragment +implements SharedPreferences.OnSharedPreferenceChangeListener +{ + + private final static String wizardFrag = "wizardFrag"; + + public interface OnSimulationSelectedListener { + public void onSimulationSelected( int simulationId ); + } + + private ListView simulationList; + private OnSimulationSelectedListener listener; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + setHasOptionsMenu(true); + View v = inflater.inflate(R.layout.rocket_simulations, container, false); + simulationList = (ListView) v.findViewById(R.id.openrocketviewerSimulationList); + return v; + } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + inflater.inflate(R.menu.rocket_viewer_simulation_option_menu, menu); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) + { + case R.id.menu_add: + addSimulation(); + return true; + default: + return super.onOptionsItemSelected(item); + } + } + + @Override + public void onAttach(Activity activity) { + super.onAttach(activity); + if ( activity instanceof OnSimulationSelectedListener ) { + listener = (OnSimulationSelectedListener) activity; + } + } + + + public void setListener(OnSimulationSelectedListener listener) { + this.listener = listener; + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); + prefs.registerOnSharedPreferenceChangeListener(this); + + } + + @Override + public void onResume() { + super.onResume(); + setup(); + + } + + @Override + public void onDestroy() { + super.onDestroy(); + + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); + prefs.unregisterOnSharedPreferenceChangeListener(this); + } + + @Override + public void onSharedPreferenceChanged(SharedPreferences arg0, String arg1) { + if ( this.isVisible() ) { + setup(); + } + } + + + public void refreshSimulationList() { + setup(); + } + + private void setup() { + final OpenRocketDocument rocketDocument = CurrentRocketHolder.getCurrentRocket().getRocketDocument(); + AndroidLogWrapper.d(Simulations.class,"activity = {0}", this.getActivity()); + + ArrayAdapter sims = new ArrayAdapter(this.getActivity(),android.R.layout.simple_list_item_2,rocketDocument.getSimulations()) { + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + SimulationListItem listItemView = (SimulationListItem) convertView; + + if (listItemView == null) { + listItemView = new SimulationListItem(parent.getContext()); + } + + Simulation sim = this.getItem(position); + listItemView.setSimulation(sim); + + return listItemView; + } + + }; + simulationList.setOnItemClickListener( new OnItemClickListener() { + @Override + public void onItemClick(AdapterView l, View v, int position, long id) { + if (listener != null ) { + listener.onSimulationSelected(position); + } + } + + }); + simulationList.setOnItemLongClickListener( new OnItemLongClickListener() { + + @Override + public boolean onItemLongClick(AdapterView parent, View view, + int position, long id) { + final SimulationEditFragment f = SimulationEditFragment.newInstance(position); + FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction(); + ft.add(f, wizardFrag); + ft.commit(); + + return true; + } + + }); + simulationList.setAdapter(sims); + + } + + private void addSimulation() { + CurrentRocketHolder.getCurrentRocket().addNewSimulation(); + } + +}