±âŸ ¹®¼­ ÆíÁý±â Àǹ«»çÇ×

Java ¿¹Á¦ ÆíÁý±â´Â AbstractTextEditor¿¡¼­ ¿©·¯ °¡Áö À¯¿ëÇÑ ±âº» ÀÛµ¿À» °è½ÂÇÕ´Ï´Ù.  ÅØ½ºÆ® ÆíÁý ÇÁ·¹ÀÓ¿öÅ©´Â AbstractTextEditor¿¡¼­ ¸Þ¼Òµå¸¦ ´ëüÇÏ¿© »ç¿ëÀÚ Á¤ÀÇÇÒ ¼ö ÀÖ´Â ´Ù¸¥ ¿©·¯ Àǹ«»çÇ×À» ó¸®ÇÕ´Ï´Ù.  ÀÛµ¿ÀÌ ÇÁ·¹ÀÓ¿öÅ©¿¡¼­ »ç¿ëÀÚ Á¤ÀǵǴ ¹æ¹ýÀ» º¸·Á¸é ÀÌ Å¬·¡½º ¹× ÇØ´ç ¼­ºêŬ·¡½ºÀÇ ±¸ÇöÀ» ã¾Æº¸½Ê½Ã¿À.

´ÙÀ½Àº ±¸¼ºµÉ ¼ö ÀÖ´Â À¯¿ëÇÑ ÀϺΠÇÁ·¹ÀÓ¿öÅ© ±â´ÉÀÔ´Ï´Ù.

ȯ°æ ¼³Á¤ Çڵ鸵

¹®¼­ ÆíÁý±â´Â ÀϹÝÀûÀ¸·Î ÆíÁý±âÀÇ ÇÁ¸®Á¨Å×ÀÌ¼Ç ¹× ÀÛµ¿À» Á¦¾îÇÏ´Â »ç¿ëÀÚ È¯°æ ¼³Á¤À» Á¦°øÇÕ´Ï´Ù. ÅؽºÆ® ÇÁ·¹ÀÓ¿öÅ©¿¡¼­ °¢ ¹®¼­ ÆíÁý±â ÀνºÅϽº¿¡´Â »ç¿ëÀÚ È¯°æ ¼³Á¤¿¡ ¾×¼¼½ºÇÏ´Â µ¥ »ç¿ëµÇ´Â ¿¬°üµÈ ȯ°æ ¼³Á¤ ÀúÀåÀÌ ÀÖ½À´Ï´Ù. ÀÌ È¯°æ ¼³Á¤ ÀúÀåÀº ÆíÁý±â·Î ¼³Á¤Çϰųª, ÇÁ·¹ÀÓ¿öÅ©¿¡¼­ ÀÌ¹Ì »ç¿ëµÈ ȯ°æ ¼³Á¤ ÀúÀå¿¡¼­ °è½ÂÇÒ ¼ö ÀÖ½À´Ï´Ù.

Java ¿¹Á¦ ÆíÁý±âÀÇ °æ¿ì TextEditor¿¡¼­ ÀÇÇØ ÃʱâÈ­ÇÑ È¯°æ ¼³Á¤ ÀúÀåÀ» °è½ÂÇÕ´Ï´Ù.  ÀÌ È°°æ ¼³Á¤ ÀúÀåÀº Workbench ÆíÁý±â Ç÷¯±×Àο¡¼­ Á¤ÀÇµÈ È¯°æ ¼³Á¤ ÀúÀåÀÔ´Ï´Ù.  

protected void initializeEditor() {
	...
	setPreferenceStore(EditorsPlugin.getDefault().getPreferenceStore());
}
ÆíÁý±â Ç÷¯±×ÀΠȯ°æ ¼³Á¤Àº Workbench > ÆíÁý±â ¹× Workbench > ÆíÁý±â > ¹®¼­ ÆíÁý±â ȯ°æ ¼³Á¤ ÆäÀÌÁö¿¡¼­ Á¶ÀÛµÉ ¼ö ÀÖ½À´Ï´Ù.

ÆíÁý±â¿¡ Ç¥ÁØ Workbench ÅØ½ºÆ® ȯ°æ ¼³Á¤À» »ç¿ëÇÏÁö ¾ÊÀ¸·Á¸é ´Ù¸¥ ȯ°æ ¼³Á¤ ÀúÀåÀ» ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀϹÝÀûÀ¸·Î initializeEditor¸¦ ´ëüÇÏ°í »ç¿ëÀÚ °íÀ¯ÀÇ È¯°æ ¼³Á¤ ÀúÀåÀ» ¼³Á¤ÇÏ¿© À̸¦ ¼öÇàÇÕ´Ï´Ù.  »ç¿ëÀÚ °íÀ¯ÀÇ È¯°æ ¼³Á¤ ÀúÀåÀ» »ç¿ëÇÏ´Â °æ¿ì ȯ°æ ¼³Á¤ÀÌ °»½ÅµÉ ¶§¸¶´Ù Æ®¸®°ÅµÇ´Â ¸Þ¼Òµå handlePreferenceStoreChanged()µµ ´ëÃ¼ÇØ¾ß ÇÕ´Ï´Ù.

Ű ¹ÙÀεù

Ű ¹ÙÀεù ÄÁÅØ½ºÆ®´Â Ű ¹ÙÀεù ã¾Æº¸±â ¼ø¼­¸¦ ¼³Á¤ÇÏ´Â µ¥ À¯¿ëÇÕ´Ï´Ù. ÄÁÅØ½ºÆ® Ű ¹ÙÀεùÀÌ ÀÖÀ¸¸é ´Ù¸¥ Ç÷¯±×ÀÎÀÌ Å° ¼ø¼­ Ãæµ¹À» À¯¹ßÇÒ ¼ö ÀÖ´Â °¡´É¼ºÀÌ ÁÙ¾îµì´Ï´Ù. ±âº»ÀûÀ¸·Î Workbench´Â â ¶Ç´Â ´ëÈ­ »óÀÚ ÀÛ¾÷ÀÇ ÀÏ¹Ý ÄÁÅØ½ºÆ®¿¡¼­ ÀÛµ¿ÇÕ´Ï´Ù. ¹®¼­ ÆíÁý±â°¡ Ȱ¼ºÈ­µÇ¸é ÀÌ ÆíÁý±â´Â ÆíÁý±â ƯÁ¤ Ű ¹ÙÀεùÀÌ È°¼ºÈ­µÇµµ·Ï ÄÁÅØ½ºÆ®¸¦ ¹®¼­ ÆíÁý ÄÁÅØ½ºÆ®·Î Àç¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù.

Ç÷§Æû ÅØ½ºÆ® ÇÁ·¹ÀÓ¿öÅ©¿¡¼­ °¢ ¹®¼­ ÆíÁý±â ÀνºÅϽº¿¡´Â ¿¬°üµÈ Ű ¹ÙÀεù ¹üÀ§ ¹è¿­ÀÌ ÀÖ½À´Ï´Ù. Ȱ¼ºÈ­µÇ¸é ¿Ã¹Ù¸¥ ¹üÀ§¸¦ ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù. AbstractDecoratedTextEditor´Â ÀÌ ¹üÀ§¸¦ Á¤ÀÇÇÏ¿© Ȱ¼ºÈ­µÇµµ·Ï ÇÕ´Ï´Ù. ¹üÀ§´Â ´ÙÀ½°ú °°ÀÌ »ý¼ºÀÚ¿¡¼­ È£ÃâµÇ´Â ¸Þ¼Òµå¿¡ ÁöÁ¤µË´Ï´Ù.

protected void initializeKeyBindingScopes() {
	setKeyBindingScopes(new String[] { "org.eclipse.ui.textEditorScope" });  
}

¸Þ¼ÒµåÀÇ Àμö´Â ÄÁÅØ½ºÆ®¿¡ Á¤ÀÇµÈ IDÀÇ ¹è¿­ÀÔ´Ï´Ù. ÆíÁý±â°¡ °íÀ¯ Ű ¹ÙÀεù ÄÁÅØ½ºÆ®¸¦ Á¤ÀÇÇÏ°Ô ÇÏ·Á¸é setKeybindingScopes¸¦ »ç¿ëÇÏ¿© µ¿ÀûÀ¸·Î ¹üÀ§¸¦ ¼³Á¤Çϰųª ÆíÁý±â Ŭ·¡½º¿¡¼­ ÀÌ ¸Þ¼Òµå¸¦ ´ëüÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÄÁÅØ½ºÆ® ÀÚü´Â org.eclipse.ui.contexts È®ÀåÁ¡¿¡¼­ ÇØ´ç ID·Î Á¤ÀǵǾî¾ß ÇÕ´Ï´Ù. ´ÙÀ½Àº ¹®¼­ ÆíÁý ÄÁÅØ½ºÆ®¿¡ ´ëÇÑ Á¤ÀÇÀÔ´Ï´Ù.


   <extension
	point="org.eclipse.ui.contexts">
	<context
		name="%context.editingText.name"
		description="%context.editingText.description"
		id="org.eclipse.ui.textEditorScope"
		parentId="org.eclipse.ui.contexts.window">
	</context>
	...

(Âü°í: ÀÌ ¼³¸í¿¡¼­´Â ¿ë¾î ¹üÀ§ ¹× ÄÁÅØ½ºÆ®¸¦ °°Àº Àǹ̷Π»ç¿ëÇÕ´Ï´Ù. ÅØ½ºÆ® Ŭ·¡½º¿¡¼­ ¸Þ¼Òµå À̸§Àº °è¼Ó ¹üÀ§·Î¼­ Ű ¹ÙÀεù ÄÁÅØ½ºÆ®¸¦ ÀǹÌÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå À̸§Àº ÄÁÅØ½ºÆ®ÀÇ ¿ø·¡ ±¸ÇöÀ» ¹üÀ§·Î¼­ ¹Ý¿µÇÏ¸ç ¿À·¡µÈ ¿ë¾î¸¦ »ç¿ëÇÕ´Ï´Ù.)

¹ýÀû ÁÖÀÇ»çÇ×