package com.mobeta.android.demodslv;
import java.util.Arrays;
import java.util.ArrayList;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.app.ListFragment;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MenuInflater;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import com.mobeta.android.dslv.DragSortListView;
import com.mobeta.android.dslv.DragSortController;
public class TestBedDSLV extends FragmentActivity implements
RemoveModeDialog.RemoveOkListener,
DragInitModeDialog.DragOkListener,
EnablesDialog.EnabledOkListener
{
private int mNumHeaders = 0;
private int mNumFooters = 0;
private int mDragStartMode = DragSortController.ON_DOWN;
private boolean mRemoveEnabled = false;
private int mRemoveMode = DragSortController.FLING_RIGHT_REMOVE;
private boolean mSortEnabled = true;
private boolean mDragEnabled = true;
private String mTag = "dslvTag";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_bed_main);
getSupportFragmentManager().beginTransaction().add(R.id.test_bed, getNewDslvFragment(), mTag).commit();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mode_menu, menu);
return true;
}
@Override
public void onRemoveOkClick(int removeMode) {
if (removeMode != mRemoveMode) {
mRemoveMode = removeMode;
getSupportFragmentManager().beginTransaction().replace(R.id.test_bed, getNewDslvFragment(), mTag).commit();
}
}
@Override
public void onDragOkClick(int dragStartMode) {
mDragStartMode = dragStartMode;
DSLVFragment f = (DSLVFragment) getSupportFragmentManager().findFragmentByTag(mTag);
f.getController().setDragInitMode(dragStartMode);
}
@Override
public void onEnabledOkClick(boolean drag, boolean sort, boolean remove) {
mSortEnabled = sort;
mRemoveEnabled = remove;
mDragEnabled = drag;
DSLVFragment f = (DSLVFragment) getSupportFragmentManager().findFragmentByTag(mTag);
DragSortListView dslv = (DragSortListView) f.getListView();
f.getController().setRemoveEnabled(remove);
f.getController().setSortEnabled(sort);
dslv.setDragEnabled(drag);
}
private Fragment getNewDslvFragment() {
DSLVFragmentClicks f = DSLVFragmentClicks.newInstance(mNumHeaders, mNumFooters);
f.removeMode = mRemoveMode;
f.removeEnabled = mRemoveEnabled;
f.dragStartMode = mDragStartMode;
f.sortEnabled = mSortEnabled;
f.dragEnabled = mDragEnabled;
return f;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
FragmentTransaction transaction;
DSLVFragment f = (DSLVFragment) getSupportFragmentManager().findFragmentByTag(mTag);
DragSortListView dslv = (DragSortListView) f.getListView();
DragSortController control = f.getController();
switch (item.getItemId()) {
case R.id.select_remove_mode:
RemoveModeDialog rdialog = new RemoveModeDialog(mRemoveMode);
rdialog.setRemoveOkListener(this);
rdialog.show(getSupportFragmentManager(), "RemoveMode");
return true;
case R.id.select_drag_init_mode:
DragInitModeDialog ddialog = new DragInitModeDialog(mDragStartMode);
ddialog.setDragOkListener(this);
ddialog.show(getSupportFragmentManager(), "DragInitMode");
return true;
case R.id.select_enables:
EnablesDialog edialog = new EnablesDialog(mDragEnabled, mSortEnabled, mRemoveEnabled);
edialog.setEnabledOkListener(this);
edialog.show(getSupportFragmentManager(), "Enables");
return true;
case R.id.add_header:
mNumHeaders++;
transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.test_bed, getNewDslvFragment(), mTag);
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
transaction.commit();
return true;
case R.id.add_footer:
mNumFooters++;
transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.test_bed, getNewDslvFragment(), mTag);
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
transaction.commit();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}