JDT UI API´Â Ç¥ÁØ JFace Ç¥½Ã±â¿¡¼ Java ¸ðµ¨ ¶Ç´Â ÀÌ ¸ðµ¨ÀÇ ÆÄÆ®¸¦ ³ªÅ¸³»µµ·Ï Çϴ Ŭ·¡½º¸¦ Á¦°øÇÕ´Ï´Ù. ÀÌ ±â´ÉÀº ÁÖ·Î ´ÙÀ½¿¡¼ Á¦°øÇÕ´Ï´Ù.
JFace Ç¥½Ã±â¿¡ ´ëÇÑ ÄÁÅÙÃ÷ ¹× ·¹À̺í Á¦°ø¾÷ü´Â JFace Ç¥½Ã±â¿¡ ÀÚ¼¼È÷ ¼³¸íµÇ¾î ÀÖ½À´Ï´Ù.
±âº» Ç÷§Æû ¸ÞÄ¿´ÏÁòÀ» ÀÌÇØÇϸé Java ÄÁÅÙÃ÷ ¹× ·¹À̺í Á¦°ø¾÷ü¸¦ °£´ÜÇÏ°Ô ³ÖÀ» ¼ö ÀÖ½À´Ï´Ù.... TreeViewer viewer= new TreeViewer(parent); // Provide members of a compilation unit or class file, but no working copy elements ITreeContentProvider contentProvider= new StandardJavaElementContentProvider(true, false); viewer.setContentProvider(contentProvider); // There are more flags defined in class JavaElementLabelProvider ILabelProvider labelProvider= new JavaElementLabelProvider( JavaElementLabelProvider.SHOW_DEFAULT | JavaElementLabelProvider.SHOW_QUALIFIED | JavaElementLabelProvider.SHOW_ROOT); viewer.setLabelProvider(labelProvider); // Using the Java model as the viewers input present Java projects on the first level. viewer.setInput(JavaCore.create(ResourcesPlugin.getWorkspace().getRoot())); ...
À§ÀÇ ¿¹Á¦´Â Ç¥½Ã±â¿¡ ´ëÇÑ ÀÔ·Â ¿ä¼Ò·Î aJava ¸ðµ¨(IJavaModel)À» »ç¿ëÇÕ´Ï´Ù. ¶ÇÇÑ, StandardJavaElementContentProvider´Â ÀÔ·Â ¿ä¼Ò·Î IJavaProject, IPackageFragmentRoot, IPackageFragment ¹× IFolderµµ Áö¿øÇÕ´Ï´Ù.
JavaElementImageDescriptor´Â ÀÓÀÇÀÇ ±âº» À̹ÌÁö ¼³¸íÀÚ¿¡ ±â¹ÝÇÑ À̹ÌÁö¿Í À̹ÌÁö À§¿¡ ÷°¡ÇÏ´Â Java ƯÁ¤ Àå½Ä(¿¹: static, final, synchronized, ....)À» ÁöÁ¤ÇÏ´Â Ç÷¡±× ¼¼Æ®¸¦ ÀÛ¼ºÇÏ´Â µ¥ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.
... DecoratingLabelProvider decorator= new DecoratingLabelProvider(labelProvider, new ProblemsLabelDecorator()); viewer.setLabelProvider(decorator); ...
°°Àº ¹æ½ÄÀ¸·Î OverrideIndicatorLabelDecorator´Â ÀÏ¹Ý ·¹À̺í Á¦°ø¾÷ü¸¦ µ¥ÄÚ·¹ÀÌÆ®ÇÏ¿© ¸Þ¼Òµå¿¡ ´ëÇÑ ±¸Çö
OverrideIndicatorLabelDecorator ¶Ç´Â ProblemsLabelDecorator´Â ¸ðµ¨ º¯°æ»çÇ×À» ûÃëÇÏÁö ¾Ê½À´Ï´Ù. µû¶ó¼ Java ¶Ç´Â ÀÚ¿ø ¸¶Ä¿ ¸ðµ¨ÀÌ º¯°æÇÒ °æ¿ì Ç¥½Ã±â´Â ¸ðµ¨ÀÇ ÇÁ¸®Á¨Å×À̼ÇÀ» °»½ÅÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ·¯ÇÑ Å¬·¡½º¿¡ ´ëÇÑ Å¬¶óÀÌ¾ðÆ®¿¡ °»½ÅÇØ¾ß ÇÏ´Â ÀÌÀ¯´Â ¸ðµç ¼º´É°ú °ü·ÃÇÏ¿© ÀÌÇàÇÏ´Â ÀÏ¹Ý ±¸ÇöÀÌ ¾ÆÁ÷ ¾ø±â ¶§¹®ÀÔ´Ï´Ù. °¢ ·¹ÀÌºí µ¥ÄÚ·¹ÀÌÅÍ ¶Ç´Â Á¦°ø¾÷ü¿¡¼ Java ¸ðµ¨ µ¨Å¸ °Ë»ç ó¸® ¹× Ç¥½Ã±â¸¦ »õ·Î °íÄ¡¸é ´ÙÁß µ¨Å¸ °Ë»ç ¹× ºÒÇÊ¿äÇÑ Ç¥½Ã±â °»½Å¿¡ ¿µÇâÀ» ÁÝ´Ï´Ù.
±×·¸´Ù¸é Ŭ¶óÀÌ¾ðÆ®´Â Ç¥½Ã±â¸¦ °»½ÅÇϱâ À§ÇØ ¹«¾ùÀ» ÇØ¾ß Çմϱî?
ProblemTreeViewer.handleLabelProviderChanged
¸¦ ÂüÁ¶ÇϽʽÿÀ.·¹ÀÌºí µ¥ÄÚ·¹ÀÌÅÍ¿¡ ´ëÇØ ¿°ÅÇÑ °Í°ú °°Àº ÀÌÀ¯·Î StandardJavaElementContentProvider ´Â ¸ðµ¨ º¯°æ»çÇ×À» ûÃëÇÏÁö ¾Ê½À´Ï´Ù. Ç¥½Ã±â°¡ Java ¸ðµ¨ º¯°æ»çÇ׿¡ µû¶ó ¸ðµ¨ÀÇ ÇÁ¸®Á¨Å×À̼ÇÀ» °»½ÅÇØ¾ß ÇÑ´Ù¸é Ŭ¶óÀÌ¾ðÆ®´Â ÇØ´ç ¸®½º³Ê¸¦ JavaCore¿¡ Ãß°¡ÇØ¾ß ÇÕ´Ï´Ù. µ¨Å¸·Î ¼³¸íÇÏ´Â º¯°æ»çÇ×ÀÌ Ç¥½Ã±â¿¡ ³ªÅ¸³ ¿ä¼ÒÀÇ ±¸Á¶¸¦ ¹«È¿ÈÇϸé Ŭ¶óÀÌ¾ðÆ®´Â Ç¥ÁØ JFace API¸¦ »ç¿ëÇÏ¿© Ç¥½Ã±â¸¦ °»½ÅÇØ¾ß ÇÕ´Ï´Ù(StructuredViewer¿¡ ´ëÇÑ »õ·Î °íÄ¡±â ¸Þ¼Òµå, TableViewer ¹× AbstractTreeViewer¿¡ ´ëÇÑ Ãß°¡ ¹× Á¦°Å ¸Þ¼Òµå ÂüÁ¶).
JavaElementSorter´Â JFace Ç¥½Ã±â¿¡ Ç÷¯±×ÀÎÇÏ¿© Java UI Á¤·Ä ½ºÅ¸ÀÏ¿¡ µû¶ó Java ¿ä¼Ò¸¦ Á¤·ÄÇÒ ¼ö ÀÖ½À´Ï´Ù.