JaRMoS  1.1
Java Reduced Model Simulations
 All Classes Namespaces Files Functions Variables Enumerator Groups Pages
ShowModelActivity.java
Go to the documentation of this file.
1 package jarmos.app.activity;
2 
3 import jarmos.Log;
4 import jarmos.ModelType;
7 import android.app.AlertDialog;
8 import android.app.Dialog;
9 import android.app.TabActivity;
10 import android.content.DialogInterface;
11 import android.content.Intent;
12 import android.content.res.ColorStateList;
13 import android.graphics.Color;
14 import android.os.Bundle;
15 import android.text.SpannableString;
16 import android.text.method.LinkMovementMethod;
17 import android.text.util.Linkify;
18 import android.widget.TabHost;
19 import android.widget.TextView;
20 import android.widget.Toast;
21 
32 public class ShowModelActivity extends TabActivity {
33 
34  static final int ABOUT_DIALOG_ID = 0;
35  static final int HELP_DIALOG_ID = 1;
36 
40  protected void onCreate(Bundle savedInstanceState) {
41  super.onCreate(savedInstanceState);
42 
43  final TabHost tabHost = getTabHost();
44 
45  tabHost.setup();
46 
47  // set up formatting for text labels
48  TextView label1 = new TextView(this);
49  label1.setGravity(android.view.Gravity.CENTER);
50  label1.setTextSize(16);
51  label1.setLines(4);
52  label1.setTextColor(new ColorStateList(new int[][] { new int[] { android.R.attr.state_selected }, new int[0] },
53  new int[] { Color.WHITE, Color.GRAY, }));
54  label1.setSelected(true);
55 
56  TextView label2 = new TextView(this);
57  label2.setGravity(android.view.Gravity.CENTER);
58  label2.setTextSize(16);
59  label2.setTextColor(new ColorStateList(new int[][] { new int[] { android.R.attr.state_selected }, new int[0] },
60  new int[] { Color.WHITE, Color.GRAY, }));
61  label2.setSelected(false);
62 
63  // add tabs
64  TabHost.TabSpec one = tabHost.newTabSpec("tab 1");
65  label1.setText("About ");
66  one.setIndicator(label1);
67  Intent intentOne = new Intent(ShowModelActivity.this, BrowseActivity.class);
68  intentOne.putExtras(getIntent().getExtras());
69  one.setContent(intentOne);
70  tabHost.addTab(one);
71 
72  TabHost.TabSpec two = tabHost.newTabSpec("tab 2");
73  label2.setText("Solve problem");
74  two.setIndicator(label2);
75  Intent intentTwo = null;
76 
77  // Using the intent field "ModelType" here avoids instantiation of a new AModelManager..
78  ModelType mt = (ModelType) getIntent().getSerializableExtra("ModelType");
79  if (mt == ModelType.JRB || mt == ModelType.rbappmit) {
80  intentTwo = new Intent(ShowModelActivity.this, RBActivity.class);
81  } else if (mt == ModelType.JKerMor) {
82  intentTwo = new Intent(ShowModelActivity.this, SimulationActivity.class);
83  } else {
84  Log.e("ShowModelActitity", "Unknown model type: " + mt);
85  Toast.makeText(this, "Unknown model type: " + mt, Toast.LENGTH_LONG).show();
86  finish();
87  return;
88  }
89  intentTwo.putExtras(getIntent().getExtras());
90  two.setContent(intentTwo);
91  tabHost.addTab(two);
92 
93  // set which tab has initial focus
94  tabHost.setCurrentTab(0);
95  }
96 
100  public void onBackPressed() {
101  setResult(0);
102  getLocalActivityManager().removeAllActivities();
103  finish();
104  }
105 
106  // /**
107  // * Re-populates the main menu every time it is brought up depending on
108  // * whether help should be displayed
109  // */
110  // public boolean onPrepareOptionsMenu(Menu menu) {
111  //
112  // menu.clear();
113  // MenuInflater inflater = getMenuInflater();
114  // if (getTabHost().getCurrentTab() == 0)
115  // inflater.inflate(R.menu.info_main_menu, menu);
116  // else
117  // inflater.inflate(R.menu.main_menu, menu); // don't want help text
118  // // for info screen
119  // return true;
120  // }
121 
122  // /** Handles item selection in the main menu */
123  // public boolean onOptionsItemSelected(MenuItem item) {
124  // switch (item.getItemId()) {
125  // case R.id.about:
126  // showDialog(ABOUT_DIALOG_ID);
127  // return true;
128  // case R.id.help:
129  // showDialog(HELP_DIALOG_ID);
130  // return true;
131  // case R.id.new_problem:
132  // setResult(0);
133  // getLocalActivityManager().removeAllActivities();
134  // finish();
135  // return true;
136  // case R.id.quit:
137  // setResult(-1);
138  // getLocalActivityManager().removeAllActivities();
139  // finish();
140  // return true;
141  // }
142  // return false;
143  // }
144 
145  protected Dialog onCreateDialog(int id) {
146  Dialog dialog;
147  switch (id) {
148  case ABOUT_DIALOG_ID:
149  AlertDialog.Builder about_builder = new AlertDialog.Builder(ShowModelActivity.this);
150  about_builder
151  .setTitle("rbAPPmit version 0.1")
152  .setMessage(
153  "rbAPPmit:\nAn Android front-end for the Reduced Basis Method\n\n"
154  + "Copyright (C) 2010\nDavid Knezevic\nPhuong Huynh\n\n" + "Implementation by:\n"
155  + "David Knezevic\n" + "Phuong Huynh\n" + "Mark Wittels\n\n"
156  + "This is free software released under the GPLv3 license")
157  .setPositiveButton("OK", new DialogInterface.OnClickListener() {
158  public void onClick(DialogInterface dialog, int id) {
159  dismissDialog(ABOUT_DIALOG_ID);
160  }
161  });
162  dialog = about_builder.create();
163 
164  break;
165  case HELP_DIALOG_ID:
166  final TextView message = new TextView(ShowModelActivity.this);
167 
168  final SpannableString s = new SpannableString(
169  "Set RB dimension slider to specify the number of basis functions in the approximation.\n\n"
170  + "Set the parameters at which the solve is performed via the parameter sliders or by pressing the adjacent parameter buttons.\n\n"
171  + "Hit solve to perform the reduced basis solve and visualize output(s) and field variable(s).\n\n"
172  + "For more information see http://augustine.mit.edu/methodology.htm");
173  Linkify.addLinks(s, Linkify.WEB_URLS);
174  message.setText(s);
175  message.setTextSize(18); // 18 sp
176  message.setPadding(5, 5, 5, 5); // 5 pixels of padding on all sides
177  message.setMovementMethod(LinkMovementMethod.getInstance());
178 
179  AlertDialog.Builder help_builder = new AlertDialog.Builder(ShowModelActivity.this);
180  help_builder.setTitle("rbAPPmit help").setView(message)
181  .setPositiveButton("OK", new DialogInterface.OnClickListener() {
182  public void onClick(DialogInterface dialog, int id) {
183  dismissDialog(HELP_DIALOG_ID);
184  }
185  });
186 
187  dialog = help_builder.create();
188 
189  break;
190  default:
191  dialog = null;
192  }
193  return dialog;
194  }
195 
196 }
Main model options display activity.
void onCreate(Bundle savedInstanceState)
An rbappmit-model of old data format, compatible with JRB models.
Definition: ModelType.java:28
This is the main Activity class for the app.
Definition: RBActivity.java:53
Known model types within the JaRMoSBase project.
Definition: ModelType.java:9
JKerMor
A JKerMor model.
Definition: ModelType.java:23
JRB
A JRB model.
Definition: ModelType.java:18
The JKerMor model simulation activity.
An activity which displays URLs in a simple browser.
Provides a Log class imitating the Android Log class when not used on android systems.
Definition: Log.java:11
Dialog onCreateDialog(int id)
Re-populates the main menu every time it is brought up depending on whether help should be displayed...