forked from ipython/ipython
-
Notifications
You must be signed in to change notification settings - Fork 2
/
leftpanel.js
102 lines (77 loc) · 3.31 KB
/
leftpanel.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
//----------------------------------------------------------------------------
// Copyright (C) 2008-2011 The IPython Development Team
//
// Distributed under the terms of the BSD License. The full license is in
// the file COPYING, distributed as part of this software.
//----------------------------------------------------------------------------
//============================================================================
// LeftPanel
//============================================================================
var IPython = (function (IPython) {
var utils = IPython.utils;
var LeftPanel = function (left_panel_selector, left_panel_splitter_selector) {
this.left_panel_element = $(left_panel_selector);
this.left_panel_splitter_element = $(left_panel_splitter_selector);
this.expanded = true;
this.width = 300;
this.style();
this.bind_events();
this.create_children();
};
LeftPanel.prototype.style = function () {
this.left_panel_splitter_element.addClass('border-box-sizing ui-widget ui-state-default');
this.left_panel_element.addClass('border-box-sizing ui-widget');
this.left_panel_element.width(this.width);
this.left_panel_splitter_element.css({left : this.width});
this.left_panel_splitter_element.attr('title', 'Click to Show/Hide left panel');
};
LeftPanel.prototype.bind_events = function () {
var that = this;
this.left_panel_element.bind('collapse_left_panel', function () {
that.left_panel_element.hide('fast');
that.left_panel_splitter_element.animate({left : 0}, 'fast');
});
this.left_panel_element.bind('expand_left_panel', function () {
that.left_panel_element.show('fast');
that.left_panel_splitter_element.animate({left : that.width}, 'fast');
});
this.left_panel_splitter_element.hover(
function () {
that.left_panel_splitter_element.addClass('ui-state-hover');
},
function () {
that.left_panel_splitter_element.removeClass('ui-state-hover');
}
);
this.left_panel_splitter_element.click(function () {
that.toggle();
});
};
LeftPanel.prototype.create_children = function () {
this.notebook_section = new IPython.NotebookSection('div#notebook_section');
this.cell_section = new IPython.CellSection('div#cell_section');
this.kernel_section = new IPython.KernelSection('div#kernel_section');
this.help_section = new IPython.HelpSection('div#help_section');
}
LeftPanel.prototype.collapse = function () {
if (this.expanded === true) {
this.left_panel_element.add($('div#notebook')).trigger('collapse_left_panel');
this.expanded = false;
};
};
LeftPanel.prototype.expand = function () {
if (this.expanded !== true) {
this.left_panel_element.add($('div#notebook')).trigger('expand_left_panel');
this.expanded = true;
};
};
LeftPanel.prototype.toggle = function () {
if (this.expanded === true) {
this.collapse();
} else {
this.expand();
};
};
IPython.LeftPanel = LeftPanel;
return IPython;
}(IPython));