added pathfinder functionality to ui. improved input behaviour a little bit.

This commit is contained in:
Fabian Tschirschnitz committed 2013-04-21 22:15:14 +02:00
1 parent d955b49ea7
commit d9ab3c5379
9 files changed
+75 -11

No files matched your search

@@ -14,4 +14,6 @@ public interface RaceStateChangedListener {
void onIndividualRecallRemoval();
void onAutomaticRaceEnd(TimePoint automaticRaceEnd);
void onPathfinderSelected();
}
@@ -69,6 +69,7 @@ public class RaceStateImpl implements RaceState, RaceLogChangedListener {
this.lastCourseDesignFinder = new LastPublishedCourseDesignFinder(raceLog);
this.finishPositioningListFinder = new FinishPositioningListFinder(raceLog);
this.individualRecallFinder = new IndividualRecallFinder(raceLog);
this.pathfinderFinder = new PathfinderFinder(raceLog);
updateStatus();
}
@@ -276,17 +277,21 @@ public class RaceStateImpl implements RaceState, RaceLogChangedListener {
@Override
public void setPathfinder(String sailingId) {
TimePoint eventTime = MillisecondsTimePoint.now();
RaceLogEvent event = RaceLogEventFactory.INSTANCE.createPathfinderEvent(eventTime, raceLog.getCurrentPassId(),
sailingId);
/*RaceLogEvent event = RaceLogEventFactory.INSTANCE.createStartTimeEvent(eventTime, UUID.randomUUID(),
Collections.<Competitor> emptyList(), raceLog.getCurrentPassId(), newStartTime);
this.raceLog.add(event);*/
this.raceLog.add(event);
notifyListenersAboutPathFinderChange();
}
private void notifyListenersAboutPathFinderChange() {
// TODO Auto-generated method stub
for (RaceStateChangedListener listener : stateChangedListeners) {
listener.onPathfinderSelected();
}
}
}
@@ -45,4 +45,10 @@ public class RaceStateListener implements RaceStateChangedListener {
public void onAutomaticRaceEnd(TimePoint automaticRaceEnd) {
service.handleAutomaticRaceEnd(race, automaticRaceEnd);
}
@Override
public void onPathfinderSelected() {
// do nothing
}
}
@@ -25,6 +25,7 @@ import com.sap.sailing.racecommittee.app.logging.ExLog;
import com.sap.sailing.racecommittee.app.ui.fragments.chooser.RaceInfoFragmentChooser;
import com.sap.sailing.racecommittee.app.ui.fragments.dialogs.CourseDesignDialogFragment;
import com.sap.sailing.racecommittee.app.ui.fragments.dialogs.IndividualRecallUiListener;
import com.sap.sailing.racecommittee.app.ui.fragments.dialogs.PathfinderSelectedUiListener;
import com.sap.sailing.racecommittee.app.ui.fragments.dialogs.RaceDialogFragment;
import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.RaceInfoListener;
import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.SetStartTimeRaceFragment;
@@ -245,4 +246,11 @@ public class RaceInfoFragment extends RaceFragment implements RaceStateChangedLi
}
@Override
public void onPathfinderSelected() {
if (infoFragment instanceof PathfinderSelectedUiListener) {
((PathfinderSelectedUiListener) infoFragment).updatePathfinderLabel();
}
}
}
@@ -0,0 +1,7 @@
package com.sap.sailing.racecommittee.app.ui.fragments.dialogs;
public interface PathfinderSelectedUiListener {
public void updatePathfinderLabel();
}
@@ -2,10 +2,14 @@ package com.sap.sailing.racecommittee.app.ui.fragments.dialogs;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
@@ -18,8 +22,6 @@ public class RaceChoosePathFinderDialog extends RaceDialogFragment {
public void onPathfinderSelected();
}
private PathfinderSelectionListener selectionListener;
private EditText sailingNationalityEditText;
private EditText sailingNumberEditText;
private Button chooseButton;
@@ -43,6 +45,25 @@ public class RaceChoosePathFinderDialog extends RaceDialogFragment {
sailingNationalityEditText = (EditText) getView().findViewById(R.id.pathFinderNationality);
sailingNumberEditText = (EditText) getView().findViewById(R.id.pathFinderNumber);
final EditText focusEditText = sailingNumberEditText;
sailingNationalityEditText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
if(s.length() == 3)
focusEditText.requestFocus();
}
});
chooseButton = (Button) getDialog().findViewById(R.id.choosePathFinderButton);
chooseButton.setOnClickListener(new OnClickListener() {
@@ -55,7 +76,6 @@ public class RaceChoosePathFinderDialog extends RaceDialogFragment {
protected void onChooseClicked(View view) {
String sailingId = sailingNationalityEditText.getText().toString() + " " + sailingNumberEditText.getText().toString();
this.getRace().getState().setPathfinder(sailingId);
selectionListener.onPathfinderSelected();
Log.i("RACE_SET_PATHFINDER", sailingId);
dismiss();
}
@@ -245,6 +245,11 @@ public class ManagedRaceListFragment extends ListFragment implements JuryFlagCli
}
@Override
public void onPathfinderSelected() {
notifyDataChanged();
}
/*
*
* public void notifyDataChanged() { List<RaceListDataType> list = adapter.getItems(); for (int i = 0; i <
@@ -25,13 +25,14 @@ import com.sap.sailing.racecommittee.app.domain.startprocedure.impl.GateStartPha
import com.sap.sailing.racecommittee.app.logging.ExLog;
import com.sap.sailing.racecommittee.app.ui.fragments.RaceFragment;
import com.sap.sailing.racecommittee.app.ui.fragments.dialogs.AbortModeSelectionDialog;
import com.sap.sailing.racecommittee.app.ui.fragments.dialogs.PathfinderSelectedUiListener;
import com.sap.sailing.racecommittee.app.ui.fragments.dialogs.RaceChooseLineOpeningTimeDialog;
import com.sap.sailing.racecommittee.app.ui.fragments.dialogs.RaceChoosePathFinderDialog;
import com.sap.sailing.racecommittee.app.ui.fragments.dialogs.RaceDialogFragment;
import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.RaceInfoListener;
import com.sap.sailing.racecommittee.app.utils.TimeUtils;
public class GateStartPhaseFragment extends RaceFragment implements GateStartPhaseEventListener {
public class GateStartPhaseFragment extends RaceFragment implements GateStartPhaseEventListener, PathfinderSelectedUiListener {
private RaceInfoListener infoListener;
@@ -94,6 +95,9 @@ public class GateStartPhaseFragment extends RaceFragment implements GateStartPha
pathFinderButton = (Button) getView().findViewById(R.id.pathFinderButton);
lineOpeningTimeButton = (Button) getView().findViewById(R.id.lineOpeningTimeButton);
pathfinderLabel = (TextView) getView().findViewById(R.id.pathfinderLabel);
if(getRace().getState().getPathfinder()!=null){
pathfinderLabel.setText(getRace().getState().getPathfinder());
}
lineOpeningTimeLabel = (TextView) getView().findViewById(R.id.lineOpeningTimeLabel);
pathFinderButton.setOnClickListener(new OnClickListener() {
@@ -254,4 +258,11 @@ public class GateStartPhaseFragment extends RaceFragment implements GateStartPha
public void onPapaDown() {
displayedFlag.setImageResource(R.drawable.fivehundred_five_over_golf_flag);
}
@Override
public void updatePathfinderLabel() {
if(getRace().getState().getPathfinder()!=null){
pathfinderLabel.setText(getRace().getState().getPathfinder());
}
}
}