¼³¸í: ÀÌ È®ÀåÁ¡À» »ç¿ëÇÏ¿© »õ ÆíÁý±â¸¦ Workbench¿¡ Ãß°¡ÇÕ´Ï´Ù. ÆíÁý±â´Â Workbench ÆäÀÌÁö ³»ÀÇ ºñÁÖ¾ó ±¸¼º¿ä¼ÒÀÔ´Ï´Ù. ÆíÁý±â¸¦ »ç¿ëÇÏ¿© ´ë°³ ¹®¼³ª ÀÔ·Â ¿ÀºêÁ§Æ®¸¦ ÆíÁýÇϰųª ã½À´Ï´Ù. ÆíÁý±â¸¦ ¿·Á¸é IFile¿¡¼ "¿±â"¸¦ È£ÃâÇÕ´Ï´Ù. ÀÌ Á¶Ä¡°¡ ¼öÇàµÇ¸é Workbench ·¹Áö½ºÆ®¸®¸¦ È®ÀÎÇÏ¿© ÆÄÀÏ À¯Çü¿¡ ÇØ´çÇÏ´Â ÆíÁý±â¸¦ È®ÀÎÇÑ ´ÙÀ½ ÆíÁý±â À¯ÇüÀÇ »õ ÀνºÅϽº¸¦ ¸¸µì´Ï´Ù. ÆíÁý±â À¯Çü¿¡ µû¶ó ½ÇÁ¦ °á°ú°¡ ´Þ¶óÁý´Ï´Ù. Workbench¿¡¼´Â Workbench¿¡ ¾ö°ÝÇÏ°Ô ÅëÇÕµÈ ³»ºÎ ÆíÁý±â¿Í º°µµÀÇ ÇÁ·¹ÀÓ Ã¢¿¡¼ ½ÇÇàµÇ´Â ¿ÜºÎ ÆíÁý±â ÀÛ¼ºÀ» À§ÇÑ Áö¿øÀ» Á¦°øÇÕ´Ï´Ù. ÀÌ ±Ø´Ü »çÀÌ¿¡´Â ´Ù¾çÇÑ ·¹º§ÀÇ ÅëÇÕÀÌ ÀÖ½À´Ï´Ù.
³»ºÎ ÆíÁý±âÀÇ °æ¿ì Workbench â°ú ÆíÁý±â ÆÄÆ® »çÀÌ¿¡¼ ¿Ïº®ÇÑ ÅëÇÕÀÌ ÀÌ·ç¾îÁú ¼ö ÀÖ½À´Ï´Ù. Àß¶ó³»±â, º¹»ç, ºÙ¿©³Ö±â µî°ú °°Àº ¿©·¯ °øÅë Á¶Ä¡¸¦ »ç¿ëÇÏ¿© Workbench ¸Þ´º¿Í µµ±¸ ¸ðÀ½À» ¹Ì¸® ·ÎµåÇÕ´Ï´Ù. Ȱ¼º ÆÄÆ®ÀÎ º¸±â ¶Ç´Â ÆíÁý±â¿¡¼ ÀÌ Á¶Ä¡¿¡ ´ëÇÑ ±¸ÇöÀ» Á¦°øÇÏ°Ô µË´Ï´Ù. ³»ºÎ ÆíÁý±â¿¡¼´Â Workbench â¿¡ ³ªÅ¸³ª´Â »õ Á¶Ä¡µµ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ Á¶Ä¡´Â ÆíÁý±â°¡ Ȱ¼ºÈµÈ °æ¿ì¿¡¸¸ ³ªÅ¸³³´Ï´Ù.
Workbench¿Í ¿ÜºÎ ÆíÁý±â »çÀÌÀÇ ÅëÇÕ Á¤µµ´Â Á» ´ú ¾ö°ÝÇÕ´Ï´Ù. ÀÌ °æ¿ì Workbench¿¡¼ ÆíÁý±â¸¦ ½ÇÇàÇÒ ¼ö ÀÖÁö¸¸ ±× ÈÄ¿¡´Â ¿ÜºÎ ÆíÁý±âÀÇ »óŸ¦ È®ÀÎÇϰųª ÆÄÀÏ ½Ã½ºÅÛÀ» Á¦¿ÜÇÑ ´Ù¸¥ ¼ö´ÜÀ¸·Î °øµ¿ ÀÛ¾÷À» ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ¾ø½À´Ï´Ù.
±¸¼º ¸¶Å©¾÷:
<!ELEMENT editor EMPTY>
<!ATTLIST editor
id
CDATA #REQUIRED
name
CDATA #REQUIRED
icon
CDATA #IMPLIED
class
CDATA #IMPLIED
command
CDATA #IMPLIED
launcher
CDATA #IMPLIED
contributorClass
CDATA #IMPLIED
extensions
CDATA #OPTIONAL
filenames
CDATA #OPTIONAL
default
CDATA (true|false) "false"
´ÙÀ½Àº ³»ºÎ ÆíÁý±â È®Àå Á¤ÀÇÀÇ ¿¹ÀÔ´Ï´Ù.
<extension point="org.eclipse.ui.editors">
<editor
id="com.xyz.XMLEditor"
name="Fancy XYZ
XML editor"
icon="./icons/XMLEditor.gif"
extensions="xml"
class="com.xyz.XMLEditor"
contributorClass="com.xyz.XMLEditorContributor"
default="false">
</editor>
</extension>
API Á¤º¸:
command ¼Ó¼ºÀ» »ç¿ëÇÑ °æ¿ì Ç÷§Æû¿¡ Á¾¼ÓµÇ´Â ¹æ¹ýÀ¸·Î ½ÇÇàµÇ´Â ¿ÜºÎ ÇÁ·Î±×·¥ ¸í·ÉÇàÀ¸·Î 󸮵˴ϴÙ.
launcher ¼Ó¼ºÀ» »ç¿ëÇÒ °æ¿ì ÆíÁý±âµµ ¿ÜºÎ ÇÁ·Î±×·¥À¸·Î 󸮵˴ϴÙ. ÀÌ °æ¿ì ÁöÁ¤ÇÑ Å¬·¡½º¿¡¼ org.eclipse.ui.IEditorLauncher¸¦ ±¸ÇöÇØ¾ß ÇÕ´Ï´Ù. ½ÇÇà±â°¡ ÀνºÅϽºÈµÈ ´ÙÀ½ open(IFile file)À» È£ÃâÇÏ¿© ÆíÁý±â¸¦ ½ÇÇàÇÕ´Ï´Ù.
class ¼Ó¼ºÀ» »ç¿ëÇÑ °æ¿ì Workbench¿¡¼´Â ³»ºÎ ÆíÁý±â·Î °¡Á¤Çϰí ÁöÁ¤ÇÑ Å¬·¡½º¿¡¼ org.eclipse.ui.IEditorPart¸¦ ±¸ÇöÇØ¾ß ÇÕ´Ï´Ù. »õ ÆíÁý±â À¯ÇüÀ» Á¤ÀÇÇÒ °æ¿ì¿¡´Â org.eclipse.ui.EditorPart ¼ºêŬ·¡½º¿¡ ´ëÇÑ ÀϹÝÀûÀÎ ¹æ¹ýÀÔ´Ï´Ù. contributorClass ¼Ó¼ºµµ Á¤ÀÇÇØ¾ß ÇÕ´Ï´Ù. ÁöÁ¤ÇÑ Å¬·¡½º¿¡¼ org.eclipse.ui.IEditorActionBarContributor¸¦ ±¸ÇöÇØ¾ß Çϸç ÁöÁ¤ÇÑ Å¬·¡½º¸¦ »ç¿ëÇÏ¿© ÆíÁý±â À¯ÇüÀÇ ±â´ÉÀ» ¹Ý¿µÇÏ´Â Workbench ¸Þ´º¿Í µµ±¸ ¸ðÀ½¿¡ »õ Á¶Ä¡¸¦ Ãß°¡ÇÕ´Ï´Ù.
Workbench³»¿¡¼´Â ƯÁ¤ À¯ÇüÀÇ ÆíÁý±â°¡ Çϳª ÀÌ»ó ¿·Á ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, Çϳª ÀÌ»óÀÇ Java ÆíÁý±â°¡ ¿·Á ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. Áߺ¹µÇ´Â Á¶Ä¡¿Í Á¶Ä¡ À̹ÌÁö¸¦ ¸¸µéÁö ¾Ê±â À§ÇØ ÆíÁý±â °³³äÀ» µÎ ºÎºÐÀ¸·Î ³ª´©¾ú½À´Ï´Ù. IEditorActionBarContributor´Â Á¶Ä¡ ÀÛ¼ºÀ» ´ã´çÇÕ´Ï´Ù. ÆíÁý±â´Â Á¶Ä¡ ±¸ÇöÀ» ´ã´çÇÕ´Ï´Ù. ´õ¿íÀÌ ¿¸° ÆíÁý±â¿¡¼ Áö½ÃÀÚ¸¦ °øÀ¯ÇÕ´Ï´Ù ÀÌ·¯ÇÑ ¼³°è °á°ú·Î Çϳª ÀÌ»óÀÇ ¿¸° ÆíÁý±â¿¡ ´ëÇØ ÇÑ ¼¼Æ®ÀÇ Á¶Ä¡¸¸ ÀÖ°Ô µË´Ï´Ù.
Áö½ÃÀÚ´Â ÆíÁý±â À¯ÇüÀ» ¹Ý¿µÇÏ´Â Workbench ¸Þ´º¿Í µµ±¸ ¸ðÀ½¿¡ »õ Á¶Ä¡¸¦ Ãß°¡ÇÕ´Ï´Ù. ÀÌ Á¶Ä¡´Â °øÀ¯µÇ°í Á¶Ä¡¸¦ È£ÃâÇÑ °æ¿ì Ȱ¼º ÆíÁý±â¿¡¼ ÀÛµ¿ÇÕ´Ï´Ù. IEditorActionBarContributor#setActiveEditor¸¦ È£ÃâÇÏ¿© Áö½ÃÀÚ¿¡°Ô Ȱ¼º ÆíÁý±â¸¦ Àü´ÞÇÕ´Ï´Ù. Workbench âÀÇ Á¶Ä¡¿Í ÁÖ ±×·ì¿¡ ´ëÇÑ ID´Â org.eclipse.ui.IWorkbenchActionConstants¿¡ Á¤ÀǵǾî ÀÖ½À´Ï´Ù. ÀÌ ID¸¦ »õ Á¶Ä¡¸¦ Ãß°¡Çϱâ À§ÇÑ ÂüÁ¶Á¡À¸·Î »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. path ¼Ó¼º¿¡ ´ëÇÑ ´ÙÀ½ °ªÀ» »ç¿ëÇÏ¿© ¸Ç À§ ·¹º§ ¸Þ´º°¡ ¸¸µé¾îÁý´Ï´Ù.
±âº» Á¦°ø ±¸Çö: Workbench¿¡¼´Â "±âº» ¹®¼ ÆíÁý±â"¸¦ Á¦°øÇÕ´Ï´Ù. ÀÏ¹Ý »ç¿ëÀÚ Á¦Ç°¿¡ ±âº» Á¦°ø ¹øµéÀÇ ÀϺηΠ´Ù¸¥ ÆíÁý±â°¡ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù. ±×·± °æ¿ì À§¿¡¼ ¼³¸íÇÑ ±¸¹®À» »ç¿ëÇÏ¿© ÆíÁý±â°¡ È®ÀåÀ¸·Î µî·ÏµË´Ï´Ù.