/* * Copyright (C) 2007 The Android Open Source Project * * 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 net.redgeek.android.eventrend.importing; import android.content.Context; import android.view.Gravity; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; import net.redgeek.android.eventrend.util.GUITaskQueue; import net.redgeek.android.eventrend.util.Number; /** * Implements the view of each row in the ListView of importable content. Each * row is currently jsut a filename and filesize. Could certainly be made much * prettier. * * @author barclay */ public class ImportRowView extends LinearLayout { private TextView mFilename; private TextView mSize; private Button mImport; private Context mCtx; private boolean mSelectable = true; public ImportRowView(Context context, ImportRow aRow) { super(context); mCtx = context; setupUI(); populateFields(aRow); } private void setupUI() { this.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL); // this.setLongClickable(true); mFilename = new TextView(mCtx); mFilename.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL); addView(mFilename, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); mSize = new TextView(mCtx); mSize.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL); addView(mSize, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); mImport = new Button(mCtx); mImport.setText("Import"); mImport.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL); addView(mImport, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); mImport.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { ((ImportActivity)mCtx).doImport((String) mFilename.getText()); } }); } private void populateFields(ImportRow row) { mFilename.setText(row.getFilename()); long bytes = Long.valueOf(row.getSize()).longValue(); if (bytes < 1024) { mSize.setText(": " + bytes + " Bytes"); } else { float size = ((float) bytes) / 1024.0f; if (size < 1024) mSize.setText(": " + Number.Round(size) + " KBytes"); else mSize.setText(": " + Number.Round(size / 1024.0f) + " MBytes"); } } public boolean isSelectable() { return mSelectable; } public void setSelectable(boolean selectable) { mSelectable = selectable; } public void setFilename(String filename) { mFilename.setText(filename); } public String getFilename() { return mFilename.getText().toString(); } public void setSize(String size) { mSize.setText(size); } }