/** * TextContent.java * * Ver 1.0, 2013-1-8, alex_yh, Create file. */ package com.flounder.fishDiary.data; import com.flounder.fishDiary.R; import android.content.Context; import android.text.method.LinkMovementMethod; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; /** * Template Class for pre-exist contents. * * This is my learning practice for Java DP... */ public abstract class TextContent { public TextContent(Context context, Button btnForward, Button btnBack, EditText text, EditText title) { // update UI state text.setFocusableInTouchMode(false); text.setMovementMethod(LinkMovementMethod.getInstance()); title.setFocusable(false); if (isMultiPages()) { setForwardButton(context, btnForward); setBackButton(context, btnBack); btnForward.setOnClickListener(forward(context, text, title)); btnBack.setOnClickListener(back(context, text, title)); } else { btnForward.setEnabled(false); // disable "Save" Button } } public final CharSequence getContent(Context context) { return setText(context); } /** Get title, set to Title field */ public abstract String getTitle(); /** * Set rich text content. * * @return CharSequence */ protected abstract CharSequence setText(final Context context); /** * Handle "forward" Button event * * @param text * Text content field * @param title * Title field */ protected OnClickListener forward(final Context context, final EditText text, final EditText title) { return null; }; /** * Handle "back" Button event * * @param text * Text content field * @param title * Title field */ protected OnClickListener back(final Context context, final EditText text, final EditText title) { return null; }; /** Set Button text "Forward" */ private void setForwardButton(Context context, Button button) { button.setText(context.getString(R.string.string_forward)); } /** Set Button text "Back" */ private void setBackButton(Context context, Button button) { button.setText(context.getString(R.string.string_back)); } /** If text content allows forward/back */ protected abstract boolean isMultiPages(); }