package com.jasonette.seed.Component; import android.content.Context; import android.graphics.Typeface; import android.util.Log; import android.view.Gravity; import android.view.View; import android.widget.TextView; import com.jasonette.seed.Helper.JasonHelper; import org.json.JSONObject; public class JasonLabelComponent { public static View build(View view, final JSONObject component, final JSONObject parent, final Context context) { if(view == null){ return new TextView(context); } else { try { ((TextView)view).setText(component.getString("text")); JasonComponent.build(view, component, parent, context); String type; JSONObject style = JasonHelper.style(component, context); type = component.getString("type"); if (style.has("color")) { int color = JasonHelper.parse_color(style.getString("color")); ((TextView)view).setTextColor(color); } if (style.has("font:android")){ String f = style.getString("font:android"); if(f.equalsIgnoreCase("bold")){ ((TextView) view).setTypeface(Typeface.DEFAULT_BOLD); } else if(f.equalsIgnoreCase("sans")){ ((TextView) view).setTypeface(Typeface.SANS_SERIF); } else if(f.equalsIgnoreCase("serif")){ ((TextView) view).setTypeface(Typeface.SERIF); } else if(f.equalsIgnoreCase("monospace")){ ((TextView) view).setTypeface(Typeface.MONOSPACE); } else if(f.equalsIgnoreCase("default")){ ((TextView) view).setTypeface(Typeface.DEFAULT); } else { try { Typeface font_type = Typeface.createFromAsset(context.getAssets(), "fonts/" + style.getString("font:android") + ".ttf"); ((TextView) view).setTypeface(font_type); } catch (Exception e) { } } } else if (style.has("font")){ if(style.getString("font").toLowerCase().contains("bold")) { if (style.getString("font").toLowerCase().contains("italic")) { ((TextView) view).setTypeface(Typeface.DEFAULT_BOLD, Typeface.ITALIC); } else { ((TextView) view).setTypeface(Typeface.DEFAULT_BOLD); } } else { if (style.getString("font").toLowerCase().contains("italic")) { ((TextView) view).setTypeface(Typeface.DEFAULT, Typeface.ITALIC); } else { ((TextView) view).setTypeface(Typeface.DEFAULT); } } } int g = 0; if (style.has("align")) { String align = style.getString("align"); if (align.equalsIgnoreCase("center")) { g = g | Gravity.CENTER_HORIZONTAL; ((TextView) view).setGravity(Gravity.CENTER_HORIZONTAL); } else if (align.equalsIgnoreCase("right")) { g = g | Gravity.RIGHT; ((TextView) view).setGravity(Gravity.RIGHT); } else if (align.equalsIgnoreCase("left")) { g = g | Gravity.LEFT; } if (align.equalsIgnoreCase("top")) { g = g | Gravity.TOP; } else if (align.equalsIgnoreCase("bottom")) { g = g | Gravity.BOTTOM; } else { g = g | Gravity.CENTER_VERTICAL; } } else { g = Gravity.CENTER_VERTICAL; } ((TextView)view).setGravity(g); if (style.has("size")) { ((TextView)view).setTextSize(Float.parseFloat(style.getString("size"))); } ((TextView)view).setHorizontallyScrolling(false); JasonComponent.addListener(view, context); view.requestLayout(); return view; } catch (Exception e){ Log.d("Error", e.toString()); return new View(context); } } } }