Ư¼º ÆäÀÌÁö´Â ȯ°æ ¼³Á¤ ÆäÀÌÁö¿Í ¾ÆÁÖ À¯»çÇÕ´Ï´Ù. ÁÖ¿ä Â÷ÀÌÁ¡Àº Ư¼º ÆäÀÌÁö°¡ ƯÁ¤ ÀÚ¿ø°ú ¿¬°üµÈ ¹Ý¸é ȯ°æ ¼³Á¤ ÆäÀÌÁö´Â Ç÷¯±×ÀÎ ÀÚü¿Í ¿¬°üµÇ¾î ÀÖ´Ù´Â Á¡ÀÔ´Ï´Ù.
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());
...
}