package gueei.binding.viewAttributes.view; import gueei.binding.BindingType; import gueei.binding.ViewAttribute; import android.view.View; public class VisibilityViewAttribute extends ViewAttribute<View, Integer> { public VisibilityViewAttribute(View view, String attributeName) { super(Integer.class, view, attributeName); } @Override protected void doSetAttributeValue(Object newValue) { if(getView()==null) return; if (newValue==null){ getView().setVisibility(View.GONE); return; } if (newValue instanceof Boolean){ if ((Boolean)newValue) getView().setVisibility(View.VISIBLE); else getView().setVisibility(View.GONE); return; } if (newValue instanceof Integer){ getView().setVisibility((Integer)newValue); return; } } @Override public Integer get() { if(getView()==null) return null; return getView().getVisibility(); } @Override protected BindingType AcceptThisTypeAs(Class<?> type) { if (Boolean.class.isAssignableFrom(type)) return BindingType.OneWay; if (Integer.class.isAssignableFrom(type)) return BindingType.TwoWay; return BindingType.NoBinding; } }