Android Open Source - Icinga-Mobile Hostlist Fragment






From Project

Back to project page Icinga-Mobile.

License

The source code is released under:

GNU General Public License

If you think the Android project Icinga-Mobile 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 mhst.dreamteam.UI;
//from   w  ww . j  a  v a2 s .  c o m
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;

import java.util.ArrayList;
import java.util.Map;

import mhst.dreamteam.IcingaClient.Icinga.IcingaApi;
import mhst.dreamteam.IcingaClient.Icinga.IcingaApiConst;
import mhst.dreamteam.IcingaClient.Icinga.IcingaConst;
import mhst.dreamteam.IcingaClient.Icinga.IcingaUdt;
import mhst.dreamteam.IcingaClient.Interface.OnCompleteListener;
import mhst.dreamteam.R;
import mhst.dreamteam.IcingaClient.SessionMng.Session;

/**
 * Display list of hosts
 *
 * @author MinhNN
 */
public class HostlistFragment extends Fragment implements OnCompleteListener {
    private Context mContext;
    private Session currentSs;
    private ProgressDialog mProgress;
    private int numberOfProgress;

    private ArrayList<Map<String, Object>> mHost;
    private HostlistAdapter mListHostAdapter;
    private String mRequest;
    private AlertDialog mDialog;
    private String mTitle;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_hostlist, container, false);

        // Init resourses
        mContext = inflater.getContext();
        currentSs = Session.getInstance();
        numberOfProgress = 0;
        mProgress = new ProgressDialog(mContext);
        mProgress.setCancelable(false);
        mProgress.setMessage(mContext.getResources().getString(R.string.message_loading_data) + "...");

        mHost = new ArrayList<Map<String, Object>>();
        mTitle = "";
        ListView listHost = (ListView) view.findViewById(R.id.lvListHost);
        mListHostAdapter = new HostlistAdapter(inflater, mHost);
        listHost.setAdapter(mListHostAdapter);
        listHost.setOnItemClickListener(new ListView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Bundle b = new Bundle();
                b.putString("HostId", (String) mHost.get(position).get(IcingaConst.HOST_OBJECT_ID));
                FragmentTransaction trans = getFragmentManager().beginTransaction();
                Fragment frag = new HostDetailsFragment();
                frag.setArguments(b);
                trans.replace(R.id.main_content, frag);
                trans.commit();
            }
        });

        // Get argument
        Bundle arg = getArguments();
        String request;
        String title = "";
        if (arg != null) {
            request = arg.getString("Request", null);
            mRequest = ((request == null) ? IcingaUdt.getTemplate(IcingaUdt.ICINGA_TEMPLATE_MAINACTIVITY_HOST, 0, -1, null)
                    : request);
            title = arg.getString("TitleEx", "");
        } else {
            mRequest = IcingaUdt.getTemplate(IcingaUdt.ICINGA_TEMPLATE_MAINACTIVITY_HOST, 0, -1, null);
        }

        // Set title
        mTitle = mContext.getResources().getString(R.string.title_fragment_host) + " " + title;
        ((Activity) mContext).setTitle(mTitle);

        // Update list
        updateList();

        return view;
    }

    @Override
    public void onResume() {
        super.onResume();
        if (mDialog != null && mDialog.isShowing()) {
            mDialog.dismiss();
        }
        ((Activity) mContext).setTitle(mTitle);
        updateList();
    }

    public void updateList() {
        if (!currentSs.isInProgress() && !mProgress.isShowing()) {
            currentSs.isInProgress(true);
            mProgress.show();
        }
        numberOfProgress = 2;
        IcingaApi.get(this, mRequest);
        IcingaApi.cronks(this, IcingaApi.TEMPLATE_PROBLEMS_ICINGA_ALL_SERVICE);
    }

    @Override
    @SuppressWarnings("unchecked")
    public void onComplete(Object obj, String sender) {
        if (obj != null) {
            ArrayList<Map<String, Object>> result = (ArrayList<Map<String, Object>>) obj;
            if (sender.equals("IcingaGet")) {
                mHost.clear();
                mHost.addAll(result);
                mListHostAdapter.notifyDataSetChanged();
            } else if (sender.equals("IcingaCronks")) {
                if (result.size() > 0) {
                    for (Map<String, Object> item : result) {
                        for (Map<String, Object> host : mHost) {
                            if (host.get(IcingaConst.HOST_NAME).equals(item.get(IcingaConst.HOST_NAME))) {
                                if (Integer.parseInt((String)item.get(IcingaConst.SERVICE_CURRENT_STATE))
                                        == IcingaApiConst.SERVICE_STATE_WARNING) {
                                    if (!host.containsKey("SERVICE_WARNING")) {
                                        host.put("SERVICE_WARNING", 0);
                                    }
                                    host.put("SERVICE_WARNING", (Integer)host.get("SERVICE_WARNING")+1);
                                } else if (Integer.parseInt((String)item.get(IcingaConst.SERVICE_CURRENT_STATE))
                                        == IcingaApiConst.SERVICE_STATE_CRITICAL) {
                                    if (!host.containsKey("SERVICE_CRITICAL")) {
                                        host.put("SERVICE_CRITICAL", 0);
                                    }
                                    host.put("SERVICE_CRITICAL", (Integer)host.get("SERVICE_CRITICAL")+1);
                                }
                            }
                        }
                    }
                    mListHostAdapter.notifyDataSetChanged();
                }
            }
        } else {
            if (mDialog == null) {
                AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
                mDialog = builder.setIcon(android.R.drawable.ic_dialog_alert)
                        .setTitle("Oops")
                        .setMessage(getResources().getString(R.string.error_icinga_fail))
                        .setPositiveButton(getResources().getString(R.string.action_tryagain),
                                new DialogInterface.OnClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialog, int which) {
                                        updateList();
                                    }
                                })
                        .setNegativeButton(getResources().getString(R.string.action_cancel),
                                new DialogInterface.OnClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialog, int which) {
                                        // Do nothing
                                    }
                                })
                        .create();
            }

            if (!mDialog.isShowing()) {
                mDialog.show();
            }
        }
        if (mProgress != null && mProgress.isShowing() && --numberOfProgress == 0) {
            mProgress.dismiss();
            currentSs.isInProgress(false);
        }
    }
}




Java Source Code List

mhst.dreamteam.ApplicationContext.java
mhst.dreamteam.ApplicationTest.java
mhst.dreamteam.ApplicationTest.java
mhst.dreamteam.MainActivity.java
mhst.dreamteam.IcingaClient.GlobalConfig.java
mhst.dreamteam.IcingaClient.GlobalConst.java
mhst.dreamteam.IcingaClient.Controller.NetControllerTest.java
mhst.dreamteam.IcingaClient.Controller.NetController.java
mhst.dreamteam.IcingaClient.Icinga.IcingaApiConst.java
mhst.dreamteam.IcingaClient.Icinga.IcingaApi.java
mhst.dreamteam.IcingaClient.Icinga.IcingaConst.java
mhst.dreamteam.IcingaClient.Icinga.IcingaExecutor.java
mhst.dreamteam.IcingaClient.Icinga.IcingaParam.java
mhst.dreamteam.IcingaClient.Icinga.IcingaUdt.java
mhst.dreamteam.IcingaClient.Icinga.package-info.java
mhst.dreamteam.IcingaClient.Interface.OnCompleteListener.java
mhst.dreamteam.IcingaClient.Interface.OnPieChartClickListener.java
mhst.dreamteam.IcingaClient.Json.JsonHelperTest.java
mhst.dreamteam.IcingaClient.Json.JsonHelper.java
mhst.dreamteam.IcingaClient.Misc.CookieMng.java
mhst.dreamteam.IcingaClient.Misc.CookieTest.java
mhst.dreamteam.IcingaClient.SessionMng.LogInTest.java
mhst.dreamteam.IcingaClient.SessionMng.Login.java
mhst.dreamteam.IcingaClient.SessionMng.Logout.java
mhst.dreamteam.IcingaClient.SessionMng.Session.java
mhst.dreamteam.IcingaService.ApplicationContext.java
mhst.dreamteam.IcingaService.DataUpdater.java
mhst.dreamteam.IcingaService.MessageReveicer.java
mhst.dreamteam.IcingaService.NotiBuilder.java
mhst.dreamteam.IcingaService.SQLHelper.java
mhst.dreamteam.IcingaService.SessionProvider.java
mhst.dreamteam.UI.Color.java
mhst.dreamteam.UI.GradientLine.java
mhst.dreamteam.UI.HostDetailsFragment.java
mhst.dreamteam.UI.HostlistAdapter.java
mhst.dreamteam.UI.HostlistFragment.java
mhst.dreamteam.UI.LoginActivity.java
mhst.dreamteam.UI.OverviewFragment.java
mhst.dreamteam.UI.PieGraph.java
mhst.dreamteam.UI.ProgressDialog.java
mhst.dreamteam.UI.ServiceDetailsFragment.java
mhst.dreamteam.UI.ServicelistAdapter.java
mhst.dreamteam.UI.ServicelistFragment.java
org.json.CDL.java
org.json.CookieList.java
org.json.Cookie.java
org.json.HTTPTokener.java
org.json.HTTP.java
org.json.JSONArray.java
org.json.JSONException.java
org.json.JSONML.java
org.json.JSONObject.java
org.json.JSONString.java
org.json.JSONStringer.java
org.json.JSONTokener.java
org.json.JSONWriter.java
org.json.Kim.java
org.json.Property.java
org.json.XMLTokener.java
org.json.XML.java
org.json.zip.BitInputStream.java
org.json.zip.BitOutputStream.java
org.json.zip.BitReader.java
org.json.zip.BitWriter.java
org.json.zip.Huff.java
org.json.zip.JSONzip.java
org.json.zip.Keep.java
org.json.zip.None.java
org.json.zip.PostMortem.java
org.json.zip.Unzipper.java
org.json.zip.Zipper.java