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

Unified Diff: runtime/bin/vmservice/client/lib/src/observatory_elements/observatory_element.dart

Issue 145323002: Post-meetup feature extravaganza. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 11 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: runtime/bin/vmservice/client/lib/src/observatory_elements/observatory_element.dart
===================================================================
--- runtime/bin/vmservice/client/lib/src/observatory_elements/observatory_element.dart (revision 32027)
+++ runtime/bin/vmservice/client/lib/src/observatory_elements/observatory_element.dart (working copy)
@@ -4,6 +4,7 @@
library observatory_element;
+import 'dart:math';
import 'package:polymer/polymer.dart';
import 'package:observatory/observatory.dart';
export 'package:observatory/observatory.dart';
@@ -30,4 +31,67 @@
void appChanged(oldValue) {
}
bool get applyAuthorStyles => true;
-}
+
+ static String _zeroPad(int value, int pad) {
+ String prefix = "";
+ while (pad > 1) {
+ int pow10 = pow(10, pad - 1);
+ if (value < pow10) {
+ prefix = prefix + "0";
+ }
+ pad--;
+ }
+ return "${prefix}${value}";
+ }
+
+ String formatTime(double time) {
+ if (time == null) {
+ return "-";
+ }
+ const millisPerHour = 60 * 60 * 1000;
+ const millisPerMinute = 60 * 1000;
+ const millisPerSecond = 1000;
+
+ var millis = (time * millisPerSecond).round();
+
+ var hours = millis ~/ millisPerHour;
+ millis = millis % millisPerHour;
+
+ var minutes = millis ~/ millisPerMinute;
+ millis = millis % millisPerMinute;
+
+ var seconds = millis ~/ millisPerSecond;
+ millis = millis % millisPerSecond;
+
+ return ("${_zeroPad(hours,2)}"
+ ":${_zeroPad(minutes,2)}"
+ ":${_zeroPad(seconds,2)}"
+ ".${_zeroPad(millis,3)}");
+
+ }
+
+ String formatSize(int bytes) {
+ const int bytesPerKB = 1024;
+ const int bytesPerMB = 1024 * bytesPerKB;
+ const int bytesPerGB = 1024 * bytesPerMB;
+ const int bytesPerTB = 1024 * bytesPerGB;
+
+ if (bytes < bytesPerKB) {
+ return "${bytes}B";
+ } else if (bytes < bytesPerMB) {
+ return "${(bytes / bytesPerKB).round()}KB";
+ } else if (bytes < bytesPerGB) {
+ return "${(bytes / bytesPerMB).round()}MB";
+ } else if (bytes < bytesPerTB) {
+ return "${(bytes / bytesPerGB).round()}GB";
+ } else {
+ return "${(bytes / bytesPerTB).round()}TB";
+ }
+ }
+
+ String fileAndLine(Map frame) {
+ var file = frame['script']['user_name'];
+ var shortFile = file.substring(file.lastIndexOf('/') + 1);
+ return "${shortFile}:${frame['line']}";
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698