ÀϹÝÀûÀ¸·Î »ç¿ëÀÚ´Â ÅØ½ºÆ® ÇÊµå ¶Ç´Â ÄÞº¸ »óÀÚ¿Í °°Àº ´Ü¼ø Çʵ忡 ÅØ½ºÆ® Á¤º¸¸¦ Á¦°øÇÕ´Ï´Ù. ÀÌ Çʵ带 ä¿ì´Â ÀÀ¿ëÇÁ·Î±×·¥ ÄÚµå´Â ÀϹÝÀûÀ¸·Î Ç¥ ¶Ç´Â Æ®¸®¿Í °°ÀÌ º¹ÀâÇÑ À§ÁöÆ®(widget)¸¦ ä¿ì´Â Äڵ庸´Ù´Â ÈξÀ ´Ü¼øÇÏÁö¸¸ ÀÌ "´Ü¼ø" Çʵå´Â ÀϹÝÀûÀ¸·Î »ç¿ëÀÚ¿¡°Ô ¸¹Àº ºÎ´ãÀ» ÁÝ´Ï´Ù. Áï, »ç¿ëÀÚ´Â ÄÁÅÙÃ÷°¡ ÇÊ¿äÇÑ Çʵå, Çʵ忡 ¿Ã¹Ù¸¥ ÄÁÅÙÃ÷°¡ µé¾î ÀÖ´ÂÁö ¿©ºÎ ¹× ¿¹»ó ¼±ÅûçÇ×À» ½Äº°ÇØ¾ß ÇÕ´Ï´Ù. JFace Çʵå Áö¿øÀº »ç¿ëÀÚ¿¡°Ô ÀԷ Ÿ½ºÅ©¸¦ ¾È³»Çϴ Ŭ·¡½º¸¦ Á¦°øÇÕ´Ï´Ù.
org.eclipse.jface.fieldassist ÆÐŰÁö´Â µÎ °¡Áö ¹æ½ÄÀ¸·Î Áö¿øÀ» Á¦°øÇÕ´Ï´Ù. µ¥ÄÚ·¹ÀÌ¼ÇµÈ Çʵ忡 ´ëÇÑ Áö¿øÀ» »ç¿ëÇÏ¸é Æ¯Á¤ ÇÊµå »óÅ¿¡ ´ëÇÑ Á¤º¸¸¦ »ç¿ëÀÚ¿¡°Ô Á¦°øÇÏ´Â À̹ÌÁö µ¥ÄÚ·¹À̼ÇÀ» Æ÷ÇÔ½Ãų ¼ö ÀÖ½À´Ï´Ù. ÄÁÅÙÃ÷ Á¦¾È Áö¿øÀ» »ç¿ëÇÏ¸é »ç¿ëÀÚ¿¡°Ô ÄÁÅÙÃ÷ ¼±ÅûçÇ×À» Á¦°øÇÏ´Â ÄÁÅÙÃ÷ Áö¿ø ÆË¾÷À» Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù.
µ¥ÄÚ·¹ÀÌ¼ÇµÈ Çʵ带 »ç¿ëÇϸé â ¶Ç´Â ´ëÈ »óÀÚ¿¡ Á¤ÀÇµÈ ÇÊµå ¿·¿¡ À̹ÌÁö µ¥ÄÚ·¹À̼ÇÀ» ¹èÄ¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. µ¥ÄÚ·¹À̼ÇÀº ÇʵåÀÇ ³× ±¸¼® Áß ÇÑ ±¸¼® ¿·¿¡ ¹èÄ¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. µ¥ÄÚ·¹ÀÌ¼ÇµÈ Çʵå´Â Ç¥½Ã±â¿Í ¸¶Âù°¡Áö·Î, ±âº» Á¦¾î¿¡ ´ëÇÑ ¾×¼¼½º¸¦ °è¼Ó Á¦°øÇÏ¸é¼ SWT Á¦¾î¿¡ ±â´ÉÀ» Ãß°¡Çϱâ À§ÇÑ ¿ëµµ·Î »ç¿ëµË´Ï´Ù. DecoratedField¿ë API¸¦ »ç¿ëÇÏ¸é µ¥ÄÚ·¹À̼ÇÀ» Ãß°¡ ¶Ç´Â ¼û±â°Å³ª ÇÊµå ¿·¿¡ Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ±âº» Á¦¾î¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ¾î ±âÁ¸ SWT API¸¦ »ç¿ëÇÏ¿© ÇØ´ç ÄÁÅÙÃ÷, »ö»ó ¹× ±Û²Ã ¼³Á¤°ú °°Àº ±âº» Á¦¾î¿¡ ¿µÇâÀ» ÁÙ ¼ö ÀÖ½À´Ï´Ù.
¿ÜºÎ¿¡¼´Â µ¥ÄÚ·¹ÀÌ¼ÇµÈ Çʵ尡 ´ÜÀÏ Á¦¾î¿Í °°Àº ±â´ÉÀ» ¼öÇàÇÕ´Ï´Ù. ³»ºÎ¿¡¼´Â µ¥ÄÚ·¹ÀÌ¼ÇµÈ Çʵ尡 ÄÄÆ÷ÁöÆ® Á¦¾î¸¦ »ç¿ëÇÏ¿© ÇÊµå ¹× ÇØ´ç µ¥ÄÚ·¹À̼ÇÀÇ ·¹À̾ƿôÀ» °ü¸®ÇÕ´Ï´Ù. ´ëºÎºÐÀÇ °æ¿ì, À̴ Ŭ¶óÀÌ¾ðÆ® ÀÀ¿ëÇÁ·Î±×·¥¿¡´Â ¿µÇâÀ» ÁÖÁö ¾Ê½À´Ï´Ù. ±×·¯³ª µ¥ÄÚ·¹ÀÌ¼ÇµÈ Çʵ尡 ½ÇÁ¦ Á¦¾î ÀÛ¼ºÀ» ¼öÇàÇØ¾ß ÇÔÀ» ÀǹÌÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ ½º´ÏÆêÀÇ °æ¿ì ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ÇØ´ç ´ëÈ »óÀÚ Áß ÇϳªÀÇ ³»ºÎ¿¡ ÅØ½ºÆ® Á¦¾î¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
... // Create a text field Text text = new Text(parent, SWT.BORDER); text.setText("some text"); ...
ÀÌ Çʵ带 µ¥ÄÚ·¹À̼ÇÇÏ·Á¸é ´ÙÀ½°ú °°Àº ¹æ½ÄÀ¸·Î Çʵ尡 ÀÛ¼ºµË´Ï´Ù.
... // Create a decorated field for a text control DecoratedField field = new DecoratedField(parent, SWT.BORDER, new TextControlCreator()); Text text = (Text)field.getControl(); text.setText("some text"); ...
±âº» Á¦¾î¸¦ ÀÛ¼ºÇÏ´Â µ¥ »ç¿ëµÇ´Â µ¿ÀÏÇÑ »óÀ§ ¹× ½ºÅ¸ÀÏ ºñÆ®°¡ µ¥ÄÚ·¹ÀÌ¼ÇµÈ Çʵ带 ÀÛ¼ºÇÏ´Â µ¥µµ »ç¿ëµË´Ï´Ù. ÄÚµåÀÇ ±âº» Â÷ÀÌÁ¡Àº Çʵ忡¼ ÇÊ¿äÇÑ Æ¯Á¤ À¯ÇüÀÇ Á¦¾î¸¦ ÀÛ¼ºÇÏ´Â IControlCreator ÀνºÅϽº°¡ Á¦°øµÈ´Ù´Â °ÍÀÔ´Ï´Ù. ÅØ½ºÆ® ÇʵåÀÇ °æ¿ì TextControlCreator Ŭ·¡½º¸¦ »ç¿ëÇÏ¿© Á¦¾î¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª IControlCreator¸¦ º¸´Ù ÀÚÀ¯·Ó°Ô ±¸ÇöÇÏ¿© ÇÊµå ³»ºÎ¿¡ ½ºÇÇ³Ê ¶Ç´Â ÄÞº¸ »óÀÚ¿Í °°Àº ´Ù¸¥ Á¦¾î À¯ÇüÀ» ÀÛ¼ºÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
µ¥ÄÚ·¹ÀÌ¼ÇµÈ Çʵ尡 ÀÛ¼ºµÇ¸é ³× °¡Áö À§Ä¡ Áß Çϳª¿¡ µ¥ÄÚ·¹À̼ÇÀ» Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. SWT À§Ä¡ »ó¼ö¸¦ »ç¿ëÇÏ¿© µ¥ÄÚ·¹ÀÌ¼Ç À§Ä¡¸¦ ÁöÁ¤ÇÕ´Ï´Ù. µ¥ÄÚ·¹À̼ÇÀ» Ãß°¡ÇÏ·Á¸é »ç¿ëÀÚ°¡ µ¥ÄÚ·¹À̼ǿ¡ ¸¶¿ì½º¸¦ ´î ¶§ Ç¥½ÃµÉ ¼ö ÀÖ´Â ¼³¸í ÅØ½ºÆ®(¼±ÅûçÇ×) ¹× µ¥ÄÚ·¹À̼ÇÀÇ À̹ÌÁö¸¦ Á¤ÀÇÇÏ´Â FieldDecorationÀ» ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù.
... // Create a field decoration and add it to the field Image image = JFaceResources.getImage("myplugin.specialimage"); FieldDecoration mySpecialDecoration = new FieldDecoration(image, "This field is special"); field.addFieldDecoration(mySpecialDecoration, SWT.TOP | SWT.LEFT, false); ...
ºÎ¿ï ¸Å°³º¯¼ö´Â Á¦¾î¿¡ ÃÊÁ¡À» ¸ÂÃâ ¶§¸¸ µ¥ÄÚ·¹À̼ÇÀÌ Ç¥½ÃµÇ¾î¾ß ÇÏ´ÂÁö ¶Ç´Â Ç×»ó Ç¥½ÃµÇ¾î¾ß ÇÏ´ÂÁö ¿©ºÎ¸¦ ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ÀÌ °æ¿ì, µ¥ÄÚ·¹À̼ÇÀÌ Ç×»ó Ç¥½ÃµË´Ï´Ù. ±×·¯³ª µ¥ÄÚ·¹À̼ÇÀ» ¼û±â°Å³ª Ç¥½ÃÇØ¾ß ÇÏ´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ´ÙÀ½ ½º´ÏÆêÀº ÀÌ¹Ì ÀÛ¼ºµÈ µ¥ÄÚ·¹À̼ÇÀ» ¼û±é´Ï´Ù.
... // Something has occurred that makes me want to hide the decoration field.hideDecoration(mySpecialDecoration); ...
µ¥ÄÚ·¹À̼ÇÀÇ À̹ÌÁö ¶Ç´Â ¼³¸íÀÌ °»½ÅµÇ¸é Çʵ忡µµ ÇØ´ç ³»¿ëÀ» ¾Ë·Á¾ß µ¥ÄÚ·¹À̼ÇÀ» ´Ù½Ã ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
... // Something has made the field extra special mySpecialDecoration.setDescription("This field is extra-special"); field.updateDecoration(mySpecialDecoration); ...
µ¥ÄÚ·¹ÀÌ¼Ç Çʵ带 ´ëÈ »óÀÚ ¶Ç´Â â ³»ºÎ¿¡ ¹èÄ¡ÇÏ´Â °æ¿ì ´Ü¼øÇÑ ±âº» Á¦¾î°¡ ¾Æ´Ñ ÇʵåÀÇ ·¹À̾ƿô Á¦¾î¸¦ ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. ¶ÇÇÑ ÅØ½ºÆ® Á¦¾î ÀÛ¼ºÀ» À§ÇÑ Äڵ带 °í·ÁÇØ¾ß ÇÕ´Ï´Ù. ÅØ½ºÆ® Á¦¾î¸¦ ¹èÄ¡ÇÏ´Â °æ¿ì ÀÀ¿ëÇÁ·Î±×·¥Àº Á¦¾î¿¡ ´ëÇÑ ·¹À̾ƿô µ¥ÀÌÅ͸¦ ¼³Á¤ÇÕ´Ï´Ù.
... // Create a text field Text text = new Text(parent, SWT.BORDER); text.setText("some text"); // Set the layout data GridData data = new GridData(IDialogConstants.ENTRY_FIELD_WIDTH, SWT.DEFAULT); text.setLayoutData(data); ...
µ¥ÄÚ·¹ÀÌ¼ÇµÈ Çʵ带 ¹èÄ¡ÇÏ´Â °æ¿ì, ÀÀ¿ëÇÁ·Î±×·¥Àº ÇʵåÀÇ ·¹À̾ƿô Á¦¾î¿¡ ·¹À̾ƿô µ¥ÀÌÅ͸¦ Çã¿ëÇØ¾ß ÇÕ´Ï´Ù. ¿øÇÏ´Â ·¹À̾ƿô¿¡ µû¶ó Çʵå Å©±â¸¦ µ¥ÄÚ·¹ÀÌ¼Ç Å©±â¿¡ ¸Â°Ô Á¶Á¤ÇØ¾ß ÇÕ´Ï´Ù.
... // Create a decorated field for a text control DecoratedField field = new DecoratedField(main, SWT.BORDER, new TextControlCreator()); Text text = (Text)field.getControl(); text.setText("some text"); // Set the layout data GridData data = new GridData(IDialogConstants.ENTRY_FIELD_WIDTH + FieldDecorationRegistry.getDefault().getMaximumDecorationWidth(), SWT.DEFAULT); field.getLayoutControl().setLayoutData(data); ...
Çʵå Áö¿ø¿¡¼´Â ƯÁ¤ ´ëÈ »óÀÚ ¶Ç´Â â ³»ºÎ¿¡¼ µ¥ÄÚ·¹ÀÌ¼ÇµÈ Çʵ常 »ç¿ëÇØ¾ß ÇÏ´Â °ÍÀº ¾Æ´Ï¸ç ÀÌ·¯ÇÑ Çʵ带 »ç¿ëÇÏ´Â °ÍÀ¸·Î °¡Á¤ÇÏÁöµµ ¾Ê½À´Ï´Ù. ±×·¯³ª µ¥ÄÚ·¹ÀÌ¼ÇµÈ Çʵå¿Í ´Ü¼ø Á¦¾î°¡ È¥ÇÕµÉ ¶§ â ·¹À̾ƿôÀÌ Á¶±Ý ´õ º¹ÀâÇØÁú ¼ö ÀÖ½À´Ï´Ù. µ¥ÄÚ·¹ÀÌ¼ÇµÈ Çʵå¿Í µ¥ÄÚ·¹À̼ǵÇÁö ¾ÊÀº Çʵ带 ÇÔ²² »ç¿ëÇÏ·Á¸é µ¥ÄÚ·¹ÀÌ¼Ç ³Êºñ·Î ÀÎÇÑ µé¿©¾²±â¸¦ °í·ÁÇØ¾ß ÇÕ´Ï´Ù. µ¥ÄÚ·¹ÀÌ¼Ç ³Êºñ´Â ´ÜÁö À̹ÌÁöÀÇ ³ÊºñÀÔ´Ï´Ù. ±×·¯³ª ´Ù¾çÇÑ ³ÊºñÀÇ µ¥ÄÚ·¹À̼ÇÀ» »ç¿ëÇÏ´Â °æ¿ì »óȲÀÌ º¸´Ù º¹ÀâÇØÁú ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì, FieldDecorationRegistry¿¡¼ ¸ðµç µ¥ÄÚ·¹À̼ÇÀ» µî·ÏÇÏ¿© ´Ü¼øÈÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÇÊµå µ¥ÄÚ·¹ÀÌ¼Ç ·¹Áö½ºÆ®¸®¸¦ »ç¿ëÇÏ¸é ¹®ÀÚ¿ ID¸¦ »ç¿ëÇÏ¿© ÇÊµå µ¥ÄÚ·¹À̼ÇÀ» µî·ÏÇÏ°í ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì ÀÀ¿ëÇÁ·Î±×·¥ Àüü¿¡¼ »ç¿ëµÇ´Â µ¥ÄÚ·¹À̼ÇÀ» Æí¸®ÇÏ°Ô ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¥ Ç÷¯±×Àο¡ µ¥ÄÚ·¹ÀÌ¼Ç ID¸¦ »ç¿ëÇÏ·Á´Â °æ¿ì ÇØ´ç ID¸¦ ³ëÃâÇÏ´Â API¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. µ¥ÄÚ·¹À̼ÇÀ» µî·ÏÇÑ´Ù°í ÇØ¼ À̹ÌÁö ¶óÀÌÇÁ»çÀÌŬÀ» ÇØ´ç µ¥ÄÚ·¹ÀÌ¼Ç ³»ºÎ¿¡¼ °ü¸®ÇÏ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. ÀÀ¿ëÇÁ·Î±×·¥À¸·Î ÀÌ·¯ÇÑ À̹ÌÁö °ü¸® ¹æ¹ýÀ» °áÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, JFace À̹ÌÁö ·¹Áö½ºÆ®¸®¸¦ »ç¿ëÇÏ¿© À̹ÌÁö ¶óÀÌÇÁ»çÀÌŬÀ» µî·ÏÇÏ°í °ü¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶Ç´Â ÀÀ¿ëÇÁ·Î±×·¥À¸·Î ¿äû¿¡ µû¶ó À̹ÌÁö¸¦ ÀÛ¼ºÇÏ°í ´õ ÀÌ»ó ÇÊ¿äÇÏÁö ¾ÊÀ» ¶§ Á¦°ÅÇÒ ¼ö ÀÖ½À´Ï´Ù. FieldDecorationRegistryÀÇ µî·Ï ¸Þ¼Òµå¿¡ ´ëÇÑ javadocÀº µ¥ÄÚ·¹À̼ÇÀ» µî·ÏÇÒ ¶§ À̹ÌÁö¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ´Ù¾çÇÑ ¹æ½ÄÀ» ¼³¸íÇÕ´Ï´Ù.
ÇÊµå µ¥ÄÚ·¹ÀÌ¼Ç ·¹Áö½ºÆ®¸®¿¡¼ µ¥ÄÚ·¹À̼ÇÀ» µî·ÏÇÔÀ¸·Î½á ¶ÇÇÑ µ¥ÄÚ·¹ÀÌ¼ÇµÈ Çʵå¿Í µ¥ÄÚ·¹À̼ǵÇÁö ¾ÊÀº Çʵ带 ÇÔ²² »ç¿ëÇÒ ¶§ ·¹À̾ƿô ÇÁ·Î¼¼½º¸¦ ´Ü¼øÈÇÒ ¼ö ÀÖ½À´Ï´Ù. µ¥ÄÚ·¹ÀÌ¼ÇµÈ Çʵå´Â ±âº»ÀûÀ¸·Î ÇÊµå µ¥ÄÚ·¹ÀÌ¼Ç ·¹Áö½ºÆ®¸®¸¦ ÂüÁ¶ÇÏ¿© ÃÖ´ë µ¥ÄÚ·¹ÀÌ¼Ç ³Êºñ¸¦ °áÁ¤ÇÏ¸ç ¸ðµç µ¥ÄÚ·¹À̼ÇÀÌ ÀÌ ³Êºñ¸¦ »ç¿ëÇϵµ·Ï ÇÕ´Ï´Ù. À̴ ƯÁ¤ µ¥ÄÚ·¹À̼ÇÀÇ ³Êºñ¿¡ °ü°è ¾øÀÌ µ¥ÄÚ·¹ÀÌ¼ÇµÈ ¸ðµç Çʵ尡 ¿Ã¹Ù¸£°Ô ¹è¿µÊÀ» ÀǹÌÇÕ´Ï´Ù. µ¥ÄÚ·¹À̼ǵÇÁö ¾ÊÀº Çʵ带 ¹è¿ÇÏ·Á¸é FieldDecorationRegistry ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÏ¿© ÃÖ´ë µ¥ÄÚ·¹ÀÌ¼Ç ³Êºñ¿¡ ¾×¼¼½ºÇϰí ÇÊ¿äÇÑ µé¿©¾²±â¸¦ ÀÛ¼ºÇÏ¸é µË´Ï´Ù.
... // Create a text field Text text = new Text(parent, SWT.BORDER); text.setText("some text"); // Set the layout data GridData data = new GridData(); data.horizontalAlignment = SWT.FILL; data.horizontalIndent = FieldDecorationRegistry.getDefault().getMaximumDecorationWidth(); text.setLayoutData(data); ...
Çʵå Áö¿øÀº µ¥ÄÚ·¹ÀÌ¼Ç »ç¿ë ¹æ¹ýÀ» ³ªÅ¸³»Áö´Â ¾ÊÁö¸¸ ·¹Áö½ºÆ®¸®´Â ¶ÇÇÑ ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ÇʵåÀÇ Æ¯Á¤ »óŸ¦ Ç¥½ÃÇϱâ À§ÇØ »ç¿ëÇÒ ¼ö Àִ ǥÁØ µ¥ÄÚ·¹À̼ÇÀ» Á¤ÀÇÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ ½º´ÏÆêÀº Çʼö ÇʵåÀÇ Ç¥ÁØ µ¥ÄÚ·¹À̼ÇÀ» »ç¿ëÇÕ´Ï´Ù.
... // Create a decorated field with a required field decoration. DecoratedField field = new DecoratedField(main, SWT.BORDER, new TextControlCreator()); FieldDecoration requiredFieldIndicator = FieldDecorationRegistry.getDefault(). getFieldDecoration(FieldDecorationRegistry.DEC_REQUIRED); field.addDecoratedField(requiredFieldIndicator, SWT.BOTTOM | SWT.LEFT, false); ...
ÀÀ¿ëÇÁ·Î±×·¥Àº µ¥ÄÚ·¹À̼ÇÀ» »ç¿ëÇÑ ÇÊµå ¾î³ëÅ×ÀÌ¼Ç À̿ܿ¡ Çʵ忡 ´ëÇÑ Á¦¾È ÆË¾÷À» Ȱ¼ºÈÇÏ´Â ÄÁÅÙÃ÷ Á¦¾È Áö¿øÀ» Á¦°øÇÕ´Ï´Ù. ÀÌ µ¿ÀÛÀ» Á¦°øÇÏ·Á¸é ÀÓÀÇÀÇ Á¦¾î¿¡ ContentProposalAdapter¸¦ ¼³Ä¡ÇØ¾ß ÇÕ´Ï´Ù. ´ÙÀ½ ½º´ÏÆêÀº ÅØ½ºÆ® Á¦¾î¿¡ ´ëÇÑ ÄÁÅÙÃ÷ Á¦¾È ¾î´ðÅ͸¦ ¼³Ä¡ÇÕ´Ï´Ù. ÀÌ ÅØ½ºÆ® Á¦¾î´Â ÀÀ¿ëÇÁ·Î±×·¥ÀÌ Á÷Á¢ ÀÛ¼ºÇÑ Á¦¾îÀ̰ųª µ¥ÄÚ·¹ÀÌ¼ÇµÈ Çʵ忡¼ ¾òÀº Á¦¾îÀÔ´Ï´Ù.
... autoActivationCharacters = new char[] { '#', '(' }; keyStroke = KeyStroke.getInstance("Ctrl+Space"); // assume that myTextControl has already been created in some way ContentProposalAdapter adapter = new ContentProposalAdapter( myTextControl, new TextContentAdapter(), new SimpleContentProposalProvider(new String [] {"ProposalOne", "ProposalTwo", "ProposalThree"}), keyStroke, autoActivationCharacters);
»ç¿ëÀÚ°¡ ÆË¾÷¿¡¼ Á¦¾ÈÀ» ¼±ÅÃÇÒ ¶§ Á¦¾î ÄÁÅÙÃ÷¸¦ °¡Á®¿À°Å³ª ¼³Á¤ÇÏ·Á¸é ¾î´ðÅÍ¿¡ IControlContentAdapter ÀνºÅϽº¸¦ Á¦°øÇØ¾ß ÇÕ´Ï´Ù. ÀÌ ÀνºÅϽº´Â ƯÁ¤ Á¦¾î À¯ÇüÀÇ ÄÁÅÙÃ÷¸¦ °Ë»öÇÏ°í ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÅØ½ºÆ® ÇʵåÀÇ °æ¿ì, TextContentAdapter Ŭ·¡½º¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ´Ù¸¥ Á¦¾î À¯ÇüÀ¸·Î ÄÁÅÙÃ÷ Á¦¾È ¾î´ðÅ͸¦ »ç¿ëÇϵµ·Ï IControlContentAdapter¸¦ ÀÚÀ¯·Ó°Ô ±¸ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÄÁÅÙÃ÷ Á¦¾È ¾î´ðÅ͸¦ ÀÛ¼ºÇÏ´Â °æ¿ì, Á¦¾ÈÀ» °Ë»öÇÒ ¼ö ÀÖ´Â IContentProposalProvider ÀνºÅϽºµµ ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ Á¦°øÀÚ´Â ÄÁÅÙÃ÷ Á¦¾È ¹è¿À» ¸®ÅÏÇÕ´Ï´Ù. ÇØ´ç Á¦¾ÈÀº IContentProposal ÀνºÅϽº·Î ÁöÁ¤µË´Ï´Ù. ÀÌ ÀνºÅϽº¿¡¼ Á¦¾È ·¹ÀÌºí ¹× ÄÁÅÙÃ÷´Â ¹°·Ð Á¦¾È¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ¼³¸í°ú °°Àº ±âŸ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
À§ÀÇ ¿¹Á¦¿¡¼ SimpleContentProposalProvider°¡ »ç¿ëµË´Ï´Ù. ÀÌ Á¦°øÀÚ´Â ¹®ÀÚ¿ÀÇ ´Ü¼ø ¹è¿À» ÄÁÅÙÃ÷ Á¦¾ÈÀ¸·Î ÁöÁ¤ÇÏ¿© Á¤ÀÇÇÕ´Ï´Ù. ´Ü¼ø Á¦°øÀÚ´Â °¢ ¹®ÀÚ¿À» ¿¹»ó IContentProposal·Î ¸ÊÇÎÇÏ´Â µ¥ ÇÊ¿äÇÑ ÇÁ·ÎÅäÄÝÀ» ±¸ÇöÇÕ´Ï´Ù. IContentProposalProviderÀÇ À¯¿¬¼ºÀ¸·Î ÀÎÇØ °í±Þ ±â´É(¿¹: Á¦¾î ÄÁÅÙÃ÷¸¦ ±â¹ÝÀ¸·Î Á¦¾È ÇÊÅ͸µ, »ðÀ﵃ ½ÇÁ¦ ÄÁÅÙÃ÷ ´ë½Å ÆË¾÷¿¡ ¼³¸í ·¹À̺í Á¦°ø ¹× Á¦¾È »ðÀÔ ÈÄ ¿¹»ó Ä¿¼ À§Ä¡ ÁöÁ¤)À» °®´Â Á¦¾È Á¦°øÀÚ¸¦ ±¸ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù. °í±Þ »ç¿ë¹ýÀº Çʵå Áö¿ø ¿¹Á¦¸¦ ÂüÁ¶Çϰí IContentProposalProviderÀÇ ±¸ÇöÀÚ¸¦ °Ë»öÇϽʽÿÀ.
ÄÁÅÙÃ÷ Á¦¾È ¾î´ðÅÍ¿¡ ´ëÇÑ ±âº» Á¤ÀÇ¿¡ Á¦¾ÈÀÌ Á¦°øµÇ´Â Á¦¾î, Á¦¾î ÄÁÅÙÃ÷¸¦ º¯°æÇÏ´Â µ¥ »ç¿ëµÇ´Â ÄÁÅÙÃ÷ ¾î´ðÅÍ ¹× ÆË¾÷¿¡ Á¦¾È ¸ñ·ÏÀ» Á¤ÀÇÇÏ´Â Á¦¾È Á¦°øÀÚ°¡ Æ÷ÇÔµÊÀ» ¼³¸íÇß½À´Ï´Ù. ÀÌ·¯ÇÑ ±âº»»çÇ× À̿ܿ¡ ´ÙÀ½°ú °°Àº ´Ù¾çÇÑ ¹æ¹ýÀ¸·Î ÄÁÅÙÃ÷ Á¦¾È ¾î´ðÅ͸¦ ±¸¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
JFace ·¹º§ÀÇ Çʵå Áö¿øÀº Çʵ带 µ¥ÄÚ·¹À̼ÇÇϰí Çʵå ÄÁÅÙÃ÷¿¡ ´ëÇÑ Á¦¾ÈÀ» Ç¥½ÃÇÏ´Â ¹æ¹ýÀ» °áÁ¤ÇÏ´Â µ¥ ÀÖ¾î ÀÀ¿ëÇÁ·Î±×·¥¿¡ ¸¹Àº À¯¿¬¼ºÀ» Á¦°øÇÕ´Ï´Ù. Çʵå Áö¿øÀº µ¶¸³Çü JFace ÀÀ¿ëÇÁ·Î±×·¥ ¶Ç´Â µ¶¸³Çü ¸®Ä¡ Ŭ¶óÀÌ¾ðÆ® ÀÀ¿ëÇÁ·Î±×·¥¿¡ ÀûÇÕÇÕ´Ï´Ù. ±×·¯³ª ÀÀ¿ëÇÁ·Î±×·¥ÀÌ Eclipse SDK ¶Ç´Â ½áµåÆÄƼ Ç÷¯±×Àΰú °°Àº ´Ù¸¥ Ç÷¯±×Àΰú ÅëÇÕÇÏ·Á´Â °æ¿ì, ÀϹÝÀûÀ¸·Î ´Ù¸¥ Ç÷¯±×Àΰú ÀÏÄ¡ÇÏ´Â ¹æ½ÄÀ¸·Î Çʵå Áö¿øÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Workbench´Â ƯÁ¤ »óÈ£ÀÛ¿ë À¯Çü¿¡ ´ëÇÑ Çʵå Áö¿øÀ» »ç¿ëÇÏ´Â À¯Æ¿¸®Æ¼ Ŭ·¡½º¸¦ Á¤ÀÇÇÕ´Ï´Ù.
¿¹¸¦ µé¾î, ContentAssistField Ŭ·¡½º´Â »ç¿ëÀÚ¿¡°Ô ÄÁÅÙÃ÷ Áö¿øÀ» »ç¿ëÇÒ ¼ö ÀÖÀ½À» ¾Ë·ÁÁÖ´Â °£´ÜÇÑ Àü±¸ ¸ð¾ç µ¥ÄÚ·¹À̼ÇÀÌ Æ÷ÇÔµÈ Çʵ带 ÀÛ¼ºÇÕ´Ï´Ù. ÀÌ Å¬·¡½º´Â ¶ÇÇÑ ÄÁÅÙÃ÷ Áö¿ø ½ºÅ¸ÀÏ »ðÀÔÀ» À§ÇÑ ÄÁÅÙÃ÷ Á¦¾È ¾î´ðÅ͸¦ ±¸¼ºÇÕ´Ï´Ù. ¸¶Áö¸·À¸·Î, ÀÌ Å¬·¡½º´Â Workbench ·¹º§ ÄÁÅÙÃ÷ Áö¿ø ¸í·É¿¡ ´ëÇÑ Çڵ鷯¸¦ Á¦°øÇÔÀ¸·Î½á »ç¿ëÀÚ°¡ Workbench Ű ¹ÙÀεù¿¡ ÁöÁ¤µÈ Ű ´©¸§ ¶Ç´Â Æ®¸®°Å ½ÃÄö½º¸¦ È£ÃâÇÒ ¶§ ÄÁÅÙÃ÷ Á¦¾È ÆË¾÷ÀÌ ¿¸³´Ï´Ù. ÀÌ·¯ÇÑ À¯Æ¿¸®Æ¼ Ŭ·¡½º¿¡ ´ëÇÑ ¼¼ºÎ»çÇ×Àº org.eclipse.ui.fieldassist ÆÐŰÁö¸¦ ÂüÁ¶ÇϽʽÿÀ.
ÀÌ ÆÐŰÁö´Â Workbench¿¡¼ Çʵå Áö¿ø »ç¿ëÀ» È®´ëÇÏ°í Æ¯Á¤ ÇÊµå »óÅ¿¡ ´ëÇÑ µ¥ÄÚ·¹ÀÌ¼Ç »ç¿ëÀ» Ç¥ÁØÈÇÔÀ¸·Î½á Àü°³µË´Ï´Ù.