/*
* Copyright (C) 2009 University of Washington
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package org.odk.collect.android.views;
import org.odk.collect.android.logic.HierarchyElement;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.Gravity;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class HierarchyElementView extends RelativeLayout {
private TextView mPrimaryTextView;
private TextView mSecondaryTextView;
private ImageView mIcon;
public HierarchyElementView(Context context, HierarchyElement it) {
super(context);
setColor(it.getColor());
mIcon = new ImageView(context);
mIcon.setImageDrawable(it.getIcon());
mIcon.setId(1);
mIcon.setPadding(0, 0, dipToPx(4), 0);
addView(mIcon, new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
mPrimaryTextView = new TextView(context);
mPrimaryTextView.setTextAppearance(context, android.R.style.TextAppearance_Large);
mPrimaryTextView.setText(it.getPrimaryText());
mPrimaryTextView.setId(2);
mPrimaryTextView.setGravity(Gravity.CENTER_VERTICAL);
LayoutParams l =
new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
l.addRule(RelativeLayout.RIGHT_OF, mIcon.getId());
addView(mPrimaryTextView, l);
mSecondaryTextView = new TextView(context);
mSecondaryTextView.setText(it.getSecondaryText());
mSecondaryTextView.setTextAppearance(context, android.R.style.TextAppearance_Small);
mSecondaryTextView.setGravity(Gravity.CENTER_VERTICAL);
LayoutParams lp =
new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.BELOW, mPrimaryTextView.getId());
lp.addRule(RelativeLayout.RIGHT_OF, mIcon.getId());
addView(mSecondaryTextView, lp);
setPadding(dipToPx(8), dipToPx(4), dipToPx(8), dipToPx(8));
}
public void setPrimaryText(String text) {
mPrimaryTextView.setText(text);
}
public void setSecondaryText(String text) {
mSecondaryTextView.setText(text);
}
public void setIcon(Drawable icon) {
mIcon.setImageDrawable(icon);
}
public void setColor(int color) {
setBackgroundColor(color);
}
public void showSecondary(boolean bool) {
if (bool) {
mSecondaryTextView.setVisibility(VISIBLE);
setMinimumHeight(dipToPx(64));
} else {
mSecondaryTextView.setVisibility(GONE);
setMinimumHeight(dipToPx(32));
}
}
public int dipToPx(int dip) {
return (int) (dip * getResources().getDisplayMetrics().density + 0.5f);
}
}