ȯ°æ ¼³Á¤ ÆäÀÌÁö ±¸Çö

ÆäÀÌÁö Á¤ÀÇ

ȯ°æ ¼³Á¤ ÆäÀÌÁöÀÇ ±¸ÇöÀº ¸¶¹ý»ç ÆäÀÌÁö ÀÛ¼º°ú À¯»çÇÕ´Ï´Ù. ȯ°æ ¼³Á¤ ÆäÀÌÁö´Â ÆäÀÌÁö ÄÁÅÙÃ÷¸¦ Ç¥½ÃÇÏ´Â 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);
}

ÀÌ ¸Þ¼Òµå¿¡¼­ ´ëºÎºÐÀÇ ÄÚµå´Â Á¦¾î¸¦ ÀÛ¼ºÇÏ¿© ·¹À̾ƿôÇÏ´Â ¿ªÇÒÀ» ÇϹǷΠ¿©±â¼­´Â ÀÌ¿¡ ´ëÇØ¼­´Â ¼³¸íÇÏÁö ¾Ê½À´Ï´Ù.  ÇØ´ç ÆäÀÌÁö´Â ´ÙÀ½°ú °°½À´Ï´Ù.

Readme µµ±¸ ȯ°æ ¼³Á¤ ÆäÀÌÁö

ȯ°æ ¼³Á¤ ÆäÀÌÁöÀÇ ´Ù¸¥ ÁÖ¿ä ¿ªÇÒÀº 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));
      ...
   }
Copyright IBM Corporation and others 2000, 2003.