org.eclipse.ui.editors

ÆíÁý±â´Â »ç¿ëÀÚ°¡ ¿ÀºêÁ§Æ®(´ë°³´Â ÆÄÀÏ)¸¦ ¼öÁ¤ÇÒ ¼ö ÀÖ°Ô ÇØÁÖ´Â Workbench ÆÄÆ®ÀÔ´Ï´Ù. ÆíÁý±â´Â Ç÷§Æû Workbench UI¿¡ ¾ö°ÝÇÏ°Ô ÅëÇյǾî ÀÖ´Ù´Â Á¡¸¸ Á¦¿ÜÇÏ°í ÆÄÀÏ ½Ã½ºÅÛ ÆíÁý µµ±¸¿Í ºñ½ÁÇÑ ¹æ¹ýÀ¸·Î ÀÛµ¿ÇÕ´Ï´Ù. ÆíÁý±â´Â Ç×»ó ÀÔ·Â ¿ÀºêÁ§Æ®(IEditorInput)¿Í ¿¬°üµÇ¾î ÀÖ½À´Ï´Ù. ÀÔ·Â ¿ÀºêÁ§Æ®¸¦ ÆíÁýµÈ ¹®¼­³ª ÆÄÀÏ·Î »ý°¢ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÆíÁý±â¿¡¼­ ¼öÇàÇÑ º¯°æ»çÇ×Àº À̸¦ ÀúÀåÇÑ °æ¿ì¿¡¸¸ Àû¿ëµË´Ï´Ù.

Workbench ÆäÀÌÁöÀÇ Æ¯Á¤ ÆíÁý±â ÀԷ¿¡ ´ëÇØ ÇϳªÀÇ ÆíÁý±â¸¸ ¿­ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, »ç¿ëÀÚ°¡ Workbench¿¡¼­ readme.txt¸¦ ÆíÁýÇÒ °æ¿ì °°Àº Perspective¿¡¼­ ´Ù½Ã ¿­¸é °°Àº ÆíÁý±â°¡ Ȱ¼ºÈ­µË´Ï´Ù. ´Ù¸¥ Workbench âÀ̳ª Perspective¿¡¼­ °°Àº ÆÄÀÏ¿¡ ´ëÇØ ´Ù¸¥ ÆíÁý±â¸¦ ¿­ ¼ö ÀÖ½À´Ï´Ù.  ±×·¯³ª º¸±â¿Í´Â ´Þ¸® ´Ù¸¥ ÀԷ¿¡ ´ëÇÑ ÇϳªÀÇ Workbench ÆäÀÌÁö ³»¿¡¼­ °°Àº ÆíÁý±â À¯Çü(¿¹: ¹®¼­ ÆíÁý±â)À» ¿©·¯ ¹ø ¿­ ¼ö ÀÖ½À´Ï´Ù.

Ç÷¯±×Àο¡¼­´Â Workbench È®ÀåÁ¡ org.eclipse.ui.editors¸¦ »ç¿ëÇÏ¿© ÆíÁý±â¸¦ Workbench¿¡ Ãß°¡ÇÕ´Ï´Ù. ÆíÁý±â¸¦ Á¦°øÇÏ´Â Ç÷¯±×Àο¡¼­´Â ÀÚ½ÅÀÇ plugin.xml ÆÄÀÏ¿¡ ÆíÁý±â¿¡ ´ëÇÑ ±¸¼º Á¤º¸¿Í ÇÔ²² ÆíÁý±â È®ÀåÀ» µî·ÏÇØ¾ß ÇÕ´Ï´Ù. ±¸Çö Ŭ·¡½º¿Í Workbench ¸Þ´º¿Í ·¹ÀÌºí¿¡¼­ »ç¿ëÇÑ À̸§ ¹× ¾ÆÀÌÄܰ°Àº ÀϺΠÆíÁý±â Á¤º¸´Â º¸±â Á¤º¸¿Í À¯»çÇÕ´Ï´Ù. ±×¸®°í ÆíÁý±â È®ÀåÀÚ¿¡¼­´Â ÆíÁý±â¿¡¼­ ÀÌÇØÇÏ´Â ÆÄÀÏÀÇ ÆÄÀÏ È®ÀåÀÚ³ª ÆÄÀÏ À̸§ ÆÐÅÏÀ» ÁöÁ¤ÇÕ´Ï´Ù. ÆíÁý±â°¡ Ȱ¼ºÈ­µÈ °æ¿ì ÆíÁý±â¿¡¼­ Workbench ¸Þ´º¿Í µµ±¸ ¸ðÀ½¿¡ Á¶Ä¡¸¦ Ãß°¡Çϴ Ŭ·¡½ºÀÎ contributorClass¸¦ Á¤ÀÇÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

ÆíÁý±â¿ë ÀÎÅÍÆäÀ̽º´Â IEditorPart¿¡ Á¤ÀǵǾî ÀÖÁö¸¸ Ç÷¯±×Àο¡¼­´Â óÀ½ºÎÅÍ IEditorPart¸¦ ±¸ÇöÇÏ´Â ´ë½Å EditorPart Ŭ·¡½º¸¦ È®ÀåÇÒ °ÍÀ» ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù.

Âü°í: ±âÁ¸ Java Äڵ带 ÆíÁý±â¸¦ È£ÃâÇϴµ¥ »ç¿ëÇÏ´Â ½ÇÇà±â Ŭ·¡½º¸¦ Á¦°øÇϰųª ÆÄÀÏÀ» ÆíÁýÇϱâ À§ÇØ ¿ÜºÎ ÇÁ·Î±×·¥À» ½ÇÇàÇϵµ·Ï ÆíÁý±â È®ÀåÀ» ±¸¼ºÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ ¼³¸í¿¡¼­´Â IEditorPart¸¦ »ç¿ëÇÏ¿© ±¸ÇöµÇ°í Workbench¿¡ ¿Ïº®ÇÏ°Ô ÅëÇÕµÈ ÆíÁý±â¸¦ ÁßÁ¡ÀûÀ¸·Î ´Ù·ç°í ÀÖ½À´Ï´Ù.

readme µµ±¸¿¡¼­´Â ÁÖ·Î ÀÚ½ÅÀÇ ÄÁÅÙÃ÷ ¾Æ¿ô¶óÀÌ³Ê ÆäÀÌÁö¸¦ Workbench ¾Æ¿ô¶óÀÎ º¸±â¿¡ Á¦°øÇϱâ À§ÇÑ »ç¿ëÀÚ Á¤ÀÇ ÆíÁý±â¸¦ Á¦°øÇÕ´Ï´Ù.   

ÆíÁý±â È®ÀåÀÚ¿¡ ´ëÇÑ ±¸¼ºÀº ´ÙÀ½°ú °°ÀÌ Á¤Àǵ˴ϴÙ.

<extension
    point = "org.eclipse.ui.editors">
        <editor
            id = "org.eclipse.ui.examples.readmetool.ReadmeEditor"
            name="Readme File Editor"
            icon="icons/basic/obj16/editor.gif"
            class="org.eclipse.ui.examples.readmetool.ReadmeEditor"
            extensions="readme"
            contributorClass="org.eclipse.ui.examples.readmetool.ReadmeEditorActionBarContributor">
        </editor>
</extension>

id, name, icon ¹× class¿¡ ´ëÇØ¼­µµ Àͼ÷ÇÑ ±¸¼º ¸¶Å©¾÷ÀÌ Ç¥½ÃµË´Ï´Ù. contributorClass¿¡´Â »õ·Î¿î Ç׸ñµµ ÀÖ½À´Ï´Ù.

ÆíÁý±â Á¶Ä¡ Áö½ÃÀÚ

Áö½ÃÀÚ Å¬·¡½º´Â Á¶Ä¡¿Í °ü·ÃµÈ ÆíÁý±â¸¦ Workbench ¸Þ´º¿Í µµ±¸ ¸ðÀ½¿¡ Ãß°¡Çϰí, IEditorActionBarContributor ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇØ¾ß ÇÕ´Ï´Ù. Workbench ÆäÀÌÁö¿¡ °°Àº À¯ÇüÀÇ ÆíÁý±â°¡ ¿©·¯ °³ ÀÖÀ» °æ¿ì Áö½ÃÀÚ´Â ÆíÁý±â ÀÚü¿Í ±¸ºÐµË´Ï´Ù. ÆíÁý±â À¯ÇüÀÇ °¢ ÀνºÅϽº¸¦ °¡ÁöÁö ¸»°í Á¶Ä¡¿Í À̹ÌÁö¸¦ ÀÛ¼ºÇϽʽÿÀ. ´ÜÀÏ Áö½ÃÀÚ¸¦ ƯÁ¤ À¯ÇüÀÇ ¸ðµç ÆíÁý±â¿¡¼­ °øÀ¯ÇÕ´Ï´Ù. 

ReadmeEditorActionBarContributor¿¡¼­´Â ¼¼ °¡Áö Á¶Ä¡, "Editor Action1", "Editor Action2" ¹× "Editor Action3"À» Á¦°øÇÕ´Ï´Ù.   ÀÌ Á¶Ä¡´Â »ý¼ºÀÚ¿¡¼­ ¼³Á¤µË´Ï´Ù.

public ReadmeEditorActionBarContributor() {
    ...
    action1 = new EditorAction("&Editor Action1");
    action1.setToolTipText("Readme Editor Action1");
    action1.setImageDescriptor(ReadmeImages.EDITOR_ACTION1_IMAGE);
    ...
    action2 = new EditorAction("&Editor Action2");
    action2.setToolTipText("Readme Editor Action2");
    action2.setImageDescriptor(ReadmeImages.EDITOR_ACTION2_IMAGE);
    ...
    action3 = new EditorAction("&Editor Action3");
    action3.setToolTipText("Readme Editor Action3");
    action3.setImageDescriptor(ReadmeImages.EDITOR_ACTION3_IMAGE);
    ...
}

Á¶Ä¡ÀÇ À̸§°ú ¾ÆÀÌÄÜÀº plugin.xmlÀÌ ¾Æ´Ñ Äڵ忡 ¼³Á¤µÇ¾î ÀÖ½À´Ï´Ù.  º¸±â Á¶Ä¡ÀÇ ¸¶Å©¾÷¿¡¼­ º¸¾Ò´ø viewActions Á¤º¸¿Í ÀÌ Á¤º¸°¡ ¾ó¸¶³ª À¯»çÇÑÁö È®ÀÎÇϽʽÿÀ. °°Àº ÆíÁý±âÀÇ ´Ù¸¥ ÀνºÅϽº »çÀÌ¿¡¼­ Á¶Ä¡ °øÀ¯¸¦ °ü¸®ÇØ¾ß Çϱ⠶§¹®¿¡ Á¶Ä¡´Â Äڵ忡 ¼³Á¤µË´Ï´Ù.

Á¶Ä¡°¡ »ý¼ºÀÚ¿¡¼­ ¸¸µé¾îÁ³±â ¶§¹®¿¡ Á¶Ä¡´Â ÆíÁý±âÀÇ Æ¯Á¤ ÀνºÅϽº¿¡ µ¶¸³ÀûÀÔ´Ï´Ù. ÆíÁý±â°¡ Ȱ¼ºÈ­µÇ°í Workbench ¸Þ´º¿Í µµ±¸ ¸ðÀ½¿¡ Á¶Ä¡¸¦ ¼³Á¤ÇØ¾ß ÇÒ °æ¿ì setActiveEditor ¸Þ½ÃÁö°¡ Áö½ÃÀÚ¿¡°Ô º¸³»Áý´Ï´Ù. Áö½ÃÀÚ´Â ÆíÁý±â Á¶Ä¡¸¦ ƯÁ¤ ÆíÁý±â¿¡ ¿¬°áÇÕ´Ï´Ù.  

public void setActiveEditor(IEditorPart editor) {
    ...
    action1.setActiveEditor(editor);
    action2.setActiveEditor(editor);
    action3.setActiveEditor(editor);
    ...
}

À§¿¡¼­ º¼ ¼ö ÀÖµíÀÌ readme ÆíÁý±â°¡ Ȱ¼ºÈ­µÈ °æ¿ì Workbench ¸Þ´º¿Í µµ±¸ ¸ðÀ½¿¡ Á¶Ä¡°¡ Ç¥½ÃµË´Ï´Ù.

Workbench ¸Þ´º Ç¥½ÃÁÙ¿¡ ´ëÇÑ Readme ÆíÁý±â Á¦°ø
Workbench µµ±¸ ¸ðÀ½¿¡ ´ëÇÑ Readme ÆíÁý±â Á¦°ø

ÆíÁý±â°¡ Ȱ¼ºÈ­µÈ °æ¿ì¿¡¸¸ ÀÌ ¸Þ´º¿Í µµ±¸ ¸ðÀ½ Ç׸ñÀÌ Ç¥½ÃµË´Ï´Ù. ¸Þ´º¿Í µµ±¸ ¸ðÀ½ Ç׸ñÀÇ À§Ä¡´Â ¸Þ´º ¹× µµ±¸ ¸ðÀ½ °æ·Î¿¡¼­ ¼³¸íÇÑ ´ë·Î ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÆíÁý±â ¹× ÄÁÅÙÃ÷ ¾Æ¿ô¶óÀ̳Ê

readme ÆíÁý±âÀÎ ReadmeEditor´Â Å©°Ô º¹ÀâÇÏÁö ¾Ê½À´Ï´Ù. ¿©±â¼­´Â TextEditor Ŭ·¡½º¸¦ È®ÀåÇÏ¿© readme ÆÄÀÏÀ» ÆíÁýÇÒ °æ¿ì »ç¿ëÀÚ Á¤ÀÇÇÑ ÄÁÅÙÃ÷ ¾Æ¿ô¶óÀÌ³Ê ÆäÀÌÁö¸¦ ¾Æ¿ô¶óÀÎ º¸±â¿¡ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹®¼­ ÆíÁý±â ³»ÀÇ ÀÛµ¿À» º¯°æÇÏÁö ¾Ê½À´Ï´Ù.

ÆíÁý±â¿¡´Â ÆíÁý±â ÄÁÅÙÃ÷ÀÇ ±¸Á¶È­µÈ º¸±â¸¦ Á¦°øÇÏ°í »ç¿ëÀÚ°¡ ÆíÁý±âÀÇ ÄÁÅÙÃ÷¸¦ Ž»öÇÏ´Â °ÍÀ» Áö¿øÇÏ´Â ÇØ´ç ÄÁÅÙÃ÷ ¾Æ¿ô¶óÀ̳ʰ¡ ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº ÄÁÅÙÃ÷ ¾Æ¿ô¶óÀ̳ʸ¦ ÂüÁ¶ÇϽʽÿÀ.

¹®¼­ ÆíÁý±â ¹× JFace ÅØ½ºÆ®¿¡ ¹®¼­ ÆíÁý±âÀÇ ±¸ÇöÀÌ Ç¥½ÃµË´Ï´Ù.