¸í·É

org.eclipse.ui.commands

2.1

org.eclipse.ui.commands È®ÀåÁ¡Àº command ¹× category ¿ä¼Ò¸¦ »ç¿ëÇÏ¿© ¸í·É ¹× ¸í·É Ä«Å×°í¸®¸¦ ¼±¾ðÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ¸í·ÉÀº ¾î¶² Àǹ̷ÐÀû µ¿ÀÛÀÇ Ãß»óÀû Ç¥½ÃÀÌÁö¸¸, ½ÇÁ¦ ±¸ÇöÀº ¾Æ´Õ´Ï´Ù. ÀÌ´Â ¼­·Î ´Ù¸¥ °³¹ßÀÚµéÀÌ °³º° ºÎºÐ¿¡ ´ëÇØ ƯÁ¤ ÀÛµ¿À» Á¦°øÇÒ ¼ö ÀÖ°Ô ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î ÆíÁý±â¿¡ ÇϳªÀÇ ±¸ÇöÀ» °®°í Ž»ö±â À§ÁöÆ®(widget)¿¡ ´Ù¸¥ ±¸ÇöÀ» °®´Â "paste" ¸í·ÉÀÌ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ±¸ÇöÀ» Çڵ鷯¶ó°í ºÎ¸¨´Ï´Ù. ¸í·ÉÀ» ¼±¾ðÀû ÇÔ¼ö Æ÷ÀÎÅÍ ¶Ç´Â ´ÜÀÏ Çڵ鷯·Î º¼ ¼öµµ ÀÖ½À´Ï´Ù.

<!ELEMENT extension (category* , command* , commandParameterType* , keyBinding* , keyConfiguration* , context* , scope* , activeKeyConfiguration?)>

<!ATTLIST extension

id    CDATA #IMPLIED

name  CDATA #IMPLIED

point CDATA #REQUIRED>


<!ELEMENT command (defaultHandler? , state* , commandParameter*)>

<!ATTLIST command

category       CDATA #IMPLIED

description    CDATA #IMPLIED

id             CDATA #REQUIRED

name           CDATA #REQUIRED

categoryId     CDATA #IMPLIED

defaultHandler CDATA #IMPLIED

returnTypeId   CDATA #IMPLIED

helpContextId  CDATA #IMPLIED>

ÀÌ ¿ä¼Ò´Â ¸í·ÉÀ» Á¤ÀÇÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ¸í·ÉÀº Á¶Ä¡°¡ ó¸®ÇÒ ¼ö ÀÖ´Â »ç¿ëÀÚÀÇ ¿äûÀ» Ç¥ÇöÇÏ°í ´Ù¸¥ ¸í·Éµé °¡¿îµ¥ Àǹ̻ó °íÀ¯ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ¹Ì °°Àº Àǹ̷ΠÁ¤ÀÇµÈ ¸í·ÉÀÌ ÀÖ´Ù¸é ¸í·ÉÀ» Á¤ÀÇÇÏÁö ¸¶½Ê½Ã¿À. Çϳª ÀÌ»óÀÇ ¿ä¼Ò°¡ °°Àº ID ¼Ó¼ºÀ» »ç¿ëÇÏ¿© Á¸ÀçÇÏ´Â °æ¿ì ¸¶Áö¸· ¼±¾ðµÈ ¿ä¼Ò(Ç÷¯±×ÀÎ ·¹Áö½ºÆ®¸® Àб⠼øÀ¸·Î)¸¸ ¿Ã¹Ù¸¥ °ÍÀ¸·Î °£Áֵ˴ϴÙ. Á¶Ä¡°¡ ¸í·É¿¡ ¿¬°áµÇ´Â ¹æ¹ýÀ» ÀÌÇØÇÏ·Á¸é È®ÀåÁ¡ org.eclipse.ui.actionSets ¹× org.eclipse.ui.editorActions¸¦ ÂüÁ¶ÇϽʽÿÀ.



<!ELEMENT category EMPTY>

<!ATTLIST category

description CDATA #IMPLIED

id          CDATA #REQUIRED

name         CDATA #REQUIRED>

UI¿¡¼­ ¸í·ÉÀº Á¾Á¾ ´õ Àß °ü¸®ÇÒ ¼ö ÀÖµµ·Ï Ä«Å×°í¸®¿¡¼­ ±¸¼ºµË´Ï´Ù. ÀÌ ¿ä¼Ò´Â Ä«Å×°í¸®¸¦ Á¤ÀÇÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ¸í·ÉÀº ÇϳªÀÇ Ä«Å×°í¸®¿¡¸¸ Ãß°¡µÉ ¼ö ÀÖ½À´Ï´Ù. Çϳª ÀÌ»óÀÇ ¿ä¼Ò°¡ °°Àº ID ¼Ó¼ºÀ» »ç¿ëÇÏ¿© Á¸ÀçÇÏ´Â °æ¿ì ¸¶Áö¸· ¼±¾ðµÈ ¿ä¼Ò(Ç÷¯±×ÀÎ ·¹Áö½ºÆ®¸® Àб⠼øÀ¸·Î)¸¸ ¿Ã¹Ù¸¥ °ÍÀ¸·Î °£Áֵ˴ϴÙ.



<!ELEMENT commandParameter (values?)>

<!ATTLIST commandParameter

id       CDATA #REQUIRED

name     CDATA #REQUIRED

values   CDATA #IMPLIED

typeId   CDATA #IMPLIED

optional (true | false) "true">

¸í·ÉÀÌ ÀÌÇØÇØ¾ß ÇÏ´Â ¸Å°³º¯¼ö¸¦ Á¤ÀÇÇÕ´Ï´Ù. ¸Å°³º¯¼ö´Â ½ÇÇà ½Ã°£¿¡ Çڵ鷯¿¡ Ãß°¡ Á¤º¸¸¦ Á¦°øÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. ¿¹¸¦ µé¾î "show view" ¸í·ÉÀº º¸±â¸¦ ¸Å°³º¯¼ö·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Çڵ鷯°¡ ÀÌ·¯ÇÑ ¸Å°³º¯¼ö¸¦ ÀÌÇØÇÒ ¼ö ÀÖ¾î¾ß ÇϹǷÎ, API °°ÀÌ Ãë±ÞµÇ¾î¾ß ÇÕ´Ï´Ù.

½ÃÀÛ ¹öÀü: 3.1



<!ELEMENT commandParameterType EMPTY>

<!ATTLIST commandParameterType

id        CDATA #REQUIRED

type      CDATA #IMPLIED

converter CDATA #IMPLIED>

commandParameter ¿ÀºêÁ§Æ® À¯ÇüÀ» Á¤ÀÇÇϸç, org.eclipse.core.commands.AbstractParameterValueConverter ¼­ºêŬ·¡½º¸¦ ÁöÁ¤ÇÏ¿© ¹®ÀÚ¿­ ¸Å°³º¯¼ö°ª°ú ¿ÀºêÁ§Æ® °£¿¡ º¯È¯ÇÒ ¼ö ÀÖ½À´Ï´Ù.

½ÃÀÛ ¹öÀü: 3.2



<!ELEMENT values (parameter*)>

<!ATTLIST values

class CDATA #REQUIRED>

commandParameter¿¡¼­ values ¼Ó¼ºÀÇ ´õ¿í »ó¼¼ÇÑ ¹öÀüÀÔ´Ï´Ù.

½ÃÀÛ ¹öÀü: 3.1



<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>

¸Å°³º¯¼ö¿¡ ´ëÇÑ °¡´ÉÇÑ °ªÀÔ´Ï´Ù.

½ÃÀÛ ¹öÀü: 3.1



<!ELEMENT defaultHandler (parameter)>

<!ATTLIST defaultHandler

class CDATA #REQUIRED>

ÀÌ ¸í·É¿¡ ´ëÇÑ ±âº» Çڵ鷯ÀÔ´Ï´Ù. Ȱ¼º »óÅÂÀÎ ´Ù¸¥ Çڵ鷯°¡ ¾ø´Â °æ¿ì ÀÌ Çڵ鷯°¡ Ȱ¼ºÀÌ µË´Ï´Ù. ÀÌ Çڵ鷯´Â activeWhen Á¶°ÇÀ» ÁöÁ¤ÇÏÁö ¾Ê´Â ´Ù¸¥ Çڵ鷯 Á¤ÀÇ¿Í Ãæµ¹ÇÕ´Ï´Ù. IExecutableExtensionÀ» ÀÛ¼ºÇÏÁö ¾Ê´Â °æ¿ì defaultHandler ¼Ó¼ºÀ» ´ë½Å »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

½ÃÀÛ ¹öÀü: 3.1



<!ELEMENT state (class?)>

<!ATTLIST state

class CDATA #IMPLIED

id    CDATA #REQUIRED>

¸ðµç Çڵ鷯 °£¿¡ °øÀ¯µÇ°í ÀáÀçÀûÀ¸·Î ¼¼¼Ç »çÀÌ¿¡ Áö¼ÓµÇ´Â »óÅ Á¤º¸. À̰ÍÀº ÀϹÝÀûÀ¸·Î ¼±Åöõ »óÅ ¶Ç´Â Çڵ鷯 ·¹À̺í°ú °°½À´Ï´Ù. »óÅ´ ´Ü¼øÈ÷ ÇØ´ç »óŸ¦ º¸Á¸Çϱâ À§ÇØ ·ÎµåµÇ´Â Ŭ·¡½ºÀÔ´Ï´Ù. ¼¼ºÎ»çÇ×Àº API Á¤º¸¸¦ ÂüÁ¶ÇϽʽÿÀ.

½ÃÀÛ ¹öÀü: 3.2



<!ELEMENT class (parameter*)>

<!ATTLIST class

class CDATA #REQUIRED>

ÀÌ ¸í·É »óŸ¦ ÀúÀåÇϱâ À§ÇØ ·ÎµåµÉ ¼ö Àִ Ŭ·¡½º. ¿©·¯ ¸Å°³º¯¼ö¸¦ org.eclipse.core.runtime.IExecutableExtension¿¡ Àü´ÞÇÏ·Á´Â °æ¿ì¿¡ ÀÌ ¿ä¼Ò°¡ »ç¿ëµË´Ï´Ù.

½ÃÀÛ ¹öÀü: 3.2



keyConfiguration ¿ä¼Ò´Â Áö¿øµÇÁö ¾Ê½À´Ï´Ù.

<!ELEMENT keyConfiguration EMPTY>

<!ATTLIST keyConfiguration

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED

parentId    CDATA #IMPLIED>

ÀÌ ¿ä¼Ò´Â Ű ±¸¼ºÀ» Á¤ÀÇÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. Çϳª ÀÌ»óÀÇ ¿ä¼Ò°¡ °°Àº ID ¼Ó¼ºÀ» »ç¿ëÇÏ¿© Á¸ÀçÇÏ´Â °æ¿ì ¸¶Áö¸· ¼±¾ðµÈ ¿ä¼Ò(Ç÷¯±×ÀÎ ·¹Áö½ºÆ®¸® Àб⠼øÀ¸·Î)¸¸ ¿Ã¹Ù¸¥ °ÍÀ¸·Î °£Áֵ˴ϴÙ. ´ë½Å "org.eclipse.ui.bindings" È®ÀåÁ¡À» »ç¿ëÇϽʽÿÀ.



context ¿ä¼Ò´Â Áö¿øµÇÁö ¾Ê½À´Ï´Ù.

<!ELEMENT context EMPTY>

<!ATTLIST context

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED

parentId    CDATA #IMPLIED>

ÀÌ ¿ä¼Ò´Â ÄÁÅØ½ºÆ®¸¦ Á¤ÀÇÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. Çϳª ÀÌ»óÀÇ ¿ä¼Ò°¡ °°Àº ID ¼Ó¼ºÀ» »ç¿ëÇÏ¿© Á¸ÀçÇÏ´Â °æ¿ì ¸¶Áö¸· ¼±¾ðµÈ ¿ä¼Ò(Ç÷¯±×ÀÎ ·¹Áö½ºÆ®¸® Àб⠼øÀ¸·Î)¸¸ ¿Ã¹Ù¸¥ °ÍÀ¸·Î °£Áֵ˴ϴÙ. ´ë½Å org.eclipse.ui.contexts È®ÀåÁ¡À» »ç¿ëÇϽʽÿÀ.



scope ¿ä¼Ò´Â Áö¿øµÇÁö ¾Ê½À´Ï´Ù.

<!ELEMENT scope EMPTY>

<!ATTLIST scope

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED>

ÀÌ ¿ä¼Ò´Â ¹üÀ§¸¦ Á¤ÀÇÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. Çϳª ÀÌ»óÀÇ ¿ä¼Ò°¡ °°Àº ID ¼Ó¼ºÀ» »ç¿ëÇÏ¿© Á¸ÀçÇÏ´Â °æ¿ì ¸¶Áö¸· ¼±¾ðµÈ ¿ä¼Ò(Ç÷¯±×ÀÎ ·¹Áö½ºÆ®¸® Àб⠼øÀ¸·Î)¸¸ ¿Ã¹Ù¸¥ °ÍÀ¸·Î °£Áֵ˴ϴÙ. deprecated ´ë½Å "org.eclipse.ui.contexts" È®ÀåÁ¡À» »ç¿ëÇϽʽÿÀ.



activeKeyConfiguration ¿ä¼Ò´Â Áö¿øµÇÁö ¾Ê½À´Ï´Ù.

<!ELEMENT activeKeyConfiguration EMPTY>

<!ATTLIST activeKeyConfiguration

value              CDATA #IMPLIED

keyConfigurationId CDATA #IMPLIED>

ÀÌ ¿ä¼Ò´Â Eclipse¿ë Ãʱâ Ȱ¼º Ű ±¸¼ºÀ» Á¤ÀÇÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ÀÌµé ¿ä¼Ò°¡ µÑ ÀÌ»óÀÌ Á¸ÀçÇÏ´Â °æ¿ì ¸¶Áö¸· ¼±¾ðµÈ ¿ä¼Ò(Ç÷¯±×ÀÎ ·¹Áö½ºÆ®¸®¸¦ Àд ¼ø¼­¿¡¼­)°¡ ¿Ã¹Ù¸¥ °ÍÀ¸·Î °£Áֵ˴ϴÙ.

ÀÌ ¿ä¼Ò´Â ȯ°æ ¼³Á¤À¸·Î ´ëüµÇ¾ú½À´Ï´Ù. ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ±âº» Ű ±¸¼ºÀ» º¯°æÇØ¾ß ÇÏ´Â °æ¿ì plugin_customization.ini ÆÄÀÏ¿¡ org.eclipse.ui/KEY_CONFIGURATION_ID=your.default.key.configuration.id¸¦ ÁöÁ¤ÇϽʽÿÀ.



keyBinding ¿ä¼Ò´Â Áö¿øµÇÁö ¾Ê½À´Ï´Ù.

<!ELEMENT keyBinding EMPTY>

<!ATTLIST keyBinding

configuration      CDATA #IMPLIED

command            CDATA #IMPLIED

locale             CDATA #IMPLIED

platform           CDATA #IMPLIED

contextId          CDATA #IMPLIED

string             CDATA #IMPLIED

scope              CDATA #IMPLIED

keyConfigurationId CDATA #IMPLIED

commandId          CDATA #IMPLIED

keySequence        CDATA #IMPLIED>

ÀÌ ¿ä¼Ò¸¦ »ç¿ëÇÏ¸é ¸í·É¿¡ Ű ½ÃÄö½º¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ë½Å "org.eclipse.ui.bindings" È®ÀåÁ¡¿¡¼­ key ¿ä¼Ò¸¦ »ç¿ëÇϽʽÿÀ.



org.eclipse.ui Ç÷¯±×ÀÎÀÇ plugin.xml ÆÄÀÏÀº org.eclipse.ui.commands È®ÀåÁ¡À» ´Ù¾çÇÏ°Ô »ç¿ëÇÕ´Ï´Ù.

org.eclipse.ui.handlers.IHandlerService¸¦ »ç¿ëÇÏ¿© Çڵ鷯¸¦ ¸í·É¿¡ µî·ÏÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¼­ºñ½º´Â ´Ù¾çÇÑ Workbench ÄÄÆ÷³ÍÆ®(¿¹: Workbench, Workbench â, ÆÄÆ® »çÀÌÆ® µî)¿¡¼­ getService(IHandlerService.class)¸¦ È£ÃâÇÏ¿© °Ë»öÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀϹÝÀûÀ¸·Î plugin.xml¿¡¼­ ¸ðµç ¸í·ÉÀ» Á¤ÀûÀ¸·Î ¼±¾ðÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. ±×·¯¸é »ç¿ëÀÚ°¡ Ű ¹ÙÀεùÀ» ¸í·É¿¡ ÷ºÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ·±Å¸ÀÓ¿¡ ¸í·ÉÀ» ¼±¾ðÇÒ ¼öµµ ÀÖ½À´Ï´Ù. À̸¦ À§Çؼ­´Â Workbench ÄÄÆ÷³ÍÆ®¿¡¼­ org.eclipse.ui.commands.ICommandService¸¦ °Ë»öÇϰí getCommand(yourCommandID)¸¦ È£ÃâÇÑ ´ÙÀ½ Command.define(...)À» È£ÃâÇϽʽÿÀ.

´ÙÀ½°ú °°ÀÌ ÀÌ È®ÀåÁ¡ »ç¿ëÀÚ¿¡°Ô À¯¿ëÇÒ ¼ö ÀÖ´Â Çڵ鷯 »óÅÂÀÇ ±âº» ±¸ÇöÀÌ ¸î °¡Áö ÀÖ½À´Ï´Ù.