blob: dda1cc5210d8a42ad6bc6bc2ce71a0b2edfb481b [file] [log] [blame]
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
library instance_view_element;
import 'dart:async';
import 'observatory_element.dart';
import 'package:observatory/service.dart';
import 'package:polymer/polymer.dart';
@CustomTag('instance-view')
class InstanceViewElement extends ObservatoryElement {
@published Instance instance;
InstanceViewElement.created() : super.created();
instanceChanged(oldValue) {
if (instance != null) {
// We load typeClass and typeArguments because we want to
// display this info.
if (instance.typeClass != null) {
instance.typeClass.load();
}
if (instance.typeArguments != null) {
instance.typeArguments.load();
}
}
}
Future<ServiceObject> evaluate(String expression) {
return instance.evaluate(expression);
}
Future setBreakOnActivation() {
return instance.isolate.addBreakOnActivation(instance)
.then((_) => refresh());
}
Future clearBreakOnActivation() {
return instance.isolate.removeBreakpoint(instance.activationBreakpoint)
.then((_) => refresh());
}
Future refresh() {
return instance.reload();
}
}