Ư¼º ÆäÀÌÁö

Ư¼º ÆäÀÌÁö´Â ȯ°æ ¼³Á¤ ÆäÀÌÁö¿Í ¾ÆÁÖ À¯»çÇÕ´Ï´Ù. ÁÖ¿ä Â÷ÀÌÁ¡Àº Ư¼º ÆäÀÌÁö°¡ ƯÁ¤ ÀÚ¿ø°ú ¿¬°üµÈ ¹Ý¸é ȯ°æ ¼³Á¤ ÆäÀÌÁö´Â Ç÷¯±×ÀÎ ÀÚü¿Í ¿¬°üµÇ¾î ÀÖ´Ù´Â Á¡ÀÔ´Ï´Ù.

org.eclipse.ui.propertyPages

org.eclipse.ui.propertyPages È®ÀåÁ¡À» »ç¿ëÇÏ¿© ÀÚ¿ø¿¡ ´ëÇÑ Æ¯¼º ÆäÀÌÁö¸¦ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÚ¿øÀÇ Æ¯¼º ÆäÀÌÁö´Â ÀÚ¿ø ³×ºñ°ÔÀÌÅÍ º¸±â¿¡¼­ Ư¼º ¸Þ´º¸¦ »ç¿ëÇÏ¿© È£ÃâµË´Ï´Ù.  ÇϳªÀÇ ÀÚ¿øÀ» ¼±ÅÃÇϸé ÀÌ ¸Þ´º¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. 

Readme µµ±¸´Â µÎ °³ÀÇ Æ¯¼º ÆäÀÌÁö¸¦ Á¦°øÇÕ´Ï´Ù.

<extension
    point = "org.eclipse.ui.propertyPages">
    <page
        id="org.eclipse.ui.examples.readmetool.FilePage"
        name="Readme Tool"
        objectClass="org.eclipse.core.resources.IFile"
        class="org.eclipse.ui.examples.readmetool.ReadmeFilePropertyPage"
        nameFilter="*.readme">
    </page>
    <page
        id="org.eclipse.ui.examples.readmetool.FilePage2"
        name="More Readme Info"
        objectClass="org.eclipse.core.resources.IFile"
        class="org.eclipse.ui.examples.readmetool.ReadmeFilePropertyPage2"
        nameFilter="*.readme">
    </page>
</extension>

µÎ ÆäÀÌÁö ¸ðµÎ .readme ÆÄÀÏ È®ÀåÀÚ°¡ ÀÖ´Â IFile ¿ÀºêÁ§Æ® À¯ÇüÀ» Áö¿øÇÕ´Ï´Ù.

Ư¼º ÆäÀÌÁö´Â °èÃþ ±¸Á¶ ¶Ç´Â Ä«Å×°í¸®°¡ ¾ø´Ù´Â Á¡À» Á¦¿ÜÇϰí ȯ°æ ¼³Á¤ ÆäÀÌÁö¿Í ¸Å¿ì À¯»çÇÕ´Ï´Ù. ¾Æ·¡ ´ëÈ­ »óÀÚ¿¡¼­ µÎ Readme Ư¼º ÆäÀÌÁö°¡ ÆäÀÌÁö ±âº» ¸ñ·Ï¿¡ Ç¥½ÃµË´Ï´Ù.

Ư¼º ÆäÀÌÁö

Workbench´Â Ư¼º ÆäÀÌÁö¸¦ ÀÛ¼ºÇÏ¿© ½ÇÇàÇÒ ¶§ ¼±ÅÃÇÑ ÀÚ¿øÀ» ÆäÀÌÁö¿¡ ¼³Á¤ÇÕ´Ï´Ù. ÆäÀÌÁö´Â getElement() ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© IAdaptable ¿ä¼Ò¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.

Ư¼º ÆäÀÌÁö¸¦ ÀÛ¼ºÇÏ´Â ÆÐÅÏÀº ȯ°æ ¼³Á¤ ÆäÀÌÁö¸¦ ÀÛ¼ºÇÏ´Â ÆÐÅϰú À¯»çÇϹǷΠÁÖ·Î Â÷ÀÌÁ¡¸¸À» ¼³¸íÇÕ´Ï´Ù. Ư¼º ÆäÀÌÁö´Â ¿ä¼Ò Á¤º¸¸¦ Ç¥½ÃÇÕ´Ï´Ù. ÀÌ Á¤º¸´Â °ü·Ã Á¤º¸¸¦ Á¶È¸Çϰųª °è»êÇϱâ À§ÇØ ¿ä¼Ò¿¡ ¾×¼¼½ºÇÏ¸é ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.  Á¤º¸´Â ÀÚ¿øÀÇ Æ¯¼º¿¡¼­ °Ë»öµÇ°í ÀúÀåµÉ ¼ö ÀÖ½À´Ï´Ù.

ReadmeFilePropertyPage´Â ¿ä¼Ò¸¦ »ç¿ëÇÏ¿© ´ëºÎºÐÀÇ Á¤º¸¸¦ °è»êÇÕ´Ï´Ù. ´ÙÀ½ ½º´ÏÆêÀº ¼½¼Ç ¼ö°¡ °è»êµÇ¾î ·¹ÀÌºí¿¡ Ç¥½ÃµÇ´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù.

...
IResource resource = (IResource) getElement();
...
IAdaptable sections = getSections(resource);
if (sections instanceof AdaptableList) {
    AdaptableList list = (AdaptableList)sections;
    label = createLabel(panel, String.valueOf(list.size()));
...

Ư¼ºÀÌ °è»êµÇ¸é, »ç¿ëÀÚ´Â ÀÌ °ªÀ» °»½ÅÇÒ ¼ö ¾øÀ¸¹Ç·Î ´ëÀÀÇÏ´Â ³í¸®°¡ °ªÀ» ÀúÀåÇÏÁö ¾Ê¾Æµµ µË´Ï´Ù.

Ư¼º ÆäÀÌÁö´Â ÀϹÝÀûÀ¸·Î ÀÀ¿ëÇÁ·Î±×·¥º° ÀÚ¿ø Ư¼ºÀ» º¸°í ¼³Á¤ÇÏ´Â µ¥  »ç¿ëµË´Ï´Ù(¼¼¼Ç ¹× Áö¼ÓÀû Ư¼º¿¡ ´ëÇÑ ¼³¸íÀº ÀÚ¿ø Ư¼ºÀ» ÂüÁ¶).  Ư¼º ÆäÀÌÁö´Â ÀÚ¿øÀ» ¾Ë±â ¶§¹®¿¡ ÆäÀÌÁö¿¡¼­ ÀÚ¿ø API¸¦ »ç¿ëÇÏ¿© Á¦¾î °ªÀ» ÃʱâÈ­Çϰųª Ư¼º ÆäÀÌÁö¿¡¼­ »ç¿ëÀÚ ¼±ÅûçÇ×À» ±â¹ÝÀ¸·Î »õ Ư¼º °ªÀ» ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

´ÙÀ½ ½º´ÏÆêÀº Ư¼º ÆäÀÌÁöÀÇ ¿ä¼Ò¿¡ Àִ Ư¼º¿¡¼­ ÃʱâÈ­µÇ°í ÀÖ´Â ¼±Åöõ °ªÀ» º¸¿©ÁÝ´Ï´Ù.

private void initializeValues() {
    ...
    IResource resource = (IResource) getElement();
    label.setText(resource.getPersistentProperty("MyProperty"));
    ...
}

¼±Åöõ °ªÀ» ´Ù½Ã Ư¼º¿¡ ÀúÀåÇϱâ À§ÇÑ ÇØ´ç ÄÚµå´Â ´ÙÀ½°ú °°½À´Ï´Ù.

private void storeValues() {
    ...
    IResource resource = (IResource) getElement();
    resource.setPersistentProperty("MyProperty", label.getText());
    ...
}