diff --git a/Common/Gmsh.cpp b/Common/Gmsh.cpp index d9e6dae97235a3c7502dfd5affa8995e0e394b29..2c643f64efd481e9ce373f8369156bff92bfb092 100644 --- a/Common/Gmsh.cpp +++ b/Common/Gmsh.cpp @@ -132,6 +132,24 @@ int GmshSetOption(const std::string &category, const std::string &name, return ColorOption(GMSH_SET|GMSH_GUI, category.c_str(), index, name.c_str(), value); } +void GmshSetStringOption(const std::string &category, const std::string &name, + std::string value, int index) +{ + StringOption(GMSH_SET|GMSH_GUI, category.c_str(), index, name.c_str(), value); +} + +void GmshSetNumberOption(const std::string &category, const std::string &name, + double value, int index) +{ + NumberOption(GMSH_SET|GMSH_GUI, category.c_str(), index, name.c_str(), value); +} + +void GmshSetColorOption(const std::string &category, const std::string &name, + unsigned int value, int index) +{ + ColorOption(GMSH_SET|GMSH_GUI, category.c_str(), index, name.c_str(), value); +} + int GmshGetOption(const std::string &category, const std::string &name, std::string &value, int index) { @@ -150,6 +168,30 @@ int GmshGetOption(const std::string &category, const std::string &name, return ColorOption(GMSH_GET, category.c_str(), index, name.c_str(), value); } +std::string GmshGetStringOption(const std::string &category, const std::string &name, + int index) +{ + std::string value; + StringOption(GMSH_GET, category.c_str(), index, name.c_str(), value); + return value; +} + +double GmshGetNumberOption(const std::string &category, const std::string &name, + int index) +{ + double value; + NumberOption(GMSH_GET, category.c_str(), index, name.c_str(), value); + return value; +} + +int GmshGetColorOption(const std::string &category, const std::string &name, + int index) +{ + unsigned int value; + ColorOption(GMSH_GET, category.c_str(), index, name.c_str(), value); + return value; +} + int GmshRestoreDefaultOptions() { ReInitOptions(0); diff --git a/Common/Gmsh.h b/Common/Gmsh.h index e6245c412c87e8fcca6cffb0e0e88cb40d0023c3..0d1f89d8f8956e484d6af0bfa3f99f0ab91e1e39 100644 --- a/Common/Gmsh.h +++ b/Common/Gmsh.h @@ -21,12 +21,24 @@ int GmshSetOption(const std::string &category, const std::string &name, double value, int index=0); int GmshSetOption(const std::string &category, const std::string &name, unsigned int value, int index=0); +void GmshSetStringOption(const std::string &category, const std::string &name, + std::string value, int index=0); +void GmshSetNumberOption(const std::string &category, const std::string &name, + double value, int index=0); +void GmshSetColorOption(const std::string &category, const std::string &name, + unsigned int value, int index=0); int GmshGetOption(const std::string &category, const std::string &name, std::string &value, int index=0); int GmshGetOption(const std::string &category, const std::string &name, double &value, int index=0); int GmshGetOption(const std::string &category, const std::string &name, unsigned int &value, int index=0); +std::string GmshGetStringOption(const std::string &category, const std::string &name, + int index=0); +double GmshGetNumberOption(const std::string &category, const std::string &name, + int index=0); +unsigned int GmshGetColorOption(const std::string &category, const std::string &name, + int index=0); int GmshRestoreDefaultOptions(); int GmshOpenProject(const std::string &fileName); int GmshClearProject(); diff --git a/contrib/mobile/Android/AndroidManifest.xml b/contrib/mobile/Android/AndroidManifest.xml index aea03b4134e5d56cef8e1dca72dc240594eea918..012dc103e63413291057a8da400e60b26920bfc4 100644 --- a/contrib/mobile/Android/AndroidManifest.xml +++ b/contrib/mobile/Android/AndroidManifest.xml @@ -1,7 +1,7 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.geuz.onelab" - android:versionCode="6" - android:versionName="1.0.7" + android:versionCode="7" + android:versionName="1.0.8" android:installLocation="auto" > <uses-sdk android:minSdkVersion="14" diff --git a/contrib/mobile/Android/res/layout/fragment_postprocessing.xml b/contrib/mobile/Android/res/layout/fragment_postprocessing.xml index 52641104c4c86210fc941ed5580503e5407475b7..20d5adc76ba96bd319ed764221b2a410da2fdcc4 100644 --- a/contrib/mobile/Android/res/layout/fragment_postprocessing.xml +++ b/contrib/mobile/Android/res/layout/fragment_postprocessing.xml @@ -1,38 +1,33 @@ <?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" - android:orientation="vertical" - android:padding="15dp" > - - <TextView - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="@string/postpro_intervalstype" /> - <Spinner - android:id="@+id/intervals_type" - android:layout_width="match_parent" - android:layout_height="wrap_content" /> - - <TextView - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="@string/postpro_intervals" /> - <EditText - android:id="@+id/intervals" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:inputType="number" - android:digits="0123456789" /> - - <TextView - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="@string/postpro_raisez" /> - <SeekBar - android:id="@+id/raisez" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:max="5" /> - -</LinearLayout> \ No newline at end of file + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + android:padding="15dp" > + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/postpro_intervalstype" /> + <Spinner + android:id="@+id/intervals_type" + android:layout_width="match_parent" + android:layout_height="wrap_content" /> + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/postpro_intervals" /> + <SeekBar + android:id="@+id/intervals" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:max="100" /> + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/postpro_raisez" /> + <SeekBar + android:id="@+id/raisez" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:max="100" /> +</LinearLayout> diff --git a/contrib/mobile/Android/res/layout/splash.xml b/contrib/mobile/Android/res/layout/splash.xml index 4091ae15ed8d559215719d311ddfd17aa59a4b8a..18ce46253b1af86b13ca9eb92d887733b5de5c19 100644 --- a/contrib/mobile/Android/res/layout/splash.xml +++ b/contrib/mobile/Android/res/layout/splash.xml @@ -1,7 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" - android:layout_height="match_parent" > + android:layout_height="match_parent" + android:background="@color/black"> <ImageView android:id="@+id/splashImage" android:layout_centerInParent="true" android:layout_width="wrap_content" diff --git a/contrib/mobile/Android/res/values/colors.xml b/contrib/mobile/Android/res/values/colors.xml new file mode 100644 index 0000000000000000000000000000000000000000..4dd336640c4cc1f17c33cbc1cba454265789c88c --- /dev/null +++ b/contrib/mobile/Android/res/values/colors.xml @@ -0,0 +1,3 @@ +<resources> + <color name="black">#ff000000</color> +</resources> diff --git a/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java b/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java index ba1589247e96ce10cf247380c7d41a0a750e11d0..3d4b9d472006c1a91a2c2aa24145166d35181ccf 100644 --- a/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java +++ b/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java @@ -37,10 +37,6 @@ public class Gmsh implements Parcelable { public native int getIntegerOption(String category, String name, int index); // call onelab public native int onelabCB(String action); - // FIXME: to be removed soon - public native String[] getPView(); - public native void setPView(int position, int intervalsType, int visible, - int nbIso, float raisez); public boolean haveAnimation() { return numberOfAnimation() > 1; } public native int numberOfAnimation(); public native int animationNext(); diff --git a/contrib/mobile/Android/src/org/geuz/onelab/OptionsDisplayFragment.java b/contrib/mobile/Android/src/org/geuz/onelab/OptionsDisplayFragment.java index 25e7254a2d65b3bf50f52c6615885b4bb549b4ab..004b228eb265c23b05c06ade4fa0824b814dee16 100644 --- a/contrib/mobile/Android/src/org/geuz/onelab/OptionsDisplayFragment.java +++ b/contrib/mobile/Android/src/org/geuz/onelab/OptionsDisplayFragment.java @@ -50,44 +50,45 @@ public class OptionsDisplayFragment extends Fragment{ container, false); CheckBox showGeomPoints = new CheckBox(_listView.getContext()); showGeomPoints.setText("Show geometry points"); - showGeomPoints.setChecked((_gmsh.getDoubleOption("Geometry", "Points", 0) > 0.)); + showGeomPoints.setChecked(_gmsh.getDoubleOption("Geometry", "Points", 0) > 0.); showGeomPoints.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { _gmsh.setDoubleOption("Geometry", "Points", (isChecked)?1. : 0., 0); if(mListener != null) mListener.OnModelOptionsChanged(); } }); - _listView.addItem("Display", showGeomPoints); + _listView.addItem("Display Options", showGeomPoints); CheckBox showGeomLines = new CheckBox(_listView.getContext()); showGeomLines.setText("Show geometry lines"); - showGeomLines.setChecked((_gmsh.getDoubleOption("Geometry", "Lines", 0) > 0.)); + showGeomLines.setChecked(_gmsh.getDoubleOption("Geometry", "Lines", 0) > 0.); showGeomLines.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { _gmsh.setDoubleOption("Geometry", "Lines", (isChecked)?1. : 0., 0); if(mListener != null) mListener.OnModelOptionsChanged(); } }); - _listView.addItem("Display", showGeomLines); + _listView.addItem("Display Options", showGeomLines); CheckBox showMeshSurfaceEdges = new CheckBox(_listView.getContext()); showMeshSurfaceEdges.setText("Show mesh surface edges"); - showMeshSurfaceEdges.setChecked((_gmsh.getDoubleOption("Mesh", "SurfaceEdges", 0) > 0.)); + showMeshSurfaceEdges.setChecked(_gmsh.getDoubleOption("Mesh", "SurfaceEdges", 0) > 0.); showMeshSurfaceEdges.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { _gmsh.setDoubleOption("Mesh", "SurfaceEdges", (isChecked)?1. : 0., 0); if(mListener != null) mListener.OnModelOptionsChanged(); } }); - _listView.addItem("Display", showMeshSurfaceEdges); + _listView.addItem("Display Options", showMeshSurfaceEdges); CheckBox showMeshVolumesEdges = new CheckBox(_listView.getContext()); showMeshVolumesEdges.setText("Show mesh volume edges"); - showMeshVolumesEdges.setChecked((_gmsh.getDoubleOption("Mesh", "VolumeEdges", 0) > 0.)); - showMeshVolumesEdges.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + showMeshVolumesEdges.setChecked(_gmsh.getDoubleOption("Mesh", "VolumeEdges", 0) > 0.); + showMeshVolumesEdges.setOnCheckedChangeListener + (new CompoundButton.OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { _gmsh.setDoubleOption("Mesh", "VolumeEdges", (isChecked)?1. : 0., 0); if(mListener != null) mListener.OnModelOptionsChanged(); } }); - _listView.addItem("Display", showMeshVolumesEdges); + _listView.addItem("Display Options", showMeshVolumesEdges); this.refresh(); return _listView; } @@ -95,36 +96,34 @@ public class OptionsDisplayFragment extends Fragment{ public void refresh() { if(_gmsh == null) return; - String[] PViews = _gmsh.getPView(); - for(int i=0; i<_listView.itemsCountInSection("Result"); i++) { - View v = (View)_listView.getItemAtPosition(6+i); + int nbviews = (int)_gmsh.getDoubleOption("PostProcessing", "NbViews", 0); + + for(int i = 0; i<_listView.itemsCountInSection("Result Options"); i++) { + View v = (View)_listView.getItemAtPosition(6 + i); if(!v.getClass().equals(LinearLayout.class)) continue; - for(int j=0; j<((LinearLayout)v).getChildCount(); j++) { + for(int j = 0; j < ((LinearLayout)v).getChildCount(); j++) { View sv = ((LinearLayout)v).getChildAt(j); if(sv.getClass().equals(CheckBox.class)){ - String[] infos = PViews[i].split("\n"); - ((CheckBox)sv).setChecked(infos[2].equals("1")); + ((CheckBox)sv).setChecked(_gmsh.getDoubleOption("View", "Visible", i) > 0.); } } } - for(int i=_listView.itemsCountInSection("Result"); i < PViews.length;i++) { - // name / IntervalsType (1=Iso 2=Continous 3=Discrete 4=Numeric) - String[] infos = PViews[i].split("\n"); + for(int i = _listView.itemsCountInSection("Result Options"); i < nbviews; i++) { final int myID = i; LinearLayout layout = new LinearLayout(_listView.getContext()); CheckBox checkbox = new CheckBox(_listView.getContext()); checkbox.setLayoutParams(new AbsListView.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); - checkbox.setText(infos[0]); - checkbox.setChecked(infos[2].equals("1")); + checkbox.setText(_gmsh.getStringOption("View", "Name", myID)); + checkbox.setChecked(_gmsh.getDoubleOption("View", "Visible", myID) > 0.); checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - _gmsh.setPView(myID, -1, (isChecked)? 1 : 0, -1, -1); + _gmsh.setDoubleOption("View", "Visible", isChecked ? 1. : 0., myID); if(mListener != null) mListener.OnModelOptionsChanged(); } }); Button button = new Button(_listView.getContext()); - button.setText("More options >"); + button.setText(">"); button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Intent intent = new Intent(getActivity(), PostProcessingActivity.class); @@ -140,7 +139,7 @@ public class OptionsDisplayFragment extends Fragment{ button.setGravity(Gravity.RIGHT); layout.addView(checkbox); layout.addView(button); - _listView.addItem("Result", layout); + _listView.addItem("Result Options", layout); } } diff --git a/contrib/mobile/Android/src/org/geuz/onelab/OptionsPostProcessingFragment.java b/contrib/mobile/Android/src/org/geuz/onelab/OptionsPostProcessingFragment.java index 42570e843292ef6cb912d8fcaeb30cfbc68c9dbe..1912b9b0f1338e2ce587a646c216f9c8ef51bea1 100644 --- a/contrib/mobile/Android/src/org/geuz/onelab/OptionsPostProcessingFragment.java +++ b/contrib/mobile/Android/src/org/geuz/onelab/OptionsPostProcessingFragment.java @@ -1,6 +1,7 @@ package org.geuz.onelab; import java.util.ArrayList; +import java.lang.Math; import android.app.Fragment; import android.content.Context; @@ -50,25 +51,11 @@ public class OptionsPostProcessingFragment extends Fragment{ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - String[] PViews = _gmsh.getPView(); - String[] infos = PViews[_pview].split("\n"); - getActivity().getActionBar().setTitle(infos[0]); + getActivity().getActionBar().setTitle(_gmsh.getStringOption("View", "Name", _pview)); LinearLayout layout = (LinearLayout)inflater.inflate(R.layout.fragment_postprocessing, container, false); final Spinner intervalsType = (Spinner)layout.findViewById(R.id.intervals_type); - final EditText intervals = (EditText)layout.findViewById(R.id.intervals); - final SeekBar raiseZ = (SeekBar)layout.findViewById(R.id.raisez); - raiseZ.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { - public void onStopTrackingTouch(SeekBar seekBar) { - _gmsh.setPView(_pview, -1, -1, -1, seekBar.getProgress()); - } - // UNUSED Auto-generated method stub - public void onStartTrackingTouch(SeekBar seekBar) {} - // UNUSED Auto-generated method stub - public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { } - }); - raiseZ.setProgress(Integer.parseInt(infos[4])); - intervalsType.setEnabled(infos[2].equals("1")); + intervalsType.setEnabled(_gmsh.getDoubleOption("View", "Visible", _pview) > 0.); ArrayList<String> choices; ArrayAdapter<String> adapter; choices = new ArrayList<String>(); @@ -79,53 +66,53 @@ public class OptionsPostProcessingFragment extends Fragment{ android.R.layout.simple_spinner_dropdown_item, choices); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); intervalsType.setAdapter(adapter); - intervalsType.setSelection(Integer.parseInt(infos[1])-1); + intervalsType.setSelection((int)_gmsh.getDoubleOption("View", "IntervalsType", _pview) - 1); intervalsType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { - _gmsh.setPView(_pview, pos+1, -1, -1, -1); + _gmsh.setDoubleOption("View", "IntervalsType", pos + 1, _pview); // TODO glView.requestRender(); - intervals.setEnabled(pos == 0 || pos == 2); } // Unused Auto-generated method stub public void onNothingSelected(AdapterView<?> arg0) {} }); - intervals.setText(infos[3]); - intervals.setOnKeyListener(new View.OnKeyListener() { - public boolean onKey(View v, int keyCode, KeyEvent event) { - if(keyCode == KeyEvent.KEYCODE_ENTER){ // hide the keyboard - InputMethodManager imm = (InputMethodManager)intervals.getContext() - .getSystemService(Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(intervals.getWindowToken(), 0); - return true; - } - return false; + + final SeekBar intervals = (SeekBar)layout.findViewById(R.id.intervals); + intervals.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + public void onStopTrackingTouch(SeekBar seekBar) { + double d = seekBar.getProgress(); + if(d < 1.) d = 1.; + _gmsh.setDoubleOption("View", "NbIso", d, _pview); } + // UNUSED Auto-generated method stub + public void onStartTrackingTouch(SeekBar seekBar) {} + // UNUSED Auto-generated method stub + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { } }); - intervals.addTextChangedListener(new TextWatcher() { - public void onTextChanged(CharSequence s, int start, int before, int count) { - int nIso = 1; - try { - if(s.length() < 1) nIso = 1; - else nIso = Integer.parseInt(s.toString()); - } - catch(NumberFormatException e){ - nIso = 1; - intervals.setText(""); - } - if(nIso > 1000) { - _gmsh.setPView(_pview, -1, -1, 1000, -1); intervals.setText("1000"); - } - else if(nIso > 0) - _gmsh.setPView(_pview, -1, -1, nIso, -1); - else - _gmsh.setPView(_pview, -1, -1, 1, -1); + intervals.setProgress((int)_gmsh.getDoubleOption("View", "NbIso", _pview)); + + final SeekBar raiseZ = (SeekBar)layout.findViewById(R.id.raisez); + raiseZ.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + public void onStopTrackingTouch(SeekBar seekBar) { + double maxval = Math.max(Math.abs(_gmsh.getDoubleOption("View", "Min", _pview)), + Math.abs(_gmsh.getDoubleOption("View", "Max", _pview))); + if(maxval == 0.) maxval = 1.; + double val2 = 2. * _gmsh.getDoubleOption("General", "BoundingBoxSize", 0) / maxval; + // map [0,100] to [-val2,val2] + double d = 2 * val2 * (seekBar.getProgress() / 100. - 0.5); + _gmsh.setDoubleOption("View", "RaiseZ", d, _pview); } // UNUSED Auto-generated method stub - public void beforeTextChanged(CharSequence s, int start, int count, int after) {} + public void onStartTrackingTouch(SeekBar seekBar) {} // UNUSED Auto-generated method stub - public void afterTextChanged(Editable s) {} + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { } }); - + double maxval = Math.max(Math.abs(_gmsh.getDoubleOption("View", "Min", _pview)), + Math.abs(_gmsh.getDoubleOption("View", "Max", _pview))); + if(maxval == 0.) maxval = 1.; + double val2 = 2. * _gmsh.getDoubleOption("General", "BoundingBoxSize", 0) / maxval; + // map [-val2,val2] to [0,100] + double d = 100. * (_gmsh.getDoubleOption("View", "RaiseZ", _pview) / (2 * val2) + 0.5); + raiseZ.setProgress((int)d); return layout; } } diff --git a/contrib/mobile/Android/src/org/geuz/onelab/ParameterNumber.java b/contrib/mobile/Android/src/org/geuz/onelab/ParameterNumber.java index 402628fd266acb8d52af4bc8c211481d4ee2977c..523113c6212063f5377c078fd8fde9ad11bd678e 100644 --- a/contrib/mobile/Android/src/org/geuz/onelab/ParameterNumber.java +++ b/contrib/mobile/Android/src/org/geuz/onelab/ParameterNumber.java @@ -64,13 +64,13 @@ public class ParameterNumber extends Parameter { { super.update(); if(_bar != null) { - _title.setText(getShortName() + " (" + formatDouble(_value)+ ")"); + _title.setText(getShortName() + " (" + formatDouble(_value) + ")"); _bar.setMax(100); _bar.setProgress((int)(100*(_value-_min)/(_max-_min))); _bar.setEnabled(!this.isReadOnly()); } else if(_spinner != null) { - for(int i=0;i<_choices.size();i++) + for(int i = 0; i < _choices.size(); i++) if(_values.get(i) == _value) _spinner.setSelection(i, true); } @@ -79,7 +79,7 @@ public class ParameterNumber extends Parameter { _checkbox.setChecked((_value == 0)? false : true); } else if(_edittext != null) { - _edittext.setText(""+formatDouble(_value)); + _edittext.setText("" + formatDouble(_value)); } else if(_stepper != null) { _stepper.setMaximum((int)Math.round(_max)); @@ -89,19 +89,15 @@ public class ParameterNumber extends Parameter { } public void setValue(double value) { - if(value < _min || value > _max) { - //Log.w("ParameterNumber", "Incorect value "+value+" (max="+_max+" min="+_min+")"); - return; - } if(value == _value) return; _value = value; _changed = true; _gmsh.setParam(getType(), getName(), String.valueOf(value)); if(mListener != null) mListener.OnParameterChanged(); } - public void setMin(double min) {_min = min;this.update();} - public void setMax(double max) {_max = max;this.update();} - public void setStep(double step) {_step = step;this.update();} + public void setMin(double min) { _min = min; this.update(); } + public void setMax(double max) { _max = max; this.update(); } + public void setStep(double step) { _step = step;this.update(); } public void addChoice(double choice, String value) { if(_values == null) { @@ -246,9 +242,7 @@ public class ParameterNumber extends Parameter { public void onStopTrackingTouch(SeekBar seekBar) { setValue(getMin() + (getMax() - getMin())*seekBar.getProgress()/100); } - public void onStartTrackingTouch(SeekBar seekBar) {} - public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {} }); } @@ -257,7 +251,6 @@ public class ParameterNumber extends Parameter { paramLayout.addView(_checkbox); _checkbox.setEnabled(!_readOnly); _checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { setValue((isChecked)? 1 : 0); } @@ -314,7 +307,10 @@ public class ParameterNumber extends Parameter { return paramLayout; } private OnParameterChangedListener mListener; - public void setOnParameterChangedListener(OnParameterChangedListener listener) { mListener = listener;} + public void setOnParameterChangedListener(OnParameterChangedListener listener) + { + mListener = listener; + } public interface OnParameterChangedListener { void OnParameterChanged(); diff --git a/contrib/mobile/Android/src/org/geuz/onelab/ParameterString.java b/contrib/mobile/Android/src/org/geuz/onelab/ParameterString.java index 9103f3c0d47448bbef093a22cbdbfc7b05669039..c3c0ce4680e970e07aac92dbf57dba62c8c17feb 100644 --- a/contrib/mobile/Android/src/org/geuz/onelab/ParameterString.java +++ b/contrib/mobile/Android/src/org/geuz/onelab/ParameterString.java @@ -16,7 +16,7 @@ import android.widget.Spinner; public class ParameterString extends Parameter{ - private String _kind; + private String _kind; private int _index; private ArrayList<String> _choices; private ArrayAdapter<String> _adapter; diff --git a/contrib/mobile/androidGModel.cpp b/contrib/mobile/androidGModel.cpp index fe8bfbf596b753b2b137c45686086453bc1a0d61..00799ea45ba8ad51435926cf0fef62c329fc82fa 100644 --- a/contrib/mobile/androidGModel.cpp +++ b/contrib/mobile/androidGModel.cpp @@ -1,3 +1,5 @@ +#undef NDEBUG + #ifndef NDEBUG #include <android/log.h> #define LOG_TAG "Gmsh" @@ -174,7 +176,7 @@ extern "C" { tmp = env->GetStringUTFChars(c, NULL); std::string category(tmp, strlen(tmp)); env->ReleaseStringUTFChars(c, tmp); - GmshSetOption(category, name, value, (unsigned int)idx); + GmshSetStringOption(category, name, value, (int)idx); } JNIEXPORT jint JNICALL Java_org_geuz_onelab_Gmsh_setDoubleOption (JNIEnv *env, jobject obj, jstring c, jstring n, jdouble v, jint idx) @@ -186,7 +188,7 @@ extern "C" { tmp = env->GetStringUTFChars(c, NULL); const std::string category(tmp, strlen(tmp)); env->ReleaseStringUTFChars(c, tmp); - GmshSetOption(category, name, (double)v, (unsigned int)idx); + GmshSetNumberOption(category, name, (double)v, (int)idx); } JNIEXPORT jint JNICALL Java_org_geuz_onelab_Gmsh_setIntegerOption (JNIEnv *env, jobject obj, jstring c, jstring n, jint v, jint idx) @@ -198,7 +200,7 @@ extern "C" { tmp = env->GetStringUTFChars(c, NULL); const std::string category(tmp, strlen(tmp)); env->ReleaseStringUTFChars(c, tmp); - GmshSetOption(category, name, (unsigned int)v, (unsigned int)idx); + GmshSetColorOption(category, name, (unsigned int)v, (int)idx); } JNIEXPORT jstring JNICALL Java_org_geuz_onelab_Gmsh_getStringOption (JNIEnv *env, jobject obj, jstring c, jstring n, jint idx) @@ -209,10 +211,10 @@ extern "C" { env->ReleaseStringUTFChars(n, tmp); tmp = env->GetStringUTFChars(c, NULL); const std::string category(tmp, strlen(tmp)); + env->ReleaseStringUTFChars(c, tmp); std::string value; - GmshGetOption(category, name, value, (unsigned int)idx); + value = GmshGetStringOption(category, name, (int)idx); return env->NewStringUTF(value.c_str()); - } JNIEXPORT jdouble JNICALL Java_org_geuz_onelab_Gmsh_getDoubleOption (JNIEnv *env, jobject obj, jstring c, jstring n, jint idx) @@ -223,8 +225,7 @@ extern "C" { env->ReleaseStringUTFChars(n, tmp); tmp = env->GetStringUTFChars(c, NULL); const std::string category(tmp, strlen(tmp)); - double value; - GmshGetOption(category, name, value, (unsigned int)idx); + double value = GmshGetNumberOption(category, name, (int)idx); return value; } JNIEXPORT jint JNICALL Java_org_geuz_onelab_Gmsh_getIntegerOption @@ -236,18 +237,16 @@ extern "C" { env->ReleaseStringUTFChars(n, tmp); tmp = env->GetStringUTFChars(c, NULL); const std::string category(tmp, strlen(tmp)); - unsigned int value; - GmshGetOption(category, name, value, (unsigned int)idx); + unsigned int value = GmshGetColorOption(category, name, (int)idx); return value; } - JNIEXPORT jobjectArray JNICALL Java_org_geuz_onelab_Gmsh_getParams (JNIEnv *env, jobject obj) { jclass stringClass = env->FindClass( "java/lang/String" ); std::vector<std::string> tmp = onelab::server::instance()->toChar(); - for(unsigned int i=0;i<tmp.size();i++) - for(unsigned int j=0; j<tmp[i].size();j++) + for(unsigned int i = 0; i < tmp.size(); i++) + for(unsigned int j = 0; j < tmp[i].size(); j++) if(tmp[i][j] == '\0') tmp[i][j] = 0x03; jobjectArray params = env->NewObjectArray(tmp.size(), stringClass, 0); for(int i=0; i<tmp.size();i++){ @@ -257,7 +256,6 @@ extern "C" { } return params; } - JNIEXPORT jint JNICALL Java_org_geuz_onelab_Gmsh_setParam (JNIEnv *env, jobject obj, jstring jtype, jstring jname, jstring jvalue) { @@ -265,14 +263,14 @@ extern "C" { const char *name = env->GetStringUTFChars(jname, NULL); const char *value = env->GetStringUTFChars(jvalue, NULL); // Get the original param and then change the value - if(strcmp(type,"ParameterNumber") == 0){ + 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]); } } - else if(strcmp(type,"ParameterString") == 0){ + else if(strcmp(type, "ParameterString") == 0){ std::vector<onelab::string> s; if(onelab::server::instance()->get(s, name)){ s[0].setValue(value); @@ -281,35 +279,6 @@ extern "C" { } } - JNIEXPORT jobjectArray JNICALL Java_org_geuz_onelab_Gmsh_getPView - (JNIEnv *env, jobject obj) - { - jclass stringClass = env->FindClass( "java/lang/String" ); - jobjectArray jPView = env->NewObjectArray(PView::list.size(), stringClass, 0); - for(unsigned int i = 0; i < PView::list.size(); i++){ - std::ostringstream sstream; - sstream << PView::list[i]->getData()->getName().c_str() - << "\n" << PView::list[i]->getOptions()->intervalsType - << "\n" << ((PView::list[i]->getOptions()->visible) ? 1 : 0) - << "\n" << PView::list[i]->getOptions()->nbIso - << "\n" << PView::list[i]->getOptions()->raise[2]; - jstring s = env->NewStringUTF(sstream.str().c_str()); - env->SetObjectArrayElement(jPView, i, s); - env->DeleteLocalRef(s); - } - return jPView; - } - - JNIEXPORT void JNICALL Java_org_geuz_onelab_Gmsh_setPView - (JNIEnv *env, jobject, jint pos, jint intervalsType, jint visible, jint nIntervals, jfloat raisez) - { - if(intervalsType > 0 && intervalsType < 4) PView::list[pos]->getOptions()->intervalsType = intervalsType; - if(visible >= 0) PView::list[pos]->getOptions()->visible = visible; - if(nIntervals > 0) PView::list[pos]->getOptions()->nbIso = nIntervals; - if(raisez>=0) PView::list[pos]->getOptions()->raise[2] = raisez; - PView::list[pos]->setChanged(true); - } - JNIEXPORT jint JNICALL Java_org_geuz_onelab_Gmsh_onelabCB (JNIEnv *env, jobject obj, jstring jaction) { diff --git a/contrib/mobile/androidGModel.h b/contrib/mobile/androidGModel.h index 95c68751420a8ca27d0d287cde959e33bca33b6e..58a6060ee2e759e789aaf554c6d40a91f7a79d78 100644 --- a/contrib/mobile/androidGModel.h +++ b/contrib/mobile/androidGModel.h @@ -35,10 +35,6 @@ JNIEXPORT jobjectArray JNICALL Java_org_geuz_onelab_Gmsh_getParams (JNIEnv *, jobject); JNIEXPORT jint JNICALL Java_org_geuz_onelab_Gmsh_setParam (JNIEnv *, jobject, jstring, jstring, jstring); -JNIEXPORT jobjectArray JNICALL Java_org_geuz_onelab_Gmsh_getPView - (JNIEnv *, jobject); -JNIEXPORT void JNICALL Java_org_geuz_onelab_Gmsh_setPView - (JNIEnv *, jobject, jint, jint, jint, jint, jfloat); JNIEXPORT jint JNICALL Java_org_geuz_onelab_Gmsh_onelabCB (JNIEnv *, jobject, jstring); JNIEXPORT jint JNICALL Java_org_geuz_onelab_Gmsh_numberOfAnimation diff --git a/contrib/mobile/utils/onelab_android_build.sh b/contrib/mobile/utils/onelab_android_build.sh index a8c64b06ddd538df1282745ac93d3ba8023986fe..032273222ff2562e20c7b03c749f4ceb02bc0879 100755 --- a/contrib/mobile/utils/onelab_android_build.sh +++ b/contrib/mobile/utils/onelab_android_build.sh @@ -98,6 +98,9 @@ while read line; do target=$(($target+1)) done < <($android_sdk/tools/android list target | grep -A 5 "id:") +# to sign the APK: +# cp utils/ant.properties build_android/Onelab/ + # to re-install on the device: # $android_sdk/platform-tools/adb install -r $gmsh_svn/contrib/mobile/build_android/Onelab/bin/Onelab-release.apk