°Ë»ö ¿£Áø

org.eclipse.help.ui.searchEngine

3.1

ÀÌ È®ÀåÁ¡Àº ¿¬ÇÕµÈ µµ¿ò¸» °Ë»ö ½Ã °Ë»ö ±¸¼º¿øÀ» Ç÷¯±×ÀÎÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. °¢ °Ë»ö ¿£ÁøÀ» °³º°ÀûÀ¸·Î ±¸¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. °Ë»öÀÌ ½ÃÀÛµÇ¸é °¢ °Ë»ö ¿£ÁøÀÌ ¹è°æ ÀÛ¾÷À¸·Î ½ÇÇàµÇ¸ç, °á°ú´Â µµ¿ò¸» º¸±â¿¡¼­ Á¶È¸ ¹Ù·Î ¾Æ·¡¿¡ Á¶Çյ˴ϴÙ.

¿©±â Á¤ÀÇµÈ °Ë»ö ¿£ÁøÀº productId ¼Ó¼ºÀ» Á¤ÀÇÇÏÁö ¾ÊÀº ä·Î µÎÁö ¾ÊÀ¸¸é ¿£Áø Á¤º¸ ¹ÙÀεùÀ» ¼³Á¤ÇÑ ÈÄ¿¡¾ß ¿¬ÇÕ °Ë»ö ±¸¼º¿øÀ¸·Î ÀÚµ¿À¸·Î Ç¥½ÃµË´Ï´Ù. ÀÌ ¼Ó¼ºÀ» Á¤ÀÇÇÏ´Â ¿£ÁøÀÇ °æ¿ì, ƯÁ¤ Á¦Ç°¿¡ ¹ÙÀεåµÈ ¿£Áø¸¸ ÇØ´ç Á¦Ç°ÀÌ ½ÇÇà ÁßÀÏ ¶§ Ç¥½ÃµË´Ï´Ù.

°Ë»ö ¿£ÁøÀº ´Ü¼øÈ÷ URLÀ» ±¸¼ºÇϸç, ÇØ´ç URLÀ» href·Î Æ÷ÇÔÇÏ´Â ÇϳªÀÇ È÷Æ®¸¸ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. API Áö¿øÀ» À§ÇØ ¶óÀ̼¾½º°¡ ÇÊ¿äÇÑ ÀϹÝÀûÀÎ °Ë»ö ¿£ÁøÀ» ÀÌ¿Í °°ÀÌ Ç÷¯±×ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ½ºÆåÆ®·³ÀÇ ¹Ý´ëÂÊ ³¡¿¡¼­ °Ë»ö ¿£ÁøÀº ¼­¹ö¿Í Åë½ÅÇÏ°í ·¹À̺í, href, °£´ÜÇÑ ¼³¸í, Á¡¼ö µî°ú °°Àº Á¤º¸¸¦ °¡Áø °³º° ÀûÁßÀ» ¼ö½ÅÇÒ ¼ö ÀÖ½À´Ï´Ù. ·ÎÄà µµ¿ò¸» ¿£ÁøÀº ÀÌ·± ½ÄÀ¸·Î È÷Æ®¸¦ »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

°Ë»ö ¸ÞÄ¿´ÏÁò¿¡ °ü°è¾øÀÌ ¿£ÁøÀº JFace ȯ°æ ¼³Á¤ ÆäÀÌÁö¸¦ »ç¿ëÇÏ¿© ´Ù¾çÇÑ °Ë»ö ¹üÀ§ ¼³Á¤À» Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÆäÀÌÁö´Â µµ¿ò¸» º¸±â¿¡¼­ ´ÙÀ½¿¡ '°í±Þ ¼³Á¤' ¸µÅ©°¡ ¿Ã ¶§ Ç¥½ÃµË´Ï´Ù. º¸´Ù °í±Þ ¼³Á¤À» À§ÇØ ¿£Áø°ú ÇÔ²² Á¤ÀÇµÈ ·çÆ® ȯ°æ ¼³Á¤ ÆäÀÌÁö À̿ܿ¡ Ãß°¡ ȯ°æ ¼³Á¤ ÇÏÀ§ ÆäÀÌÁö¸¦ Ç÷¯±×ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.

¹üÀ§ ¼³Á¤Àº IPreferenceStore ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇÏ¿© ·Îµå ¹× ÀúÀåµË´Ï´Ù. ¸ðµç ¿£Áø¿¡ ´ëÇÑ ¹üÀ§ ¼³Á¤Àº À̸§ ÁöÁ¤µÈ ¹üÀ§ ¼¼Æ® ¾Æ·¡¿¡ °°ÀÌ ±×·ìÈ­µË´Ï´Ù. óÀ½ ¿­¸± ¶§ ±âº» ¹üÀ§ ¼¼Æ®('Default')°¡ ÀÛ¼ºµÇÁö¸¸ »ç¿ëÀÚ´Â ¹üÀ§ ¼¼Æ®¸¦ Ãß°¡·Î Á¤ÀÇÇÏ°í ¹üÀ§ ¼¼Æ® °£¿¡ ´ëĪ À̵¿ÇÒ ¼ö ÀÖ½À´Ï´Ù.

¿¬ÇÕ °Ë»ö Áö¿øÀº org.eclipse.help.base Ç÷¯±×ÀÎÀÇ ÀϺÎÀ̱⠶§¹®¿¡ ȯ°æ ¼³Á¤¿¡ ÀúÀåµÈ µ¥ÀÌÅÍ¿¡¼­ °Ë»ö ¹üÀ§ ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÏ·Á¸é ÆÑÅ丮°¡ ÇÊ¿äÇÕ´Ï´Ù. ¹üÀ§ ÆÑÅ丮¸¦ Ç÷¯±×ÀÎÇÏ·Á¸é ¹üÀ§ ȯ°æ ¼³Á¤ ÆäÀÌÁö¸¦ Ç÷¯±×ÀÎÇϴ Ŭ¶óÀÌ¾ðÆ®µµ ÇÊ¿äÇÕ´Ï´Ù.

ÀÌ È®ÀåÁ¡¿¡ Á¤ÀÇµÈ ¿£ÁøÀº ±âº»ÀûÀ¸·Î UI¿¡ Ç¥½ÃµÇÁö ¾Ê½À´Ï´Ù. UI¿¡ Ç¥½ÃµÇ´Â °ÍÀº °³º°ÀûÀ¸·Î ¼öÁ¤ÇÒ ¼ö ÀÖ´Â °Ë»ö ¿£ÁøÀÇ ±¸Ã¼Àû ÀνºÅϽºÀÔ´Ï´Ù. Á¦Ç°Àº ´Ù¼öÀÇ µî·ÏµÈ ¿£Áø À¯Çü ÀνºÅϽº¸¦ »ç¿ëÇÏ¿© µµ¿ò¸» ½Ã½ºÅÛÀ» »çÀü¿¡ ±¸¼ºÇÒ ¼ö ÀÖÀ¸¸ç, ¿øÇÏ´Â ¹æ½ÄÀ¸·Î ¼öÇàÇϵµ·Ï ¸Å°³º¯¼öÈ­ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ »ç¿ëÀÚ´Â µî·ÏµÈ ¿£ÁøÀÇ ÀÚü ÀνºÅϽº¸¦ Ãß°¡Çϰí À̸¦ ¿¬°è ±¸¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

<!ELEMENT extension (engineType* , engine*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT engineType (description? , subpage*)>

<!ATTLIST engineType

id           CDATA #REQUIRED

label        CDATA #REQUIRED

icon         CDATA #IMPLIED

class        CDATA #REQUIRED

pageClass    CDATA #IMPLIED

scopeFactory CDATA #IMPLIED>

°Ë»ö ¿£ÁøÀÇ Æ¯Á¤ À¯ÇüÀ» Á¤ÀÇÇÕ´Ï´Ù. °Ë»ö ¿£Áø À¯ÇüÀº »ç¿ëÀÚ ¶Ç´Â Á¦Ç°¿¡¼­ »çÀü¿¡ ·ÎµåµÇ¾î ±¸Ã¼Àû ¿£Áø ÀνºÅϽº¸¦ ÀÛ¼ºÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. À¯¿ëÇÏ°Ô »ç¿ëÇÏ·Á¸é ¿©·¯ ¿£ÁøÀÌ ÇϳªÀÇ ¿£Áø À¯ÇüÀ¸·Î ÀÛ¼ºµÉ ¼ö ÀÖµµ·Ï ¿£Áø À¯ÇüÀÌ ±¸¼º °¡´ÉÇØ¾ß ÇÕ´Ï´Ù.



<!ELEMENT description (#PCDATA)>

°Ë»ö ¿£ÁøÀÇ °£´ÜÇÑ ¼³¸í



<!ELEMENT subpage EMPTY>

<!ATTLIST subpage

id       CDATA #REQUIRED

label    CDATA #REQUIRED

class    CDATA #IMPLIED

category CDATA #REQUIRED>

engine ¿ä¼Ò¿¡ Á¤ÀÇµÈ ·çÆ® ¹üÀ§ ȯ°æ ¼³Á¤ ÆäÀÌÁöÀÇ ÇÏÀ§ ÆäÀÌÁö. pageClass ¿£Áø ¼Ó¼ºÀÌ Á¤ÀǵǾî ÀÖÁö ¾ÊÀº °æ¿ì ¼­ºêÆäÀÌÁöµµ ¹«½ÃµË´Ï´Ù.



<!ELEMENT engine (description? , param*)>

<!ATTLIST engine

productId    CDATA #IMPLIED

engineTypeId CDATA #REQUIRED

enabled      (true | false)

label        CDATA #IMPLIED

id           CDATA #REQUIRED>

ƯÁ¤ °Ë»ö ¿£Áø À¯ÇüÀÇ ±¸Ã¼Àû ÀνºÅϽº¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÀνºÅϽº´Â ÇØ´ç Á¦Ç°ÀÌ È°¼ºÈ­µÇ´Â °æ¿ì¿¡¸¸ Ç¥½ÃµÇµµ·Ï Á¦Ç°¿¡ ¹ÙÀεåµË´Ï´Ù. ¿£ÁøÀº ÀÚü ·¹ÀÌºí ¹× ¼³¸íÀ» Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù. ÁöÁ¤ÇÏÁö ¾ÊÀº °æ¿ì ¿£Áø À¯Çü µ¥ÀÌÅͰ¡ »ç¿ëµË´Ï´Ù. ¸¶Ä§³», °¢ ¿£Áø À¯ÇüÀº ±¸¼ºÀ» À§ÇØ Àü´ÞÇÒ ¼ö ÀÖ´Â ¸Å°³º¯¼öÀÇ ¿Ã¹Ù¸¥ ¼¼Æ®¸¦ Á¤ÀÇÇÕ´Ï´Ù. ¿£ÁøÀº ÇØ´ç ¸Å°³º¯¼ö °ªÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.



<!ELEMENT param EMPTY>

<!ATTLIST param

name  CDATA #REQUIRED

value CDATA #REQUIRED>

°Ë»ö ¿£Áø À¯ÇüÀÇ ÀÌ ÀνºÅϽº¸¦ ±¸¼ºÇÏ´Â µ¥ »ç¿ëµÇ´Â ¼±ÅÃÀû ¸Å°³º¯¼ö. ¿Ã¹Ù¸¥ ¸Å°³º¯¼ö´Â ¿£Áø À¯ÇüÀ¸·Î Á¤Àǵ˴ϴÙ.



´ÙÀ½Àº µµ¿ò¸» °Ë»ö È®Àå ¿¹Á¦ÀÔ´Ï´Ù.

   

<extension point=

"org.eclipse.help.ui.searchEngine"

>

<engineType scopeFactory=

"com.example.xyz.XYZScopeFactory"

label=

"XYZ Search"

class=

"com.example.xyz.search.XYZSearch"

icon=

"icons/etool16/xyzsearch.gif"

pageClass=

"com.example.xyz.search.XYZSearchPage"

id=

"com.example.xyz.XYZSearch"

>

<description>

Instances of XYZ Search search the XYZ site.

</description>

</engineType>

<engine enabled=

"true"

engineTypeId=

"com.example.xyz.search.XYZSearch"

id=

"com.example.xyz.XYZSearch"

label=

"XYZ Search"

>

</engine>

<engine enabled=

"true"

engineTypeId=

"org.eclipse.help.ui.web"

id=

"org.eclipse.sdk.Eclipse"

label=

"%search.Eclipse.label"

>

<description>

%search.Eclipse.desc

</description>

<param name=

"url"

value=

"http://eclipse.org/search/search.cgi?q={expression}&amp;ul=&amp;ps=20&amp;m=all"

>

</param>

</engine>

</extension>

engineType ¿ä¼ÒÀÇ class ¼Ó¼ºÀº org.eclipse.help.search.ISearchEngineÀ» ±¸ÇöÇϴ Ŭ·¡½ºÀÇ ¿ÏÀüÇÑ À̸§À» Á¦°øÇØ¾ß ÇÕ´Ï´Ù. pageClass ¼Ó¼ºÀº org.eclipse.help.ui.RootScopePage¸¦ È®ÀåÇϴ Ŭ·¡½ºÀÇ ¿ÏÀüÇÑ À̸§À» Á¦°øÇØ¾ß ÇÕ´Ï´Ù. scopeFactory ¼Ó¼ºÀº org.eclipse.help.ui.ISearchScopeFactory¸¦ ±¸ÇöÇϴ Ŭ·¡½ºÀÇ ¿ÏÀüÇÑ À̸§À» Á¦°øÇØ¾ß ÇÕ´Ï´Ù. subpage ¿ä¼ÒÀÇ class ¼Ó¼ºÀº org.eclipse.help.ui.ISearchScopePage¸¦ ±¸ÇöÇϴ Ŭ·¡½ºÀÇ ¿ÏÀüÇÑ À̸§À» Á¦°øÇØ¾ß ÇÕ´Ï´Ù.

µµ¿ò¸» UI Ç÷¯±×ÀÎÀº ·ÎÄà µµ¿ò¸» ¹®¼­, Information Center ¹× À¥ °Ë»ö »Ó¸¸ ¾Æ´Ï¶ó ·ÎÄà µµ¿ò¸» °Ë»ö ¿£Áø ÀνºÅϽº¿¡ °Ë»ö ¿£Áø À¯ÇüÀ» Á¦°øÇÕ´Ï´Ù. ÀÌ ÀνºÅϽº´Â ¸Å°³º¯¼öÀ» Çã¿ëÇÏÁö ¾ÊÀ¸¸ç Á¦Ç° IDµµ ¾ø±â ¶§¹®¿¡ ¸ðµç Á¦Ç°¿¡ Ç¥½ÃµË´Ï´Ù.

Á¦Ç°¿¡¼­´Â ¿£Áø ID ¹× Çʼö ¸Å°³º¯¼ö¸¦ »ç¿ëÇÏ¿© Information Center ¹× À¥ °Ë»öÀÇ ±¸Ã¼Àû ÀνºÅϽº¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

Information Center ¿£Áø À¯ÇüÀº engineId org.eclipse.help.ui.infoCenter¸¦ Æ÷ÇÔÇϰí Information Center°¡ ¼³Ä¡µÈ ¿ø°Ý ¼­¹ö¸¦ °¡¸®Å°´Â ÇϳªÀÇ ¸Å°³º¯¼ö urlÀ» Çã¿ëÇÕ´Ï´Ù. °á°ú´Â ·ÎÄà µµ¿ò¸» °á°ú¿Í °°Àº ¹æ¹ýÀ¸·Î Ç¥½ÃµË´Ï´Ù.

À¥ °Ë»ö ¿£Áø À¯ÇüÀº ¿£Áø ID org.eclipse.help.ui.web¸¦ Æ÷ÇÔÇÏ¸ç ´ÙÀ½ ¿¹¿Í °°ÀÌ ´ëü ±âÈ£ '{expression}'À¸·Î ¹Ù²î´Â ½ÇÁ¦ °Ë»ö ¹®ÀÚ¿­À» Æ÷ÇÔÇÏ´Â ±¸Ã¼Àû °Ë»ö Á¶È¸¸¦ Ç¥½ÃÇÏ´Â ÇϳªÀÇ ¸Å°³º¯¼ö urlÀ» Çã¿ëÇÕ´Ï´Ù.

http://eclipse.org/search/search.cgi?q={expression}&ul=&ps=20&m=all

À¥ °Ë»ö °á°ú´Â url ¸Å°³º¯¼ö¿¡¼­ ´ëüµÈ °Ë»ö ¹®ÀÚ¿­°ú °°ÀÌ À¥ ºê¶ó¿ìÀú¸¦ ¿©´Â ÇϳªÀÇ ¸µÅ©·Î Ç¥½ÃµË´Ï´Ù.