package gui.simpleUI.modifiers; import gui.simpleUI.AbstractModifier; import gui.simpleUI.SimpleUIv1; import android.content.Context; import android.view.Gravity; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; public abstract class PlusMinusModifier extends AbstractModifier { private TextView valueText; private int myMinusImage; private int myPlusImage; public PlusMinusModifier(int minusImage, int plusImage) { myMinusImage = minusImage; myPlusImage = plusImage; } @Override public View getView(Context context) { LinearLayout l = new LinearLayout(context); LayoutParams p = new LinearLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 2); LayoutParams p2 = new LinearLayout.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 1); TextView t = new TextView(context); t.setText(getVarName()); t.setLayoutParams(p); l.addView(t); LinearLayout l2 = new LinearLayout(context); l2.setLayoutParams(p2); if (myMinusImage != -1) { Button minus = new Button(context); minus.setBackgroundResource(myMinusImage); minus.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { valueText.setText("" + minusEvent(getCurrentValue())); } }); LinearLayout l3 = new LinearLayout(context); l3.setLayoutParams(p2); l3.setGravity(Gravity.CENTER_HORIZONTAL); l3.addView(minus); l2.addView(l3); } valueText = new TextView(context); valueText.setText("" + load()); LinearLayout l4 = new LinearLayout(context); l4.setLayoutParams(p2); l4.setGravity(Gravity.CENTER_HORIZONTAL); l4.addView(valueText); l2.addView(l4); if (myPlusImage != -1) { Button plus = new Button(context); // plus.setLayoutParams(p2); plus.setBackgroundResource(myPlusImage); plus.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { valueText.setText("" + plusEvent(getCurrentValue())); } }); LinearLayout l5 = new LinearLayout(context); l5.setLayoutParams(p2); l5.setGravity(Gravity.CENTER_HORIZONTAL); l5.addView(plus); l2.addView(l5); } l.addView(l2); l.setPadding(SimpleUIv1.DEFAULT_PADDING, SimpleUIv1.DEFAULT_PADDING, SimpleUIv1.DEFAULT_PADDING, SimpleUIv1.DEFAULT_PADDING); if (getTheme() != null) { getTheme().applyOuter1(l); getTheme().applyNormal1(t); getTheme().applyNormal1(valueText); } return l; } private double getCurrentValue() { try { return Double.parseDouble(valueText.getText().toString()); } catch (NumberFormatException e) { e.printStackTrace(); } return 0; } @Override public boolean save() { return save(getCurrentValue()); } public abstract String getVarName(); public abstract double load(); public abstract double minusEvent(double currentValue); public abstract double plusEvent(double currentValue); public abstract boolean save(double currentValue); }