¸¶¹ý»ç°¡ º¹ÀâÇÑ Å¸½ºÅ©¸¦ ±¸ÇöÇÏ´Â °æ¿ì, µÎ ÆäÀÌÁö ÀÌ»óÀ» »ç¿ëÇÏ¿© »ç¿ëÀڷκÎÅÍ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
ÀϹÝÀûÀ¸·Î ±¸Çö ÆÐÅÏÀº ´ÜÀÏ ÆäÀÌÁö ¸¶¹ý»çÀÇ °æ¿ì¿Í µ¿ÀÏÇÕ´Ï´Ù.
¸¶¹ý»ç¸¦ ¼³°èÇÒ ¶§ ¸ðµç Çʼö Á¤º¸´Â °¡´ÉÇÑ Ã¹ ¹øÂ° ÆäÀÌÁö¿¡ ¹èÄ¡ÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. ÀÌ·¸°Ô Çϸé Ÿ½ºÅ©¸¦ ¿Ï·áÇϱâ À§ÇØ Àüü ÆäÀÌÁö¸¦ ¼øÈ¸ÇÏÁö ¾Ê¾Æµµ µË´Ï´Ù. ¼±ÅÃÀûÀÎ Á¤º¸´Â ´ÙÀ½ ÆäÀÌÁö¿¡ Æ÷ÇÔ½Ãų ¼ö ÀÖ½À´Ï´Ù.
ÆäÀÌÁö¸¦ ¿Ï·áÇϱâ Àü¿¡ »ç¿ëÀڷκÎÅÍ ÀÔ·ÂÀÌ ÇÊ¿äÇÑ °æ¿ì, setPageComplete(false)¸¦ »ç¿ëÇÏ¿© ÆäÀÌÁö°¡ ¿Ï·áµÇÁö ¾Ê¾ÒÀ½À» Ç¥½ÃÇϽʽÿÀ. ÆäÀÌÁö°¡ Á¦¾î·ÎºÎÅÍ À̺¥Æ®¸¦ ¼ö½ÅÇÏ¸é ÆäÀÌÁö´Â ±× ¿Ï·á ¿©ºÎ¸¦ ´Ù½Ã È®ÀÎÇÕ´Ï´Ù. Çʼö ÀÔ·ÂÀÌ Á¦°øµÇ¸é setPageComplete(true)°¡ ¿Ï·á¸¦ Ç¥½ÃÇÕ´Ï´Ù.
Wizard Ŭ·¡½º´Â ÆäÀÌÁö ¿Ï·á »óÅ¿¡ µû¶ó ¿Ï·á ´ÜÃ߸¦ »ç¿ë °¡´ÉÇÏ°Ô Çϰųª »ç¿ë ºÒ°¡´ÉÇÏ°Ô ÇÏ´Â µ¥ ÇÊ¿äÇÑ ³í¸®¸¦ ó¸®ÇÕ´Ï´Ù. ¿Ï·á ´ÜÃß´Â °¢ ÆäÀÌÁöÀÇ ¿Ï·á »óŰ¡ 'true'·Î ¼³Á¤µÈ °æ¿ì¿¡¸¸ ¸¶¹ý»ç¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
WizardNewFileCreationPage ¹× CreateReadme1 Ŭ·¡½º´Â ÆäÀÌÁö À¯È¿¼º °ËÁõÀ» ±¸ÇöÇϱâ À§ÇÑ °øÅë ÆÐÅÏÀ» Ç¥½ÃÇÕ´Ï´Ù.
WizardNewFileCreationPage´Â ÆäÀÌÁöÀÇ À¯È¿¼ºÀ» °ËÁõÇÏ´Â ¸ðµç SWT À̺¥Æ®¿¡ ´ëÇÑ °øÅë À̺¥Æ® Çڵ鷯¸¦ Á¤ÀÇÇÕ´Ï´Ù. À̰ÍÀº ÆäÀÌÁö°¡ ¸®½º³Ê¸¦ Ãß°¡ÇÑ À§ÁöÆ®(widget)·ÎºÎÅÍ À̺¥Æ®°¡ ¼ö½ÅµÉ ¶§¸¶´Ù ÆäÀÌÁöÀÇ À¯È¿¼ºÀÌ °ËÁõµÊÀ» ÀǹÌÇÕ´Ï´Ù.
public void handleEvent(Event event) { setPageComplete(validatePage()); }
ReadmeCreationPage¿¡¼ Á¦¾î¸¦ ÀÛ¼ºÇϸé validatePage¸¦ »ç¿ëÇÏ¿© ÆäÀÌÁö »óŸ¦ ¼³Á¤ÇÕ´Ï´Ù.
public void createControl(Composite parent) { super.createControl(parent); // create controls, add listeners, and layout the page ... // sample section generation checkboxes sectionCheckbox = new Button(group,SWT.CHECK); sectionCheckbox.setText(MessageUtil.getString("Generate_sample_section_titles")); sectionCheckbox.setSelection(true); sectionCheckbox.addListener(SWT.Selection,this); subsectionCheckbox = new Button(group,SWT.CHECK); subsectionCheckbox.setText(MessageUtil.getString("Generate_sample_subsection_titles")); subsectionCheckbox.setSelection(true); subsectionCheckbox.addListener(SWT.Selection,this); ... setPageComplete(validatePage()); }
ÀÌ ÆÐÅÏÀ» »ç¿ëÇÏ¸é ¸¶¹ý»ç ÆäÀÌÁö°¡ ÆäÀÌÁö À¯È¿¼º °ËÁõ ÄÚµå ¸ðµÎ¸¦ validatePage() ¸Þ¼Òµå Çϳª·Î ÀÔ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â ÆäÀÌÁö Ãʱ⠻óŸ¦ °áÁ¤ÇÏ°í ±× ÆäÀÌÁöÀÇ À§ÁöÆ®(widget)¿¡¼ À̺¥Æ®¸¦ ¼ö½ÅÇÏ¸é »óŸ¦ ´Ù½Ã °è»êÇÕ´Ï´Ù.
¼½¼Ç ¼±Åöõ¿¡ ¸®½º³Ê¸¦ Ãß°¡ÇßÀ¸¹Ç·Î ¼±ÅöõÀÌ ¼±ÅûçÇ× À̺¥Æ®¸¦ ¼ö½ÅÇÒ ¶§¸¶´Ù ¿Ã¹Ù¸¥ ÆäÀÌÁö »óŸ¦ ´Ù½Ã °è»êÇÏ°Ô µË´Ï´Ù. ÆäÀÌÁöÀÇ handleEvent ¸Þ¼Òµå´Â ÀÌ ÆäÀÌÁö¿¡ ´ëÇÑ Æ¯Á¤ À̺¥Æ® ó¸® ¿Ü¿¡ »ó¼ÓµÈ ÆäÀÌÁö À¯È¿¼º °ËÁõ ÀÛµ¿ÀÌ ¹ß»ýÇϵµ·Ï super¸¦ È£ÃâÇØ¾ß ÇÕ´Ï´Ù.
public void handleEvent(Event e) { Widget source = e.widget; if (source == sectionCheckbox) { if (!sectionCheckbox.getSelection()) subsectionCheckbox.setSelection(false); subsectionCheckbox.setEnabled(sectionCheckbox.getSelection()); } super.handleEvent(e); }