Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package cz.eman.eom.utils;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
- import android.app.DatePickerDialog;
- import android.app.DatePickerDialog.OnDateSetListener;
- import android.app.Dialog;
- import android.content.Context;
- import android.widget.DatePicker;
- import android.widget.EditText;
- import cz.eman.eom.properties.Properties;
- public class DateFactory {
- private static final SimpleDateFormat dateFormat = new SimpleDateFormat(Properties.BIRTH_DATE_FORMAT_PATTERN);
- protected Context context;
- protected EditText textTarget;
- /**
- * Zalozeni factory
- *
- * @param context
- * @param textTarget - Textove pole, kam se ma ulozit vysledny datum ve
- * forme textu
- */
- public DateFactory(Context context, EditText textTarget) {
- this.context = context;
- this.textTarget = textTarget;
- }
- /**
- * vytvoreni dialogu pro nastaveni data. Jako defaultni datum je nastaveno
- * datum ze zadaneho Date objektu
- *
- * @param date - Datum, ktere ma byt nastaveno jako vychozi
- * @return - dialog pro nastaveni data, po jeho zavreni je hodnota nastavena
- * do zadaneho textoveho pole
- */
- public Dialog getDateDialog(Date date) {
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(date);
- return getDateDialog(calendar);
- }
- /**
- * vytvoreni dialogu pro nastaveni data. Jako defaultni datum je nastaveno
- * aktualni datum
- *
- * @return - dialog pro nastaveni data, po jeho zavreni je hodnota nastavena
- * do zadaneho textoveho pole
- */
- public Dialog getDateDialog() {
- return getDateDialog(Calendar.getInstance());
- }
- /**
- * vytvoreni dialogu pro nastaveni data. Jako defaultni datum je nastaveno
- * datum ze zadaneho kalendare
- *
- * @param calendar - calendar, podle ktereho se nastavy vychosi datum
- * dialogu
- * @return - dialog pro nastaveni data, po jeho zavreni je hodnota nastavena
- * do zadaneho textoveho pole
- */
- public Dialog getDateDialog(Calendar calendar) {
- return new DatePickerDialog(context, onDateSetListener, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));
- }
- /**
- * vytvoreni dialogu pro nastaveni data. Jako defaultni datum je nastaveno
- * datum parsovane ze zadaneho stringu, pokud string neobsahuje datum, je
- * nastaveno aktualni datum
- *
- * @param dateString - String obsahujici datum, ktere ma byt nastaveno jako
- * vychozi v dialogu
- * @return - dialog pro nastaveni data, po jeho zavreni je hodnota nastavena
- * do zadaneho textoveho pole
- */
- public Dialog getDateDialog(String dateString) {
- Date date = getDateFromString(dateString);
- if (date != null) {
- return getDateDialog(date);
- } else {
- return getDateDialog();
- }
- }
- /**
- * Listener, ktery nastavi datum z dialogu do zadaneho textView. Datum je
- * parsovano na text. Pokud datum neni, je do textView nastaven prazdny
- * string
- */
- private OnDateSetListener onDateSetListener = new OnDateSetListener() {
- public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
- Calendar calendar = Calendar.getInstance();
- calendar.set(Calendar.YEAR, year);
- calendar.set(Calendar.MONTH, monthOfYear);
- calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
- String date = getStringFromDate(calendar.getTime());
- if (date != null) {
- textTarget.setText(date);
- } else {
- textTarget.setText("");
- }
- }
- };
- /**
- * Parsovani Data ze stringu
- *
- * @param date - String, ktery se ma parsovat na datum
- * @return - datum, nebo null
- */
- public static Date getDateFromString(String date) {
- try {
- return dateFormat.parse(date);
- } catch (ParseException e) {
- return null;
- }
- }
- /**
- * formatovani data na string
- *
- * @param date - datum, ktere se ma formatovat
- * @return - datum ve forme stringu, nebo null
- */
- public static String getStringFromDate(Date date) {
- try {
- return dateFormat.format(date);
- } catch (Exception e) {
- return null;
- }
- }
- /**
- * provede konverzi data z formatu poskytovaneho z FB na nas format
- *
- * @param fbDate Datum ve FB formatu
- * @return datum v nasem formatu
- */
- public static String getStringFromFBDateString(String fbDate) {
- try {
- SimpleDateFormat fbDateFormat = new SimpleDateFormat(Properties.BIRTH_DATE_FORMAT_PATTERN_FB);
- Date date = fbDateFormat.parse(fbDate);
- return getStringFromDate(date);
- } catch (Exception e) {
- return null;
- }
- }
- }
Add Comment
Please, Sign In to add comment