Ȱ¼º µµ¿ò¸» ¸µÅ©¸¦ Æ®¸®°ÅÇÏ´Â ÄÚµå¿Í ¸¶Å©¾÷Àº ´Ü¼øÇØ º¸ÀÔ´Ï´Ù. ±×·¯³ª Ȱ¼º µµ¿ò¸» ¸µÅ©°¡ ÀÛµ¿ÇÏÁö ¾ÊÀ» °æ¿ì¿¡´Â ¾î¶»°Ô ÇØ¾ß ÇÒ±î¿ä?
Á¶Ä¡ ±¸ÇöÀÌ »ó´çÈ÷ º¹ÀâÇÒ °æ¿ì Eclipse ³»ÀÇ ÀϺΠÅ×½ºÆ® Äڵ带 »ç¿ëÇÏ¿© Á¶Ä¡¸¦ È£ÃâÇØ¾ß ÇÕ´Ï´Ù. ÀÌ·± ½ÄÀ¸·Î JavaScript¿¡¼ Á¶Ä¡¸¦ È£ÃâÇϱâ Àü¿¡ Á¶Ä¡¿¡ ¿À·ù°¡ ¾ø´ÂÁö ¾Ë ¼ö ÀÖ½À´Ï´Ù.
"plugins/org.eclipse.help_2.1.0/liveHelp.js"¸¦ ¼öÁ¤ÇÏ¿© liveAction ÇÔ¼öÀÇ Ã¹ ¹øÂ° ¸í·É¹®À¸·Î È£ÃâÀ» alert ÇÔ¼ö¿¡ Æ÷ÇÔ½Ãų ¼ö ÀÖ½À´Ï´Ù.
function liveAction(pluginId, className, argument) { alert("liveAction called"); ...
alert ÇÔ¼ö´Â ºê¶ó¿ìÀú¿¡¼ °æ°í ´ëÈ »óÀÚ¸¦ ¿°í ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© liveActionÀÌ HTML¿¡ Á¦´ë·Î È£ÃâµÇ¾ú´ÂÁö È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. µµ¿ò¸» ¸µÅ©¸¦ Ŭ¸¯ÇßÀ» ¶§ °æ°í ´ëÈ »óÀÚ°¡ Ç¥½ÃµÇÁö ¾ÊÀ¸¸é HTML ¸¶Å©¾÷¿¡ ¹®Á¦°¡ ÀÖ´Â °ÍÀÔ´Ï´Ù.
JavaScript°¡ ½ÇÇà ÁßÀÎÁö È®ÀÎÇÑ ÈÄ Eclipse ³»¿¡¼ Á¶Ä¡¸¦ µð¹ö±×ÇÒ ¼ö ÀÖ½À´Ï´Ù. À̸¦ ¼öÇàÇÏ·Á¸é µµ¿ò¸» Á¶Ä¡ Ŭ·¡½º¿¡ Áß´ÜÁ¡À» ¼³Á¤Çϰí ÀÚµ¿À¸·Î È£½ºÆ®µÇ´Â Eclipse ÀνºÅϽº¸¦ ½ÃÀÛÇÕ´Ï´Ù. µµ¿ò¸» HTMLÀÇ JavaScript´Â ºê¶ó¿ìÀú¸¦ ½ÇÇàÇÏ´Â Eclipse µµ¿ò¸» ¼¹öÀÇ ServletÀ» È£ÃâÇϱ⠶§¹®¿¡ È£½ºÆ® ÀνºÅϽº°¡ ¾Æ´Ï¶ó »õ·Î ½ÇÇàÇÑ Eclipse ÀνºÅϽºÀÇ µµ¿ò¸» ºê¶ó¿ìÀú¸¦ »ç¿ëÇÏ¿© Ȱ¼º µµ¿ò¸»À» Å×½ºÆ®ÇØ¾ß ÇÕ´Ï´Ù.
Áß´ÜÁ¡À» ¼³Á¤Çϰí Ȱ¼º µµ¿ò¸» ¸µÅ©¸¦ Ŭ¸¯ÇÑ ÈÄ¿¡µµ ¾Æ¹« ÀÏÀÌ ¹ß»ýÇÏÁö ¾ÊÀ¸¸é Ç÷¯±×Àΰú Ȱ¼º µµ¿ò¸» Ŭ·¡½º°¡ JavaScript¿¡ Á¦´ë·Î ÁöÁ¤µÇÁö ¾Ê¾ÒÀ» °¡´É¼ºÀÌ ³ô½À´Ï´Ù.
Á¶Ä¡ÀÇ Áß´ÜÁ¡¿¡¼ ÁßÁöÇϵµ·Ï °ü¸®ÇßÀ¸¸é ´Ù¸¥ Java ÄÚµåó·³ Á¶Ä¡¸¦ µð¹ö±×ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Ȱ¼º µµ¿ò¸»À» È£ÃâÇÏ´Â ½º·¹µå¿¡¼ UI Äڵ忡 À߸ø ¾×¼¼½ºÇÏ´Â °ÍÀÌ °øÅëµÈ ·±Å¸ÀÓ ¹®Á¦Á¡ÀÔ´Ï´Ù. Ȱ¼º µµ¿ò¸» Á¶Ä¡°¡ ¿ø·¡ UI ½º·¹µå¿¡¼ ½ÇÇàµÈ Äڵ忡¼ ¿Â °æ¿ì ºñ UI ½º·¹µå¿¡¼ ½ÇÇà ÁßÀÎ Ç׸ñÀ» ó¸®ÇÒ ¼ö ÀÖ°Ô ¼öÁ¤ÇØ¾ß ÇÕ´Ï´Ù.
public void run() { // Active help does not run on the UI thread, so we must use syncExec Display.getDefault().syncExec(new Runnable() { public void run() { //do the UI work in here; } }); }