blob: fb241d4fae420e98fcd022b96e7d5f08b24bf11e [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 nav_bar_element;
import 'dart:html';
import 'observatory_element.dart';
import 'package:observatory/app.dart';
import 'package:observatory/service.dart';
import 'package:polymer/polymer.dart';
@CustomTag('nav-bar')
class NavBarElement extends ObservatoryElement {
@published bool pad = true;
NavBarElement.created() : super.created();
}
@CustomTag('nav-menu')
class NavMenuElement extends ObservatoryElement {
@published String link = '#';
@published String anchor = '---';
@published bool last = false;
NavMenuElement.created() : super.created();
}
@CustomTag('nav-menu-item')
class NavMenuItemElement extends ObservatoryElement {
@published String link = '#';
@published String anchor = '---';
NavMenuItemElement.created() : super.created();
}
@CustomTag('nav-refresh')
class NavRefreshElement extends ObservatoryElement {
@published var callback;
@published bool active = false;
@published String label = 'Refresh';
NavRefreshElement.created() : super.created();
void buttonClick(Event e, var detail, Node target) {
if (active) {
return;
}
active = true;
if (callback != null) {
callback(refreshDone);
}
}
void refreshDone() {
active = false;
}
}
@CustomTag('nav-control')
class NavControlElement extends ObservatoryElement {
NavControlElement.created() : super.created();
void forward(Event e, var detail, Element target) {
location.forward();
}
void back(Event e, var detail, Element target) {
location.back();
}
}
@CustomTag('top-nav-menu')
class TopNavMenuElement extends ObservatoryElement {
@published bool last = false;
TopNavMenuElement.created() : super.created();
}
@CustomTag('isolate-nav-menu')
class IsolateNavMenuElement extends ObservatoryElement {
@published bool last = false;
@published Isolate isolate;
void isolateChanged(oldValue) {
notifyPropertyChange(#hashLinkWorkaround, 0, 1);
}
// TODO(turnidge): Figure out why polymer needs this function.
@reflectable
String get hashLinkWorkaround {
if (isolate != null) {
return isolate.link;
} else {
return '';
}
}
@reflectable set hashLinkWorkaround(var x) { /* silence polymer */ }
IsolateNavMenuElement.created() : super.created();
}
@CustomTag('library-nav-menu')
class LibraryNavMenuElement extends ObservatoryElement {
@published Library library;
@published bool last = false;
LibraryNavMenuElement.created() : super.created();
}
@CustomTag('class-nav-menu')
class ClassNavMenuElement extends ObservatoryElement {
@published ServiceMap cls;
@published bool last = false;
ClassNavMenuElement.created() : super.created();
}