Skip to content
Snippets Groups Projects
Commit f1280ac7 authored by Maxime Graulich's avatar Maxime Graulich
Browse files

Android: Parameters are now in an Activity on small screen + fix parameters refresh

parent 25de5123
No related branches found
No related tags found
No related merge requests found
Showing with 77 additions and 47 deletions
......@@ -2,7 +2,7 @@
package="org.geuz.onelab"
android:versionCode="1"
android:versionName="1.0"
android:installLocation="preferExternal"
android:installLocation="auto"
>
<uses-feature android:glEsVersion="0x00010000" android:required="true"></uses-feature>
......@@ -42,6 +42,13 @@
<data android:scheme="file" android:host="*" android:pathPattern=".*\\.pro" android:mimeType="*/*" />
</intent-filter>
</activity>
<activity
android:name=".PostProcessingActivity"
android:label="@string/title_activity_main">
</activity>
<activity
android:name=".OptionsActivity"
android:label="@string/title_activity_options"></activity>
</application>
</manifest>
\ No newline at end of file
......@@ -11,6 +11,7 @@
<FrameLayout android:id="@+id/parameter_fragment"
android:name="org.geuz.onelab.OptionsDisplayFragment"
android:layout_marginTop="48dp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
......
......@@ -2,7 +2,6 @@
<org.geuz.onelab.SeparatedListView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="48dp"
android:id="@+id/displayOptionsList">
......
......@@ -6,8 +6,8 @@
<string name="button_recalculate_param">Recalulate with new parameters</string>
<string name="dialog_title_choosefile">Choose a file</string>
<string name="error_nosdcard">No SDcard found on your device</string>
<string name="title_parameter">Settings</string>
<string name="title_activity_main">Onelab</string>
<string name="title_activity_options">Parameters</string>
<string name="error_nomshfile">No compatible files or directories in this folder</string>
<string name="menu_model">Show the model</string>
<string name="menu_parameters">Parameters</string>
......@@ -17,5 +17,5 @@
<string name="menu_stop">Stop</string>
<string name="postpro_intervalstype">Intervals type</string>
<string name="postpro_intervals">Intervals</string>
<string name="postpro_raizez">Raise (Z)</string>
<string name="postpro_raisez">Raise (Z)</string>
</resources>
\ No newline at end of file
......@@ -17,6 +17,7 @@ import android.graphics.drawable.ColorDrawable;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Parcelable;
import android.app.FragmentTransaction;
import android.view.Menu;
import android.view.MenuItem;
......@@ -63,23 +64,18 @@ public class MainActivity extends Activity{
else
this.finish();
_twoPane = (findViewById(R.id.parameter_fragment) != null);
_modelFragment = ModelFragment.newInstance(_gmsh);
getFragmentManager().beginTransaction().add(R.id.model_fragment, _modelFragment).commit();
if(_twoPane) {
_optionsFragment = OptionsFragment.newInstance(_gmsh);
getFragmentManager().beginTransaction().add(R.id.parameter_fragment, _optionsFragment).commit();
_modelFragment = ModelFragment.newInstance(_gmsh);
getFragmentManager().beginTransaction().add(R.id.model_fragment, _modelFragment).commit();
_optionsFragment.setOnOptionsChangedListener(new OptionsFragment.OnOptionsChangedListener() {
public void OnOptionsChanged() {
_modelFragment.requestRender();
}
});
}
else {
_optionsFragment = OptionsFragment.newInstance(_gmsh);
_modelFragment = ModelFragment.newInstance(_gmsh);
getFragmentManager().beginTransaction().add(R.id.model_fragment, _modelFragment).commit();
}
_optionsFragment.setOnOptionsChangedListener(new OptionsFragment.OnOptionsChangedListener() {
public void OnOptionsChanged() {
_modelFragment.requestRender();
}
});
}
@Override
......@@ -101,18 +97,10 @@ public class MainActivity extends Activity{
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
if (item.getTitle().equals(getString(R.string.menu_parameters))) {
item.setTitle(R.string.menu_model);
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.model_fragment, _optionsFragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.commit();
}
else if (item.getTitle().equals(getString(R.string.menu_model))) {
item.setTitle(R.string.menu_parameters);
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.model_fragment, _modelFragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE);
ft.commit();
Intent intent = new Intent(this, OptionsActivity.class);
intent.putExtra("Gmsh", (Parcelable)_gmsh);
startActivity(intent);
_modelFragment.requestRender();
}
else if(item.getTitle().equals(getString(R.string.menu_run))){
if(_switchFragmentMenuItem != null && _switchFragmentMenuItem.getTitle().equals(getString(R.string.menu_model))) {
......
package org.geuz.onelab;
import android.app.Activity;
import android.os.Bundle;
import android.view.MenuItem;
public class OptionsActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fragment);
Bundle extra = getIntent().getExtras();
Gmsh gmsh = extra.getParcelable("Gmsh");
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setTitle(R.string.title_activity_options);
OptionsFragment optionsFragment = OptionsFragment.newInstance(gmsh);
getFragmentManager().beginTransaction().add(R.id.model_fragment, optionsFragment).commit();
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
if(item.getItemId() == android.R.id.home)
this.finish();
return super.onMenuItemSelected(featureId, item);
}
}
......@@ -43,6 +43,7 @@ public class OptionsModelFragment extends Fragment{
public void refresh() {
if(_gmsh == null) return;
if(_listView != null){ _listView.clear(); params.clear();}
this.getAvailableParam();
if(_listView != null) _listView.refresh();
}
......@@ -51,12 +52,18 @@ public class OptionsModelFragment extends Fragment{
String[] tmp = _gmsh.getParams();
for(String s : tmp){ // for each parameters in ONEALB
boolean found = false;
for(Parameter p : params){ // for each parameters
for(int i = 0; i<params.size(); i++){ // for each parameters
Parameter p = params.get(i);
if(s.split(Character.toString((char)0x03))[2].equals(p.getName())){ // the parameter already exist, just refresh it
if(p.getType().equals("ParameterNumber"))
((ParameterNumber)p).fromString(s);
else if(p.getType().equals("ParameterString"))
((ParameterString)p).fromString(s);
if(p.getType().equals("ParameterNumber")){
if(((ParameterNumber)p).fromString(s) == -1){
params.remove(i);
}
}
else if(p.getType().equals("ParameterString")){
if(((ParameterString)p).fromString(s) == -1)
params.remove(i);
}
found = true;
break;
}
......
......@@ -77,10 +77,9 @@ public class ParameterNumber extends Parameter{
return;
}
if(value == _value) return;
if(mListener != null) mListener.OnParameterChanged();
_changed = true;
_value = value;
this.update();
_changed = true;
if(mListener != null) mListener.OnParameterChanged();
}
public void setMin(double min) {_min = min;this.update();}
public void setMax(double max) {_max = max;this.update();}
......@@ -142,6 +141,8 @@ public class ParameterNumber extends Parameter{
this.update();
return pos;
}
if(_choices != null)_choices.clear();
if(_values != null) _values.clear();
for(int i=0; i<nLabels && nChoix == nLabels; i++)
{
double val = Double.parseDouble(infos[pos++]); // choice
......@@ -164,15 +165,11 @@ public class ParameterNumber extends Parameter{
paramLayout.addView(_spinner);
_spinner.setEnabled(!_readOnly);
_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onNothingSelected(AdapterView<?> arg0) {}
public void onItemSelected(AdapterView<?> parent, View view,
int pos, long id) {
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
setValue(_values.get(pos));
_gmsh.setParam(getType(), getName(), String.valueOf(_values.get(pos)));
}
});
}
else if(_bar != null) {
......
......@@ -80,7 +80,6 @@ public class ParameterString extends Parameter{
public int getIndex() {return _index;}
public ArrayList<String> getChoices() {return _choices;}
public int fromString(String s){
_choices.clear();
int pos = super.fromString(s);
if(pos <= 0) return -1; // error
String[] infos = s.split(Character.toString((char)0x03));
......@@ -91,6 +90,7 @@ public class ParameterString extends Parameter{
int nChoices = Integer.parseInt(infos[pos++]);
if(nChoices < 1 && _kind.equals("generic"))
_edittext = new EditText(_context);
if(_choices != null)_choices.clear();
for(int i=0;i<nChoices;i++) this.addChoices(infos[pos++]);
// ...
setValue(value);
......
......@@ -255,13 +255,17 @@ JNIEXPORT jint JNICALL Java_org_geuz_onelab_Gmsh_setParam
// Get the original param and then change the value
if(strcmp(type,"ParameterNumber") == 0){
std::vector<onelab::number> s;
if(onelab::server::instance()->get(s, name)) s[0].setValue(atof(value));
onelab::server::instance()->set(s[0]);
if(onelab::server::instance()->get(s, name)){
s[0].setValue(atof(value));
onelab::server::instance()->set(s[0]);
}
}
else if(strcmp(type,"ParameterString") == 0){
std::vector<onelab::string> s;
if(onelab::server::instance()->get(s, name)) s[0].setValue(value);
onelab::server::instance()->set(s[0]);
if(onelab::server::instance()->get(s, name)){
s[0].setValue(value);
onelab::server::instance()->set(s[0]);
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment