package v2.simpleUi;
import v2.simpleUi.uiDecoration.UiDecoratable;
import v2.simpleUi.uiDecoration.UiDecorator;
import android.content.Context;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.LinearLayout;
import android.widget.TextView;
public class M_Caption implements ModifierInterface, UiDecoratable {
private String myText;
private float mySizeFactor = 1.1f;
private UiDecorator myDecorator;
private OnClickListener myOnClickListener;
private LinearLayout container;
public M_Caption(String text) {
myText = text;
}
/**
* @param text
* @param sizeFactor
* default is 1.1f (of normal size)
*/
public M_Caption(String text, float sizeFactor) {
this(text);
mySizeFactor = sizeFactor;
}
public void setMyText(String myText) {
this.myText = myText;
}
public void setOnClickListener(OnClickListener onClickListener) {
this.myOnClickListener = onClickListener;
}
@Override
public View getView(Context context) {
int bottomAndTopPadding = 4;
int textPadding = 7;
container = new LinearLayout(context);
container.setGravity(Gravity.CENTER);
container.setPadding(0, bottomAndTopPadding, 0, bottomAndTopPadding);
TextView t = new TextView(context);
t.setText(myText);
t.setPadding(textPadding, textPadding, textPadding, textPadding);
t.setGravity(Gravity.CENTER_HORIZONTAL);
if (myOnClickListener != null) {
t.setOnClickListener(myOnClickListener);
}
container.addView(t);
if (mySizeFactor != 1) {
t.setTextSize(t.getTextSize() * mySizeFactor);
}
if (myDecorator != null) {
int level = myDecorator.getCurrentLevel();
myDecorator.decorate(context, container, level + 1,
UiDecorator.TYPE_CONTAINER);
myDecorator.decorate(context, t, level + 1,
UiDecorator.TYPE_CAPTION);
}
return container;
}
@Override
public boolean assignNewDecorator(UiDecorator decorator) {
myDecorator = decorator;
return true;
}
@Override
public boolean save() {
return true;
}
public int getHeightInPixels() {
return container.getHeight();
}
}