Просмотр исходного кода

Konfiguration/Erfassen von Griffstück/Visier/Ausrüstung

master
gitsvn 12 лет назад
Родитель
Сommit
baa8c34384

+ 9
- 1
res/layout/rbs_main_config.xml Просмотреть файл

@@ -9,7 +9,15 @@
<ListView
android:id="@+id/mainConfigListView"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
android:layout_height="wrap_content"
android:divider="@drawable/gradient_view"
android:dividerHeight="1dp" >
</ListView>
<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="1dp"
android:src="@drawable/gradient_view" />
</LinearLayout>

+ 9
- 9
res/layout/rbs_riser_config.xml Просмотреть файл

@@ -58,7 +58,7 @@
app:font="@string/TitilliumWeb_Regular" />
<ch.spherIC.recurvebowsight.components.RiserSpinner
android:id="@+id/scRiserSpinner"
android:id="@+id/rcRiserSpinner"
style="@style/GlassSpinner"
android:layout_width="wrap_content"
android:layout_height="40dp"
@@ -78,7 +78,7 @@
android:paddingLeft="8dp" >
<ch.spherIC.recurvebowsight.components.FontTextView
android:id="@+id/rcManufacturer"
android:id="@+id/rcManufacturerLbl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
@@ -88,7 +88,7 @@
app:font="@string/TitilliumWeb_Regular" />
<ch.spherIC.recurvebowsight.components.FontEditText
android:id="@+id/scaVTxtFld"
android:id="@+id/rcManufacturerTxtFld"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_marginLeft="4dp"
@@ -111,7 +111,7 @@
android:paddingLeft="8dp" >
<ch.spherIC.recurvebowsight.components.FontTextView
android:id="@+id/rcRiserModel"
android:id="@+id/rcModelLbl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
@@ -121,7 +121,7 @@
app:font="@string/TitilliumWeb_Regular" />
<ch.spherIC.recurvebowsight.components.FontEditText
android:id="@+id/scVertScaleRngTxtFld"
android:id="@+id/rcModelTxtFld"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_marginLeft="4dp"
@@ -143,7 +143,7 @@
android:paddingLeft="8dp" >
<ch.spherIC.recurvebowsight.components.FontTextView
android:id="@+id/rcSize"
android:id="@+id/rcSizeLbl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
@@ -153,7 +153,7 @@
app:font="@string/TitilliumWeb_Regular" />
<ch.spherIC.recurvebowsight.components.FontEditText
android:id="@+id/scVertSkalaMiddleTxtFld"
android:id="@+id/rcSizeTxtFld"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_marginLeft="4dp"
@@ -186,7 +186,7 @@
app:font="@string/TitilliumWeb_Regular" />
<ch.spherIC.recurvebowsight.components.FontEditText
android:id="@+id/scVvisHTxtFld"
android:id="@+id/rcVvisHTxtFld"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_marginLeft="4dp"
@@ -219,7 +219,7 @@
app:font="@string/TitilliumWeb_Regular" />
<ch.spherIC.recurvebowsight.components.FontEditText
android:id="@+id/scVvisVTxtFld"
android:id="@+id/rcVvisVTxtFld"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_marginLeft="4dp"

+ 2
- 0
res/values-de/strings.xml Просмотреть файл

@@ -53,10 +53,12 @@
<string name="caption_Cancel">Abbrechen</string>
<string name="caption_NoSelection">Keine Auswahl&#8230;</string>
<string name="caption_FillAllMandatoryFields">Um die Berechnung durchzuführen, müssen alle Parameterfelder abgefüllt sein.</string>
<string name="caption_Cfg_FillAllMandatoryFields">Bitte alle Parameterfelder abfüllen.</string>
<string name="caption_Calculating">Berechnung läuft&#8230;</string>
<string name="caption_New">Neu</string>
<string name="caption_Save">Speichern</string>
<string name="caption_Delete">Löschen</string>
<string name="caption_Cfg_DeleteNotPossible">Löschen nicht möglich. Die Entität wird vermutlich von einer anderen Entität referenziert.</string>
<!-- -->
<string name="fcChart_StartAngle">Abschusswinkel:\n</string>
<string name="fcChart_MaxHeight">Max. Höhe der Flugbahn:\n</string>

+ 2
- 0
res/values/strings.xml Просмотреть файл

@@ -53,10 +53,12 @@
<string name="caption_Cancel">Cancel</string>
<string name="caption_NoSelection">No selection&#8230;</string>
<string name="caption_FillAllMandatoryFields">To start the calculation all parameter fields must be filled.</string>
<string name="caption_Cfg_FillAllMandatoryFields">Please fill in all parameter fields.</string>
<string name="caption_Calculating">Calculating&#8230;</string>
<string name="caption_New">New</string>
<string name="caption_Save">Save</string>
<string name="caption_Delete">Delete</string>
<string name="caption_Cfg_DeleteNotPossible">Unable to delete. Most probably the item is referenced by an other entity.</string>
<!-- -->
<string name="fcChart_StartAngle">Elevation Angle:\n</string>
<string name="fcChart_MaxHeight">Max. Height of Trajectory:\n</string>

+ 153
- 0
src/ch/spherIC/recurvebowsight/configuration/RiserConfigurationActivity.java Просмотреть файл

@@ -7,19 +7,56 @@ import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.database.sqlite.SQLiteConstraintException;
import android.os.Bundle;
import android.view.Gravity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import ch.spherIC.recurvebowsight.R;
import ch.spherIC.recurvebowsight.components.FontArrayAdapter;
import ch.spherIC.recurvebowsight.components.RiserSpinner;
import ch.spherIC.recurvebowsight.database.dao.RiserDao;
import ch.spherIC.recurvebowsight.model.IRiser;
import ch.spherIC.recurvebowsight.utilities.CompatibilityUtil;
import java.text.DecimalFormat;
import java.util.List;
/**
* @author FC Smilari
*/
public class RiserConfigurationActivity extends Activity {
public static final DecimalFormat DF = new DecimalFormat("0.##");
private RiserSpinner rcRiserSpinner;
private TextView rcManufacturerTxtFld;
private TextView rcModelTxtFld;
private TextView rcSizeTxtFld;
private TextView rcVvisHTxtFld;
private TextView rcVvisVTxtFld;
private Button newBtn;
private Button saveBtn;
private Button deleteBtn;
private IRiser selectedRiser;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -29,6 +66,122 @@ public class RiserConfigurationActivity extends Activity {
} else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
initializeComponents();
addRiserSpinnerListener();
addButtonListeners();
List<IRiser> risers = RiserDao.getInstance().loadAll();
this.rcRiserSpinner.setAdapter(new FontArrayAdapter<IRiser>(this, R.layout.rbs_spinner, risers, this.rcRiserSpinner));
}
private void initializeComponents() {
this.rcRiserSpinner = (RiserSpinner) findViewById(R.id.rcRiserSpinner);
this.rcManufacturerTxtFld = (TextView) findViewById(R.id.rcManufacturerTxtFld);
this.rcModelTxtFld = (TextView) findViewById(R.id.rcModelTxtFld);
this.rcSizeTxtFld = (TextView) findViewById(R.id.rcSizeTxtFld);
this.rcVvisHTxtFld = (TextView) findViewById(R.id.rcVvisHTxtFld);
this.rcVvisVTxtFld = (TextView) findViewById(R.id.rcVvisVTxtFld);
this.newBtn = (Button) findViewById(R.id.rcBtnNew);
this.saveBtn = (Button) findViewById(R.id.rcBtnSave);
this.deleteBtn = (Button) findViewById(R.id.rcBtnDelete);
}
private void addRiserSpinnerListener() {
this.rcRiserSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(final AdapterView<?> parent, final View view, final int position,
final long id) {
IRiser riser = RiserConfigurationActivity.this.rcRiserSpinner.getSelectedRiser();
RiserConfigurationActivity.this.rcManufacturerTxtFld.setText(riser.getManufacturer());
RiserConfigurationActivity.this.rcModelTxtFld.setText(riser.getModel());
RiserConfigurationActivity.this.rcSizeTxtFld.setText(DF.format(riser.getSize()));
RiserConfigurationActivity.this.rcVvisHTxtFld.setText(DF.format(riser.getVVisH()));
RiserConfigurationActivity.this.rcVvisVTxtFld.setText(DF.format(riser.getVVisV()));
RiserConfigurationActivity.this.selectedRiser = riser;
}
@Override
public void onNothingSelected(final AdapterView<?> parent) { }
});
}
private void addButtonListeners() {
this.newBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(final View v) {
onNewRiser();
}
});
this.saveBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(final View v) {
onSaveRiser();
}
});
this.deleteBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(final View v) {
onDeleteRiser();
}
});
}
/**
* Löschen.
*/
protected void onDeleteRiser() {
if (this.selectedRiser != null) {
try {
RiserDao.getInstance().delete(this.selectedRiser);
} catch (SQLiteConstraintException e) {
Toast toast = Toast.makeText(this, getResources().getString(R.string.caption_Cfg_DeleteNotPossible), Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
}
}
/**
* Speichern.
*/
protected void onSaveRiser() {
if (this.selectedRiser != null) {
if (!this.rcManufacturerTxtFld.getText().toString().isEmpty() && !this.rcModelTxtFld.getText().toString().isEmpty()
&& !this.rcSizeTxtFld.getText().toString().isEmpty() && !this.rcVvisHTxtFld.getText().toString().isEmpty()
&& !this.rcVvisVTxtFld.getText().toString().isEmpty()) {
this.selectedRiser.setManufacturer(this.rcManufacturerTxtFld.getText().toString());
this.selectedRiser.setModel(this.rcModelTxtFld.getText().toString());
this.selectedRiser.setSize(Double.valueOf(this.rcSizeTxtFld.getText().toString()));
this.selectedRiser.setVVisH(Double.valueOf(this.rcVvisHTxtFld.getText().toString()));
this.selectedRiser.setVVisV(Double.valueOf(this.rcVvisVTxtFld.getText().toString()));
if (this.selectedRiser.getId() > 0) {
RiserDao.getInstance().update(this.selectedRiser);
} else {
RiserDao.getInstance().insert(this.selectedRiser);
}
} else {
Toast toast = Toast.makeText(this, getResources().getString(R.string.caption_Cfg_FillAllMandatoryFields), Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
}
}
/**
* Einfügen.
*/
protected void onNewRiser() {
// TODO Auto-generated method stub
}
@Override

+ 8
- 0
src/ch/spherIC/recurvebowsight/database/RBSDatabaseHelper.java Просмотреть файл

@@ -83,6 +83,14 @@ public final class RBSDatabaseHelper extends SQLiteOpenHelper {
}
}
@Override
public void onOpen(final SQLiteDatabase db) {
super.onOpen(db);
if (!db.isReadOnly()) {
db.execSQL("PRAGMA foreign_keys=ON;");
}
}
@Override
public void onCreate(final SQLiteDatabase db) {

+ 5
- 3
src/ch/spherIC/recurvebowsight/database/scheme/data/TblRBSArcherySetup.java Просмотреть файл

@@ -35,8 +35,8 @@ public final class TblRBSArcherySetup {
return "create table " + NAME + "("
+ COL_ID + " Integer primary key autoincrement, "
+ COL_NAME + " Text NOT NULL, "
+ COL_SIGHT + " Integer NOT NULL REFERENCES RBS_SIGHT (" + TblRBSSight.COL_ID + "), "
+ COL_RISER + " Integer NOT NULL REFERENCES RBS_RISER (" + TblRBSRiser.COL_ID + "), "
+ COL_SIGHT + " Integer NOT NULL, "
+ COL_RISER + " Integer NOT NULL, "
+ COL_ARROWDIAMETER + " Real NOT NULL, "
+ COL_ARROWCW + " Real NOT NULL, "
+ COL_ARROWWEIGHT + " Real NOT NULL, "
@@ -50,7 +50,9 @@ public final class TblRBSArcherySetup {
+ COL_SIGHTVERTSKALAMIDDLE + " Real NOT NULL, "
+ COL_SIGHTHORSETTING + " Real NOT NULL, "
+ "constraint UNIQUE_ARCHERYSETUP_NAME UNIQUE (" + COL_NAME + "), "
+ "constraint UNIQUE_ARCHERYSETUP_SIGHT_RISER UNIQUE (" + COL_SIGHT + "," + COL_RISER + ")"
+ "constraint UNIQUE_ARCHERYSETUP_SIGHT_RISER UNIQUE (" + COL_SIGHT + "," + COL_RISER + "),"
+ "FOREIGN KEY(" + COL_SIGHT + ") REFERENCES RBS_SIGHT (" + TblRBSSight.COL_ID + "), "
+ "FOREIGN KEY(" + COL_RISER + ") REFERENCES RBS_RISER (" + TblRBSRiser.COL_ID + ")"
+ ");";
}

Загрузка…
Отмена
Сохранить