diff --git a/extras/pandroid_event_viewer/.classpath b/extras/pandroid_event_viewer/.classpath index 6aed2ebfbe..a9f0767dbb 100644 --- a/extras/pandroid_event_viewer/.classpath +++ b/extras/pandroid_event_viewer/.classpath @@ -1,8 +1,9 @@ - - + + + diff --git a/extras/pandroid_event_viewer/ChangeLog b/extras/pandroid_event_viewer/ChangeLog index ebd45d82f1..7825dcaaa5 100644 --- a/extras/pandroid_event_viewer/ChangeLog +++ b/extras/pandroid_event_viewer/ChangeLog @@ -1,3 +1,10 @@ +2012-07-03 Santiago Munín + * src/pandroid_event_viewer/pandorafms/IncidentListItem.java: Deleted, not necessary class. + * src/pandroid_event_viewer/pandorafms/IncidentList.java: Deleted, not necessary class. + * src/pandroid_event_viewer/pandorafms/EventList.java: The event type images are now fetched from the application (not internet). + * src/pandroid_event_viewer/pandorafms/Core.java: Added a method which returns the event type image. + * res/res/drawable-ldpi/: Added some images. + 2012-06-30 Santiago Munín * src/pandroid_event_viewer/pandorafms/Main.java: Added a check in order to prevent profile overwritings. * src/pandroid_event_viewer/pandorafms/Core.java: Added method which finds a string in a list (case insensitive). diff --git a/extras/pandroid_event_viewer/res/drawable-ldpi/b_green.png b/extras/pandroid_event_viewer/res/drawable-ldpi/b_green.png new file mode 100644 index 0000000000..f0b4d64acd Binary files /dev/null and b/extras/pandroid_event_viewer/res/drawable-ldpi/b_green.png differ diff --git a/extras/pandroid_event_viewer/res/drawable-ldpi/b_red.png b/extras/pandroid_event_viewer/res/drawable-ldpi/b_red.png new file mode 100644 index 0000000000..452e757d75 Binary files /dev/null and b/extras/pandroid_event_viewer/res/drawable-ldpi/b_red.png differ diff --git a/extras/pandroid_event_viewer/res/drawable-ldpi/b_yellow.png b/extras/pandroid_event_viewer/res/drawable-ldpi/b_yellow.png new file mode 100644 index 0000000000..117285ff7e Binary files /dev/null and b/extras/pandroid_event_viewer/res/drawable-ldpi/b_yellow.png differ diff --git a/extras/pandroid_event_viewer/res/drawable-ldpi/bell.png b/extras/pandroid_event_viewer/res/drawable-ldpi/bell.png new file mode 100644 index 0000000000..6e0015df4f Binary files /dev/null and b/extras/pandroid_event_viewer/res/drawable-ldpi/bell.png differ diff --git a/extras/pandroid_event_viewer/res/drawable-ldpi/cog.png b/extras/pandroid_event_viewer/res/drawable-ldpi/cog.png new file mode 100644 index 0000000000..8f4eeb7611 Binary files /dev/null and b/extras/pandroid_event_viewer/res/drawable-ldpi/cog.png differ diff --git a/extras/pandroid_event_viewer/res/drawable-ldpi/err.png b/extras/pandroid_event_viewer/res/drawable-ldpi/err.png new file mode 100644 index 0000000000..3cb2e983a4 Binary files /dev/null and b/extras/pandroid_event_viewer/res/drawable-ldpi/err.png differ diff --git a/extras/pandroid_event_viewer/res/drawable-ldpi/error.png b/extras/pandroid_event_viewer/res/drawable-ldpi/error.png new file mode 100644 index 0000000000..dbfda22975 Binary files /dev/null and b/extras/pandroid_event_viewer/res/drawable-ldpi/error.png differ diff --git a/extras/pandroid_event_viewer/res/drawable-ldpi/eye.png b/extras/pandroid_event_viewer/res/drawable-ldpi/eye.png new file mode 100644 index 0000000000..403aaa4126 Binary files /dev/null and b/extras/pandroid_event_viewer/res/drawable-ldpi/eye.png differ diff --git a/extras/pandroid_event_viewer/res/drawable-ldpi/network.png b/extras/pandroid_event_viewer/res/drawable-ldpi/network.png new file mode 100644 index 0000000000..eb6ee812cb Binary files /dev/null and b/extras/pandroid_event_viewer/res/drawable-ldpi/network.png differ diff --git a/extras/pandroid_event_viewer/res/drawable-ldpi/severity_critical.png b/extras/pandroid_event_viewer/res/drawable-ldpi/severity_critical.png new file mode 100644 index 0000000000..3a23a87013 Binary files /dev/null and b/extras/pandroid_event_viewer/res/drawable-ldpi/severity_critical.png differ diff --git a/extras/pandroid_event_viewer/res/drawable-ldpi/severity_informational.png b/extras/pandroid_event_viewer/res/drawable-ldpi/severity_informational.png new file mode 100644 index 0000000000..841319de1d Binary files /dev/null and b/extras/pandroid_event_viewer/res/drawable-ldpi/severity_informational.png differ diff --git a/extras/pandroid_event_viewer/res/drawable-ldpi/severity_maintenance.png b/extras/pandroid_event_viewer/res/drawable-ldpi/severity_maintenance.png new file mode 100644 index 0000000000..f0b9b3c123 Binary files /dev/null and b/extras/pandroid_event_viewer/res/drawable-ldpi/severity_maintenance.png differ diff --git a/extras/pandroid_event_viewer/res/drawable-ldpi/severity_normal.png b/extras/pandroid_event_viewer/res/drawable-ldpi/severity_normal.png new file mode 100644 index 0000000000..d5d63511fc Binary files /dev/null and b/extras/pandroid_event_viewer/res/drawable-ldpi/severity_normal.png differ diff --git a/extras/pandroid_event_viewer/res/drawable-ldpi/severity_warning.png b/extras/pandroid_event_viewer/res/drawable-ldpi/severity_warning.png new file mode 100644 index 0000000000..63bfee13a5 Binary files /dev/null and b/extras/pandroid_event_viewer/res/drawable-ldpi/severity_warning.png differ diff --git a/extras/pandroid_event_viewer/res/drawable-ldpi/wand.png b/extras/pandroid_event_viewer/res/drawable-ldpi/wand.png new file mode 100644 index 0000000000..1da4964f22 Binary files /dev/null and b/extras/pandroid_event_viewer/res/drawable-ldpi/wand.png differ diff --git a/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/Core.java b/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/Core.java index 4b4483551b..cd0067d3f8 100644 --- a/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/Core.java +++ b/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/Core.java @@ -606,4 +606,71 @@ public class Core { } return false; } + + /** + * Returns the corresponding image to the given severity code. + * + * @param context + * Application context. + * @param severityCode + * Severity code. + * @return a Drawable item. + */ + public static Drawable getSeverityImage(Context context, int severityCode) { + switch (severityCode) { + case 0: + return context.getResources().getDrawable( + R.drawable.severity_maintenance); + case 1: + return context.getResources().getDrawable( + R.drawable.severity_informational); + + case 2: + return context.getResources().getDrawable( + R.drawable.severity_normal); + + case 3: + return context.getResources().getDrawable( + R.drawable.severity_warning); + + case 4: + return context.getResources().getDrawable( + R.drawable.severity_critical); + } + return null; + } + + /** + * Returns the corresponding image to the given event type. + * + * @param context + * Application context. + * @param eventType + * Event type. + * @return Drawable + */ + public static Drawable getEventTypeImage(Context context, String eventType) { + eventType = eventType.toLowerCase(); + Map images = new HashMap(); + images.put("alert_recovered", R.drawable.error); + images.put("alert_manual_validation", R.drawable.eye); + images.put("going_up_warning", R.drawable.b_yellow); + images.put("going_up_critical", R.drawable.b_red); + images.put("going_down_critical", R.drawable.b_red); + images.put("going_up_normal", R.drawable.b_green); + images.put("going_down_normal", R.drawable.b_green); + images.put("going_down_warning", R.drawable.b_yellow); + images.put("alert_fired", R.drawable.bell); + images.put("system", R.drawable.cog); + images.put("recon_host_detected", R.drawable.network); + images.put("new_agent", R.drawable.wand); + images.put("unknown", R.drawable.err); + + Integer code = images.get(eventType.toLowerCase()); + if (code != null) { + return context.getResources().getDrawable(code); + } else { + return null; + } + } } diff --git a/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/EventList.java b/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/EventList.java index 22af74a538..2fd1f5d681 100644 --- a/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/EventList.java +++ b/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/EventList.java @@ -387,9 +387,9 @@ public class EventList extends ListActivity { timestamp.setText(item.timestamp); if (item.criticity_image.length() != 0) - Core.setTextViewLeftImage( - (TextView) view.findViewById(R.id.event_name), - Core.downloadImage(item.criticity_image)); + Core.setTextViewLeftImage((TextView) view.findViewById(R.id.event_name), Core + .getSeverityImage(getApplicationContext(), + item.criticity), 16); if (item.group_icon.length() != 0) Core.setTextViewLeftImage( @@ -471,10 +471,9 @@ public class EventList extends ListActivity { text.setMovementMethod(LinkMovementMethod.getInstance()); } - if (item.description_image.length() != 0) - Core.setTextViewLeftImage((TextView) viewEventExtended - .findViewById(R.id.type_text), - item.description_image); + Core.setTextViewLeftImage((TextView) viewEventExtended + .findViewById(R.id.type_text), + Core.getEventTypeImage(getApplicationContext(), item.event_type), 16); text = (TextView) viewEventExtended .findViewById(R.id.type_text); @@ -484,12 +483,10 @@ public class EventList extends ListActivity { text = (TextView) viewEventExtended .findViewById(R.id.severity_text); text.setText(item.criticity_name); - - if (item.criticity_image.length() != 0) - Core.setTextViewLeftImage( - (TextView) viewEventExtended - .findViewById(R.id.severity_text), - item.criticity_image); + Core.setTextViewLeftImage((TextView) viewEventExtended + .findViewById(R.id.severity_text), Core + .getSeverityImage(getApplicationContext(), + item.criticity), 16); } // Set the open and close the extended info event row diff --git a/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/IncidentList.java b/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/IncidentList.java deleted file mode 100644 index f7293b5b14..0000000000 --- a/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/IncidentList.java +++ /dev/null @@ -1,269 +0,0 @@ -/* -Pandora FMS - http://pandorafms.com - -================================================== -Copyright (c) 2005-2011 Artica Soluciones Tecnologicas -Please see http://pandorafms.org for full contribution list - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public License -as published by the Free Software Foundation; version 2 - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - */ -package pandroid_event_viewer.pandorafms; - -import java.util.ArrayList; -import java.util.List; - -import android.app.ListActivity; -import android.content.Context; -import android.os.AsyncTask; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.ViewGroup; -import android.widget.BaseAdapter; -import android.widget.Button; -import android.widget.LinearLayout; -import android.widget.ListView; -import android.widget.RelativeLayout; -import android.widget.TextView; - -/** - * Activity where incidents are displayed. - * - * @author Santiago Munín González - * - */ -public class IncidentList extends ListActivity { - private ListView lv; - private MyIncidentListAdapter la; - private boolean loadInProgress; - private static String TAG = "IncidentList"; - private List incidents = new ArrayList(); - private int newIncidents; - private int offset, pagination; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.list_view_layout); - offset = 0; - pagination = 0; - la = new MyIncidentListAdapter(getBaseContext()); - this.toggleLoadingLayout(); - lv = (ListView) findViewById(android.R.id.list); - lv.setAdapter(la); - // TODO broadcast receiver went here - this.toggleLoadingLayout(); - loadIncidents(); - this.toggleLoadingLayout(); - } - - /** - * Shows loading information. - */ - private void toggleLoadingLayout() { - LinearLayout layout; - - layout = (LinearLayout) findViewById(R.id.empty_list_layout); - layout.setVisibility(LinearLayout.GONE); - - // layout = (LinearLayout) findViewById(R.id.loading_layout); - - if (loadInProgress) { - layout.setVisibility(LinearLayout.VISIBLE); - } else { - layout.setVisibility(LinearLayout.GONE); - } - } - /** - * Loads incidents. - * - */ - private void loadIncidents() { - la.showLoadingEvents = true; - new GetIncidentsTask().execute((Void)null); - } - private class GetIncidentsTask extends AsyncTask { - List list = new ArrayList(); - @Override - protected Void doInBackground(Void... params) { - incidents = new ArrayList(); - //TODO just a tests - IncidentListItem i = new IncidentListItem(); - i.title = "Test"; - i.description = "asdadsadads"; - i.timestamp = "ASDD"; - i.statusImage = "http://www.limpiatumundo.com/imagenes/circle_blue.png"; - list.add(i); - i = new IncidentListItem(); - i.title = "Test2"; - list.add(i); - - return null; - } - @Override - protected void onPostExecute(Void result) { - super.onPostExecute(result); - incidents.clear(); - incidents.addAll(list); - la.notifyDataSetChanged(); - } - - } - /** - * Private adapter (incident list). - * - * @author Santiago Munín González - * - */ - private class MyIncidentListAdapter extends BaseAdapter { - private Context mContext; - public boolean showLoadingEvents; - - public MyIncidentListAdapter(Context c) { - super(); - mContext = c; - showLoadingEvents = false; - - } - - @Override - public int getCount() { - // TODO +1? - return incidents.size(); - } - - @Override - public Object getItem(int position) { - return null; - } - - @Override - public long getItemId(int position) { - return 0; - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - View view; - - LayoutInflater inflater = (LayoutInflater) mContext - .getSystemService(Context.LAYOUT_INFLATER_SERVICE); - view = inflater.inflate(R.layout.item_list_incident_layout, null); - view.setOnClickListener(new OnIncidentClickListener(position)); - // If the end of the list. - if (incidents.size() == position) { - // Show button to get more events - if ((!loadInProgress) && (newIncidents != 0)) { - if (showLoadingEvents) { - LinearLayout layout = (LinearLayout) view - .findViewById(R.id.loading_more_incidents); - layout.setVisibility(LinearLayout.VISIBLE); - - RelativeLayout layout2 = (RelativeLayout) view - .findViewById(R.id.content_incident_item); - layout2.setVisibility(RelativeLayout.VISIBLE); - - Button button = (Button) view - .findViewById(R.id.button_load_more_incidents); - button.setVisibility(Button.GONE); - } else { - Button button = (Button) view - .findViewById(R.id.button_load_more_incidents); - - /* if (incidents.size() == 0) { - button.setVisibility(Button.GONE); - } else if (incidents.size() >= newIncidents) { - button.setVisibility(Button.GONE); - } else { - button.setVisibility(Button.VISIBLE); - }*/ - - button.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - offset += pagination; - loadIncidents(); - } - }); - - /*RelativeLayout content_event_item = (RelativeLayout) view - .findViewById(R.id.content_event_item); - content_event_item.setVisibility(RelativeLayout.GONE);*/ - } - } - } else { - IncidentListItem item = incidents.get(position); - - TextView tv = (TextView) view.findViewById(R.id.incident_name); - tv.setText(item.title); - Core.setTextViewLeftImage(tv, item.statusImage); - - tv = (TextView) view.findViewById(R.id.incident_agent); - tv.setText(item.nameAgent); - Core.setTextViewLeftImage(tv, item.priorityImage); - - tv = (TextView) view - .findViewById(R.id.incident_last_update_timestamp); - tv.setText(item.timestamp); - - // Show extended info - if (item.opened) { - ((LinearLayout) view.findViewById(R.id.incident_extra_info)).setVisibility(View.VISIBLE); - - TextView text = (TextView) view.findViewById(R.id.incident_description); - text.setText(item.description); - - view.setOnClickListener(new OnIncidentClickListener(position)); - - Button button; - button = (Button) findViewById(R.id.incident_close_button); - // TODO if status == closed then - // button.setVisibility(Visibility.GONE); - // else - /* button.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View v) { - // TODO close event - } - });*/ - - } else { - ((LinearLayout) view.findViewById(R.id.incident_extra_info)).setVisibility(View.GONE); - } - } - - return view; - } - - /** - * Custom click listener (show more information). - * - * @author Santiago Munín González - * - */ - private class OnIncidentClickListener implements OnClickListener { - private int mPosition; - - OnIncidentClickListener(int position) { - mPosition = position; - } - - @Override - public void onClick(View arg0) { - IncidentListItem item = incidents.get(mPosition); - item.opened = !item.opened; - incidents.set(mPosition, item); - la.notifyDataSetChanged(); - } - } - } -} \ No newline at end of file diff --git a/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/IncidentListItem.java b/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/IncidentListItem.java deleted file mode 100644 index 565fea9e39..0000000000 --- a/extras/pandroid_event_viewer/src/pandroid_event_viewer/pandorafms/IncidentListItem.java +++ /dev/null @@ -1,27 +0,0 @@ -package pandroid_event_viewer.pandorafms; - -import java.util.List; - -/** - * Represents an incident. - * - * @author Santiago Munín González - * - */ -public class IncidentListItem { - public int id; - public int idAgent; - public String nameAgent; - public String title; - public String description; - public int priority; - public String priorityImage; - public int idGroup; - public String nameGroup; - public List notes; - public int status; - public String statusImage; - public String timestamp; - public boolean opened = false; - //TODO attachments too? -}