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="%Editors.ReadmeEditor"
      	   icon="icons/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¿¡ ´ëÇØ Àͼ÷ÇÑ ±¸¼º ¸¶Å©¾÷À» º¼ ¼ö ÀÖ½À´Ï´Ù. extensions ¼Ó¼ºÀº ÆíÁý±â°¡ ÀÌÇØÇÏ´Â ÆÄÀÏ À¯ÇüÀ» ¼³¸íÇÕ´Ï´Ù. ¶ÇÇÑ ´õ ±¸Ã¼ÀûÀ¸·Î ÁöÁ¤ÇØ¾ß ÇÒ °æ¿ì filenamesµµ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. class´Â ÆíÁý±â¸¦ ±¸ÇöÇϸç contributorClass´Â ÆíÁý±â °ü·Ã Á¶Ä¡¸¦ Á¦°øÇÕ´Ï´Ù. ÀÌÁ¦ Á» ´õ ÀÚ¼¼È÷ Áö½ÃÀÚ¸¦ »ìÆìº¾´Ï´Ù.

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

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

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

public ReadmeEditorActionBarContributor() {
      	...
	action1 = new EditorAction(MessageUtil.getString("Editor_Action1")); 
	action1.setToolTipText(MessageUtil.getString("Readme_Editor_Action1")); 
	action1.setDisabledImageDescriptor(ReadmeImages.EDITOR_ACTION1_IMAGE_DISABLE);
	action1.setImageDescriptor(ReadmeImages.EDITOR_ACTION1_IMAGE_ENABLE);
	...	
	action2 = new RetargetAction(IReadmeConstants.RETARGET2, MessageUtil.getString("Editor_Action2")); 
	action2.setToolTipText(MessageUtil.getString("Readme_Editor_Action2")); 
	action2.setDisabledImageDescriptor(ReadmeImages.EDITOR_ACTION2_IMAGE_DISABLE);
	action2.setImageDescriptor(ReadmeImages.EDITOR_ACTION2_IMAGE_ENABLE);
	...
	action3 = new LabelRetargetAction(IReadmeConstants.LABELRETARGET3, MessageUtil.getString("Editor_Action3"));
	action3.setDisabledImageDescriptor(ReadmeImages.EDITOR_ACTION3_IMAGE_DISABLE);
	action3.setImageDescriptor(ReadmeImages.EDITOR_ACTION3_IMAGE_ENABLE);
	...   
   }

Á¶Ä¡ÀÇ À̸§°ú ¾ÆÀÌÄÜÀº plugin.xmlÀÌ ¾Æ´Ï¶ó Äڵ忡¼­ ¼³Á¤µË´Ï´Ù. »õ·Î ´ë»ó ÁöÁ¤ °¡´ÉÇÑ Á¶Ä¡°¡ Ç¥½ÃµÉ ¶§±îÁö Á¶Ä¡ Ŭ·¡½ºÀÇ Â÷À̸¦ ¹«½ÃÇÕ´Ï´Ù.  

º¸±â Á¶Ä¡¿¡ ´ëÇØ ¸¶Å©¾÷¿¡¼­ º¸¾Ò´ø viewActions Á¤º¸¿Í Á¶Ä¡ Á¤º¸°¡ ¾ó¸¶³ª À¯»çÇÑÁö È®ÀÎÇϽʽÿÀ. µ¿ÀÏÇÑ ÆíÁý±âÀÇ ¼­·Î ´Ù¸¥ ÀνºÅϽº »çÀÌ¿¡¼­ Á¶Ä¡ °øÀ¯¸¦ °ü¸®ÇØ¾ß Çϱ⠶§¹®¿¡ Á¶Ä¡´Â Äڵ忡 ¼³Á¤µË´Ï´Ù. Á¶Ä¡°¡ »ý¼ºÀÚ¿¡¼­ ÀÛ¼ºµÉ °æ¿ì ÆíÁý±âÀÇ Æ¯Á¤ ÀνºÅϽº¿¡ µ¶¸³ÀûÀÔ´Ï´Ù.

ÆíÁý±â°¡ Ȱ¼ºÈ­µÇ°í Workbench ¸Þ´º¿Í µµ±¸ ¸ðÀ½¿¡ ¼³Ä¡µÇ¾î¾ß ÇÏ´Â Á¶Ä¡°¡ ÆíÁý±â¿¡ ÀÖ´Â °æ¿ì setActiveEditor ¸Þ½ÃÁö°¡ Áö½ÃÀÚ¿¡°Ô Àü¼ÛµË´Ï´Ù. Áö½ÃÀÚ´Â ÆíÁý±â Á¶Ä¡¸¦ ƯÁ¤ ÆíÁý±â¿¡ ¿¬°áÇÕ´Ï´Ù.  

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

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

¼¼ °³ÀÇ ÆíÁý±â Á¶Ä¡°¡ ÀÖ´Â Workbench ¸Þ´º Ç¥½ÃÁÙÀÇ readme Ç׸ñ

¼¼ °³ÀÇ readme Á¶Ä¡°¡ ÀÖ´Â Workbench µµ±¸ ¸ðÀ½

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

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

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

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

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

Copyright IBM Corporation and others 2000, 2003.