Added way to delete motor configurations through long click in the configurations...
authorkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Wed, 25 Jul 2012 21:26:40 +0000 (21:26 +0000)
committerkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Wed, 25 Jul 2012 21:26:40 +0000 (21:26 +0000)
git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@942 180e2498-e6e9-4542-8430-84ac67f01cd8

android/res/values/strings.xml
android/src/net/sf/openrocket/android/CurrentRocket.java
android/src/net/sf/openrocket/android/events/ChangeEventBroadcastReceiver.java
android/src/net/sf/openrocket/android/rocket/Configurations.java
android/src/net/sf/openrocket/android/util/ExpandableListFragment.java

index ea51d22e52882f94630de1e56c112ddb52ee6b22..371d2b97c0bfedcc867bdbf40c3fc94e0589a476 100644 (file)
@@ -13,6 +13,8 @@
     <string name="configurePlot">Change Plot</string>\r
     <string name="view_events">View Events</string>\r
     <string name="simulationPlotDialogTitle">Select Series And Events</string>\r
+    <string name="DeleteConfigTitle">Delete Motor Configuration</string>\r
+    \r
     <string name="plot">Plot</string>\r
     <string name="saving">Saving file…</string>\r
     <string name="loading">Loading file…</string>\r
index 17e2929a02b46c36d478195021e411269af00529..f4b7861e298c47ac35b69bd7ff3860c9349104fa 100644 (file)
@@ -95,6 +95,11 @@ public class CurrentRocket {
                return configId;\r
        }\r
        \r
+       public synchronized void deleteMotorConfig( Context context, String config ) {\r
+               rocketDocument.getRocket().removeMotorConfigurationID(config);\r
+               notifyMotorConfigChanged(context);\r
+       }\r
+       \r
        /**\r
         * @param rocketDocument the rocketDocument to set\r
         */\r
index 55543eb5259662000b5e3d0e7520df1840ddbfc4..69da6251dc4e107c8057e3fd5b4bf89317cfd48a 100644 (file)
@@ -24,6 +24,7 @@ public abstract class ChangeEventBroadcastReceiver extends BroadcastReceiver {
                switch( type ) {\r
                case Events.CONFIGS_CHANGED:\r
                        doMotorConfigsChanged();\r
+                       doSimsChanged();\r
                        break;\r
                case Events.SIMS_CHANGED:\r
                        doSimsChanged();\r
index b588413ac932832621e31a7d5f12dfbff799d78d..9f381de03e5cee5ea49450326c881e894f7d0c66 100644 (file)
@@ -15,6 +15,9 @@ import net.sf.openrocket.motor.Motor;
 import net.sf.openrocket.rocketcomponent.MotorMount;\r
 import net.sf.openrocket.rocketcomponent.RocketComponent;\r
 import net.sf.openrocket.unit.UnitGroup;\r
+import android.app.AlertDialog;\r
+import android.app.Dialog;\r
+import android.content.DialogInterface;\r
 import android.os.Bundle;\r
 import android.support.v4.app.FragmentTransaction;\r
 import android.view.LayoutInflater;\r
@@ -23,6 +26,7 @@ import android.view.ViewGroup;
 import android.widget.BaseExpandableListAdapter;\r
 import android.widget.Button;\r
 import android.widget.ExpandableListAdapter;\r
+import android.widget.ListView;\r
 import android.widget.TextView;\r
 \r
 import com.actionbarsherlock.view.Menu;\r
@@ -73,6 +77,10 @@ public class Configurations extends ExpandableListFragment {
                CurrentRocketHolder.getCurrentRocket().addNewMotorConfig(getActivity());\r
        }\r
        \r
+       private void removeConfiguration( String config ) {\r
+               CurrentRocketHolder.getCurrentRocket().deleteMotorConfig( getActivity(), config );\r
+       }\r
+       \r
        private static class MotorMountInfo {\r
 \r
                private RocketComponent mmt;\r
@@ -172,11 +180,11 @@ public class Configurations extends ExpandableListFragment {
                        }\r
 \r
                        @Override\r
-                       public View getGroupView(int groupPosition, boolean isExpanded,\r
-                                       View convertView, ViewGroup parent) {\r
+                       public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {\r
                                if ( convertView == null ) {\r
                                        convertView = getActivity().getLayoutInflater().inflate(android.R.layout.simple_expandable_list_item_1,null);\r
                                }\r
+\r
                                String configDescription = rocketDocument.getRocket().getMotorConfigurationNameOrDescription((String) getGroup(groupPosition));\r
                                ((TextView)convertView.findViewById(android.R.id.text1)).setText( configDescription );\r
                                return convertView;\r
@@ -222,9 +230,7 @@ public class Configurations extends ExpandableListFragment {
                        }\r
 \r
                        @Override\r
-                       public boolean isChildSelectable(int groupPosition,\r
-                                       int childPosition) {\r
-                               // TODO Auto-generated method stub\r
+                       public boolean isChildSelectable(int groupPosition,     int childPosition) {\r
                                return false;\r
                        }\r
 \r
@@ -233,6 +239,34 @@ public class Configurations extends ExpandableListFragment {
                setListAdapter(configurationAdapter);\r
        }\r
 \r
+       @Override\r
+       public boolean onListItemLongClick(ListView l, View v, int position, long id) {\r
+               \r
+               Object o = getExpandableListAdapter().getGroup(position);\r
+               \r
+               if ( o == null || ! (o instanceof String) ) {\r
+                       return false;\r
+               }\r
+               final String motorConfigId = (String)o;\r
+               \r
+               AlertDialog.Builder b = new AlertDialog.Builder( getActivity() );\r
+               b.setTitle(R.string.DeleteConfigTitle);\r
+               b.setCancelable(true);\r
+               b.setPositiveButton(R.string.Delete, new DialogInterface.OnClickListener() {\r
+                       @Override\r
+                       public void onClick(DialogInterface dialog, int which) {\r
+                               Configurations.this.removeConfiguration(motorConfigId);\r
+                       }\r
+                       \r
+               });\r
+               \r
+               Dialog dialog = b.create();\r
+               \r
+               dialog.setCanceledOnTouchOutside(true);\r
+               dialog.show();\r
+               return true;\r
+       }\r
+\r
        private class MotorWizardOnClickListener implements View.OnClickListener {\r
                @Override\r
                public void onClick(View v) {\r
index 00ed6d5fcec953ee90a36b215864f750ca45a364..4fab124627fb86bdfcda29a6cbb843a41a589afe 100644 (file)
@@ -51,6 +51,14 @@ ExpandableListView.OnGroupCollapseListener, ExpandableListView.OnGroupExpandList
                        onListItemClick((ListView) parent, v, position, id);\r
                }\r
        };\r
+       \r
+       final private AdapterView.OnItemLongClickListener mOnLongClickListener = new AdapterView.OnItemLongClickListener() {\r
+               @Override\r
+               public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {\r
+                       return onListItemLongClick( (ListView) parent, view, position, id);\r
+               }\r
+               \r
+       };\r
 \r
        ExpandableListAdapter mAdapter;\r
        ExpandableListView mList;\r
@@ -135,6 +143,10 @@ ExpandableListView.OnGroupCollapseListener, ExpandableListView.OnGroupExpandList
        public void onListItemClick(ListView l, View v, int position, long id) {\r
        }\r
 \r
+       public boolean onListItemLongClick(ListView l, View v, int position, long id ) {\r
+               return false;\r
+       }\r
+       \r
        /** Provide the cursor for the list view. */\r
        public void setListAdapter(ExpandableListAdapter adapter) {\r
                boolean hadAdapter = mAdapter != null;\r
@@ -283,6 +295,7 @@ ExpandableListView.OnGroupCollapseListener, ExpandableListView.OnGroupExpandList
                }\r
                mListShown = true;\r
                mList.setOnItemClickListener(mOnClickListener);\r
+               mList.setOnItemLongClickListener(mOnLongClickListener);\r
                if (mAdapter != null) {\r
                        setListAdapter(mAdapter);\r
                } else {\r