åœç€Ÿã§ã¯ã管çè ãExcelã䜿çšããŠåŸæ¥å¡ã®éçšè² è·ãèšç»ããŸããã MS Projectã®ãããªè€éãªãã®ã䜿çšããå¿ èŠã¯ãããŸããã§ããã ãããããã°ããã®éãããŒãã«ã¯èŠä»¶ãæºããã®ããããã¹ãã¬ããã·ãŒãã«åã蟌ãŸããã¹ã¯ãªããã®æ©èœãæ¡åŒµããã®ã¯æ¥œããäœæ¥ã§ã¯ãããŸããã
ãã®ãããã¢ããªã±ãŒã·ã§ã³ãäœæããããã«æ±ããããŸããã ããããæåã¯ãã©ã¯ã¿ãŒãèŠæ±ããæçµçã«ã¯æŠéæ©ãå¿ èŠã§ããããšãããããŸãã ããã§ãåµé æ§ã®éçºã«åãçµãããšã«ããŸããã ãã®èšäºã§ã¯ãæçµçã«äœæãããã®ãéžæããã¢ãŒããã¯ãã£ãããã³ãã®å©ç¹ã説æããŸãã
æåã¯ãããŒã«ã®ã€ã³ã¿ãŒãã§ãŒã¹ã®åºç€ã¯ãåŸæ¥å¡ãšãããžã§ã¯ãã®2ã€ã®ããŒãã«ã«ãªãããã«èšç»ãããŠããŸããã åŸæ¥å¡ããããžã§ã¯ãã«ãã©ãã°ã¢ã³ãããããããŠãåŽåæéãå²ãåœãŠãããšãã§ããŸãã
ã¢ããªã±ãŒã·ã§ã³ã¯ãFlexïŒ+ AIRã©ã³ã¿ã€ã ïŒã§äœæããããšã決å®ãããŸããã ãã¬ãŒã ã¯ãŒã¯ã«ã¯ãå¿ èŠãªãã®ããã¹ãŠå«ãŸããŠããŸãã AdvancedDataGridã³ã³ããŒãã³ãã¯ãåŸæ¥å¡ããã³ãããžã§ã¯ãããŒãã«ã®åºç€ãšããŠæ©èœããŸãã ã¬ã³ãã©ãŒã«ããéåžžã«æè»ã§ããã©ãã°ã¢ã³ãããããã®ãã©ã°ã€ã³ãµããŒãã䟿å©ã§ãã AIRã¯ãã«ããŠã£ã³ããŠã¢ããªã±ãŒã·ã§ã³ããµããŒãããŠããããã¡ã€ã«ãæäœã§ããŸãã
ãŸããåºæ¬çãªèŠä»¶ã®æŠèŠã説æããŸãã
åºæ¬çãªèŠä»¶
1.ã«ã¹ã¿ãã€ãºã®æè»æ§ã衚瀺ãã
éçºã®ããåæãããã€ã³ã¿ãŒãã§ãŒã¹ã®å©äŸ¿æ§ãåäžãããããã®ã¢ã€ãã¢ãé ã«æµ®ãã³å§ããŸããã 顧客ããšã«ãããžã§ã¯ããã°ã«ãŒãåãããããžã§ã¯ãéã®é¢ä¿ããã©ãã°ã¢ã³ãããããããæ©èœãè¿œå ããåŸæ¥å¡ãšãããžã§ã¯ãããã©ã«ãã«ãã©ãã°ããŠãããè€æ°ã®ããã¥ã¡ã³ããç°ãªããŠã£ã³ããŠã§åæã«éããããšããèŠæããããŸããã ãã¬ãŒã³ããŒã·ã§ã³ãå¶åŸ¡ããžãã¯ããå¯èœãªéãåé¢ããæ§æã®æè»æ§ãæäŸããå¿ èŠãããããšãæããã«ãªããŸããã
2.ç°ãªãè«çãããã¯ã®ç¬ç«ããå å«ã®å®¹æããšããããã®éã®ã³ãã³ãéä¿¡ã®ä¿¡é Œæ§
ããããã¿ã³ãæ°ããããŒã¿ã¹ãã¬ãŒãžåœ¢åŒããã®ä»ã®ããŒã¿ãœãŒã¹ïŒãµãŒããŒããšã¯ã¹ããŒããã€ã³ããŒããå±¥æŽããã®ä»ã®å€ãã®è¿œå æ©èœãªã©ïŒã®ãµããŒããå¿ èŠã«ãªããŸãã ãããŠãããèµ·ãã£ãã
3.ã¢ãŒããã¯ãã£ã¯ä¿¡é Œæ§ã確ä¿ããå¿ èŠããããŸã
æ°ãããšã©ãŒãåé¿ããããã«ãæ°ããæ©èœã®è¿œå ã¯ã§ããã ãã·ã³ãã«ã«ããå¿ èŠããããŸãã æ瀺çã«å¿ èŠãªãå Žåã¯ãæ¢ã«å®è£ ãããŠããæ©èœã«åœ±é¿ãäžããŸããã
åä¿¡ããèŠä»¶ã«åŸã£ãŠéçºããã«ã¯ãmateãªã©ã®ã€ãã³ãã«åºã¥ããæ¢è£œã®ãã¬ãŒã ã¯ãŒã¯ã䜿çšã§ããŸããããã¿ãŒã³ãç¥ã£ãŠããå Žåã¯ãã·ã¹ãã ãèªåã§çµã¿ç«ãŠãããšãããèå³æ·±ãã§ãã
1.ã«ã¹ã¿ãã€ãºã®æè»æ§ã衚瀺ãã
MVCã«äŒŒãåè·¯ã䜿çšããŸãã ã¢ãã«ããã¥ãŒãã³ã³ãããŒã©ãŒã«é¡äŒŒãã3ã€ã®ã³ã³ããŒãã³ãïŒ DataBuilder ã Viewããã³EngineããããŸãã
DataBuilder ïŒã¢ãã«ïŒã¯ããŒã¿ãä¿åããããŒã¿ãæäœããããã®åºæ¬çãªããžãã¯ãæäŸããŸãã 圌ã ããããã©ã¡ãŒã¿ãŒã®åæã»ããããããŒã¿é ç®ãäœæããæ¹æ³ãç¥ã£ãŠããŸãã DataBuilderã¯ããã¹ãŠã®ãšã³ãžã³ã§ããŒã¿èŠçŽ ã®ãã¡ã¯ããªãšããŠäœ¿çšãããŸãã ããã«ãããåãã¡ãœããã䜿çšããŠèŠçŽ ãæ£ããäœæãããŸãã
ãã¥ãŒã¯dataBuilderããŒã¿ã«ã¢ã¯ã»ã¹ã§ããŸãã 䟿å®äžããã®ããŒã¿ã¯dataBuilderã®éçå€æ°ã«ä¿åãããã©ãããã§ãã¢ã¯ã»ã¹ã§ããŸãã ãŸãããã¥ãŒã¯ãšã³ãžã³ã®ã³ãã³ãã§æŽæ°ãããå¿ èŠã«å¿ããŠããŒã¿ã衚瀺ããŸãã ããã«ããã¥ãŒã¯ãŠãŒã¶ãŒã®ã¢ã¯ã·ã§ã³ã«å¿ããŠã³ãã³ãããšã³ãžã³ã«éä¿¡ããŸãã
ãšã³ãžã³ ïŒã³ã³ãããŒã©ãŒïŒã¯ããžãã¹ããžãã¯ãåŠçããŸãã
次ã®äœæ¥ã¹ããŒã ãå€æããŸãã
ãããã£ãŠãdataBuilder-engine-viewã«ã¯ãåŸæ¥å¡çšãšãããžã§ã¯ãçšã®2ã€ã®ããªãã«ããããŸãã ãŸããã¢ãŒããã¯ãã£ã«ã¯ããã¥ãŒãdataBuilderããªãã·ã¹ãã ããããŸãã ããã«ã€ããŠã¯ä»¥äžã«æžãããŸãã
2.ããã°ã©ã ã®ã¢ãžã¥ãŒã«æ§é ã§ããã®éšåéã®ä¿¡é Œæ§ã®é«ãéä¿¡
ç°ãªããšã³ãžã³ã®ç¬ç«ããçµã¿èŸŒã¿ã®å®¹æããšãåæã«ããããã®éã®ã³ãã³ãã®è»¢éã®ä¿¡é Œæ§ãéæããå¿ èŠããããŸãã
責任ã®é£éãã¿ãŒã³ãå®è£ ããŸãã ãšã³ãžã³ã¯é£éãããŸãã ãã§ãŒã³ã®æåã®ãšã³ãžãã¢ã¯ããã§ãŒã³ã«æ²¿ã£ãŠç®çå°ã«é²ãã³ãã³ããéä¿¡ããŸãã
æåã«ãåãšã³ãžã³ã«èå¥åpublic static const TYPEïŒStringãè¿œå ããŸãã ãã¹ãŠã®èå¥åã¯ç°ãªã£ãŠããªããã°ãªããŸããã ãããã®äžææ§ã¯ããããäœæããªããã°ãªããªããšã³ãžã³å·¥å Žã§æ€èšŒãããŸãã
ã³ãã³ãã¯ã Eventããç¶æ¿ããCommandEventã¯ã©ã¹ã䜿çšããŠæž¡ãããŸãã ããã«ã¯commandTypeïŒStringãã£ãŒã«ããããããã®ã³ãã³ãã®å®å ãšãªããšã³ãžã³ã®ã¿ã€ããæž¡ãããŸãã ãã®ã€ãã³ãã«ã¯ããšã³ãžã³ãããŸããŸãªã¢ã¯ã·ã§ã³ãå®è¡ã§ããããã«ãããŒã ãæ¹è¯ããããã®äžé£ã®ãã£ãŒã«ãããããŸãã ããšãã°ãèŠçŽ ã®è¿œå ãããããã£ã®äžéšã®å€æŽã ãã¥ãŒã®æŽæ°ããã¡ã€ã«ã®èªã¿åããŸãã¯æžã蟌ã¿ã
ããã§ã¯ããã§ãŒã³ãçµã¿ç«ãŠãŸãããã ç¹å®ã®ãã¹ãŠã®ãšã³ãžã³ã¯ãããã€ãã®å®çŸ©æžã¿ãã£ãŒã«ããšã¡ãœãããæã€AbstractEngineã¯ã©ã¹ãç¶æ¿ããŸãã
-Nextã«ã¯ããã§ãŒã³å ã®æ¬¡ã®èŠçŽ ãžã®ãªã³ã¯ãå«ãŸããŸãã
-activateïŒã€ãã³ãïŒã¡ãœããã¯æœè±¡ã§ãã åãšã³ãžã³ã®ç¹å®ã®åäœãå®è£ ãããŠãããµãã¯ã©ã¹ã§åå®çŸ©ãããŸãã
- ãã³ãã«ïŒã€ãã³ãïŒã¡ãœããã¯ãæå®ããããšã³ãžã³ãçä¿¡ã¿ã€ãã§ã³ãã³ããåŠçããŠãããã©ããã確èªããŸãã ã¯ãã®å Žåã activateïŒïŒãå®è¡ãããããã§ãªãå Žåããã§ãŒã³å ã®æ¬¡ã®ãšã³ãžã³ã®handleïŒïŒã¡ãœãããåŒã³åºãããŸãã
ãããã£ãŠãã³ãã³ããåç·ã«è»¢éããã«ã¯ãã«ãŒãèŠçŽ ã§ãã³ãã«ïŒïŒãåŒã³åºãã ãã§ãã ãã§ãŒã³ãæ©èœããããã«ã ã¢ããªã±ãŒã·ã§ã³ã§ãã«ãŒããšã³ãžã³ã¯CommandEventã«ãµãã¹ã¯ã©ã€ãããŸãã
rootEngine.addEventListenerïŒCommandEvent.ACTIVATEãrootEngine.handleïŒ;
ã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšããããã¹ãŠã®ãããã¯ã¯ãäžã®å³ã«ç€ºãããŠããŸãã
æ¢ã«è¿°ã¹ãããã«ãengine-dataBuilder-viewã«ã¯ãåŸæ¥å¡çšãšãããžã§ã¯ãçšã®2ã€ã®ããªãã«ããããŸãã
ããŒã¿ã®ãªãã·ã¹ãã ããããŸãïŒ CommandPanel ïŒãã¥ãŒïŒãšããã«CommandEngine ã ããã¯ãåãŠã£ã³ããŠã®äžéšã«ããããã«ã§ãã 圌女ã¯ã³ãã³ãã®éä¿¡ã®ã¿ãæ±ããŸãã
ãã¥ãŒã®ãªãã·ã¹ãã ããããŸããåŸæ¥å¡ãšãããžã§ã¯ãã®é¢ä¿ãå®çŸ©ãããªããžã§ã¯ãçšã§ãã ããã¯BindsBuilder-BindsEngineã®ãã¢ã§ãã é¢ä¿ãã¥ãŒã¯EmployeesViewãšProjectsViewã®äž¡æ¹ã«å«ãŸããŠããŸãã
æåŸã«ããã¬ãŒã³ããŒã·ã§ã³ãšããŒã¿ã®ãªãè€æ°ã®ãšã³ãžã³ããããŸãïŒ InputOutputEngine ïŒXMLãã¡ã€ã«ã䜿çšïŒã CSVEngine ïŒããŒãã«ã䜿çšïŒã ShortCutsEngine ïŒãããããŒã䜿çšïŒã
ãã®ã¢ãŒããã¯ãã£ã«ãããæ°ãããããã¯ãç°¡åã«è¿œå ã§ããŸãã ããšãã°ãæåã¯å€éšåœ¢åŒããµããŒãããããšãæå³ããŠããŸããã§ããã ããããããŒã«ã®éçºã®çµãããŸã§ã«ãCSVãšã¯ã¹ããŒã/ã€ã³ããŒãæ©èœãè¿œå ããå¿ èŠãçããŸããã ãããè¡ãã«ã¯ã CSVEngineããã§ãŒã³ã«è¿œå ããŸãã InputOutputEngineãšã»ãŒåãã§ãã ãå¥ã®ããŒã¿ããŒãµãŒãå«ãŸããŠããã ãã§ãã 次ã«ã察å¿ããã€ãã³ããéä¿¡ãããã¿ã³ãã³ãã³ãããã«ã«è¿œå ããŸãã ããã§ãã¢ããªã±ãŒã·ã§ã³ã§CSVã䜿çšã§ããããã«ãªããŸããïŒ
ã·ã¹ãã å šäœãéåæã§åäœããããããµãŒããŒããããŒã¿ãåä¿¡ããæ©èœã®å®è£ ã«å€§ããªé害ã¯ãããŸããã
ã¢ãŒããã¯ãã£ã®å©ç¹
ãŸãããã§ãŒã³ãæ©èœããã«ã¯ãã€ãã³ãã®ã«ãŒããšã³ãžã³ã«çœ²åããã ãã§ååã§ãã ãã®åŸããšã³ãžã³ããã§ãŒã³ã«è¿œå ããã³åé€ããã ãã§ããšã³ãžã³ããªã³ãŸãã¯ãªãã«ã§ããŸãã
次ã«ãåãšã³ãžã³ã¯ãã§ãŒã³ãééããã³ãã³ããå€æŽã§ãããããæè»æ§ãåäžããŸãã ã©ã®ãšã³ãžã³ããçŸåšã®ã³ãã³ãããã§ãŒã³ã«æž¡ãåã«ãããã€ãã®è¿œå ã³ãã³ããä»ã®ãšã³ãžã³ã«éä¿¡ã§ããŸãã ãã®ããã«ããŠã1ã€ã®ã³ãã³ãã§äžé£ã®ã¢ã¯ã·ã§ã³ãããªã¬ãŒã§ããŸãã ããšãã°ãæ°ãããã¡ã€ã«ãéãã³ãã³ãã¯ãçŸåšã®ãã¡ã€ã«ãä¿åããæ°ãããã¡ã€ã«ãèªã¿åãã解æããŠããããã¥ãŒãæŽæ°ããŸãã
ãã®ã¢ãŒããã¯ãã£ã®ãã1ã€ã®å©ç¹ã¯ãéçºããã»ã¹ã®ç°¡çŽ åã§ãã åãšã³ãžã³ã®ããžãã¯ã¯ã«ãã»ã«åãããŠããŸãã ããã«ãããè€æ°ã®äººã競åããããšãªããäžåºŠã«1ã€ã®ã¢ããªã±ãŒã·ã§ã³ã§äœæ¥ã§ããŸãã
衚瀺ãªã¹ããªããžã§ã¯ããããã§ãŒã³ã«ã³ãã³ããéä¿¡ããã®ã¯éåžžã«ç°¡åã§ãã ããã«== true ã®ã€ãã³ããApplicationã«ãããã¢ãããããã§ãŒã³ã«å ¥ããŸãã ããã¯ããŠãŒã¶ãŒããã¥ãŒã®ããããã§ãã¿ã³ãã¯ãªãã¯ããããšãæ³å®ããäœæ¥å³ã§ãã
3.ãµããŒãå±¥æŽãšãããããŒ
æåŸã®ã¢ã¯ã·ã§ã³ãåãæ¶ãããšãã§ããªãçŸä»£ã®ãœãããŠã§ã¢ã§ã¯ã©ãã§ããïŒ
ã¢ãŒããã¯ãã£ã«ãããã¹ããŒãªãŒã®ãµããŒããç°¡åã«è¿œå ã§ããŸãã
æåã¯ãã¹ããŒãªãŒã¯Mementoãã¿ãŒã³ã«åºã¥ããŠäœæãããŸããã åã¢ã¯ã·ã§ã³åŸã®ãã®ã¢ããªã±ãŒã·ã§ã³ã®ç¶æ ã¯ãMementoã«ä¿åã§ããxml-objectã«äžæã«å€æãããŸãã ããããå®éã®ããŒã¿ã®å ŽåãxmlããŒãã«ã®å®å šãªæŽæ°ã¯é ãããŠãçŽ1ã2ç§ã§ããããšãããããŸããã ãããã£ãŠãç§ã¯ããè€éãªæ¹æ³ã䜿çšããå¿ èŠããããŸããããŠãŒã¶ãŒã®ã¢ã¯ã·ã§ã³ããšã«ãªããŒã¹ã¢ã¯ã·ã§ã³ãäœæããŠèšæ¶ãã[å ã«æ»ã]ãæŒããããšãã«é çªã«åŒã³åºããšããããšã§ãã
å±¥æŽãããŒãžã£ãŒã¯ãçŽæ¥ã¢ã¯ã·ã§ã³ãšéã¢ã¯ã·ã§ã³ã®ã»ããã2ã€ã®é åã«æ ŒçŽããŸãã ãšã³ãžã³ã¯ã³ãã³ããåãåããšãã¹ããŒãªãŒã®äžã§ãããã«çŽæ¥ããã³éã®ã³ãã³ããè¿œå ããŸãã å ã«æ»ããŸãã¯ããçŽããæŒããšãé åããç®çã®ã³ãã³ããååŸããŠã dispatchEventïŒïŒãåŒã³åºãã ãã§ååã§ãã ãã¹ãŠã®ãšã³ãžã³ã¯ãããããã¥ãŒããæ¥ãéåžžã®ã³ãã³ããšããŠèªèããé©åãªã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
CommandEventã®æäœã¯ ãCommandãã¿ãŒã³ã«éåžžã«äŒŒãŠããŸãã éãã¯ããåä¿¡è ããã¿ãŒã³ã§ã¯ã³ãã³ãã«ã«ãã»ã«åããã CommandEventã§ã¯ãã³ãã³ãã¯ãšã³ãžã³ïŒãåä¿¡è ãã®åœ¹å²ãæããïŒãåŠçãããã©ããã決å®ããã¿ã€ãã®ã¿ãæã€ãšããããšã§ãã ååãšããŠã addHandableCommandïŒïŒã䜿çšããŠæåã§è¿œå ããå Žåãã©ã®ãšã³ãžã³ã§ãä»ã®ã³ãã³ãã®åŠçãéå§ã§ããŸãã
ãããããŒãç°¡åã«å®è£ ã§ããŸãã ãããã®ãããŒãžã£ãŒã¯ã CommandEventããã³ãã®ã³ãã³ããåŒã³åºãããŒã®çµã¿åãããå«ãShortcutã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãæ ŒçŽããŸãã ãã¿ã³ãã¯ãªãã¯ãããšãçµã¿åããã衚瀺ãããŸãã çµã¿åãããé åå ã«ããå Žåã察å¿ããã¿ã¹ã¯ãå®è¡ãããŸãã
ãœãŒã¹ã³ãŒããšæé ãå«ãã¢ããªã±ãŒã·ã§ã³ã¯ãGoogleã³ãŒãã«ãããŸãã
code.google.com/p/easyworkloadtool
çµè«
èŠä»¶ãå®å šã«æºããã¢ããªã±ãŒã·ã§ã³ãèšèšããŸããã 確å®ã«æ©èœããæ°æ©èœã®æ¡åŒµãšè¿œå ã®å¯èœæ§ã¯ã»ãŒç¡éã§ãã ãã®ã¢ãŒããã¯ãã£ã«ãããååŸæ¥å¡ãç¬èªã«ãšã³ãžã³ãæäœã§ãããããåäžã®ããã°ã©ããŒãšããŒã ã®äž¡æ¹ã§äŸ¿å©ã«éçºããã³ãµããŒãã§ããŸãã
説æããã¢ãŒããã¯ãã£ã¯ãã»ãšãã©ãã¹ãŠã®ã¯ã©ã€ã¢ã³ãã¢ããªã±ãŒã·ã§ã³ã®éçºã«äœ¿çšã§ããŸãã ããŸããŸãªä¿®æ£ãå ããŠãå€ãã®ãããžã§ã¯ãã§äœ¿çšãããŠããŸãã