Added basic configuration

This commit is contained in:
Ziver Koc 2014-07-25 15:18:58 +02:00
parent b305095ab3
commit 1aec61f810
3 changed files with 69 additions and 18 deletions

View file

@ -5,19 +5,22 @@ import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import com.ericsson.uecontrol.R;
import com.ericsson.uecontrol.core.UeBehaviour;
import com.ericsson.uecontrol.core.UeControlExecutor;
import com.ericsson.uecontrol.gui.fragments.ConfigureBehaviourDialog;
import com.ericsson.uecontrol.gui.fragments.SelectBehaviourDialog;
import com.ericsson.uecontrol.gui.util.BehaviourListAdapter;
import com.ericsson.uecontrol.gui.util.Configurator;
import com.ericsson.uecontrol.gui.util.DynamicListView;
import java.util.ArrayList;
import java.util.List;
public class EditActivity extends ListActivity implements View.OnClickListener {
public class EditActivity extends ListActivity implements AdapterView.OnItemClickListener {
private UeControlExecutor executor;
private BehaviourListAdapter adapter;
@ -41,7 +44,7 @@ public class EditActivity extends ListActivity implements View.OnClickListener {
DynamicListView listView = (DynamicListView) findViewById(android.R.id.list);
listView.setAdapter(adapter);
listView.setActionListener(adapter);
listView.setOnClickListener(this);
listView.setOnItemClickListener(this);
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
}
@ -79,9 +82,13 @@ public class EditActivity extends ListActivity implements View.OnClickListener {
return super.onOptionsItemSelected(item);
}
@Override
public void onClick(View view) {
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
final UeBehaviour behaviour = executor.getBehaviourList().get(i);
Configurator confer = new Configurator(behaviour);
ConfigureBehaviourDialog dialog = new ConfigureBehaviourDialog();
dialog.setConfigurator(confer);
dialog.show(getFragmentManager(), "behaviour_configurator");
}
}

View file

@ -10,11 +10,14 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import com.ericsson.uecontrol.R;
import com.ericsson.uecontrol.gui.util.Configurator;
import com.ericsson.uecontrol.gui.util.Configurator.ConfigurationParam;
/**
* Created by ezivkoc on 2014-07-24.
*/
public class ConfigureBehaviourDialog extends DialogFragment {
private Configurator confer;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
@ -22,24 +25,52 @@ public class ConfigureBehaviourDialog extends DialogFragment {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string.configure_behaviour);
LinearLayout root = new LinearLayout(getActivity());
root.setOrientation(LinearLayout.VERTICAL);
root.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT));
for(ConfigurationParam confParam : confer.getConfiguration()){
LinearLayout layout = new LinearLayout(getActivity());
layout.setOrientation(LinearLayout.HORIZONTAL);
layout.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
TextView label = new TextView(getActivity());
label.setText("Test: ");
label.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
layout.addView(label);
EditText input = new EditText(getActivity());
label.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.MATCH_PARENT));
layout.addView(input);
root.addView(layout);
}
builder.setPositiveButton(R.string.action_save, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// User clicked OK button
}
});
builder.setNegativeButton(R.string.action_cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {}
public void onClick(DialogInterface dialog, int id) {
ConfigureBehaviourDialog.this.getDialog().cancel();
}
});
LinearLayout root = new LinearLayout(getActivity());
LinearLayout param = new LinearLayout(getActivity());
param.addView(new TextView(getActivity()));
param.addView(new EditText(getActivity()));
root.addView(param);
builder.setView(root);
return builder.create();
}
public void setConfigurator(Configurator c) {
confer = c;
}
}

View file

@ -40,10 +40,23 @@ public class Configurator {
}
public static ConfigurationParam[] getConfiguration(Class c){
private Object obj;
private ConfigurationParam[] params;
public Configurator(Object obj){
this.obj = obj;
this.params = getConfiguration(obj);
}
public ConfigurationParam[] getConfiguration(){
return params;
}
protected static ConfigurationParam[] getConfiguration(Object obj){
Class c = obj.getClass();
ArrayList<ConfigurationParam> conf = new ArrayList<ConfigurationParam>();
Field[] all = c.getFields();
Field[] all = c.getDeclaredFields();
for(Field f : all){
if(f.isAnnotationPresent(Configurable.class) && !Modifier.isStatic(f.getModifiers())) {
ConfigurationParam confParam = new ConfigurationParam();
@ -52,10 +65,10 @@ public class Configurator {
}
}
return (ConfigurationParam[])conf.toArray();
return conf.toArray(new ConfigurationParam[conf.size()]);
}
public static void setConfiguration(ConfigurationParam[] params, Object obj){
protected static void setConfiguration(ConfigurationParam[] params, Object obj){
for(ConfigurationParam param : params){
try {
param.field.setAccessible(true);