Android Open Source - Swinedroid Server View






From Project

Back to project page Swinedroid.

License

The source code is released under:

GNU General Public License

If you think the Android project Swinedroid 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 com.legind.swinedroid;
//w  w w .ja v a2 s.  c om
import java.io.IOException;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.ListIterator;

import org.achartengine.chartlib.AlertChart;
import org.achartengine.chartlib.AlertChart.AlertMoment;
import org.xml.sax.SAXException;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.DialogInterface.OnCancelListener;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.legind.Dialogs.ErrorMessageHandler;
import com.legind.sqlite.ServerDbAdapter;
import com.legind.swinedroid.NetworkRunnable.NetworkRunnable;
import com.legind.swinedroid.NetworkRunnable.NetworkRunnableRequires;
import com.legind.swinedroid.xml.OverviewXMLHandler;
import com.legind.swinedroid.xml.XMLHandlerException;
import com.legind.web.WebTransport.WebTransportException;

public class ServerView extends Activity implements NetworkRunnableRequires{
  private TextView mServerViewTitleText;
  private TextView mAllTimeHighText;
  private TextView mAllTimeMediumText;
  private TextView mAllTimeLowText;
  private TextView mAllTimeTotalText;
  private TextView mLast72HighText;
  private TextView mLast72MediumText;
  private TextView mLast72LowText;
  private TextView mLast72TotalText;
  private TextView mLast24HighText;
  private TextView mLast24MediumText;
  private TextView mLast24LowText;
  private TextView mLast24TotalText;
  private LinearLayout alertLinearLayout;
  private boolean mGotStatistics;
  private boolean mPausedForCertificate;
  private Long mRowId;
  private OverviewXMLHandler mOverviewXMLHandler;
  public ErrorMessageHandler mEMH;
  private ProgressDialog pd;
  private final int ACTIVITY_SEARCH = 0;
  private final int ACTIVITY_ALERT_LIST = 1;
  private final int ACTIVITY_HASH_DIALOG = 2;
  private static final int REFRESH_ID = 1;
  private static final int VIEW_ID = 2;
  private static final int SEARCH_ID = 3;
    public static Activity A = null;
    private NetworkRunnable mNetRun;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mNetRun = new NetworkRunnable(this);
    A = this;
    mOverviewXMLHandler = new OverviewXMLHandler();
    mGotStatistics = false;
    
    setContentView(R.layout.server_view);

    // Display all errors on the Swinedroid ListActivity
    mEMH = new ErrorMessageHandler(this,
        findViewById(R.id.server_edit_error_layout_root));

    mServerViewTitleText = (TextView) findViewById(R.id.server_view_title);
    mAllTimeHighText = (TextView) findViewById(R.id.all_time_high);
    mAllTimeMediumText = (TextView) findViewById(R.id.all_time_med);
    mAllTimeLowText = (TextView) findViewById(R.id.all_time_low);
    mAllTimeTotalText = (TextView) findViewById(R.id.all_time_total);
    mLast72HighText = (TextView) findViewById(R.id.last_72_high);
    mLast72MediumText = (TextView) findViewById(R.id.last_72_med);
    mLast72LowText = (TextView) findViewById(R.id.last_72_low);
    mLast72TotalText = (TextView) findViewById(R.id.last_72_total);
    mLast24HighText = (TextView) findViewById(R.id.last_24_high);
    mLast24MediumText = (TextView) findViewById(R.id.last_24_med);
    mLast24LowText = (TextView) findViewById(R.id.last_24_low);
    mLast24TotalText = (TextView) findViewById(R.id.last_24_total);
    alertLinearLayout = (LinearLayout) findViewById(R.id.server_view_alert_linear_layout);
      
    if(savedInstanceState != null){
      mRowId = savedInstanceState.getLong(ServerDbAdapter.KEY_ROWID);
      if(savedInstanceState.getBoolean("mGotStatistics")){
        mGotStatistics = true;
        mAllTimeHighText.setText(savedInstanceState.getString("mAllTimeHighText"));
        mAllTimeMediumText.setText(savedInstanceState.getString("mAllTimeMediumText"));
        mAllTimeLowText.setText(savedInstanceState.getString("mAllTimeLowText"));
        mAllTimeTotalText.setText(savedInstanceState.getString("mAllTimeTotalText"));
        mLast72HighText.setText(savedInstanceState.getString("mLast72HighText"));
        mLast72MediumText.setText(savedInstanceState.getString("mLast72MediumText"));
        mLast72LowText.setText(savedInstanceState.getString("mLast72LowText"));
        mLast72TotalText.setText(savedInstanceState.getString("mLast72TotalText"));
        mLast24HighText.setText(savedInstanceState.getString("mLast24HighText"));
        mLast24MediumText.setText(savedInstanceState.getString("mLast24MediumText"));
        mLast24LowText.setText(savedInstanceState.getString("mLast24LowText"));
        mLast24TotalText.setText(savedInstanceState.getString("mLast24TotalText"));
        mOverviewXMLHandler.alertChart = new AlertChart();
        for(int i = 0; savedInstanceState.containsKey("alertMomentLabel" + String.valueOf(i)); i++){
          mOverviewXMLHandler.alertChart.addAlertMoment();
          mOverviewXMLHandler.alertChart.setLastMomentHighAlert(savedInstanceState.getInt("alertMomentHigh" + String.valueOf(i)));
          mOverviewXMLHandler.alertChart.setLastMomentMediumAlert(savedInstanceState.getInt("alertMomentMedium" + String.valueOf(i)));
          mOverviewXMLHandler.alertChart.setLastMomentLowAlert(savedInstanceState.getInt("alertMomentLow" + String.valueOf(i)));
          mOverviewXMLHandler.alertChart.setLastMomentLabel(savedInstanceState.getString("alertMomentLabel" + String.valueOf(i)));
        }
        alertLinearLayout.removeAllViews();
        mOverviewXMLHandler.alertChart.setTitleString("Alerts by Date");
        mOverviewXMLHandler.alertChart.setXAxisString("Date");
        alertLinearLayout.addView(mOverviewXMLHandler.alertChart.execute(this));
      }
    }
    if (mRowId == null) {
      Bundle extras = getIntent().getExtras();
      mRowId = extras != null ? extras.getLong(ServerDbAdapter.KEY_ROWID)
          : null;
    }
    
    mNetRun.startRequestService();
  }
    
  @Override
  protected void onDestroy() {
    mNetRun.close();
    super.onDestroy();
  }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        MenuItem refreshMenuItem = menu.add(0, REFRESH_ID, 0, R.string.menu_refresh);
        MenuItem viewMenuItem = menu.add(0, VIEW_ID, 0, R.string.menu_view_alerts);
        MenuItem searchMenuItem = menu.add(0, SEARCH_ID, 0, R.string.menu_search_alerts);
        refreshMenuItem.setIcon(R.drawable.ic_menu_refresh);
        viewMenuItem.setIcon(android.R.drawable.ic_menu_view);
        searchMenuItem.setIcon(android.R.drawable.ic_menu_search);
        return true;
    }

    @Override
    public boolean onMenuItemSelected(int featureId, MenuItem item) {
        switch(item.getItemId()){
          case REFRESH_ID:
            // Display the ProgressDialog and start thread
            mGotStatistics = false;
            pd = ProgressDialog.show(this, "", "Connecting. Please wait...", true);
            Thread thread = new Thread(mNetRun);
            thread.start();
          break;
          case VIEW_ID:
            Intent viewIntent = new Intent(ServerView.this, AlertList.class);
            viewIntent.putExtra(ServerDbAdapter.KEY_ROWID, mRowId);
            viewIntent.putExtra("mSpinnerText", "");
            viewIntent.putExtra("mSearchTermText", "");
            startActivityForResult(viewIntent, ACTIVITY_ALERT_LIST);
          break;
          case SEARCH_ID:
            Intent searchIntent = new Intent(this, AlertSearch.class);
            searchIntent.putExtra(ServerDbAdapter.KEY_ROWID, mRowId);
            startActivityForResult(searchIntent, ACTIVITY_SEARCH);
          break;
        }
        return super.onMenuItemSelected(featureId, item);
    }

  @Override
  protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putLong(ServerDbAdapter.KEY_ROWID, mRowId);
    if(mGotStatistics || mPausedForCertificate){
      outState.putBoolean("mGotStatistics", true);
      outState.putString("mAllTimeHighText", mAllTimeHighText.getText().toString());
      outState.putString("mAllTimeMediumText", mAllTimeMediumText.getText().toString());
      outState.putString("mAllTimeLowText", mAllTimeLowText.getText().toString());
      outState.putString("mAllTimeTotalText", mAllTimeTotalText.getText().toString());
      outState.putString("mLast72HighText", mLast72HighText.getText().toString());
      outState.putString("mLast72MediumText", mLast72MediumText.getText().toString());
      outState.putString("mLast72LowText", mLast72LowText.getText().toString());
      outState.putString("mLast72TotalText", mLast72TotalText.getText().toString());
      outState.putString("mLast24HighText", mLast24HighText.getText().toString());
      outState.putString("mLast24MediumText", mLast24MediumText.getText().toString());
      outState.putString("mLast24LowText", mLast24LowText.getText().toString());
      outState.putString("mLast24TotalText", mLast24TotalText.getText().toString());
      if(mGotStatistics){
        ListIterator<AlertMoment> itr = mOverviewXMLHandler.alertChart.alertMoments.listIterator();
        while(itr.hasNext()){
          int i = itr.nextIndex();
          AlertMoment alertMoment = itr.next();
          outState.putInt("alertMomentHigh" + String.valueOf(i), alertMoment.mHigh);
          outState.putInt("alertMomentMedium" + String.valueOf(i), alertMoment.mMedium);
          outState.putInt("alertMomentLow" + String.valueOf(i), alertMoment.mLow);
          outState.putString("alertMomentLabel" + String.valueOf(i), alertMoment.mLabel);
        }
      }
    } else {
      pd.dismiss();
    }
  }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
        super.onActivityResult(requestCode, resultCode, intent);
        mNetRun.certificateActivityResult(requestCode, resultCode, intent, ACTIVITY_HASH_DIALOG);
    }

  public Long getRowId() {
    return mRowId;
  }
  
  public ErrorMessageHandler getEMH(){
    return mEMH;
  }
  
  public Context getContext(){
    return this;
  }
  
  public void onBoundRequestSet(){
    mServerViewTitleText.setText(mNetRun.getBoundRequest().getCurrentHost() + " Severity Statistics");
    
    if(!mGotStatistics){
      // Display the progress dialog first
      pd = ProgressDialog.show(ServerView.this, "", "Connecting. Please wait...", true);
      Thread thread = new Thread(mNetRun);
      thread.start();
    }
  }
  
  public void onDocumentValidReturned(){
    mGotStatistics = true;
    DecimalFormat df = new DecimalFormat();
    DecimalFormatSymbols dfs = new DecimalFormatSymbols();
    dfs.setGroupingSeparator(',');
    df.setDecimalFormatSymbols(dfs);
    mAllTimeHighText.setText(df.format(mOverviewXMLHandler.current_element.all_time_high));
    mAllTimeMediumText.setText(df.format(mOverviewXMLHandler.current_element.all_time_medium));
    mAllTimeLowText.setText(df.format(mOverviewXMLHandler.current_element.all_time_low));
    mAllTimeTotalText.setText(df.format(mOverviewXMLHandler.current_element.all_time_high + mOverviewXMLHandler.current_element.all_time_medium + mOverviewXMLHandler.current_element.all_time_low));
    mLast72HighText.setText(df.format(mOverviewXMLHandler.current_element.last_72_high));
    mLast72MediumText.setText(df.format(mOverviewXMLHandler.current_element.last_72_medium));
    mLast72LowText.setText(df.format(mOverviewXMLHandler.current_element.last_72_low));
    mLast72TotalText.setText(df.format(mOverviewXMLHandler.current_element.last_72_high + mOverviewXMLHandler.current_element.last_72_medium + mOverviewXMLHandler.current_element.last_72_low));
    mLast24HighText.setText(df.format(mOverviewXMLHandler.current_element.last_24_high));
    mLast24MediumText.setText(df.format(mOverviewXMLHandler.current_element.last_24_medium));
    mLast24LowText.setText(df.format(mOverviewXMLHandler.current_element.last_24_low));
    mLast24TotalText.setText(df.format(mOverviewXMLHandler.current_element.last_24_high + mOverviewXMLHandler.current_element.last_24_medium + mOverviewXMLHandler.current_element.last_24_low));
    alertLinearLayout.removeAllViews();
    mOverviewXMLHandler.alertChart.setTitleString("Alerts by Date");
    mOverviewXMLHandler.alertChart.setXAxisString("Date");
    alertLinearLayout.addView(mOverviewXMLHandler.alertChart.execute(ServerView.A));    
  }
  
  public void onCertificateInspectVerified() throws IOException, SAXException, XMLHandlerException, WebTransportException{
    mOverviewXMLHandler.createElement(mNetRun.getBoundRequest(), "overview");
  }
  
  public OnCancelListener getCancelListener(){
    return new OnCancelListener() {
      public void onCancel(DialogInterface dialog) {
        finish();
        return;
      }
    };
  }
  
  public void onHandleMessageBegin(){
    pd.dismiss();
  }
  
  public void onCertErrorBegin(){
    mPausedForCertificate = true;
  }
  
  public void callHashDialog(Intent i){
      startActivityForResult(i, ACTIVITY_HASH_DIALOG);
  }
}




Java Source Code List

com.legind.Dialogs.ErrorMessageHandler.java
com.legind.Dialogs.MessageHandler.java
com.legind.sqlite.AlertDbAdapter.java
com.legind.sqlite.DbAdapter.java
com.legind.sqlite.ServerDbAdapter.java
com.legind.ssl.CertificateInspect.CertificateInspect.java
com.legind.ssl.SSLHandler.SSLHandler.java
com.legind.ssl.TrustManagerFactory.TrustManagerFactory.java
com.legind.swinedroid.AlertList.java
com.legind.swinedroid.AlertSearch.java
com.legind.swinedroid.AlertView.java
com.legind.swinedroid.ServerEdit.java
com.legind.swinedroid.ServerHashDialog.java
com.legind.swinedroid.ServerView.java
com.legind.swinedroid.Swinedroid.java
com.legind.swinedroid.NetworkRunnable.NetworkRunnableBindRequires.java
com.legind.swinedroid.NetworkRunnable.NetworkRunnableManager.java
com.legind.swinedroid.NetworkRunnable.NetworkRunnableRequires.java
com.legind.swinedroid.NetworkRunnable.NetworkRunnableUniqueRequires.java
com.legind.swinedroid.NetworkRunnable.NetworkRunnable.java
com.legind.swinedroid.RequestService.RequestElement.java
com.legind.swinedroid.RequestService.Request.java
com.legind.swinedroid.xml.AlertListXMLElement.java
com.legind.swinedroid.xml.AlertListXMLHandler.java
com.legind.swinedroid.xml.AlertXMLElement.java
com.legind.swinedroid.xml.AlertXMLHandler.java
com.legind.swinedroid.xml.OverviewXMLElement.java
com.legind.swinedroid.xml.OverviewXMLHandler.java
com.legind.swinedroid.xml.XMLHandlerException.java
com.legind.swinedroid.xml.XMLHandler.java
com.legind.web.WebTransport.WebTransportConnection.java
com.legind.web.WebTransport.WebTransportException.java
com.legind.web.WebTransport.WebTransport.java
org.achartengine.chartlib.AbstractChart.java
org.achartengine.chartlib.AlertChart.java