3.1 ¸ÞÄ¿´ÏÁò ¹× API¸¦ äÅÃÇÒ ¶§ ÇÊ¿äÇÑ º¯°æ»çÇ×

ÀÌ ¼½¼Ç¿¡¼­´Â 3.1 ¸ÞÄ¿´ÏÁò ¹× API¸¦ äÅÃÇϵµ·Ï 3.0 Ç÷¯±×ÀÎÀ» º¯°æÇÏ·Á´Â °æ¿ì ÇÊ¿äÇÑ º¯°æ»çÇ׿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.

Ç÷§Æû ½ÇÇà Ãë¼Ò/´Ù½Ã ½ÇÇà Áö¿ø

Eclipse 3.1Àº ½ÇÇà, ½ÇÇà Ãë¼Ò ¹× ´Ù½Ã ½ÇÇàÇÑ Á¶ÀÛÀÇ Æ®·¢À» À¯ÁöÇÏ´Â °øÀ¯ Á¶ÀÛ È÷½ºÅ丮¿Í ½ÇÇà Ãë¼ÒÇÒ ¼ö ¾ø´Â Á¶ÀÛÀ» Á¤ÀÇÇϱâ À§ÇÑ »õ ÇϺΠ±¸Á¶¸¦ Á¦°øÇÕ´Ï´Ù. ºÎ°¡ ±â´É Ç÷¯±×ÀÎÀÌ Á¦°øÇÏ´Â ´Ù¾çÇÑ ½ÇÇà Ãë¼Ò ÇÁ·¹ÀÓ¿öÅ©¸¦ ½Ã°£ÀÌ Áö³ª Ç÷§Æû Á¶ÀÛ Áö¿øÀ¸·Î ÀÌÁÖÇÏ¿©, ÇÁ·¹ÀÓ¿öÅ© Ŭ¶óÀÌ¾ðÆ®°¡ ´õ ±íÀÌÀÖ°Ô Ç÷§Æû°ú ÅëÇÕÇÏ°í ´Ù¸¥ Ç÷¯±×ÀÎ º¸±â ¹× ÆíÁý±â¿¡¼­ÀÇ ½ÇÇà Ãë¼Ò¿¡ ÇØ´çµÇ´Â ½ÇÇà Ãë¼Ò °¡´É Á¶ÀÛÀ» »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ¸¸µé¾î¾ß ÇÕ´Ï´Ù. Ç÷¯±×Àο¡ ½ÇÇà Ãë¼Ò Áö¿øÀ» Ãß°¡ÇÏ´Â ¹æ¹ý¿¡ °üÇÑ ±âº»ÀûÀÎ Á¤º¸´Â ½ÇÇà Ãë¼Ò °¡´ÉÇÑ Á¶ÀÛ ¹®¼­¸¦ ÂüÁ¶ÇϽʽÿÀ. ÀÌ¹Ì ½ÇÇà Ãë¼Ò Áö¿øÀ» Á¤ÀÇÇϰųª ´Ù¸¥ ÇÁ·¹ÀÓ¿öÅ©¸¦ »ç¿ëÇÏ´Â Ç÷¯±×ÀÎÀº ¾Æ·¡¿¡ ¼³¸íµÈ ´ë·Î ´Ü°èÈ­µÈ ÇüÅ·Π»õ ½ÇÇà Ãë¼Ò Áö¿øÀ¸·Î ÀÌÁÖÇÒ ¼ö ÀÖ½À´Ï´Ù.

IUndoableOperationÀ¸·Î Ç÷¯±×ÀΠƯÁ¤ Á¶ÀÛ(¸í·É) Ŭ·¡½º ÀÌÁÖ

ÀÌ¹Ì ½ÇÇà Ãë¼Ò °¡´ÉÇÑ Á¶ÀÛÀ» ¼³¸íÇϴ Ŭ·¡½º¸¦ Á¤ÀÇÇÑ Ç÷¯±×ÀÎÀº ÀÎÅÍÆäÀ̽º IUndoableOperation¿¡ ´ëÇÑ ±¸ÇöÀ» ÇØ´çµÇ´Â Á¶ÀÛ/¸í·É Ŭ·¡½º¿¡ Ãß°¡ÇØ¾ß ÇÕ´Ï´Ù. Ç÷¯±×ÀÎÀº ÇÊ¿äÇÒ °æ¿ì °è¼ÓÇØ¼­ ÀÌÀü ÇÁ·¹ÀÓ¿öÅ©·Î È÷½ºÅ丮(¸í·É ½ºÅÃ)¸¦ °ü¸®ÇÏÁö¸¸ IUndoableOperation¿ë ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÏ¿© Ç÷¯±×ÀÎÀÇ Å¬¶óÀÌ¾ðÆ®°¡ Ç÷§Æû Á¶ÀÛ È÷½ºÅ丮¿¡ ÀÖ´Â °Í°ú °°Àº Á¶ÀÛÀ» »ç¿ëÇÏ°í ´Ù¸¥ Ç÷¯±×ÀÎÀÇ ½ÇÇà Ãë¼Ò °¡´É Á¶ÀÛ°ú È¥ÇÕÇÏ¿© ÀÏÄ¡µÇµµ·Ï ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ Àü·«Àº »õ Á¶ÀÛ ÇÁ·¹ÀÓ¿öÅ©·Î ÀÌÁÖÇϱâ À§ÇØ SDK ÅØ½ºÆ® ÆíÁý±â°¡ »ç¿ëÇÏ´Â Àü·«°ú À¯»çÇÕ´Ï´Ù. ÀÎÅÍÆäÀ̽ºÀÇ Á÷Á¢Àû ¸ÊÇÎÀÌ °¡´ÉÇÏÁö ¾ÊÀ» °æ¿ì, ·¦ÆÛ¸¦ »ç¿ëÇÏ¿© IUndoableOperation ÇÁ·ÎÅäÄÝÀ» ·¹°Å½Ã ½ÇÇà Ãë¼Ò ¿ÀºêÁ§Æ®¿¡ ¸ÊÇÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ Àü·«Àº Ç÷§Æû/JDT ¸®ÆÑÅ丵 Áö¿ø¿¡¼­ »ç¿ëÇÕ´Ï´Ù. Á¶ÀÛ/¸í·É Ŭ·¡½º¸¦ IUndoableOperationÀ¸·Î ÀÌÁÖÇÏ´Â °ÍÀº Áß¿äÇÑ ´Ü°èÀÔ´Ï´Ù. ÀÌ·¸°Ô ÀÌÁÖÇϸé Ç÷¯±×ÀÎÀÌ ¿ÏÀüÈ÷ ÀÌÁÖÇÏÁö ¾Ê¾Æµµ ´Ù¸¥ ÇÁ·¹ÀÓ¿öÅ©ÀÇ ½ÇÇà Ãë¼Ò °¡´É Á¶ÀÛÀ» ´Ù¸¥ Ç÷¯±×Àο¡¼­ Ȱ¿ëÇÒ ¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù.

IOperationHistory·Î ¸í·É ½ºÅà ÀÌÁÖ

½ÇÇà Ãë¼Ò °¡´É Á¶ÀÛ ¶Ç´Â ¸í·ÉÀÌ IUndoableOperation °üÁ¡¿¡¼­ Ç¥½ÃµÇ¸é, ½ÇÇà Ãë¼Ò °¡´É ¹× ´Ù½Ã ½ÇÇà °¡´É Á¶ÀÛÀÇ Æ®·¢À» À¯ÁöÇϱâ À§ÇØ ½ÇÇà Ãë¼Ò È÷½ºÅ丮(¸í·É ½ºÅÃ)¸¦ Á¤ÀÇÇÏ´Â Ç÷¯±×ÀÎÀº ÇØ´çµÇ´Â ½ÇÇà Ãë¼Ò È÷½ºÅ丮¸¦ Ç¥½ÃÇÏ´Â IUndoContext¸¦ Á¤ÀÇÇÏ¿© Ç÷§Æû Á¶ÀÛ È÷½ºÅ丮·Î ÀÌÁÖÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌÀü¿¡ ·ÎÄ÷Π°ü¸®Çß´ø ½ÇÇà Ãë¼Ò È÷½ºÅ丮´Â ¸ðµ¨ ¿ÀºêÁ§Æ®¸¶´Ù ¶Ç´Â ÆÄÆ®¸¶´Ù °íÀ¯ÇÑ ½ÇÇà Ãë¼Ò ÄÁÅØ½ºÆ®¸¦ Á¤ÀÇÇϰí, °¢ Á¶ÀÛ¿¡ ÀûÀýÇÑ ½ÇÇà Ãë¼Ò ÄÁÅØ½ºÆ®¸¦ Ãß°¡ÇÑ ÈÄ Á¶ÀÛÀ» Ç÷§Æû Á¶ÀÛ È÷½ºÅ丮¿¡ Ãß°¡ÇÏ¿© °øÅë Á¶ÀÛ È÷½ºÅ丮¿¡ º´ÇÕµÉ ¼ö ÀÖ½À´Ï´Ù. ¹üÀ§°¡ ´õ ±¤¹üÀ§ÇÑ ½ÇÇà Ãë¼Ò È÷½ºÅ丮´Â ÇØ´çµÇ´Â ½ÇÇà Ãë¼Ò ¹üÀ§¸¦ Ç¥½ÃÇÏ´Â °íÀ¯ÇÑ ½ÇÇà Ãë¼Ò ÄÁÅØ½ºÆ®¸¦ Á¤ÀÇÇÑ ÈÄ ÇØ´ç ÄÁÅØ½ºÆ®¸¦ °¢ Á¶ÀÛ¿¡ ÁöÁ¤Çϰí Á¶ÀÛÀ» Ç÷§Æû Á¶ÀÛ È÷½ºÅ丮¿¡ Ãß°¡ÇÏ¿© ±¸ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù. ½ÇÇà Ãë¼Ò ÄÁÅØ½ºÆ®¸¦ ÀÛ¼ºÇϰí ÁöÁ¤Çϰí Á¶ÀÛÀ» Ç÷§Æû Á¶ÀÛ È÷½ºÅ丮¿¡ Ãß°¡ÇÏ´Â ¿¹Á¦¸¦ º¸·Á¸é ½ÇÇà Ãë¼Ò °¡´É Á¶ÀÛ ¹®¼­¸¦ ÂüÁ¶ÇϽʽÿÀ.

Workbench¿¡ ´ëÇØ ±¤¹üÀ§ÇÑ ½ÇÇà Ãë¼Ò °¡´É Á¶ÀÛ Á¤ÀÇ

³×ºñ°ÔÀÌÅͳª ÆÐŰÁö Ž»ö±â¿Í °°Àº Workbench º¸±â¿¡¼­ ÇØ´ç Á¶ÀÛÀÌ ½ÇÇà Ãë¼Ò °¡´ÉÇϵµ·Ï ÇÏ·Á´Â Ç÷¯±×ÀÎÀº Workbench ½ÇÇà Ãë¼Ò ÄÁÅØ½ºÆ®¸¦ ÇØ´ç Á¶ÀÛ¿¡ ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ ½ÇÇà Ãë¼Ò ÄÁÅØ½ºÆ®¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸¿Í Workbench ¹× Çìµå¾ø´Â Ç÷¯±×ÀÎ µÑ ´Ù¿¡¼­ ÀÌ ÄÁÅØ½ºÆ®¸¦ °Ë»öÇÒ ¼ö ÀÖ´Â ¹æ¹ý¿¡ °üÇÑ Á¤º¸´Â ½ÇÇà Ãë¼Ò °¡´É Á¶ÀÛ ¹®¼­¸¦ ÂüÁ¶ÇϽʽÿÀ.

Ç÷§Æû ½ÇÇà Ãë¼Ò/´Ù½Ã ½ÇÇà Á¶Ä¡ Çڵ鷯

½ÇÇà Ãë¼Ò ÀÎÇÁ¶ó½ºÆ®·°Ã³³ª ½ÇÇà Ãë¼Ò °¡´É Á¶ÀÛÀ» Á¤ÀÇÇÏÁö ¾ÊÁö¸¸ Ç÷§ÆûÀÇ ½ÇÇà Ãë¼Ò È÷½ºÅ丮¿¡ ´ëÇÑ ¾×¼¼½º ±ÇÇÑÀº Á¦°øÇÏ·Á´Â Ç÷¯±×ÀÎÀÇ °æ¿ì »õ·Î¿î °øÅë ½ÇÇà Ãë¼Ò ¹× ´Ù½Ã ½ÇÇà Á¶Ä¡ Çڵ鷯¸¦ »ç¿ëÇÏ¿© ±Û·Î¹ú ½ÇÇà Ãë¼Ò ¹× ´Ù½Ã ½ÇÇà Á¶Ä¡ Çڵ鷯ÀÇ ´ë»óÀ» ´Ù½Ã ÁöÁ¤ÇÒ °ÍÀ» °í·ÁÇØ¾ß ÇÕ´Ï´Ù. Á¶Ä¡ Çڵ鷯¿¡´Â Ç¥½ÃµÉ ½ÇÇà Ãë¼Ò ¹× ´Ù½Ã ½ÇÇà È÷½ºÅ丮¸¦ ÁöÁ¤ÇÏ´Â ½ÇÇà Ãë¼Ò ÄÁÅØ½ºÆ®¸¦ ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. Ç÷¯±×ÀÎÀº "ÆÄÆ®-·ÎÄÃ" ½ÇÇà Ãë¼Ò ¹× ´Ù½Ã ½ÇÇà È÷½ºÅ丮¸¦ Ç¥½ÃÇϱâ À§ÇØ ·ÎÄ÷ΠÁ¤ÀÇµÈ ½ÇÇà Ãë¼Ò ÄÁÅØ½ºÆ®¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Workbench Àü¹ÝÀÇ ½ÇÇà Ãë¼Ò ¹× ´Ù½Ã ½ÇÇà È÷½ºÅ丮¸¦ Ç¥½ÃÇϱâ À§ÇØ Workbench ½ÇÇà Ãë¼Ò ÄÁÅØ½ºÆ®¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ½ÇÇà Ãë¼Ò °¡´É Á¶ÀÛ ¹®¼­¿¡ ÀÚ¼¼ÇÑ ¿¹Á¦°¡ ÀÖ½À´Ï´Ù.

ÅØ½ºÆ® Á¶ÀÛ Á¶Ä¡¸¦ °øÅë Á¶Ä¡ Çڵ鷯·Î ÀÌÁÖ

¹®¼­ ÆíÁý±â ½ÇÇà Ãë¼Ò ¹× ´Ù½Ã ½ÇÇà Á¶Ä¡¸¦ ÀÌÁÖÇÏ´Â °ÍÀº ´ÜÁö ±Û·Î¹ú ½ÇÇà Ãë¼Ò/´Ù½Ã ½ÇÇà Á¶Ä¡ Çڵ鷯ÀÇ ´ë»óÀ» ´Ù½Ã ÁöÁ¤ÇÏ´Â °Íº¸´Ù ¾à°£ ¾î·Æ½À´Ï´Ù. AbstractTextEditor ÇÁ·¹ÀÓ¿öÅ©´Â ¸Å°³º¯¼öÈ­µÈ TextOperationActionÀ» »ç¿ëÇÏ¿© °øÅë ÅØ½ºÆ® Á¶Ä¡¸¦ Á¤ÀÇÇÕ´Ï´Ù. ÀÌ Á¶Ä¡´Â ÇÁ·¹ÀÓ¿öÅ©¿¡ ·ÎÄ÷ΠÀúÀåµÇ¸ç ÆíÁý±âÀÇ ÅØ½ºÆ® Á¶ÀÛ ´ë»ó¿¡ ´Ù¾çÇÑ ¸í·ÉÀ» µð½ºÆÐÄ¡Çϱâ À§ÇØ »ç¿ëµË´Ï´Ù. ÅØ½ºÆ® ½ÇÇà Ãë¼Ò°¡ ÀûÀýÇÏ°Ô ÀÛµ¿µÇµµ·Ï, ¹®¼­ ÆíÁý±â ÇÁ·¹ÀÓ¿öÅ©´Â ÀûÀýÇÑ ID(ITextEditorActionConstants.REDO ¹× ITextEditorActionConstants.UNDO)¸¦ °¡Áö°í ÀÖ´Â ÅØ½ºÆ® Á¶ÀÛ Á¶Ä¡ÀÇ Á¸Àç ¿©ºÎ¿¡ ÀÇÁ¸ÇÕ´Ï´Ù.

AbstractTextEditor°¡ °øÅë Á¶Ä¡ Çڵ鷯¸¦ ÀÛ¼ºÇϵµ·Ï ÀÌÁֵǾúÁö¸¸, ¿©ÀüÈ÷ ·¹°Å½Ã ID¸¦ »ç¿ëÇÏ¿© TextOperationAction Å×ÀÌºí¿¡ °øÅë Á¶Ä¡ Çڵ鷯¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ °æ¿ì »õ ½ÇÇà Ãë¼Ò ¹× ´Ù½Ã ½ÇÇà Á¶Ä¡ Çڵ鷯´Â Á¶Ä¡¸¦ °Ë»öÇϰí Á¶ÀÛÀ» ¼öÇàÇϱâ À§ÇÑ ·¹°Å½Ã ±â¼úÀ» »ç¿ëÇÏ¿© °Ë»öÇÒ ¼ö ÀÖ½À´Ï´Ù. AbstractTextEditor °èÃþ ±¸Á¶ÀÇ ¹®¼­ ÆíÁý±â´Â ÀÌ µ¿ÀÛÀ» »ó¼ÓÇÕ´Ï´Ù.

AbstractTextEditor·ÎºÎÅÍ ÀÌ µ¿ÀÛÀ» »ó¼ÓÇÏÁö ¾Ê´Â ÆíÁý±â´Â ±âÁ¸ÀÇ ½ÇÇà Ãë¼Ò ¹× ´Ù½Ã ½ÇÇà Á¶Ä¡¸¦ ÀÌÁÖÇÏ¿© »õ Çڵ鷯¸¦ »ç¿ëÇÒ °ÍÀ» °í·ÁÇØ¾ß ÇÕ´Ï´Ù. ·¹°Å½Ã ½ÇÇà Ãë¼Ò ¹× ´Ù½Ã ½ÇÇà TextOperationActionÀÌ ÀÖ´Â ÆíÁý±â¿¡ ´ëÇØ¼­´Â °è¼ÓÇØ¼­ ·ÎÄà ½ÇÇà Ãë¼Ò Áö¿øÀÌ ÀÛµ¿ÇÕ´Ï´Ù. Á¶Ä¡¿¡¼­ »ç¿ëÇÏ´Â JFace ÅØ½ºÆ® ½ÇÇà Ãë¼Ò °ü¸®ÀÚ API°¡ °è¼Ó Áö¿øµÇ±â ¶§¹®ÀÔ´Ï´Ù. ±×·¯³ª ½ÇÇà Ãë¼Ò ¹× ´Ù½Ã ½ÇÇà Á¶Ä¡ ·¹À̺íÀº »õ Eclipse SDK ½ÇÇà Ãë¼Ò/´Ù½Ã ½ÇÇà Á¶Ä¡¿Í ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù. »õ Eclipse SDK ½ÇÇà Ãë¼Ò/´Ù½Ã ½ÇÇà Á¶Ä¡´Â »ç¿ë °¡´ÉÇÑ ½ÇÇà Ãë¼Ò ¶Ç´Â ´Ù½Ã ½ÇÇà Á¶ÀÛÀÇ À̸§À» Ç¥½ÃÇÕ´Ï´Ù. °øÅëµÇ´Â ½ÇÇà Ãë¼Ò ¹× ´Ù½Ã ½ÇÇà Á¶Ä¡ Çڵ鷯¸¦ ÀÛ¼ºÇÏ·Á¸é Á¶Ä¡ Çڵ鷯 ÀÛ¼º ½Ã ÅØ½ºÆ® Ç¥½Ã±âÀÇ ½ÇÇà Ãë¼Ò °ü¸®ÀÚ°¡ »ç¿ëÇÏ´Â ½ÇÇà Ãë¼Ò ÄÁÅØ½ºÆ®¸¦ »ç¿ëÇØ¾ß Çϰí ÇØ´çµÇ´Â Çڵ鷯´Â ÀûÀýÇÑ ITextEditorActionConstants ID¸¦ »ç¿ëÇÏ¿© ÆíÁý±â¿¡ ¼³Á¤µÇ¾î ÀÖ¾î¾ß ÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ ¿¹Á¦´Â AbstractTextEditor.createUndoRedoActions() ¹× AbstractTextEditor.getUndoContext()¸¦ ÂüÁ¶ÇϽʽÿÀ. ÆíÁý±âÀÇ Á¶Ä¡ Ç¥½ÃÁÙ¿¡ Ãß°¡Çϱâ À§ÇØ EditorActionBarContributor ¼­ºêŬ·¡½º¿¡ ÀÇÁ¸ÇÏ´Â ÆíÁý±â´Â ½ÇÇà Ãë¼Ò ¹× ´Ù½Ã ½ÇÇà Á¶Ä¡ Çڵ鷯¸¦ ÀÛ¼ºÇϰí Ȱ¼º ÆíÁý±â ¼³Á¤ ½Ã ÀÌ Çڵ鷯¸¦ ¼³Á¤ÇÏ¿© À¯»çÇÑ ±â¼úÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

µµ¿ò¸» Çâ»óÁ¡

Á¤º¸ °Ë»ö

°Ë»ö ÆäÀÌÁö¸¦ °Ë»ö ´ëÈ­ »óÀÚ¿¡ Á¦°øÇÏ´Â Ç÷¯±×ÀÎÀº °¡Áö°í ÀÖ´Â ¸ðµç Á¤º¸ ½ºÅ¸ÀÏ °Ë»öÀ» ¿¬ÇÕ °Ë»ö ¿£ÁøÀ¸·Î À̽ÄÇÒ °ÍÀ» °í·ÁÇØ¾ß ÇÕ´Ï´Ù. 3.1 ÀÌÈÄ·Î, ¸ðµç Á¤º¸ ½ºÅ¸ÀÏ °Ë»öÀº Workbench ¾ÆÆ¼ÆÑÆ® °Ë»ö°ú ±¸ºÐµË´Ï´Ù. Á¤º¸ °Ë»ö ¿£ÁøÀº ¹è°æ ÀÛ¾÷°ú »õ µµ¿ò¸» º¸±â¿¡ ¹è¿­µÇ´Â °á°ú¿Í º´·Ä·Î ½ÇÇàµË´Ï´Ù. ¼¼ºÎ»çÇ×Àº µµ¿ò¸» °Ë»öÀ» ÂüÁ¶ÇϽʽÿÀ.

µ¿Àû µµ¿ò¸»

»õ·Î¿î µ¿Àû µµ¿ò¸» º¸±â´Â Workbench ÆÄÆ® ¹× ´ëÈ­ »óÀÚÀÇ À§ÁöÆ®(widget)¿Í Á¤ÀûÀ¸·Î ¿¬°üµÇ´Â ±âÁ¸ ÄÁÅØ½ºÆ® ID¿¡ ´ëÇØ ÀÛµ¿ÇÕ´Ï´Ù. ±×·¯³ª µµ¿ò¸» À̺¥Æ®¸¦ »ç¿ëÀÚ ½º½º·Î ¹ß°ßÇÏ¿© µµ¿ò¸»À» Ç¥½ÃÇÒ °æ¿ì µ¿Àû µµ¿ò¸» º¸±â´Â ¾î¶² °Íµµ À¯¿ëÇÏ°Ô Ç¥½ÃÇÒ ¼ö ¾ø½À´Ï´Ù. ¹®Á¦Á¡À» ¼öÁ¤ÇÏ·Á¸é µ¿Àû ÄÁÅØ½ºÆ® µµ¿ò¸» ¹®¼­¿¡ ¼³¸íµÈ ´ë·Î »õ IContextProvider ÀÎÅÍÆäÀ̽º¸¦ äÅÃÇØ¾ß ÇÕ´Ï´Ù.

JFace ȯ°æ ¼³Á¤ ÀúÀå

¸±¸®½º 3.1 ÇöÀç, AbstractUIPlugin.getPreferenceStore()·ÎºÎÅÍ ¸®ÅϵǴ org.eclipse.jface.preference.IPreferenceStore°¡ org.eclipse.ui.preferences.ScopedPreferenceStoreÀÇ ÀνºÅϽºÀÔ´Ï´Ù. ScopedPreferenceStore´Â org.eclipse.core.runtime.preferences API¸¦ »ç¿ëÇÏ¿© ȯ°æ ¼³Á¤À» °ü¸®ÇÕ´Ï´Ù. 3.0¿¡¼­´Â ȣȯ¼º °èÃþÀ» »ç¿ëÇÏ¿© org.eclipse.core.runtime.PreferencesÀÇ ÀνºÅϽº¿Í ÀÎÅÍÆäÀ̽ºÇß½À´Ï´Ù.

3.1¿¡¼­´Â ȯ°æ ¼³Á¤ º¯°æ À̺¥Æ®¿¡¼­ ¼Û½ÅµÇ´Â °ªÀÇ À¯Çü¿¡ ´ëÇØ º¸´Ù ƯÁ¤Çϵµ·Ï IPreferenceStore¸¦ ¸íÈ®ÇÏ°Ô Çß½À´Ï´Ù. AbstractUIPlugin#getPreferenceStoreÀÇ IPreferenceStore´Â ÀÌÀü°ú µ¿ÀÏÇÑ µ¿ÀÛÀ» °®Áö¸¸, ÀÌÁ¦´Â º¸´Ù ¸íÈ®ÇÏ°Ô ÁöÁ¤µË´Ï´Ù.

Ű ÀÔ·Â: IPreferenceStore¿¡ Ãß°¡µÈ org.eclipse.jface.util.IPropertyChangeListener´Â ÀáÀçÀûÀ¸·Î ÀÌÀü ¹× »õ·Î¿î °ªÀÇ µÎ °¡Áö À¯Çü(Ű ÀÔ·Â ¶Ç´Â ¹®ÀÚ¿­ Ç¥½Ã)À» °¡Á®¿Ã ¼ö ÀÖ½À´Ï´Ù. ÀÔ·ÂµÈ IPreferenceStore API¿¡ ´ëÇÑ È£Ãâ¿¡ ÀÇÇØ »ý¼ºµÇ´Â ¸ðµç À̺¥Æ®(¿¹: setValue(String key, boolean value))´Â ÀÔ·ÂµÈ À̺¥Æ®¸¦ »ý¼ºÇÕ´Ï´Ù. ±×·¯³ª ÀԷµÇÁö ¾ÊÀº À̺¥Æ®¸¦ »ý¼ºÇÏ´Â ÄÚ¾î ·±Å¸ÀÓ È¯°æ ¼³Á¤¿¡¼­ À̺¥Æ®°¡ ÀüÆÄµÉ ¼öµµ ÀÖ½À´Ï´Ù(¿¹: ȯ°æ ¼³Á¤ °¡Á®¿À±âÀÇ ÀνºÅϽº¿¡¼­). Ư¼º ¸®½º³Ê°¡ µÎ °æ¿ì ¸ðµÎ ÁغñµÇ¾î¾ß ÇÕ´Ï´Ù. ¶ÇÇÑ ÀÔ·ÂµÈ À̺¥Æ®´Â ±âº» À¯ÇüÀ» ÀüÆÄÇÏÁö ¾ÊÀ¸¹Ç·Î setValue(String key, boolean value)¿¡ ´ëÇÑ È£Ãâ °á°ú°¡ oldValue ¹× newValue°¡ ºÎ¿ïÀÎ À̺¥Æ®°¡ µË´Ï´Ù.

putValue: IPreferenceStore.putValue(String key, String value)°¡ º¯°æ À̺¥Æ®¸¦ »ý¼ºÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ API´Â ´ëÀÀ Á¶Ä¡¸¦ ÇÏ´Â ¸®½º³Ê°¡ ¾ø´Â °³Àοë ȯ°æ ¼³Á¤¿¡ »ç¿ëµÇ±â À§ÇÑ °ÍÀÔ´Ï´Ù.

initializeDefaultPreferences. ÀÌ API´Â ȣȯ¼º °èÃþÀÌ »ç¿ëµÈ °æ¿ì¿¡¸¸ ½ÃÀ۵DZ⠶§¹®¿¡ Eclipse 3.0¿¡¼­ Æó±âµÇ¾ú½À´Ï´Ù. ´ëºÎºÐÀÇ Ç÷¯±×ÀÎÀÌ È¯°æ ¼³Á¤ ÀúÀåÀ» °¡Á®¿À±â À§ÇØ AbstractUIPlugin#getPreferenceStore¿¡ ÀÇÁ¸ÇϹǷΠÀ̰ÍÀº ÀÌÀü¿¡ Ç÷¯±×ÀÎ ½ÃÀÛ ½Ã¿¡ ½ÃÀ۵Ǿú½À´Ï´Ù. Ç÷¯±×ÀÎÀÌ È£È¯¼º °èÃþ ÀÚü¿¡ ¾×¼¼½ºÇÏÁö ¾Ê´Â °æ¿ì ÀÌ ¸Þ¼Òµå´Â ½ÃÀÛµÉ ¼ö ¾ø½À´Ï´Ù. ȯ°æ ¼³Á¤ ÃʱâÈ­¸¦ ó¸®Çϱâ À§ÇØ org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer¸¦ ÀÛ¼ºÇÒ °ÍÀ» ±ÇÀåÇÕ´Ï´Ù.