Android Open Source - wolPi Host List Activity






From Project

Back to project page wolPi.

License

The source code is released under:

Apache License

If you think the Android project wolPi listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package de.matthesrieke.wolpi.ui;
//from ww w  .j  a va2  s .  c o  m
import java.util.ArrayList;
import java.util.List;

import de.matthesrieke.wolpi.R;
import de.matthesrieke.wolpi.settings.HostConfiguration;
import de.matthesrieke.wolpi.settings.SettingsProvider;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;

/**
 * activity for listing all stored hosts.
 * 
 * @author matthes rieke
 * 
 */
public class HostListActivity extends Activity {

  public static final int REQUEST_CODE = 1;
  private List<String> hostList;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.host_list);

    loadHostConfigurations();
  }

  private void loadHostConfigurations() {
    ListView listView = (ListView) findViewById(R.id.listView);
    hostList = new ArrayList<String>();
    for (HostConfiguration hc : SettingsProvider.Instance.getProvider()
        .getHosts()) {
      hostList.add(createEntryForHost(hc));
    }

    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_list_item_1, hostList);
    listView.setAdapter(adapter);

    listView.setOnItemLongClickListener(new OnItemLongClickListener() {

      @Override
      public boolean onItemLongClick(AdapterView<?> parent, View view,
          int position, long id) {
        final String item = (String) parent.getItemAtPosition(position);
        openLongClickMenu(item);
        return true;
      }
    });

    listView.setOnItemClickListener(new OnItemClickListener() {

      @Override
      public void onItemClick(AdapterView<?> parent, View view,
          int position, long id) {
        final String item = (String) parent.getItemAtPosition(position);
        Intent intent = new Intent();
        Bundle b = new Bundle();
        b.putString("hostId", item);
        intent.putExtras(b);
        setResult(RESULT_OK, intent);
        finish();
      }
    });
  }

  protected void openLongClickMenu(final String item) {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);

    builder.setTitle("host options");

    builder.setItems(new CharSequence[] {
        getText(R.string.dialog_host_edit),
        getText(R.string.dialog_host_delete) },
        new DialogInterface.OnClickListener() {
          @Override
          public void onClick(DialogInterface dialog, int which) {
            switch (which) {
            case 0:  
              startHostManagementActivity(item);
              break;
            case 1:
              deleteHostForId(item);
              break;
            default:
              break;
            }
          }
        });
    
    AlertDialog dialog = builder.create();
    dialog.setCanceledOnTouchOutside(false);
    dialog.show();
  }

  protected void startHostManagementActivity(String item) {
    Intent intent = new Intent(HostListActivity.this, HostManagementActivity.class);
    Bundle b = new Bundle();
    b.putString("hostId", item);
    intent.putExtras(b);
    startActivityForResult(intent, HostManagementActivity.REQUEST_CODE);    
  }

  protected void deleteHostForId(String item) {
    if (hostList != null) {
      hostList.remove(item);
      SettingsProvider.Instance.getProvider().deleteHost(
          SettingsProvider.Instance.getProvider().getHostForId(item));
      loadHostConfigurations();
    }
  }

  private String createEntryForHost(HostConfiguration hc) {
    String hostName = hc.getId();
    return hostName;
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.host_list, menu);
    return true;
  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.action_add_new_host:
      Intent intent = new Intent(this, HostManagementActivity.class);
      startActivityForResult(intent, HostManagementActivity.REQUEST_CODE);
      return true;
    default:
      return super.onOptionsItemSelected(item);
    }
  }
  
  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == HostManagementActivity.REQUEST_CODE) {
      if (resultCode == RESULT_OK) {
        loadHostConfigurations();
      }
    }
  }

}




Java Source Code List

de.matthesrieke.wolpi.CommandResult.java
de.matthesrieke.wolpi.Interactor.java
de.matthesrieke.wolpi.SysoutInteractor.java
de.matthesrieke.wolpi.UserInfoImpl.java
de.matthesrieke.wolpi.WolPiException.java
de.matthesrieke.wolpi.WolPi.java
de.matthesrieke.wolpi.dao.SQLiteSettingsProvider.java
de.matthesrieke.wolpi.settings.HostConfiguration.java
de.matthesrieke.wolpi.settings.SSHConnection.java
de.matthesrieke.wolpi.settings.SettingsProvider.java
de.matthesrieke.wolpi.settings.WolSettings.java
de.matthesrieke.wolpi.ui.ConfirmationDialog.java
de.matthesrieke.wolpi.ui.HostListActivity.java
de.matthesrieke.wolpi.ui.HostManagementActivity.java
de.matthesrieke.wolpi.ui.MainActivity.java
de.matthesrieke.wolpi.ui.TextViewInteractor.java
de.matthesrieke.wolpi.util.AndroidServiceLoader.java