package org.witness.informacam.ui.editors; import org.witness.informacam.R; import org.witness.informacam.models.media.IRegion; import org.witness.informacam.models.media.IRegionBounds; import org.witness.informacam.utils.Constants.App; import org.witness.informacam.utils.Constants.IRegionDisplayListener; import android.content.Context; import android.graphics.drawable.Drawable; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.RelativeLayout.LayoutParams; public class IRegionDisplay extends ImageView implements OnClickListener { Drawable d; Drawable activeD, inactiveD; LayoutParams lp; public int indexOnScreen = -1; public IRegionBounds bounds; boolean isActive, isDragging; public IRegion parent; private final static String LOG = App.LOG; private IRegionDisplayListener mListener = null; public IRegionDisplay(Context context, IRegion parent, IRegionDisplayListener listener) { super(context); this.parent = parent; bounds = parent.bounds; mListener = listener; lp = new LayoutParams(bounds.displayWidth, bounds.displayHeight); lp.leftMargin = bounds.displayLeft; lp.topMargin = bounds.displayTop; setLayoutParams(lp); activeD = context.getResources().getDrawable(R.drawable.extras_region_display_active); inactiveD = context.getResources().getDrawable(R.drawable.extras_region_display_inactive); setStatus(true); setOnClickListener(this); } public void update() { update(bounds.displayLeft, bounds.displayTop); } public void update(int displayLeft, int displayTop) { Log.d(LOG, "new bounds left: " + displayLeft + " and top: " + displayTop); lp = (LayoutParams) getLayoutParams(); lp.leftMargin = displayLeft; lp.topMargin = displayTop; setLayoutParams(lp); setImageDrawable(d); } public void setStatus(boolean isActive) { this.isActive = isActive; if(isActive) { d = activeD; } else { d = inactiveD; } update(); } @Override public void onClick(View v) { setStatus(true); if (mListener != null) mListener.onSelected(this); } }