|
129 | 129 | changeSizeOfSVGPanel(window.innerWidth - 16, (rows[rows.length - 1].lineBottom.y() ) + 1); |
130 | 130 |
|
131 | 131 | window.onload = function() { |
132 | | - /* init graph layout object */ |
133 | 132 | var Panel = new GraphLayout(); |
134 | | - var prevWidth = Config.svgWidth; |
| 133 | + var parser = new Parser(); |
135 | 134 |
|
| 135 | + var prevWidth = Config.svgWidth; |
136 | 136 | function svgResize() { |
137 | 137 | var widthPercChange; |
138 | 138 | if (Panel.isOpen) { |
|
147 | 147 | recalculateRows(widthPercChange); //makes sure that the words fit in the current width, else makes new rows |
148 | 148 | } |
149 | 149 |
|
150 | | - document.addEventListener('keydown', |
151 | | - function(e) { |
152 | | - var key = e.keyCode || e.which; |
153 | | - // console.log('keycode',key); |
154 | | - switch(key) { |
155 | | - case 37: // left arrow |
156 | | - if (Panel.isOpen) { |
157 | | - Panel.close(); |
158 | | - svgResize(); |
159 | | - } |
160 | | - break; |
161 | | - case 39: // right arrow |
162 | | - if (!Panel.isOpen) { |
163 | | - Panel.open(); |
164 | | - svgResize(); |
165 | | - } |
166 | | - Panel.graph(wordObjs.filter(word => word.isSelected)); |
167 | | - break; |
168 | | - default: |
169 | | - break; |
170 | | - } |
171 | | - }, false); |
172 | | - |
173 | | - var parser = new Parser(); |
174 | | - document.querySelector('select').onchange = function() { |
| 150 | + function handleKeyDown(e) { |
| 151 | + var key = e.keyCode || e.which; |
| 152 | + // console.log('keycode',key); |
| 153 | + switch(key) { |
| 154 | + case 37: // left arrow |
| 155 | + if (Panel.isOpen) { |
| 156 | + Panel.close(); |
| 157 | + svgResize(); |
| 158 | + } |
| 159 | + break; |
| 160 | + case 39: // right arrow |
| 161 | + if (!Panel.isOpen) { |
| 162 | + Panel.open(); |
| 163 | + svgResize(); |
| 164 | + } |
| 165 | + Panel.graph(wordObjs.filter(word => word.isSelected)); |
| 166 | + break; |
| 167 | + default: |
| 168 | + break; |
| 169 | + } |
| 170 | + }; |
| 171 | + |
| 172 | + function changeDataset() { |
175 | 173 | if (this.selectedIndex > 0) { |
176 | 174 | parser.readJson(`./data/data${this.selectedIndex}.json`, function() { |
177 | | - console.log('hey',parser); |
| 175 | + console.log(parser); |
| 176 | + resetDrawing(); |
178 | 177 | }); |
179 | 178 | } |
| 179 | + }; |
| 180 | + |
| 181 | + function resetDrawing(words, links) { |
| 182 | + draw.clear(); |
| 183 | + rowGroup = draw.group(); |
| 184 | + [groupAllElements, linkG, textG, arrowG].forEach(group => { |
| 185 | + if (group) { group.clear(); } |
| 186 | + group = undefined; |
| 187 | + }); |
| 188 | + dragElem = null; |
| 189 | + isDragging = false; |
| 190 | + rowOffsetX = 0; |
| 191 | + rowOffsetWord = null; |
| 192 | + prevX = -1; |
| 193 | + |
| 194 | + rows = []; |
| 195 | + wordObjs = words || createTestWords(4, 10, 10); |
| 196 | + linkObjs = links || createTestMultiLinks(1); |
| 197 | + drawWords(wordObjs); |
| 198 | + drawLinks(linkObjs); |
| 199 | + if (Panel.isOpen) { Panel.close(); } |
| 200 | + changeSizeOfSVGPanel(window.innerWidth - 16, (rows[rows.length - 1].lineBottom.y() ) + 1); |
180 | 201 | } |
181 | 202 |
|
182 | 203 | function resize() { |
183 | 204 | svgResize(); |
184 | 205 | Panel.resize(); |
185 | 206 | } |
| 207 | + |
| 208 | + document.addEventListener('keydown', handleKeyDown, false); |
| 209 | + document.querySelector('select').onchange = changeDataset; |
186 | 210 | window.onresize = _.debounce(resize, 300); |
| 211 | + |
187 | 212 | }; |
188 | 213 |
|
189 | 214 | </script> |
|
0 commit comments