public Widget getWidgetWithLoggedPin(DashBoard dash, int deviceId, short pin, PinType pinType) { for (Widget widget : dash.widgets) { if (widget instanceof Superchart) { Superchart graph = (Superchart) widget; if (isWithinGraph(dash, graph, pin, pinType, deviceId)) { return graph; } } if (widget instanceof DeviceTiles) { DeviceTiles deviceTiles = (DeviceTiles) widget; for (TileTemplate tileTemplate : deviceTiles.templates) { for (Widget tilesWidget : tileTemplate.widgets) { if (tilesWidget instanceof Superchart) { Superchart graph = (Superchart) tilesWidget; if (isWithinGraph(dash, graph, pin, pinType, deviceId, tileTemplate.deviceIds)) { return graph; } } } } } if (widget instanceof ReportingWidget) { ReportingWidget reportingWidget = (ReportingWidget) widget; if (reportingWidget.hasPin(pin, pinType)) { return reportingWidget; } } } return null; }