ȯ°æ ¼³Á¤ ÆäÀÌÁöÀÇ ±¸ÇöÀº ¸¶¹ý»ç ÆäÀÌÁö ÀÛ¼º°ú À¯»çÇÕ´Ï´Ù. ȯ°æ ¼³Á¤ ÆäÀÌÁö´Â ÆäÀÌÁö ÄÁÅÙÃ÷¸¦ Ç¥½ÃÇÏ´Â SWT Á¦¾î¸¦ ÀÛ¼ºÇÏ°í °ü½É ÀÖ´Â À̺¥Æ®¿¡ ¸®½º³Ê¸¦ Ãß°¡ÇÏ´Â createContents ¸Þ¼Òµå¸¦ Á¦°øÇÕ´Ï´Ù. ¶ÇÇÑ È¯°æ ¼³Á¤ ÆäÀÌÁö´Â ÆäÀÌÁöÀÇ ¸ðµç Á¦¾î¸¦ »óÀ§·Î ÇÒ º¹ÇÕÀ» ÀÛ¼ºÇÏ¿© ¸®ÅÏÇÏ´Â ¿ªÇÒÀ» ÇÕ´Ï´Ù. ´ÙÀ½ ½º´ÏÆêÀº °Á¶¸¦ Ç¥½ÃÇÕ´Ï´Ù.
protected Control createContents(Composite parent) { ... //composite_textField << parent Composite composite_textField = createComposite(parent, 2); Label label_textField = createLabel(composite_textField, MessageUtil.getString("Text_Field")); textField = createTextField(composite_textField); pushButton_textField = createPushButton(composite_textField, MessageUtil.getString("Change")); //composite_tab << parent Composite composite_tab = createComposite(parent, 2); Label label1 = createLabel(composite_tab, MessageUtil.getString("Radio_Button_Options")); // tabForward(composite_tab); //radio button composite << tab composite Composite composite_radioButton = createComposite(composite_tab, 1); radioButton1 = createRadioButton(composite_radioButton, MessageUtil.getString("Radio_button_1")); radioButton2 = createRadioButton(composite_radioButton, MessageUtil.getString("Radio_button_2")); radioButton3 = createRadioButton(composite_radioButton, MessageUtil.getString("Radio_button_3")); //composite_tab2 << parent Composite composite_tab2 = createComposite(parent, 2); Label label2 = createLabel(composite_tab2, MessageUtil.getString("Check_Box_Options")); //$NON-NLS-1$ // tabForward(composite_tab2); //composite_checkBox << composite_tab2 Composite composite_checkBox = createComposite(composite_tab2, 1); checkBox1 = createCheckBox(composite_checkBox, MessageUtil.getString("Check_box_1")); checkBox2 = createCheckBox(composite_checkBox, MessageUtil.getString("Check_box_2")); checkBox3 = createCheckBox(composite_checkBox, MessageUtil.getString("Check_box_3")); initializeValues(); return new Composite(parent, SWT.NULL); }
ÀÌ ¸Þ¼Òµå¿¡¼ ´ëºÎºÐÀÇ ÄÚµå´Â Á¦¾î¸¦ ÀÛ¼ºÇÏ¿© ·¹À̾ƿôÇÏ´Â ¿ªÇÒÀ» ÇϹǷΠ¿©±â¼´Â ÀÌ¿¡ ´ëÇØ¼´Â ¼³¸íÇÏÁö ¾Ê½À´Ï´Ù. ÇØ´ç ÆäÀÌÁö´Â ´ÙÀ½°ú °°½À´Ï´Ù.
ȯ°æ ¼³Á¤ ÆäÀÌÁöÀÇ ´Ù¸¥ ÁÖ¿ä ¿ªÇÒÀº performOk ¸Þ½ÃÁö¿¡ ¹ÝÀÀÇÏ´Â °ÍÀÔ´Ï´Ù. ÀϹÝÀûÀ¸·Î ÀÌ ¸Þ¼Òµå´Â »ç¿ëÀÚ È¯°æ ¼³Á¤À» °»½ÅÇÏ¿© ÀúÀåÇϸç, ÇÊ¿äÇÏ¸é ´Ù¸¥ Ç÷¯±×ÀÎ ¿ÀºêÁ§Æ®¸¦ °»½ÅÇÏ¿© ȯ°æ ¼³Á¤ º¯°æ»çÇ×À» ¹Ý¿µÇÕ´Ï´Ù. ±âº»°ª º¹¿ø ´ÜÃ߸¦ ´©¸¦ ¶§ ȯ°æ ¼³Á¤À» ÇØ´ç ±âº»°ªÀ¸·Î º¹¿øÇÏ´Â °æ¿ì performDefaults ¸Þ¼Òµå°¡ »ç¿ëµË´Ï´Ù.
Àû¿ë ¼±Åà ½Ã Ãß°¡Àû 󸮰¡ ÀÖÀ¸¸é performApply¸¦ ´ëüÇÒ ¼ö ÀÖ½À´Ï´Ù. ±âº» ±¸ÇöÀº performOk¸¦ È£ÃâÇÕ´Ï´Ù.
ȯ°æ ¼³Á¤ ÆäÀÌÁö´Â doGetPreferenceStore() ¸Þ¼Òµå¸¦ ´ëüÇÏ¿© °ªÀ» ÀúÀåÇϱâ À§ÇØ È¯°æ ¼³Á¤ ÀúÀåÀ» ¸®ÅÏÇØ¾ß ÇÕ´Ï´Ù.
ȯ°æ ¼³Á¤ ÀúÀåÀº º»ÁúÀûÀ¸·Î ´ëÈ »óÀÚ ¼³Á¤°ú À¯»çÇÕ´Ï´Ù. ´ëÈ »óÀÚ ¼³Á¤¿¡¼ AbstractUIPlugin Ŭ·¡½º°¡ Ç÷¯±×ÀÎ Áö¼Ó½Ã°£ µ¿¾È ´ëÈ »óÀÚ ¼³Á¤À» À¯Áöº¸¼öÇÏ´Â ¹æ¹ýÀ» »ìÆì º¸¾Ò½À´Ï´Ù. »ç¿ëÀÚ È¯°æ ¼³Á¤¿¡µµ µ¿ÀÏÇÑ °èȹÀÌ »ç¿ëµË´Ï´Ù. Ç÷¯±×ÀÎÀº ȯ°æ ¼³Á¤ ÀúÀå¿¡ Ç׸ñÀ» Ãß°¡ÇÏ°í »ç¿ëÀÚ°¡ ȯ°æ ¼³Á¤ ÆäÀÌÁö¿¡¼ ¼³Á¤À» º¯°æÇÒ ¶§ °ªÀ» °»½ÅÇÒ ¼ö ÀÖ½À´Ï´Ù. Ç÷§ÆûÀº Ç÷¯±×ÀÎÀÇ ÀÛ¾÷ µð·ºÅ丮¿¡ ÀÌ °ªÀ» ÀúÀåÇϰí ÀúÀåµÈ ¼³Á¤¿¡¼ ȯ°æ ¼³Á¤ ÀúÀåÀ» ÃʱâÈÇÕ´Ï´Ù.
ReadmePreferencePageÀÇ ´ÙÀ½ ÄÚµå´Â ReadmePlugin¿¡ ´ëÇÑ È¯°æ ¼³Á¤ ÀúÀåÀ» ¾ò½À´Ï´Ù.
protected IPreferenceStore doGetPreferenceStore() { return ReadmePlugin.getDefault().getPreferenceStore(); }
ReadmePluginÀÌ AbstractUIPlugin Ŭ·¡½º¸¦ È®ÀåÇϱ⠶§¹®¿¡ ȯ°æ ¼³Á¤ ÀúÀåÀ» ÀÚµ¿À¸·Î »ó¼ÓÇÕ´Ï´Ù. ÀÌ È¯°æ ¼³Á¤ ÀúÀåÀº Ç÷¯±×ÀÎÀÇ µð·ºÅ丮¿¡ ÀúÀåµÈ ȯ°æ ¼³Á¤ ÆÄÀÏ¿¡¼ Ãʱâȵ˴ϴÙ. ReadmePluginÀÌ ¼öÇàÇØ¾ß ÇÒ À¯ÀÏÇÑ ÀÛ¾÷Àº ȯ°æ ¼³Á¤ Á¦¾î¸¦ ±âº»°ªÀ¸·Î ÃʱâÈÇÏ´Â ¸Þ¼Òµå¸¦ ±¸ÇöÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ °ªÀº ȯ°æ ¼³Á¤ÀÌ Ã³À½ Ç¥½ÃµÉ ¶§ ¶Ç´Â »ç¿ëÀÚ°¡ ȯ°æ ¼³Á¤ ÆäÀÌÁö¿¡¼ ±âº»°ª ´ÜÃ߸¦ ´©¸£¸é »ç¿ëµË´Ï´Ù.
protected void initializeDefaultPreferences(IPreferenceStore store) { // These settings will show up when Preference dialog // opens up for the first time. store.setDefault(IReadmeConstants.PRE_CHECK1, true); store.setDefault(IReadmeConstants.PRE_CHECK2, true); store.setDefault(IReadmeConstants.PRE_CHECK3, false); store.setDefault(IReadmeConstants.PRE_RADIO_CHOICE, 2); store.setDefault(IReadmeConstants.PRE_TEXT, MessageUtil.getString("Default_text")); //$NON-NLS-1$ }
Âü°í: Ç÷¯±×Àο¡ ÀúÀåµÈ ȯ°æ ¼³Á¤ÀÌ ¾ø´Â °æ¿ì, Ç÷¯±×ÀÎÀº ºó ȯ°æ ¼³Á¤ ÀúÀåÀ» °¡Á®¿É´Ï´Ù.
Ç÷¯±×ÀÎÀÇ È¯°æ ¼³Á¤À» ȯ°æ ¼³Á¤ ÆäÀÌÁö¿Í ¿¬°ü½ÃÄ×À¸¸é ȯ°æ ¼³Á¤À» °Ë»öÇϰí ÀúÀåÇϱâ À§ÇÑ ³í¸®¸¦ ±¸ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù.
ȯ°æ ¼³Á¤ ÆäÀÌÁö´Â ȯ°æ ¼³Á¤ ÀúÀåÀÇ È¯°æ ¼³Á¤À» »ç¿ëÇÏ¿© Á¦¾î °ªÀ» ÃʱâÈÇÏ´Â ¿ªÇÒÀ» ÇÕ´Ï´Ù. ÀÌ ÇÁ·Î¼¼½º´Â ´ëÈ »óÀÚ ¼³Á¤¿¡¼ ´ëÈ »óÀÚ Á¦¾î°ªÀ» ÃʱâÈÇÏ´Â °Í°ú À¯»çÇÕ´Ï´Ù. ReadmePreferencePage´Â ¸ðµç Á¦¾î¸¦ ÇϳªÀÇ ¸Þ¼Òµå(initializeValues)·Î ÃʱâÈÇϴµ¥, ÀÌ ¸Þ¼Òµå´Â createContents ¸Þ¼Òµå¿¡¼ È£ÃâµË´Ï´Ù.
private void initializeValues() { IPreferenceStore store = getPreferenceStore(); checkBox1.setSelection(store.getBoolean(IReadmeConstants.PRE_CHECK1)); checkBox2.setSelection(store.getBoolean(IReadmeConstants.PRE_CHECK2)); checkBox3.setSelection(store.getBoolean(IReadmeConstants.PRE_CHECK3)); ... }
È®ÀÎ(¶Ç´Â Àû¿ë) ´ÜÃ߸¦ ´©¸£¸é ȯ°æ ¼³Á¤ ÆäÀÌÁöÀÇ ÇöÀç Á¦¾î°¡ ´Ù½Ã ȯ°æ ¼³Á¤ ÀúÀå¿¡ ÀúÀåµË´Ï´Ù. ReadmePreferencePage´Â ÀÌ ³í¸®¸¦ µ¶¸³ ¸Þ¼ÒµåÀÎ storeValues¿¡¼ ±¸ÇöÇÕ´Ï´Ù.
private void storeValues() { IPreferenceStore store = getPreferenceStore(); store.setValue(IReadmeConstants.PRE_CHECK1, checkBox1.getSelection()); store.setValue(IReadmeConstants.PRE_CHECK2, checkBox2.getSelection()); store.setValue(IReadmeConstants.PRE_CHECK3, checkBox3.getSelection()); ... }
»ç¿ëÀÚ°¡ ±âº»°ª ´ÜÃ߸¦ ´©¸£¸é Ç÷§ÆûÀÌ ¸ðµç ȯ°æ ¼³Á¤ ÀúÀå °ªÀ» Ç÷¯±×ÀΠŬ·¡½º¿¡ ÁöÁ¤µÈ ±âº»°ªÀ¸·Î º¹¿øÇÕ´Ï´Ù. ±×·¯³ª ȯ°æ ¼³Á¤ ÆäÀÌÁö´Â ȯ°æ ¼³Á¤ ÆäÀÌÁöÀÇ Á¦¾î¿¡ ÀÌ ±âº»°ªÀ» ¹Ý¿µÇÏ´Â ¿ªÇÒÀ» ÇÕ´Ï´Ù. ReadmePreferencePage´Â À̰ÍÀ» initializeDefaults·Î ±¸ÇöÇÕ´Ï´Ù.
private void initializeDefaults() { IPreferenceStore store = getPreferenceStore(); checkBox1.setSelection(store.getDefaultBoolean(IReadmeConstants.PRE_CHECK1)); checkBox2.setSelection(store.getDefaultBoolean(IReadmeConstants.PRE_CHECK2)); checkBox3.setSelection(store.getDefaultBoolean(IReadmeConstants.PRE_CHECK3)); ... }