package de.htwdd.fragments;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
import java.util.ArrayList;
import de.htwdd.DatabaseHandlerTimetable;
import de.htwdd.R;
import de.htwdd.types.Lesson;
public class TimetableEditFragment extends Fragment
{
private int week;
private int day;
private int ds;
private int index;
private int internID;
private boolean createNew;
View view;
public TimetableEditFragment()
{
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
if (getArguments() != null)
{
week = getArguments().getInt("Week");
day = getArguments().getInt("Day");
ds = getArguments().getInt("DS");
index = getArguments().getInt("index");
createNew= getArguments().getBoolean("new", false);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
// Inflate the layout for this fragment
view = inflater.inflate(R.layout.fragment_timetable_edit, container, false);
// Lade Stunde
DatabaseHandlerTimetable timetable = new DatabaseHandlerTimetable(getActivity());
ArrayList<Lesson> lessonArrayList = timetable.getDS(week, day, ds);
timetable.close();
final Lesson lesson;
// OnClick-Listener zum Speichern
Button editSave = (Button) view.findViewById(R.id.timetable_edit_LessonSave);
editSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (saveLesson())
{
Toast.makeText(getActivity(), R.string.timetable_edit_LessonSaveSuccess, Toast.LENGTH_SHORT).show();
getActivity().finish();
}
else Toast.makeText(getActivity(), R.string.error, Toast.LENGTH_SHORT).show();
}
});
if(lessonArrayList.size()==0 || createNew)
{
// Wähle Woche aus
Spinner editWeek = (Spinner) view.findViewById(R.id.timetable_edit_LessonWeek);
editWeek.setSelection(week%2 == 0?2:week%2);
// Wähle Tag aus
Spinner editDay = (Spinner) view.findViewById(R.id.timetable_edit_LessonDay);
editDay.setSelection(day-1);
// Wähle DS aus
Spinner editDS = (Spinner) view.findViewById(R.id.timetable_edit_LessonDS);
editDS.setSelection(ds-1);
// Deaktiviere Löschen Button
Button editDelete = (Button) view.findViewById(R.id.timetable_edit_LessonDelete);
editDelete.setEnabled(false);
return view;
}
else
lesson = lessonArrayList.get(index);
internID = lesson.internID;
// Setze Vorlesung
EditText editVorlesung = (EditText) view.findViewById(R.id.timetable_edit_LessonName);
editVorlesung.setText(lesson.name);
// Setze Tag
EditText editTag = (EditText) view.findViewById(R.id.timetable_edit_LessonTag);
editTag.setText(lesson.lessonTag);
// Wähle Art aus
Spinner editType = (Spinner) view.findViewById(R.id.timetable_edit_LessonType);
editType.setSelection(lesson.getTypeInt());
// Setze Raum
EditText editRoom = (EditText) view.findViewById(R.id.timetable_edit_LessonRoom);
editRoom.setText(lesson.rooms);
// Wähle Woche aus
Spinner editWeek = (Spinner) view.findViewById(R.id.timetable_edit_LessonWeek);
editWeek.setSelection(lesson.week);
// Wähle Tag aus
Spinner editDay = (Spinner) view.findViewById(R.id.timetable_edit_LessonDay);
editDay.setSelection(lesson.day-1);
// Wähle DS aus
Spinner editDS = (Spinner) view.findViewById(R.id.timetable_edit_LessonDS);
editDS.setSelection(lesson.ds-1);
// Setze WeeksOnly
EditText editWeeksOnly = (EditText) view.findViewById(R.id.timetable_edit_LessonWeeksOnly);
editWeeksOnly.setText(lesson.weeksOnly);
// Setze Onclick-Listener für Löschen-Button
Button editDelete = (Button) view.findViewById(R.id.timetable_edit_LessonDelete);
editDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DatabaseHandlerTimetable databaseHandlerTimetable = new DatabaseHandlerTimetable(getActivity());
boolean value = databaseHandlerTimetable.deleteLesson(lesson.internID);
databaseHandlerTimetable.close();
if (value)
{
Toast.makeText(getActivity(), R.string.timetable_edit_LessonDeleteSuccess, Toast.LENGTH_SHORT).show();
getActivity().finish();
}
else Toast.makeText(getActivity(), R.string.error, Toast.LENGTH_SHORT).show();
}
});
return view;
}
private boolean saveLesson()
{
Lesson lesson = new Lesson();
lesson.internID = internID;
// Setze Vorlesung
EditText editVorlesung = (EditText) view.findViewById(R.id.timetable_edit_LessonName);
lesson.name = editVorlesung.getText().toString();
// Setze Tag
EditText editTag = (EditText) view.findViewById(R.id.timetable_edit_LessonTag);
lesson.lessonTag = editTag.getText().toString();
// Wähle Art aus
Spinner editType = (Spinner) view.findViewById(R.id.timetable_edit_LessonType);
lesson.setTypeInt(editType.getSelectedItemPosition());
// Setze Raum
EditText editRoom = (EditText) view.findViewById(R.id.timetable_edit_LessonRoom);
lesson.rooms = editRoom.getText().toString();
// Wähle Woche aus
Spinner editWeek = (Spinner) view.findViewById(R.id.timetable_edit_LessonWeek);
lesson.week = editWeek.getSelectedItemPosition();
// Wähle Tag aus
Spinner editDay = (Spinner) view.findViewById(R.id.timetable_edit_LessonDay);
lesson.day = editDay.getSelectedItemPosition()+1;
// Wähle DS aus
Spinner editDS = (Spinner) view.findViewById(R.id.timetable_edit_LessonDS);
lesson.ds = editDS.getSelectedItemPosition()+1;
// Setze WeeksOnly
EditText editWeeksOnly = (EditText) view.findViewById(R.id.timetable_edit_LessonWeeksOnly);
lesson.weeksOnly = editWeeksOnly.getText().toString();
DatabaseHandlerTimetable databaseHandlerTimetable = new DatabaseHandlerTimetable(getActivity());
boolean value = databaseHandlerTimetable.updateLesson(lesson);
databaseHandlerTimetable.close();
return value;
}
}