/* CloudTrail Viewer, is a Java desktop application for reading AWS CloudTrail logs files. Copyright (C) 2017 Mark P. Haskins This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ package io.haskins.java.cloudtrailviewer.controller.widget; import de.jensd.fx.glyphs.fontawesome.FontAwesomeIcon; import de.jensd.fx.glyphs.fontawesome.FontAwesomeIconView; import io.haskins.java.cloudtrailviewer.model.DashboardWidget; import io.haskins.java.cloudtrailviewer.model.dao.ResultSetRow; import io.haskins.java.cloudtrailviewer.model.event.Event; import io.haskins.java.cloudtrailviewer.service.DatabaseService; import io.haskins.java.cloudtrailviewer.service.EventTableService; import java.util.ArrayList; import java.util.List; /** * Controller that provides a widget for showing Events that the user has defined as being resource related. * * Created by markhaskins on 26/01/2017. */ public class TableResourcesWidgetController extends TableWidgetController { private final List<String> resourceEvents = new ArrayList<>(); @Override public void newEvents(List<Event> events) { for (Event event : events) { if (resourceEvents.contains(event.getEventName())) { newEvent(event); } } } FontAwesomeIconView getWidgetIcon() { return new FontAwesomeIconView(FontAwesomeIcon.SERVER); } @Override public void configure(DashboardWidget widget, EventTableService eventTableService, DatabaseService databaseService) { super.configure(widget, eventTableService, databaseService); widgetControlsController.hideEditButton(); loadResourceEvents(); } //////////////////////////////////////////////////////////////////////////// ///// private methods //////////////////////////////////////////////////////////////////////////// private void loadResourceEvents() { String query = "SELECT api_call FROM aws_resources"; List<ResultSetRow> rows = databaseService.executeCursorStatement(query); for (ResultSetRow row : rows) { String aws_name = (String)row.get("api_call"); resourceEvents.add(aws_name); } } }