ȯ°æ ¼³Á¤ ÆäÀÌÁö ±¸ÇöÀº ÁÖ·Î SWT ÄÚµåÀÔ´Ï´Ù. SWT ÄÚµå´Â ȯ°æ ¼³Á¤ ÆäÀÌÁö Á¦¾î¸¦ ÀÛ¼ºÇϰí, Á¦¾î °ªÀ» ¼³Á¤ÇÏ°í °Ë»öÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. org.eclipse.jface.preference ÆÐŰÁö´Â À§ÁöÆ®(widget)¸¦ ÀÛ¼ºÇÏ°í °ª ¼³Á¤À» ±¸ÇöÇÏ°í °¡Àå ÀϹÝÀûÀΠȯ°æ ¼³Á¤ À¯Çü Äڵ带 °Ë»öÇÏ´Â ÇÊµå ÆíÁý±â¶ó´Â ÇïÆÛ Ŭ·¡½º¸¦ Á¦°øÇÕ´Ï´Ù. Ç÷§ÆûÀº ºÎ¿ï, »ö»ó, ¹®ÀÚ¿, Á¤¼ö, ±Û²Ã, ÆÄÀÏ À̸§À» Æ÷ÇÔÇÏ¿© ¿©·¯ °¡Áö °ªÀÇ À¯ÇüÀ» Ç¥½ÃÇÏ°í °»½ÅÇϱâ À§ÇÑ ÇÊµå ÆíÁý±â¸¦ Á¦°øÇÕ´Ï´Ù.
FieldEditorPreferencePage´Â ÀÌ ÇÊµå ÆíÁý±â¸¦ »ç¿ëÇÏ¿© ÆäÀÌÁö¿¡ ȯ°æ ¼³Á¤ °ªÀ» Ç¥½ÃÇϰí ÀúÀåÇÏ´Â ÆäÀÌÁö¸¦ ±¸ÇöÇÕ´Ï´Ù. FieldEditorPreferencePage ¼ºêŬ·¡½º´Â ÄÁÅÙÃ÷¸¦ ä¿ì±â À§ÇØ SWT Á¦¾î¸¦ ÀÛ¼ºÇÏ´Â ´ë½Å ÇÊµå ÆíÁý±â¸¦ ÀÛ¼ºÇÏ¿© ÄÁÅÙÃ÷¸¦ Ç¥½ÃÇÕ´Ï´Ù. ÆäÀÌÁöÀÇ ¸ðµç Çʵå´Â ÇÊµå ÆíÁý±â·Î½á ±¸ÇöµÇ¾î¾ß ÇÕ´Ï´Ù. ÆäÀÌÁöÀÇ ¸ðµç Çʵå´Â ÇÊµå ÆíÁý±â·Î½á ±¸ÇöµÇ¾î¾ß ÇÕ´Ï´Ù. ´ÙÀ½Àº µð¹ö±× UI ȯ°æ ¼³Á¤ ÆäÀÌÁöÀÇ ½º´ÏÆêÀÔ´Ï´Ù.
protected void createFieldEditors() { addField(new BooleanFieldEditor(IDebugUIConstants.PREF_BUILD_BEFORE_LAUNCH, DebugPreferencesMessages.getString("DebugPreferencePage.auto_build_before_launch"), SWT.NONE, getFieldEditorParent())); ... String[][] perspectiveNamesAndIds = getPerspectiveNamesAndIds(); addField(new ComboFieldEditor(IDebugUIConstants.PREF_SHOW_DEBUG_PERSPECTIVE_DEFAULT, DebugPreferencesMessages.getString("DebugPreferencePage.Default_perspective_for_Debug_2"), //$NON-NLS-1$ perspectiveNamesAndIds, getFieldEditorParent())); ... }
°¢ ÇÊµå ÆíÁý±â¿¡´Â ´ëÀÀÇϴ ȯ°æ ¼³Á¤ ŰÀÇ À̸§°ú ÇÊµå ÆíÁý±â°¡ ÀÛ¼ºÇÒ SWT Á¦¾î¿¡ ´ëÇÑ ÅØ½ºÆ® ·¹À̺íÀÌ ÁöÁ¤µË´Ï´Ù. ÀÛ¼ºµÇ´Â Á¦¾î À¯ÇüÀº ÇÊµå ÆíÁý±â À¯Çü¿¡ µû¶ó ´Ù¸¨´Ï´Ù. ¿¹¸¦ µé¾î, ºÎ¿ï ÇÊµå ÆíÁý±â´Â ¼±ÅöõÀ» ÀÛ¼ºÇÕ´Ï´Ù.
ȯ°æ ¼³Á¤ ÆäÀÌÁö°¡ ȯ°æ ¼³Á¤ ÀúÀå( doGetPreferenceStore ¸Þ¼Òµå¿¡ ÁöÁ¤)°ú ¿¬°üµÇ±â ¶§¹®¿¡ ÇöÀç °ªÀ» ÀúÀåÇϰí ȯ°æ ¼³Á¤ ÀúÀåÀ¸·ÎºÎÅÍ Á¦¾î °ªÀ» ÃʱâÈÇϸç Á¦¾î¸¦ ±âº»°ªÀ¸·Î º¹¿øÇϱâ À§ÇÑ Äڵ尡 ¸ðµÎ FieldEditorPreferencePage¿¡¼ ±¸ÇöµÉ ¼ö ÀÖ½À´Ï´Ù.
FieldEditorPreferencePage´Â ¿ÀÌ ÇϳªÀÎ °ÝÀÚ ·¹À̾ƿôÀ» ÇÊµå ÆíÁý±â À§ÁöÆ®(widget)¿¡ ´ëÇÑ ±âº» ·¹À̾ƿôÀ¸·Î »ç¿ëÇÕ´Ï´Ù. Ư¼ö ·¹À̾ƿô ¿ä±¸»çÇ×ÀÇ °æ¿ì, createContents ¸Þ¼Òµå¸¦ ´ëüÇÒ ¼ö ÀÖ½À´Ï´Ù.