1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-01-29 14:52:12 +01:00

Cleaner editor interface

This commit is contained in:
James Cotton 2011-03-23 11:37:20 -05:00
parent 1a4db33328
commit caeaa0169f
9 changed files with 138 additions and 16 deletions

View File

@ -8,4 +8,4 @@
# project structure.
# Project target.
target=Google Inc.:Google APIs:11
target=Google Inc.:Google APIs:10

View File

@ -2,5 +2,6 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/object_list"></ListView>
<Spinner android:layout_alignParentTop="true" android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/object_list_filter"></Spinner>
<ListView android:id="@+id/object_list" android:layout_height="wrap_content" android:layout_width="match_parent" android:layout_below="@+id/spinner1" android:layout_alignLeft="@+id/spinner1" android:layout_alignRight="@+id/spinner1"></ListView>
</RelativeLayout>

View File

@ -3,7 +3,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView android:layout_height="wrap_content" android:text="ObjectEditor: " android:id="@+id/object_edit_title" android:layout_alignParentTop="true" android:layout_width="wrap_content" android:layout_centerHorizontal="true" android:textStyle="bold"></TextView>
<TextView android:text="" android:id="@+id/object_edit_name" android:layout_toRightOf="@+id/object_edit_title" android:layout_alignTop="@+id/textView1" android:layout_alignBottom="@+id/textView1" android:layout_height="wrap_content" android:layout_width="50dip"></TextView>
<LinearLayout android:id="@+id/object_edit_fields" android:layout_height="match_parent" android:layout_width="match_parent" android:layout_alignParentBottom="true" android:orientation="vertical"></LinearLayout>
<org.openpilot.androidgcs.ObjectEditView android:layout_height="wrap_content" android:text="ObjectEditor: " android:id="@+id/object_edit_view" android:layout_alignParentTop="true" android:layout_width="wrap_content" android:layout_centerHorizontal="true" android:textStyle="bold"></org.openpilot.androidgcs.ObjectEditView>
<Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignParentBottom="true" android:id="@+id/object_edit_send_button" android:text="@string/send_button"></Button>
<Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/object_edit_save_button" android:text="@string/save_button" android:layout_toRightOf="@+id/object_edit_send_button" android:layout_alignTop="@+id/object_edit_send_button" android:layout_alignBottom="@+id/object_edit_send_button"></Button>
</RelativeLayout>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>

View File

@ -21,4 +21,7 @@
<string name="cardinal_south">S</string>
<string name="cardinal_west">W</string>
<string name="connected">Connected</string>
<string name="update_button">Update</string>
<string name="save_button">Save</string>
<string name="send_button">Send</string>
</resources>

View File

@ -74,7 +74,8 @@ public class OPTelemetryService extends Service {
Toast.makeText(getApplicationContext(), "Attempting connection", Toast.LENGTH_SHORT).show();
terminate = false;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(OPTelemetryService.this);
int connection_type = Integer.decode(prefs.getString("connection_type", ""));
//int connection_type = Integer.decode(prefs.getString("connection_type", ""));
int connection_type = 1;
switch(connection_type) {
case 0: // No connection
return;
@ -128,7 +129,7 @@ public class OPTelemetryService extends Service {
mServiceHandler = new ServiceHandler(mServiceLooper);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(OPTelemetryService.this);
if(prefs.getBoolean("autoconnect", false)) {
if(prefs.getBoolean("autoconnect", false) || true) {
Toast.makeText(getApplicationContext(), "Should auto connect", Toast.LENGTH_SHORT);
Message msg = mServiceHandler.obtainMessage();
msg.arg1 = MSG_CONNECT;

View File

@ -17,6 +17,7 @@ import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
@ -46,6 +47,8 @@ public class ObjectBrowser extends ObjectManagerActivity implements OnSharedPref
setContentView(R.layout.object_browser);
prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.registerOnSharedPreferenceChangeListener(this);
Spinner objectFilter = (Spinner) findViewById(R.id.object_list_filter);
}
@Override

View File

@ -0,0 +1,114 @@
package org.openpilot.androidgcs;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
import org.openpilot.uavtalk.UAVObjectField;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
public class ObjectEditView extends LinearLayout {
TextView objectName;
List<View> fields;
public ObjectEditView(Context context) {
super(context);
initObjectEditView();
}
public ObjectEditView(Context context, AttributeSet ats, int defaultStyle) {
super(context, ats);
initObjectEditView();
}
public ObjectEditView(Context context, AttributeSet ats) {
super(context, ats);
initObjectEditView();
}
public void initObjectEditView() {
// Set orientation of layout to vertical
setOrientation(LinearLayout.VERTICAL);
objectName = new TextView(getContext());
objectName.setText("");
objectName.setTextSize(14);
// Lay them out in the compound control.
int lHeight = LayoutParams.WRAP_CONTENT;
int lWidth = LayoutParams.FILL_PARENT;
addView(objectName, new LinearLayout.LayoutParams(lWidth, lHeight));
fields = new ArrayList<View>();
}
public void setName(String name) {
objectName.setText(name);
}
public void addField(UAVObjectField field) {
if(field.getNumElements() == 1) {
FieldValue fieldView = new FieldValue(getContext());
fieldView.setName(field.getName());
if(field.isNumeric()) {
fieldView.setValue(new Double(field.getDouble()).toString());
} else {
fieldView.setValue(field.getValue().toString());
}
fields.add(fieldView);
addView(fieldView, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT));
}
else {
ListIterator<String> names = field.getElementNames().listIterator();
int i = 0;
while(names.hasNext()) {
FieldValue fieldView = new FieldValue(getContext());
fieldView.setName(field.getName() + "-" + names.next());
if(field.isNumeric()) {
fieldView.setValue(new Double(field.getDouble(i)).toString());
} else {
fieldView.setValue(field.getValue(i).toString());
}
i++;
fields.add(fieldView);
addView(fieldView, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT));
}
}
}
public class FieldValue extends LinearLayout {
TextView fieldName;
EditText fieldValue;
public FieldValue(Context context) {
super(context);
setOrientation(LinearLayout.HORIZONTAL);
fieldName = new TextView(getContext());
fieldValue = new EditText(getContext());
// Lay them out in the compound control.
addView(fieldName, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT));
fieldValue.setWidth(300);
addView(fieldValue, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
}
public void setName(String name) {
fieldName.setText(name);
}
public void setValue(String value) {
fieldValue.setText(value);
}
}
}

View File

@ -7,8 +7,6 @@ import org.openpilot.uavtalk.UAVObject;
import org.openpilot.uavtalk.UAVObjectField;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
public class ObjectEditor extends ObjectManagerActivity {
@ -35,17 +33,13 @@ public class ObjectEditor extends ObjectManagerActivity {
UAVObject obj = objMngr.getObject(objectID, instID);
Toast.makeText(getApplicationContext(), obj.toString(), Toast.LENGTH_SHORT);
TextView objectName = (TextView) findViewById(R.id.object_edit_name);
objectName.setText(obj.getName());
ObjectEditView editView = (ObjectEditView) findViewById(R.id.object_edit_view);
editView.setName(obj.getName());
LinearLayout fieldViewList = (LinearLayout) findViewById(R.id.object_edit_fields);
List<UAVObjectField> fields = obj.getFields();
ListIterator<UAVObjectField> li = fields.listIterator();
while(li.hasNext()) {
UAVObjectField field = li.next();
TextView fieldName = new TextView(this);
fieldName.setText(field.getName());
fieldViewList.addView(fieldName);
editView.addField(li.next());
}
}