package com.kedzie.vbox.machine.settings; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.CheckBox; import android.widget.Spinner; import android.widget.TextView; import com.actionbarsherlock.app.SherlockFragment; import com.kedzie.vbox.R; import com.kedzie.vbox.api.IStorageController; import com.kedzie.vbox.api.jaxb.StorageControllerType; import com.kedzie.vbox.app.Utils; import com.kedzie.vbox.task.ActionBarTask; /** * * @author Marek Kędzierski * @apiviz.stereotype fragment */ public class StorageControllerFragment extends SherlockFragment { class LoadInfoTask extends ActionBarTask<IStorageController, IStorageController> { public LoadInfoTask() { super(getSherlockActivity(), null); } @Override protected IStorageController work(IStorageController...params) throws Exception { params[0].getName(); params[0].getBus(); params[0].getUseHostIOCache(); return params[0]; } @Override protected void onSuccess(IStorageController result) { _controller=result; populate(); } } private IStorageController _controller; private View _view; private Spinner _typeSpinner; private StorageControllerType[] _types; private ArrayAdapter<StorageControllerType> _typeAdapter; private CheckBox _hostIOCheckbox; private TextView _nameText; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); _controller = getArguments().getParcelable(IStorageController.BUNDLE); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { _view = inflater.inflate(R.layout.settings_storage_controller, null); _typeSpinner = (Spinner)_view.findViewById(R.id.controller_type); _hostIOCheckbox = (CheckBox)_view.findViewById(R.id.controller_host_io_cache); _nameText = (TextView)_view.findViewById(R.id.controller_name); return _view; } @Override public void onStart() { super.onStart(); new LoadInfoTask().execute(_controller); } private void populate() { _nameText.setText( _controller.getName() ); _hostIOCheckbox.setChecked(_controller.getUseHostIOCache()); _types = StorageControllerType.getValidTypes(_controller.getBus()); _typeAdapter = new ArrayAdapter<StorageControllerType>(getActivity(), android.R.layout.simple_spinner_item, _types); _typeSpinner.setAdapter(_typeAdapter); _typeSpinner.setSelection(Utils.indexOf(_types, _controller.getControllerType())); } }