@@ -266,6 +266,7 @@ define([
266266 case 'frame' :
267267 case 'chart' :
268268 case 'profiling' :
269+ blockContainer . setSelectBlock ( null ) ;
269270 blockContainer . createAppsPage ( menu , file , config ) ;
270271 break ;
271272 case 'merge' :
@@ -290,8 +291,6 @@ define([
290291 var addCell = evt . addCell == true ;
291292 var runCell = evt . runCell == true ;
292293
293- console . log ( 'popup_run' , { code : code , title : title , state : state } ) ;
294-
295294 var isFirstBlock = false ;
296295 const blockList = blockContainer . getBlockList ( ) ;
297296
@@ -302,56 +301,68 @@ define([
302301 isFirstBlock = true ;
303302 }
304303
305- var createdBlock = undefined ;
306-
307- if ( title === 'Snippets' ) {
308- // 1. add code block
309- // create block as group block
310- createdBlock = blockContainer . createBlock ( BLOCK_CODELINE_TYPE . CODE , null , null , true ) ;
311- // set code
312- createdBlock . setState ( {
313- [ STATE_codeLine ] : code
314- } ) ;
315- createdBlock . writeCode ( code ) ;
316- createdBlock . apply ( ) ;
317- if ( isFirstBlock == true ) {
318- // if it is first block, set as ROOT
319- createdBlock . setDirection ( BLOCK_DIRECTION . ROOT ) ;
320- } else {
321- var lastBottomBlock = blockContainer . getRootToLastBottomBlock ( ) ;
322- lastBottomBlock . appendBlock ( createdBlock , BLOCK_DIRECTION . DOWN ) ;
323- }
324- blockContainer . addNodeBlock ( createdBlock ) ;
325- blockContainer . resetBlockList ( ) ;
326- blockContainer . reRenderAllBlock_asc ( ) ;
327- blockContainer . resetBlockListAndRenderThisBlock ( createdBlock ) ;
328- } else if ( title === 'Import' || title === 'Variables' || title === 'File'
329- || title === 'Instance' || title === 'Chart' ) {
330- // add apps block
331- createdBlock = blockContainer . createBlock ( BLOCK_CODELINE_TYPE . APPS , null , null , true , true ) ;
304+ var createdBlock = blockContainer . getSelectBlock ( ) ;
305+ if ( createdBlock ) {
306+ // apply to original block
332307 createdBlock . setState ( {
333308 apps : {
334309 menu : blockContainer . apps ,
335310 code : code ,
336311 state : state
337312 }
338313 } ) ;
339- // set code
340- createdBlock . setState ( {
341- [ STATE_codeLine ] : 'Apps > ' + title
342- } ) ;
343- createdBlock . writeCode ( code ) ;
344- createdBlock . apply ( ) ;
345- if ( isFirstBlock == true ) {
346- // if it is first block, set as ROOT
347- createdBlock . setDirection ( BLOCK_DIRECTION . ROOT ) ;
348- } else {
349- var lastBottomBlock = blockContainer . getRootToLastBottomBlock ( ) ;
350- lastBottomBlock . appendBlock ( createdBlock , BLOCK_DIRECTION . DOWN ) ;
351- }
352- blockContainer . addNodeBlock ( createdBlock ) ;
353- blockContainer . reRenderAllBlock_asc ( ) ;
354- }
314+ createdBlock . saveState ( ) ;
315+ } else {
316+ if ( title === 'Snippets' ) {
317+ // 1. add code block
318+ // create block as group block
319+ createdBlock = blockContainer . createBlock ( BLOCK_CODELINE_TYPE . CODE , null , null , true ) ;
320+ // set code
321+ createdBlock . setState ( {
322+ [ STATE_codeLine ] : code
323+ } ) ;
324+ createdBlock . writeCode ( code ) ;
325+ createdBlock . apply ( ) ;
326+ if ( isFirstBlock == true ) {
327+ // if it is first block, set as ROOT
328+ createdBlock . setDirection ( BLOCK_DIRECTION . ROOT ) ;
329+ } else {
330+ var lastBottomBlock = blockContainer . getRootToLastBottomBlock ( ) ;
331+ lastBottomBlock . appendBlock ( createdBlock , BLOCK_DIRECTION . DOWN ) ;
332+ }
333+ blockContainer . addNodeBlock ( createdBlock ) ;
334+ blockContainer . resetBlockList ( ) ;
335+ blockContainer . reRenderAllBlock_asc ( ) ;
336+ blockContainer . resetBlockListAndRenderThisBlock ( createdBlock ) ;
337+ } else if ( title === 'Import' || title === 'Variables' || title === 'File'
338+ || title === 'Instance' || title === 'Chart' ) {
339+ // add apps block
340+ createdBlock = blockContainer . createBlock ( BLOCK_CODELINE_TYPE . APPS , null , null , true , true ) ;
341+ createdBlock . setState ( {
342+ apps : {
343+ menu : blockContainer . apps ,
344+ code : code ,
345+ state : state
346+ }
347+ } ) ;
348+ // set code
349+ createdBlock . setState ( {
350+ [ STATE_codeLine ] : 'Apps > ' + title
351+ } ) ;
352+ // createdBlock.writeCode(code);
353+ createdBlock . apply ( ) ;
354+ if ( isFirstBlock == true ) {
355+ // if it is first block, set as ROOT
356+ createdBlock . setDirection ( BLOCK_DIRECTION . ROOT ) ;
357+ } else {
358+ var lastBottomBlock = blockContainer . getRootToLastBottomBlock ( ) ;
359+ lastBottomBlock . appendBlock ( createdBlock , BLOCK_DIRECTION . DOWN ) ;
360+ }
361+ blockContainer . addNodeBlock ( createdBlock ) ;
362+ blockContainer . resetBlockList ( ) ;
363+ blockContainer . reRenderAllBlock_asc ( ) ;
364+ }
365+ }
355366
356367 // 2. add cell and run cell
357368 if ( addCell ) {
@@ -367,8 +378,6 @@ define([
367378 var addCell = evt . addCell == true ;
368379 var runCell = evt . runCell == true ;
369380
370- console . log ( 'apps_run' , { code : code , title : title , state : state } ) ;
371-
372381 var isFirstBlock = false ;
373382 const blockList = blockContainer . getBlockList ( ) ;
374383 /** board에 블럭이 0개 일때
@@ -378,61 +387,76 @@ define([
378387 isFirstBlock = true ;
379388 }
380389
381- var createdBlock = undefined ;
382- if ( title === 'Markdown' ) {
383-
384- createdBlock = blockContainer . createTextBlock ( code ) ;
385-
386- // createdBlock = blockContainer.createBlock(BLOCK_CODELINE_TYPE.TEXT);
387- // createdBlock.apply();
388- // createdBlock.setFuncID(STR_TEXT_BLOCK_MARKDOWN_FUNCID);
389- // createdBlock.setOptionPageLoadCallback(optionPageLoadCallback_block);
390- // createdBlock.setLoadOption(loadOption_block);
391- // createdBlock.setState({
392- // [STATE_codeLine]: code
393- // });
394-
395- // /** board에 블럭이 0개일 경우 */
396- // if (isFirstBlock == true) {
397- // createdBlock.setDirection(BLOCK_DIRECTION.ROOT);
398- // blockContainer.reNewContainerDom();
399- // /** board에 블럭이 1개 이상 일 경우 */
400- // } else {
401- // /** board의 가장 아래 블럭을 가져옴 */
402- // var lastBottomBlock = blockContainer.getRootToLastBottomBlock();
403- // lastBottomBlock.appendBlock(createdBlock, BLOCK_DIRECTION.DOWN);
404- // }
405- // blockContainer.reRenderAllBlock_asc();
406- // blockContainer.resetBlockList();
407- // blockContainer.setSelectBlock(createdBlock);
408-
409- // createdBlock.writeCode(`<p>${code}</p>`);
410- // createdBlock.renderSelectedBlockBorderColor(true);
411- } else {
412- // add apps block
413- createdBlock = blockContainer . createBlock ( BLOCK_CODELINE_TYPE . APPS , null , null , true , true ) ;
390+ var createdBlock = blockContainer . getSelectBlock ( ) ;
391+ if ( createdBlock ) {
392+ // apply to original block
414393 createdBlock . setState ( {
415394 apps : {
416395 menu : blockContainer . apps ,
417396 code : code ,
418397 state : state
419398 }
420399 } ) ;
421- // set code
422- createdBlock . setState ( {
423- [ STATE_codeLine ] : 'Apps > ' + title
424- } ) ;
425- createdBlock . writeCode ( code ) ;
426- createdBlock . apply ( ) ;
427- if ( isFirstBlock == true ) {
428- // if it is first block, set as ROOT
429- createdBlock . setDirection ( BLOCK_DIRECTION . ROOT ) ;
400+ createdBlock . saveState ( ) ;
401+ } else {
402+ // new block
403+ if ( title === 'Markdown' ) {
404+
405+ createdBlock = blockContainer . createTextBlock ( code ) ;
406+
407+ // createdBlock = blockContainer.createBlock(BLOCK_CODELINE_TYPE.TEXT);
408+ // createdBlock.apply();
409+ // createdBlock.setFuncID(STR_TEXT_BLOCK_MARKDOWN_FUNCID);
410+ // createdBlock.setOptionPageLoadCallback(optionPageLoadCallback_block);
411+ // createdBlock.setLoadOption(loadOption_block);
412+ // createdBlock.setState({
413+ // [STATE_codeLine]: code
414+ // });
415+
416+ // /** board에 블럭이 0개일 경우 */
417+ // if (isFirstBlock == true) {
418+ // createdBlock.setDirection(BLOCK_DIRECTION.ROOT);
419+ // blockContainer.reNewContainerDom();
420+ // /** board에 블럭이 1개 이상 일 경우 */
421+ // } else {
422+ // /** board의 가장 아래 블럭을 가져옴 */
423+ // var lastBottomBlock = blockContainer.getRootToLastBottomBlock();
424+ // lastBottomBlock.appendBlock(createdBlock, BLOCK_DIRECTION.DOWN);
425+ // }
426+ // blockContainer.reRenderAllBlock_asc();
427+ // blockContainer.resetBlockList();
428+ // blockContainer.setSelectBlock(createdBlock);
429+
430+ // createdBlock.writeCode(`<p>${code}</p>`);
431+ // createdBlock.renderSelectedBlockBorderColor(true);
430432 } else {
431- var lastBottomBlock = blockContainer . getRootToLastBottomBlock ( ) ;
432- lastBottomBlock . appendBlock ( createdBlock , BLOCK_DIRECTION . DOWN ) ;
433+ // add apps block
434+ createdBlock = blockContainer . createBlock ( BLOCK_CODELINE_TYPE . APPS , null , null , true , true ) ;
435+ createdBlock . setState ( {
436+ apps : {
437+ menu : blockContainer . apps ,
438+ code : code ,
439+ state : state
440+ }
441+ } ) ;
442+ // set code
443+ createdBlock . setState ( {
444+ [ STATE_codeLine ] : 'Apps > ' + title
445+ } ) ;
446+ // createdBlock.writeCode(code);
447+ createdBlock . apply ( ) ;
448+ if ( isFirstBlock == true ) {
449+ // if it is first block, set as ROOT
450+ createdBlock . setDirection ( BLOCK_DIRECTION . ROOT ) ;
451+ } else {
452+ var lastBottomBlock = blockContainer . getRootToLastBottomBlock ( ) ;
453+ lastBottomBlock . appendBlock ( createdBlock , BLOCK_DIRECTION . DOWN ) ;
454+ }
455+ blockContainer . addNodeBlock ( createdBlock ) ;
456+ blockContainer . resetBlockList ( ) ;
457+ blockContainer . reRenderAllBlock_asc ( ) ;
433458 }
434- blockContainer . addNodeBlock ( createdBlock ) ;
435- blockContainer . reRenderAllBlock_asc ( ) ;
459+
436460 }
437461
438462 // 2. add cell and run cell
0 commit comments