Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / src / tracing / analysis / object_instance_view.js
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 'use strict';
6
7 tvcm.require('tvcm.ui');
8
9 tvcm.exportTo('tracing.analysis', function() {
10   var ObjectInstanceView = tvcm.ui.define('object-instance-view');
11
12   ObjectInstanceView.prototype = {
13     __proto__: HTMLDivElement.prototype,
14
15     decorate: function() {
16       this.objectInstance_ = undefined;
17     },
18
19     get requiresTallView() {
20       return true;
21     },
22
23     set modelEvent(obj) {
24       this.objectInstance = obj;
25     },
26
27     get modelEvent() {
28       return this.objectInstance;
29     },
30
31     get objectInstance() {
32       return this.objectInstance_;
33     },
34
35     set objectInstance(i) {
36       this.objectInstance_ = i;
37       this.updateContents();
38     },
39
40     updateContents: function() {
41       throw new Error('Not implemented');
42     }
43   };
44
45   ObjectInstanceView.typeNameToViewInfoMap = {};
46   ObjectInstanceView.register = function(typeName,
47                                          viewConstructor,
48                                          opt_options) {
49     if (ObjectInstanceView.typeNameToViewInfoMap[typeName])
50       throw new Error('Handler already registerd for ' + typeName);
51     var options = opt_options || {
52       showInTrackView: true
53     };
54     ObjectInstanceView.typeNameToViewInfoMap[typeName] = {
55       constructor: viewConstructor,
56       options: options
57     };
58   };
59
60   ObjectInstanceView.unregister = function(typeName) {
61     if (ObjectInstanceView.typeNameToViewInfoMap[typeName] === undefined)
62       throw new Error(typeName + ' not registered');
63     delete ObjectInstanceView.typeNameToViewInfoMap[typeName];
64   };
65
66   ObjectInstanceView.getViewInfo = function(typeName) {
67     return ObjectInstanceView.typeNameToViewInfoMap[typeName];
68   };
69
70
71   return {
72     ObjectInstanceView: ObjectInstanceView
73   };
74 });