From: kruland2607 Date: Wed, 25 Jul 2012 21:26:40 +0000 (+0000) Subject: Added way to delete motor configurations through long click in the configurations... X-Git-Tag: upstream/12.09^2~82 X-Git-Url: https://git.gag.com/?p=debian%2Fopenrocket;a=commitdiff_plain;h=c5c9f14978f1342a93d98379634aa2ba4eb48415 Added way to delete motor configurations through long click in the configurations tab. git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@942 180e2498-e6e9-4542-8430-84ac67f01cd8 --- diff --git a/android/res/values/strings.xml b/android/res/values/strings.xml index ea51d22e..371d2b97 100644 --- a/android/res/values/strings.xml +++ b/android/res/values/strings.xml @@ -13,6 +13,8 @@ Change Plot View Events Select Series And Events + Delete Motor Configuration + Plot Saving file… Loading file… diff --git a/android/src/net/sf/openrocket/android/CurrentRocket.java b/android/src/net/sf/openrocket/android/CurrentRocket.java index 17e2929a..f4b7861e 100644 --- a/android/src/net/sf/openrocket/android/CurrentRocket.java +++ b/android/src/net/sf/openrocket/android/CurrentRocket.java @@ -95,6 +95,11 @@ public class CurrentRocket { return configId; } + public synchronized void deleteMotorConfig( Context context, String config ) { + rocketDocument.getRocket().removeMotorConfigurationID(config); + notifyMotorConfigChanged(context); + } + /** * @param rocketDocument the rocketDocument to set */ diff --git a/android/src/net/sf/openrocket/android/events/ChangeEventBroadcastReceiver.java b/android/src/net/sf/openrocket/android/events/ChangeEventBroadcastReceiver.java index 55543eb5..69da6251 100644 --- a/android/src/net/sf/openrocket/android/events/ChangeEventBroadcastReceiver.java +++ b/android/src/net/sf/openrocket/android/events/ChangeEventBroadcastReceiver.java @@ -24,6 +24,7 @@ public abstract class ChangeEventBroadcastReceiver extends BroadcastReceiver { switch( type ) { case Events.CONFIGS_CHANGED: doMotorConfigsChanged(); + doSimsChanged(); break; case Events.SIMS_CHANGED: doSimsChanged(); diff --git a/android/src/net/sf/openrocket/android/rocket/Configurations.java b/android/src/net/sf/openrocket/android/rocket/Configurations.java index b588413a..9f381de0 100644 --- a/android/src/net/sf/openrocket/android/rocket/Configurations.java +++ b/android/src/net/sf/openrocket/android/rocket/Configurations.java @@ -15,6 +15,9 @@ import net.sf.openrocket.motor.Motor; import net.sf.openrocket.rocketcomponent.MotorMount; import net.sf.openrocket.rocketcomponent.RocketComponent; import net.sf.openrocket.unit.UnitGroup; +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.DialogInterface; import android.os.Bundle; import android.support.v4.app.FragmentTransaction; import android.view.LayoutInflater; @@ -23,6 +26,7 @@ import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; import android.widget.Button; import android.widget.ExpandableListAdapter; +import android.widget.ListView; import android.widget.TextView; import com.actionbarsherlock.view.Menu; @@ -73,6 +77,10 @@ public class Configurations extends ExpandableListFragment { CurrentRocketHolder.getCurrentRocket().addNewMotorConfig(getActivity()); } + private void removeConfiguration( String config ) { + CurrentRocketHolder.getCurrentRocket().deleteMotorConfig( getActivity(), config ); + } + private static class MotorMountInfo { private RocketComponent mmt; @@ -172,11 +180,11 @@ public class Configurations extends ExpandableListFragment { } @Override - public View getGroupView(int groupPosition, boolean isExpanded, - View convertView, ViewGroup parent) { + public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { if ( convertView == null ) { convertView = getActivity().getLayoutInflater().inflate(android.R.layout.simple_expandable_list_item_1,null); } + String configDescription = rocketDocument.getRocket().getMotorConfigurationNameOrDescription((String) getGroup(groupPosition)); ((TextView)convertView.findViewById(android.R.id.text1)).setText( configDescription ); return convertView; @@ -222,9 +230,7 @@ public class Configurations extends ExpandableListFragment { } @Override - public boolean isChildSelectable(int groupPosition, - int childPosition) { - // TODO Auto-generated method stub + public boolean isChildSelectable(int groupPosition, int childPosition) { return false; } @@ -233,6 +239,34 @@ public class Configurations extends ExpandableListFragment { setListAdapter(configurationAdapter); } + @Override + public boolean onListItemLongClick(ListView l, View v, int position, long id) { + + Object o = getExpandableListAdapter().getGroup(position); + + if ( o == null || ! (o instanceof String) ) { + return false; + } + final String motorConfigId = (String)o; + + AlertDialog.Builder b = new AlertDialog.Builder( getActivity() ); + b.setTitle(R.string.DeleteConfigTitle); + b.setCancelable(true); + b.setPositiveButton(R.string.Delete, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + Configurations.this.removeConfiguration(motorConfigId); + } + + }); + + Dialog dialog = b.create(); + + dialog.setCanceledOnTouchOutside(true); + dialog.show(); + return true; + } + private class MotorWizardOnClickListener implements View.OnClickListener { @Override public void onClick(View v) { diff --git a/android/src/net/sf/openrocket/android/util/ExpandableListFragment.java b/android/src/net/sf/openrocket/android/util/ExpandableListFragment.java index 00ed6d5f..4fab1246 100644 --- a/android/src/net/sf/openrocket/android/util/ExpandableListFragment.java +++ b/android/src/net/sf/openrocket/android/util/ExpandableListFragment.java @@ -51,6 +51,14 @@ ExpandableListView.OnGroupCollapseListener, ExpandableListView.OnGroupExpandList onListItemClick((ListView) parent, v, position, id); } }; + + final private AdapterView.OnItemLongClickListener mOnLongClickListener = new AdapterView.OnItemLongClickListener() { + @Override + public boolean onItemLongClick(AdapterView parent, View view, int position, long id) { + return onListItemLongClick( (ListView) parent, view, position, id); + } + + }; ExpandableListAdapter mAdapter; ExpandableListView mList; @@ -135,6 +143,10 @@ ExpandableListView.OnGroupCollapseListener, ExpandableListView.OnGroupExpandList public void onListItemClick(ListView l, View v, int position, long id) { } + public boolean onListItemLongClick(ListView l, View v, int position, long id ) { + return false; + } + /** Provide the cursor for the list view. */ public void setListAdapter(ExpandableListAdapter adapter) { boolean hadAdapter = mAdapter != null; @@ -283,6 +295,7 @@ ExpandableListView.OnGroupCollapseListener, ExpandableListView.OnGroupExpandList } mListShown = true; mList.setOnItemClickListener(mOnClickListener); + mList.setOnItemLongClickListener(mOnLongClickListener); if (mAdapter != null) { setListAdapter(mAdapter); } else {