Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(358)

Unified Diff: pkg/analysis_server/lib/src/get_handler.dart

Issue 685123006: Status page improvements (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/analysis_server/lib/src/get_handler.dart
diff --git a/pkg/analysis_server/lib/src/get_handler.dart b/pkg/analysis_server/lib/src/get_handler.dart
index 150c54c19c3bcc376dd8a751bc6346354426bd9b..f9b26b1145daef4453428db25826794db9bb578f 100644
--- a/pkg/analysis_server/lib/src/get_handler.dart
+++ b/pkg/analysis_server/lib/src/get_handler.dart
@@ -6,7 +6,9 @@ library get.handler;
import 'dart:convert';
import 'dart:io';
+import 'dart:math';
+import 'package:analysis_server/src/analysis_server.dart';
import 'package:analysis_server/src/socket_server.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/src/generated/source.dart';
@@ -172,20 +174,33 @@ class GetHandler {
response.write('<html>');
response.write('<head>');
response.write('<title>Dart Analysis Server - Status</title>');
+ response.write('<style>');
+ response.write('td.right {text-align: right;}');
+ response.write('</style>');
response.write('</head>');
response.write('<body>');
response.write('<h1>Analysis Server</h1>');
- if (_server.analysisServer == null) {
+ AnalysisServer analysisServer = _server.analysisServer;
+ if (analysisServer == null) {
response.write('<p>Not running</p>');
} else {
- response.write('<p>Running</p>');
+ if (analysisServer.statusAnalyzing) {
+ response.write('<p>Running (analyzing)</p>');
+ } else {
+ response.write('<p>Running (not analyzing)</p>');
+ }
response.write('<h1>Analysis Contexts</h1>');
response.write('<h2>Summary</h2>');
response.write('<table>');
List headerRowText = ['Context'];
headerRowText.addAll(CacheState.values);
- _writeRow(response, headerRowText, true);
- _server.analysisServer.folderMap.forEach((Folder folder, AnalysisContextImpl context) {
+ _writeRow(response, headerRowText, header: true);
+ Map<Folder, AnalysisContext> folderMap = analysisServer.folderMap;
+ List<Folder> folders = folderMap.keys.toList();
+ folders.sort((Folder first, Folder second)
+ => first.shortName.compareTo(second.shortName));
+ folders.forEach((Folder folder) {
+ AnalysisContextImpl context = folderMap[folder];
String key = folder.shortName;
AnalysisContextStatistics statistics = context.statistics;
Map<CacheState, int> totals = <CacheState, int>{};
@@ -201,15 +216,16 @@ class GetHandler {
for (CacheState state in CacheState.values) {
rowText.add(totals[state]);
}
- _writeRow(response, rowText);
+ _writeRow(response, rowText, classes: [null, "right"]);
});
response.write('</table>');
- _server.analysisServer.folderMap.forEach((Folder folder, AnalysisContextImpl context) {
+ folders.forEach((Folder folder) {
+ AnalysisContextImpl context = folderMap[folder];
String key = folder.shortName;
response.write('<h2><a name="context_${HTML_ESCAPE.convert(key)}">Analysis Context: $key</a></h2>');
AnalysisContextStatistics statistics = context.statistics;
response.write('<table>');
- _writeRow(response, headerRowText, true);
+ _writeRow(response, headerRowText, header: true);
statistics.cacheRows.forEach((AnalysisContextStatistics_CacheRow row) {
List rowText = [row.name];
for (CacheState state in CacheState.values) {
@@ -221,7 +237,7 @@ class GetHandler {
};
rowText.add(_makeLink(CACHE_STATE_PATH, params, text));
}
- _writeRow(response, rowText);
+ _writeRow(response, rowText, classes: [null, "right"]);
});
response.write('</table>');
List<CaughtException> exceptions = statistics.exceptions;
@@ -274,21 +290,31 @@ class GetHandler {
* will have one cell for each of the [columns], and will be a header row if
* [header] is `true`.
*/
- void _writeRow(HttpResponse response, List<Object> columns, [bool header = false]) {
+ void _writeRow(HttpResponse response, List<Object> columns,
+ {bool header : false, List<String> classes}) {
response.write('<tr>');
- columns.forEach((Object value) {
+ int count = columns.length;
+ int maxClassIndex = classes == null ? 0 : classes.length - 1;
+ for (int i = 0; i < count; i++) {
+ String classAttribute = '';
+ if (classes != null) {
+ String className = classes[min(i, maxClassIndex)];
+ if (className != null) {
+ classAttribute = ' class="$className"';
+ }
+ }
if (header) {
- response.write('<th>');
+ response.write('<th$classAttribute>');
} else {
- response.write('<td>');
+ response.write('<td$classAttribute>');
}
- response.write(value);
+ response.write(columns[i]);
if (header) {
response.write('</th>');
} else {
response.write('</td>');
}
- });
+ };
response.write('</tr>');
}
}
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/generated/engine.dart » ('j') | pkg/analyzer/lib/src/generated/engine.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698