@@ -253,53 +253,55 @@ define([
253
253
}
254
254
} ) ;
255
255
256
+ /** Apps Menu item click */
256
257
/** Apps Menu item click */
257
258
$ ( document ) . on ( STR_CLICK , '.vp-apiblock-menu-apps-item' , function ( ) {
258
259
var menu = $ ( this ) . attr ( 'data-menu' ) ;
259
260
switch ( menu )
260
261
{
261
262
case 'import' :
263
+ blockContainer . createAppsPage ( '/nbextensions/visualpython/src/file_io/import.js' , {
264
+ title : 'Import' ,
265
+ width : '500px'
266
+ } ) ;
262
267
break ;
263
268
case 'markdown' :
269
+ // blockContainer.createAppsPage('/nbextensions/visualpython/src/markdown/markdown.js', {
270
+ // title: 'Markdown'
271
+ // }, function(funcJS) {
272
+ // funcJS.bindOptionEventForPopup();
273
+ // });
274
+ blockContainer . createTextBlock ( ) ;
264
275
break ;
265
276
case 'snippets' :
266
- var funcID = 'com_udf' ;
267
- var naviInfo = getNavigationInfo ( funcID ) ;
268
- /** board에 선택한 API List 블럭 생성 */
269
- blockContainer . createAPIListBlock ( funcID , naviInfo ) ;
277
+ blockContainer . createAppsPage ( '/nbextensions/visualpython/src/file_io/udf.js' , {
278
+ title : 'Snippets'
279
+ } ) ;
270
280
break ;
271
281
case 'variable' :
272
- var funcID = 'com_variables' ;
273
- var naviInfo = getNavigationInfo ( funcID ) ;
274
- /** board에 선택한 API List 블럭 생성 */
275
- blockContainer . createAPIListBlock ( funcID , naviInfo ) ;
282
+ blockContainer . createAppsPage ( '/nbextensions/visualpython/src/file_io/variables.js' , {
283
+ title : 'Variables'
284
+ } ) ;
276
285
break ;
277
286
case 'file' :
278
287
// TODO: file
288
+ blockContainer . createAppsPage ( 'nbextensions/visualpython/src/common/vpFile' ) ;
279
289
break ;
280
290
case 'instance' :
281
- var funcID = 'com_instance' ;
282
- var naviInfo = getNavigationInfo ( funcID ) ;
283
- /** board에 선택한 API List 블럭 생성 */
284
- blockContainer . createAPIListBlock ( funcID , naviInfo ) ;
291
+ blockContainer . createAppsPage ( '/nbextensions/visualpython/src/file_io/instance.js' , {
292
+ title : 'Instance'
293
+ } ) ;
285
294
break ;
286
295
case 'subset' :
287
- var funcID = 'pd_subset' ;
288
- var naviInfo = getNavigationInfo ( funcID ) ;
289
- /** board에 선택한 API List 블럭 생성 */
290
- blockContainer . createAPIListBlock ( funcID , naviInfo ) ;
296
+ blockContainer . createAppsPage ( 'nbextensions/visualpython/src/common/vpSubsetEditor' ) ;
291
297
break ;
292
298
case 'frame' :
293
- var funcID = 'pd_frameEditor' ;
294
- var naviInfo = getNavigationInfo ( funcID ) ;
295
- /** board에 선택한 API List 블럭 생성 */
296
- blockContainer . createAPIListBlock ( funcID , naviInfo ) ;
299
+ blockContainer . createAppsPage ( 'nbextensions/visualpython/src/common/vpFrameEditor' ) ;
297
300
break ;
298
301
case 'chart' :
299
- var funcID = 'mp_plot' ;
300
- var naviInfo = getNavigationInfo ( funcID ) ;
301
- /** board에 선택한 API List 블럭 생성 */
302
- blockContainer . createAPIListBlock ( funcID , naviInfo ) ;
302
+ blockContainer . createAppsPage ( '/nbextensions/visualpython/src/matplotlib/plot.js' , {
303
+ title : 'Chart'
304
+ } ) ;
303
305
break ;
304
306
case 'merge' :
305
307
// TODO: Merge
@@ -316,6 +318,77 @@ define([
316
318
}
317
319
} ) ;
318
320
321
+ /** Apps Menu Apply event */
322
+ $ ( document ) . on ( 'popup_apply subset_apply frame_apply' , '#vp_appsCode' , function ( evt ) {
323
+ var code = evt . code ;
324
+ var title = evt . title ;
325
+
326
+ var isFirstBlock = false ;
327
+ const blockList = blockContainer . getBlockList ( ) ;
328
+ /** board에 블럭이 0개 일때
329
+ * 즉 블럭이 처음으로 생성되는 경우
330
+ */
331
+ if ( blockList . length == 0 ) {
332
+ isFirstBlock = true ;
333
+ }
334
+
335
+ var createdBlock = undefined ;
336
+ if ( title == 'Markdown' ) {
337
+
338
+ createdBlock = blockContainer . createTextBlock ( code ) ;
339
+
340
+ // createdBlock = blockContainer.createBlock(BLOCK_CODELINE_TYPE.TEXT);
341
+ // createdBlock.apply();
342
+ // createdBlock.setFuncID(STR_TEXT_BLOCK_MARKDOWN_FUNCID);
343
+ // createdBlock.setOptionPageLoadCallback(optionPageLoadCallback_block);
344
+ // createdBlock.setLoadOption(loadOption_block);
345
+ // createdBlock.setState({
346
+ // [STATE_codeLine]: code
347
+ // });
348
+
349
+ // /** board에 블럭이 0개일 경우 */
350
+ // if (isFirstBlock == true) {
351
+ // createdBlock.setDirection(BLOCK_DIRECTION.ROOT);
352
+ // blockContainer.reNewContainerDom();
353
+ // /** board에 블럭이 1개 이상 일 경우 */
354
+ // } else {
355
+ // /** board의 가장 아래 블럭을 가져옴 */
356
+ // var lastBottomBlock = blockContainer.getRootToLastBottomBlock();
357
+ // lastBottomBlock.appendBlock(createdBlock, BLOCK_DIRECTION.DOWN);
358
+ // }
359
+ // blockContainer.reRenderAllBlock_asc();
360
+ // blockContainer.resetBlockList();
361
+ // blockContainer.setSelectBlock(createdBlock);
362
+
363
+ // createdBlock.writeCode(`<p>${code}</p>`);
364
+ // createdBlock.renderSelectedBlockBorderColor(true);
365
+ } else {
366
+ // 1. add code block
367
+ // create block as group block
368
+ createdBlock = blockContainer . createBlock ( BLOCK_CODELINE_TYPE . CODE , null , null , true ) ;
369
+ // set code
370
+ createdBlock . setState ( {
371
+ customCodeLine : code
372
+ } ) ;
373
+ createdBlock . writeCode ( code ) ;
374
+ createdBlock . apply ( ) ;
375
+ if ( isFirstBlock == true ) {
376
+ // if it is first block, set as ROOT
377
+ createdBlock . setDirection ( BLOCK_DIRECTION . ROOT ) ;
378
+ } else {
379
+ var lastBottomBlock = blockContainer . getRootToLastBottomBlock ( ) ;
380
+ lastBottomBlock . appendBlock ( createdBlock , BLOCK_DIRECTION . DOWN ) ;
381
+ }
382
+ blockContainer . addNodeBlock ( createdBlock ) ;
383
+ blockContainer . reRenderAllBlock_asc ( ) ;
384
+ blockContainer . resetBlockListAndRenderThisBlock ( createdBlock ) ;
385
+
386
+ }
387
+
388
+ // 2. add cell and run cell
389
+ createdBlock . runThisBlock ( ) ;
390
+ } ) ;
391
+
319
392
/** Logic, API, Data Analysis 의 > 버튼 클릭 */
320
393
$ ( document ) . on ( STR_CLICK , `.vp-apiblock-panel-area-vertical-btn` , function ( ) {
321
394
if ( $ ( this ) . hasClass ( `vp-apiblock-arrow-down` ) ) {
0 commit comments