StarUML™¿¡ »õ·Î¿î ±â´ÉÀ» Ãß°¡ÇÏ°íÀÚ ÇÒ ¶§ ÀÌÀü 'Chapter 3. Hello world Example'¿¡¼ º¸¾ÒµíÀÌ °£´ÜÇÑ Script Äڵ带 Á¤ÀÇÇÒ ¼öµµ ÀÖÁö¸¸, Á» ´õ º¹ÀâÇϰųª À¯¿ëÇÑ ±â´ÉÀ» Á¦°øÇϱâ À§Çؼ´Â COM °³Ã¼¸¦ Áö¿øÇÏ´Â ÇÁ·Î±×·¥ °³¹ß ȯ°æÀ» »ç¿ëÇÏ´Â °ÍÀÌ ³ªÀ» °ÍÀÌ´Ù. StarUML™ Add-In COM Object¸¦ ±¸ÇöÇÒ ¶§ Visual C++, Delphi, C#, Visual Basic µî°ú °°ÀÌ COM ±â¼úÀ» Áö¿øÇÏ´Â ¾î¶² ÇÁ·Î±×·¥ ȯ°æÀ» ¼±ÅÃÇÏ´øÁö »ó°üÀÌ ¾ø´Ù.
StarUML™ Add-In COM Object¸¦ ±¸ÇöÇÒ ¶§ ÁöÄÑ¾ß ÇÏ´Â °¡Àå Áß¿äÇÑ Á¡Àº
StarUML™ÀÌ Á¤ÀÇÇÏ°í ÀÖ´Â IStarUMLAddIn ÀÎÅÍÆäÀ̽º¸¦
±¸ÇöÇØ¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù.
IStarUMLAddIn ÀÎÅÍÆäÀ̽º´Â À§ÀÇ ±×¸²°ú °°ÀÌ IUnknownÀ» »ó¼ÓÇϸç InitializeAddIn(),
FinalizeAddIn(), DoMenuAction() ¼¼ °³ÀÇ Ãß°¡ÀûÀÎ ÀÎÅÍÆäÀ̽º ¸Þ¼Òµå¸¦ Á¤ÀÇÇÏ°í ÀÖ´Ù.
IStarUMLAddIn ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÒ ¶§ Á¤ÀÇÇØ¾ß ÇÏ´Â ¸Þ¼Òµå´Â ´ÙÀ½°ú °°´Ù.
¸Þ¼Òµå | ¼³¸í |
---|---|
InitializeAddIn() | InitializeAddIn() ¸Þ¼Òµå´Â StarUMLApplication °³Ã¼°¡ °¢ Add-In COM Object¸¦ »ý¼ºÇÑ ÈÄ¿¡ È£ÃâÇÏ´Â ÃʱâÈ ¸Þ¼ÒµåÀÌ´Ù. ÀÌ°ÍÀº StarUML™ÀÇ À̺¥Æ® ¼ö½Å µî·Ï°ú °°ÀÌ Add-In COM ObjectÀÇ ÃʱâÈ¿¡ ÇÊ¿äÇÑ µ¿ÀÛÀ» Á¤ÀÇÇÒ ¶§ »ç¿ëÇÑ´Ù. |
FinalizeAddIn() | FinalizeAddIn() ¸Þ¼Òµå´Â StarUMLApplication °³Ã¼°¡ Add-In COM Object¿¡ ´ëÇÑ ÂüÁ¶¸¦ ²÷±â ¹Ù·Î Àü¿¡ È£ÃâÇÏ´Â ¸Þ¼ÒµåÀÌ´Ù. ÀÌ°ÍÀº StarUML™ÀÇ À̺¥Æ® ¼ö½Å ÇØÁ¦¿Í °°ÀÌ Add-In COM ObjectÀÇ ¼Ò¸ê Àü¿¡ ÇÊ¿äÇÑ µ¿ÀÛÀ» Á¤ÀÇÇÒ ¶§ »ç¿ëÇÑ´Ù. |
DoMenuAction(ActionID: Integer) | DoMenuAction() ¸Þ¼Òµå´Â 8Àå 'Extending Menu'¿¡¼ º¸¾ÒµíÀÌ °¢ Add-InÀÌ Á¤ÀÇÇÑ È®Àå ¸Þ´º Ç׸ñÀÌ »ç¿ëÀÚ¿¡ ÀÇÇØ ¼±ÅõǾúÀ» ¶§ È£ÃâµÇ¸ç, ¸Þ´º È®Àå ÆÄÀÏ¿¡¼ Á¤ÀÇÇÑ °¢ ¸Þ´º Ç׸ñÀÇ 'actionId' °ªÀÌ ÀÎÀÚ·Î Àü´ÞµÈ´Ù. |
´ÙÀ½Àº IStarUMLAddIn ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â StarUML™ Add-In COM ObjectÀÇ °£´ÜÇÑ ¿¹¸¦ º¸ÀÌ°í ÀÖ´Ù. ÀÌ°ÍÀº µ¨ÆÄÀÌ ÆĽºÄ® ¹®¹ýÀ¸·Î Á¤ÀÇµÈ °ÍÀÌ´Ù.
type AddInExample = class(TComObject, IStarUMLAddIn) private StarUMLApp: IStarUMLApplication; protected function InitializeAddIn: HResult; stdcall; function FinalizeAddIn: HResult; stdcall; function DoMenuAction(ActionID: Integer): HResult; stdcall; ... public procedure Initialize; override; destructor Destroy; override; ... end; ... implementation procedure AddInExample.Initialize; begin inherited; StarUMLApp := CreateOleObject('StarUML.StarUMLApplication') as IStarUMLApplication; ... end; destructor AddInExample.Destroy; begin ... StarUMLApp := nil; inherited; end; function AddInExample.InitializeAddIn: HResult; begin ... Result := S_OK; end; function AddInExample.FinalizeAddIn: HResult; begin ... Result := S_OK; end; function AddInExample.DoMenuAction(ActionID: Integer): HResult; stdcall; begin Result := S_OK; ... end;
Add-In Description ÆÄÀÏ(*.aid)Àº XML Çü½ÄÀÇ ÅؽºÆ® ÆÄÀÏ·Î, StarUML™¿¡ Ç÷¯±×ÀÎ(plug-in)µÇ´Â °¢ Add-InÀº ¹Ýµå½Ã ÇϳªÀÇ Add-In ÆÄÀÏÀ» Á¦°øÇØ¾ß ÇÑ´Ù. StarUML™Àº Add-In Description ÆÄÀÏÀÌ Á¤ÀÇÇÏ´Â ³»¿ëÀ» ¹ÙÅÁÀ¸·Î Add-InÀ» ·¹Áö½ºÅ͸®¿¡ µî·ÏÇÏ°í ÃʱâÈÇϸç, Add-In°ú ¿¬°áµÈ ¸Þ´º È®Àå ÆÄÀÏÀ» ÃʱâÈÇÑ´Ù.
³ëÆ®: Add-In Description ÆÄÀÏÀº ¹Ýµå½Ã *.aid È®ÀåÀÚ¸¦ °¡Á®¾ß Çϸç, StarUML™ ¸ðµâ µð·ºÅ丮(<install-dir>\modules) ÇϺΠµð·ºÅ丮¿¡ Á¸ÀçÇØ¾ß ÇÑ´Ù.
Add-In Description ÆÄÀÏÀº XML ¹®¼ÀÇ ±ÔÄ¢À» µû¸£¸ç, »ç¿ëÀÚ Á¤ÀÇ Ç׸ñµéÀº 'ADDIN' ¿ä¼Ò ³»¿¡ ±â¼úµÈ´Ù.
<?xml version="1.0" encoding="..."?> <ADDIN> <NAME>...</NAME> <DISPLAYNAME>...</DISPLAYNAME> <COMOBJ>...</COMOBJ> <FILENAME>...</FILENAME> <COMPANY>...</COMPANY> <COPYRIGHT>...</COPYRIGHT> <HELPFILE>...</HELPFILE> <ICONFILE>...</ICONFILE> <ISACTIVE>...</ISACTIVE> <MENUFILE>...</MENUFILE> <VERSION>...</VERSION> <MODULES> <MODULEFILENAME>...</MODULEFILENAME> </MODULES> </ADDIN>
ÀÛ¼ºµÈ Add-In Description ÆÄÀÏÀ» StarUML¿¡¼ ÀÚµ¿À¸·Î ÀνÄÇÏ·Á¸é Add-In Description ÆÄÀÏÀÌ
StarUML™ ¸ðµâ µð·ºÅ丮(<install-dir>\modules) ÇϺΠµð·ºÅ丮·Î ¿Å°Ü¾ß ÇÑ´Ù.
StarUML™Àº ÇÁ·Î±×·¥ ÃʱâÈ ½Ã¿¡ ¸ðµâ µð·ºÅ丮 ÇϺθ¦ °Ë»öÇÏ¿© ¸ðµç Add-In
Description ÆÄÀϵéÀ» ÀÐ¾î µéÀÎ ÈÄ ÇÁ·Î±×·¥¿¡ ÀÚµ¿ µî·ÏÇÑ´Ù. ¸¸¾à Add-In Description ÆÄÀÏÀÌ ¹®¹ý¿¡ ¸ÂÁö ¾Ê°Ô Àß ¸ø
ÀÛ¼ºµÇ¾î Àְųª, È®ÀåÀÚ°¡ .aid°¡ ¾Æ´Ñ °æ¿ì¿¡´Â Add-In Description ÆÄÀÏÀ» Á¤»óÀûÀ¸·Î ÀÐ¾î µéÀÌÁö ¾Ê°í ¹«½ÃÇÏ°Ô µÉ °ÍÀÌ´Ù.
Add-In Description ÆÄÀÏÀº °¡±ÞÀûÀÌ¸é ¸ðµâ µð·ºÅ丮 ÇϺο¡ »õ·Î¿î µð·ºÅ丮¸¦ ¸¸µé°í °Å±â¿¡ ÀúÀåÇϱ⸦ ±ÇÀåÇÑ´Ù.
³ëÆ®: Add-In Description ÆÄÀÏÀ» ´õ ÀÌ»ó »ç¿ëÇÏÁö ¾ÊÀ¸·Á¸é StarUML™ ¸ðµâ µð·ºÅ丮(<install-dir>\modules) ÇϺο¡¼ »èÁ¦ÇÏ¸é µÈ´Ù.
StarUML™¿¡¼´Â »ç¿ëÀÚµéÀÌ StarUML™ÀÇ È¯°æ°ú ¼¼ºÎÀûÀÎ ±â´ÉÀ» Á¶ÀýÇÒ ¼ö ÀÖµµ·Ï ¿É¼Ç ÆíÁýÀ» Áö¿øÇÑ´Ù. ÀÌ·± ¿É¼ÇµéÀº StarUML™ ¾ÖÇø®ÄÉÀÌ¼Ç ÀÚü »Ó¸¸ ¾Æ´Ï¶ó ½áµåÆÄƼ º¥´õµé¿¡ ÀÇÇØ Á¦°øµÇ´Â Add-inµé¿¡°Ôµµ ÇÊ¿äÇÏ´Ù. StarUML™ÀÇ ¿É¼Ç È®ÀåÀº Add-inµé¿¡°Ô º°µµÀÇ ±¸Çö °úÁ¤ ¾øÀÌ ¿É¼Ç ¼³Á¤ ±â´ÉÀ» °¡´ÉÇÏ°Ô ÇØÁØ´Ù. À̸¦ À§Çؼ Add-in °³¹ßÀÚ´Â ÅؽºÆ® ÆÄÀÏ·Î °£´ÜÇÏ°Ô ¿É¼Ç¿¡ ´ëÇÑ Á¤ÀǸ¸ ±â¼úÇÏ°í ÀÌ ¿É¼Ç Á¤ÀÇ ÆÄÀÏÀ» ·¹Áö½ºÆ®¸®¿¡ µî·ÏÇØ Áֱ⸸ ÇÏ¸é µÈ´Ù. µî·ÏµÈ ¿É¼Ç Á¤ÀÇ´Â ÇÁ·Î±×·¥ ÃʱâÈ ½Ã¿¡ ·Îµå µÇ¸ç »ç¿ëÀÚ°¡ ¿É¼Ç ´ÙÀ̾ó·Î±×¸¦ ¶ç¿üÀ» ¶§ Æ®¸®ºä¿Í ÀνºÆåÅÍ¿¡ Ç¥½ÃµÈ´Ù. ¿É¼Ç È®Àå ±â´ÉÀ» ÅëÇؼ °³¹ßÀÚµéÀº Add-in ±¸ÇöÀ» À§ÇÑ ½Ã°£°ú ³ë·ÂÀ» Àý°¨ÇÒ ¼ö ÀÖ°í, »ç¿ëÀڵ鿡°Ô ¿É¼Ç ¼³Á¤À» À§ÇÑ ÀÏ°üµÈ À¯Àú ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÒ ¼ö ÀÖ´Ù.
Add-in¿¡¼ ¿É¼Ç ¼³Á¤À» Áö¿øÇϱâ À§Çؼ´Â ´ÙÀ½°ú °°Àº ÀýÂ÷°¡ ÇÊ¿äÇÏ´Ù.
StarUML™Àº ¾ÖÇø®ÄÉÀ̼ǰú °¢ Add-in¿¡¼ ÀÛ¼ºµÈ ¸¹Àº ¿É¼Ç Ç׸ñµéÀ» ÅëÇÕÀûÀ¸·Î °ü¸®Çϱâ À§ÇÏ¿© ´ÙÀ½°ú °°ÀÌ °èÃþÀûÀ¸·Î ±¸¼ºÇÏ¿´´Ù.
¿É¼Ç ½ºÅ°¸¶ÀÇ ±¸Á¶¿Í ¿É¼Ç Ç׸ñÀ» Á¤ÀÇÇϱâ À§ÇÑ ¿É¼Ç ½ºÅ°¸¶ ÆÄÀÏÀº È®ÀåÀÚ°¡ .opt ÀÎ XML Æ÷¸ËÀÇ ÅؽºÆ® ÆÄÀÏÀÌ´Ù. ¿É¼Ç ½ºÅ°¸¶¿¡ ´ëÇÑ ³»¿ëÀº OPTIONSCHEMA ¿ä¼Ò ³»¿¡ ±â¼úµÇ¸ç, ±¸¹®À̳ª ³»¿ë¿¡ ¿À·ù°¡ ¾øµµ·Ï ÇØ¾ß ÇÑ´Ù.
<?xml version=¡±1.0¡± encoding=¡±...¡± ?> <OPTIONSCHEMA id="..."> <HEADER> ... </HEADER> <BODY> ... </BODY> </OPTIONSCHEMA>
HEADER ºÎºÐ¿¡´Â ¿É¼Ç ½ºÅ°¸¶ÀÇ Á¦¸ñ°ú »ó¼¼¼³¸í µî ¿É¼Ç ½ºÅ°¸¶¿¡ ´ëÇÑ °³°ýÀûÀÎ Á¤º¸¸¦ ±â¼úÇÑ´Ù. HEADER ºÎºÐÀÇ Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
<HEADER> <CAPTION>...</CAPTION> <DESCRIPTION>...</DESCRIPTION> </HEADER>
BODY ºÎºÐ¿¡´Â ½ÇÁ¦·Î ¿É¼Ç ½ºÅ°¸¶¿¡ Æ÷ÇԵǴ ¸ðµç ¿É¼Ç Ç׸ñµéÀ» °èÃþÀûÀ¸·Î ±¸ºÐÇÏ¿© Á¤ÀÇÇÑ´Ù.
<BODY> <OPTIONCATEGORY> <CAPTION>...</CAPTION> <DESCRIPTION>...</DESCRIPTION> <OPTIONCLASSIFICATION> <CAPTION>...</CAPTION> <DESCRIPTION>...</DESCRIPTION> <OPTIONITEM> ... </OPTIONITEM> ... </OPTIONCLASSIFICATION> ... </OPTIONCATEGORY> ... </BODY>
OPTIONCLASSIFICATION ¿ä¼Ò ÇϺο¡´Â ¿©·¯ °³ÀÇ ¿É¼Ç Ç׸ñÀ» Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. ¿É¼Ç Ç׸ñÀÇ Å¸ÀÔÀº ´Ü¼øÇÑ ¹®ÀÚ¿¸¸ÀÌ ¾Æ´Ï¶ó Á¤¼ö, ½Ç¼ö, ³í¸®Çü, ¿°ÅÇü µî ¸î °¡Áö ÇüÅ·Π¸í½ÃȵǾî ÀÖ´Ù. ¿É¼Ç ´ÙÀ̾ó·Î±×¿¡¼´Â ¿É¼Ç Ç׸ñÀÇ Å¸ÀÔ¿¡ µû¶ó ¿É¼Ç °ª ÀÔ·ÂÀ» À§ÇÑ Á¤º¸¸¦ Á¦°øÇϰųª ÀÔ·ÂÇÒ ¼ö ÀÖ´Â °ªÀ» Á¦ÇÑÇÑ´Ù.
StarUML™¿¡¼ Á¦°øÇÏ´Â ¿É¼Ç Ç׸ñÀÇ Å¸ÀÔÀº ´ÙÀ½°ú °°´Ù.
¿É¼Ç Ç׸ñ ŸÀÔ | XML ¿ä¼Ò À̸§ | ¿É¼Ç ´ÙÀ̾ó·Î±×¿¡¼ÀÇ ÀÔ·Â ÇüÅ |
---|---|---|
Á¤¼ö (integer) | OPTIONITEM-INTEGER | Á¤¼ö ¹üÀ§ÀÇ ¼ýÀÚ¸¸ ÀÔ·Â ÇÒ ¼ö ÀÖ´Ù. |
½Ç¼ö (real) | OPTIONITEM-REAL | ½Ç¼ö ¹üÀ§ÀÇ ¼ýÀÚ¸¸ ÀÔ·Â ÇÒ ¼ö ÀÖ´Ù. |
¹®ÀÚ¿ (string) | OPTIONITEM-STRING | ¹®ÀÚ¿ °ªÀ» ÀÔ·Â ¹Þ´Â´Ù. |
³í¸®Çü (boolean) | OPTIONITEM-BOOLEAN | üũ¹Ú½º·Î True / False¸¦ ÀÔ·Â ¹Þ´Â´Ù. |
ÅؽºÆ® (text) | OPTIONITEM-TEXT | ÀÔ·Â ½Ã ÅؽºÆ®¹Ú½º°¡ Æ˾÷ µÇ¾î °Å±â¿¡ ¿©·¯ ÁÙÀ» ÀÔ·ÂÇÒ ¼ö ÀÖ´Ù. |
¿°ÅÇü (enumeration) | OPTIONITEM-ENUMERATION | OPTION-ENUMERATIONITEMÀ¸·Î Á¤ÀÇµÈ ¿©·¯ °³ÀÇ ¿°ÅÇ׸ñÀ» ÄÞº¸¹Ú½º¿¡¼ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. |
±ÛÀÚü (font name) | OPTIONITEM-FONTNAME | ½Ã½ºÅÛ¿¡ ¼³Ä¡µÈ ±ÛÀÚü ¸ñ·Ï Áß¿¡¼ Çϳª¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. |
ÆÄÀϸí (file name) | OPTIONITEM-FILENAME | ÆÄÀϸíÀ» Á÷Á¢ ÀÔ·ÂÇϰųª ÆÄÀÏ ¿±â ´ÙÀ̾ó·Î±×¸¦ ÅëÇؼ ÆÄÀÏÀ» ÁöÁ¤ÇÑ´Ù. |
°æ·Î¸í (path name) | OPTIONITEM-PATHNAME | µð·ºÅ丮(directory)¸¦ Á÷Á¢ ÀÔ·ÂÇϰųª °æ·Î ÁöÁ¤ ´ÙÀ̾ó·Î±×¸¦ ÅëÇؼ °æ·Î¸¦ ÁöÁ¤ÇÑ´Ù. |
»ö»ó (color) | OPTIONITEM-COLOR | »ö»ó ÄÞº¸¹Ú½º¿¡¼ »ö»óÀ» ¼±ÅÃÇϰųª »ö»ó ´ÙÀ̾ó·Î±×¿¡¼ »öÀ» ÁöÁ¤ÇÑ´Ù. |
¹üÀ§Çü (range) | OPTIONITEM-RANGE | ÁöÁ¤µÈ ¹üÀ§ ³»ÀÇ Á¤¼ö °ªÀ» ÀÔ·Â ¹Þ´Â´Ù. ½ºÇɹöÆ°À¸·Î ÁöÁ¤µÈ ½ºÅܸ¸Å °ªÀ» º¯°æ½Ãų ¼ö ÀÖ´Ù. |
¾Æ·¡´Â ¿É¼Ç ½ºÅ°¸¶ ÆÄÀÏ¿¡¼ OPTIONCLASSIFICATION ÇϺο¡ ¿É¼Ç Ç׸ñ Á¤ÀÇ Æ÷¸ËÀ» º¸ÀÎ °ÍÀÌ´Ù.
<OPTIONCLASSIFICATION> <OPTIONITEM-INTEGER key="..."> <CAPTION>...</CAPTION> <DESCRIPTION>...</DESCRIPTION> <DEFAULTVALUE>...</DEFAULTVALUE> </OPTIONITEM-INTEGER> <OPTIONITEM-REAL key="..."> <CAPTION>...</CAPTION> <DESCRIPTION>...</DESCRIPTION> <DEFAULTVALUE>...</DEFAULTVALUE> </OPTIONITEM-REAL> <OPTIONITEM-STRING key="..."> <CAPTION>...</CAPTION> <DESCRIPTION>...</DESCRIPTION> <DEFAULTVALUE>...</DEFAULTVALUE> </OPTIONITEM-STRING> <OPTIONITEM-BOOLEAN key="..."> <CAPTION>...</CAPTION> <DESCRIPTION>...</DESCRIPTION> <DEFAULTVALUE>...</DEFAULTVALUE> </OPTIONITEM-BOOLEAN> <OPTIONITEM-TEXT key="..."> <CAPTION>...</CAPTION> <DESCRIPTION>...</DESCRIPTION> <DEFAULTVALUE>...</DEFAULTVALUE> </OPTIONITEM-TEXT> <OPTIONITEM-ENUMERATION key="..."> <CAPTION>...</CAPTION> <DESCRIPTION>...</DESCRIPTION> <DEFAULTVALUE>...</DEFAULTVALUE> <ENUMERATIONITEM>...</ENUMERATIONITEM> ... </OPTIONITEM-ENUMERATION> <OPTIONITEM-FONTNAME key="..."> <CAPTION>...</CAPTION> <DESCRIPTION>...</DESCRIPTION> <DEFAULTVALUE>...</DEFAULTVALUE> </OPTIONITEM-FONTNAME> <OPTIONITEM-FILENAME key="..."> <CAPTION>...</CAPTION> <DESCRIPTION>...</DESCRIPTION> <DEFAULTVALUE>...</DEFAULTVALUE> </OPTIONITEM-FILENAME> <OPTIONITEM-PATHNAME key="..."> <CAPTION>...</CAPTION> <DESCRIPTION>...</DESCRIPTION> <DEFAULTVALUE>...</DEFAULTVALUE> </OPTIONITEM-PATHNAME> <OPTIONITEM-COLOR key="..."> <CAPTION>...</CAPTION> <DESCRIPTION>...</DESCRIPTION> <DEFAULTVALUE>...</DEFAULTVALUE> </OPTIONITEM-COLOR> <OPTIONITEM-RANGE key="..."> <CAPTION>...</CAPTION> <DESCRIPTION>...</DESCRIPTION> <DEFAULTVALUE>...</DEFAULTVALUE> <MINVALUE>...</MINVALUE> <MAXVALUE>...</MAXVALUE> <STEP>...</STEP> </OPTIONITEM-RANGE> ... </OPTIONITEMCLASSIFICATION>
¿É¼Ç Ç׸ñ ŸÀÔ |
Default ValueÀÇ À¯È¿ ¹üÀ§ |
||||||||
---|---|---|---|---|---|---|---|---|---|
OPTIONITEM-INTEGER | -2147483648 ~ 2147483647 »çÀÌÀÇ Á¤¼ö | ||||||||
OPTIONITEM-REAL | Á¤¼ö ¶Ç´Â ¼Ò¼öÁ¡ ÇüÅÂÀÇ ½Ç¼ö | ||||||||
OPTIONITEM-STRING | ¹®ÀÚ¿ | ||||||||
OPTIONITEM-BOOLEAN | True ¶Ç´Â False | ||||||||
OPTIONITEM-TEXT | ¹®ÀÚ¿ | ||||||||
OPTIONITEM-ENUMERATION | ENUMERATIONITEM À¸·Î Á¤ÀÇµÈ ¹®ÀÚ¿ String value defined by ENUMERATIONITEM |
||||||||
OPTIONITEM-FONTNAME | ±ÛÀÚü ¿¹)±¼¸² | ||||||||
OPTIONITEM-FILENAME | °æ·Î¸¦ Æ÷ÇÔÇÏ´Â ÆÄÀϸí Çü½Ä ¶Ç´Â ºó ¹®ÀÚ¿ ¿¹) C:\My Document\Default.xml |
||||||||
OPTIONITEM-PATHNAME | ÀûÇÕÇÑ °æ·Î¸í ¶Ç´Â ºó ¹®ÀÚ¿ ¿¹) C:\My Document |
||||||||
OPTIONITEM-COLOR | ´ÙÀ½°ú °°Àº Çü½ÄÀÇ ¹®ÀÚ¿ ${W}{B}{G}{R} ¡¡
¿¹) $00FF0000 , $00A0A0A0, $00FF00FF |
||||||||
OPTIONITEM-RANGE | MINVALUE¿Í MAXVALUE¿¡ ¸í½ÃµÈ ÃÖ¼Ò°ª°ú ÃÖ´ë°ª »çÀÌÀÇ Á¤¼ö |
´ÙÀ½Àº StarUML™ÀÇ ±âº» ¿É¼Ç ½ºÅ°¸¶ÀÇ ÀϺκÐÀ» ¿¹Á¦·Î º¸ÀÎ °ÍÀÌ´Ù.
<?xml version="1.0" encoding="UTF-8" ?> <OPTIONSCHEMA id="ENVIRONMENT"> <HEADER> <CAPTION>Environment</CAPTION> <DESCRIPTION> </DESCRIPTION> </HEADER> <BODY> <OPTIONCATEGORY> <CAPTION>General</CAPTION> <DESCRIPTION>General Configuration is a group of the basic and general option items for the program. This category includes the [General], [Browser], [Collection Editor] and [Web] subcategories.</DESCRIPTION> <OPTIONCLASSIFICATION> <CAPTION>General</CAPTION> <DESCRIPTION></DESCRIPTION> <OPTIONITEM-RANGE key="UNDO_LEVEL"> <CAPTION>Max. number of undo actions</CAPTION> <DESCRIPTION>Specifies the maximum number of actions for undo and redo.</DESCRIPTION> <DEFAULTVALUE>30</DEFAULTVALUE> <MINVALUE>1</MINVALUE> <MAXVALUE>100</MAXVALUE> <STEP>1</STEP> </OPTIONITEM-RANGE> <OPTIONITEM-BOOLEAN key="CREATE_BACKUP"> <CAPTION>Create backup files</CAPTION> <DESCRIPTION>Specifies whether to create backup files when saving changes.</DESCRIPTION> <DEFAULTVALUE>True</DEFAULTVALUE> </OPTIONITEM-BOOLEAN> </OPTIONCLASSIFICATION> </OPTIONCATEGORY> </BODY> </OPTIONSCHEMA>
ÀÛ¼ºµÈ ¿É¼Ç ½ºÅ°¸¶ ÆÄÀÏÀ» ÇÁ·Î±×·¥¿¡¼ ÀνÄÇÏ·Á¸é ¸Þ´º È®Àå ÆÄÀÏÀ» StarUML™ ¸ðµâ µð·ºÅ丮(<install-dir>\modules)
ÇϺΠµð·ºÅ丮·Î ¿Å°Ü¾ß ÇÑ´Ù. StarUML™Àº ÇÁ·Î±×·¥ ÃʱâÈ ½Ã¿¡ ¸ðµâ µð·ºÅ丮 ÇϺθ¦
°Ë»öÇÏ¿© ¸ðµç ¿É¼Ç ½ºÅ°¸¶ ÆÄÀϵéÀ» ÀÐ¾î µéÀÎ ÈÄ ÇÁ·Î±×·¥¿¡ ÀÚµ¿ µî·ÏÇÑ´Ù. ¸¸¾à ¿É¼Ç ½ºÅ°¸¶ ÆÄÀÏÀÌ ¹®¹ý¿¡ ¸ÂÁö ¾Ê°Ô Àß ¸ø ÀÛ¼ºµÇ¾î Àְųª,
È®ÀåÀÚ°¡ .opt°¡ ¾Æ´Ñ °æ¿ì¿¡´Â ¿É¼Ç ½ºÅ°¸¶ ÆÄÀÏÀ» Á¤»óÀûÀ¸·Î ÀÐ¾î µéÀÌÁö ¾Ê°í ¹«½ÃÇÏ°Ô µÉ °ÍÀÌ´Ù.
¿É¼Ç ½ºÅ°¸¶ ÆÄÀÏÀº °¡±ÞÀûÀ̸é Add-In ½ÇÇà¸ðµâÀÌ Æ÷ÇԵǾî ÀÖ´Â µð·ºÅ丮¿Í µ¿ÀÏÇÑ µð·ºÅ丮¿¡ ¼³Ä¡ÇÏ´Â °ÍÀ» ±Ç°íÇÑ´Ù.
³ëÆ®: ¿É¼Ç ½ºÅ°¸¶¸¦ ´õ ÀÌ»ó »ç¿ëÇÏÁö ¾ÊÀ¸·Á¸é StarUML™ ¸ðµâ µð·ºÅ丮(<install-dir>\modules) ÇϺο¡¼ »èÁ¦ÇÏ¸é µÈ´Ù.
StarUML™ÀÇ COM ÀÎÅÍÆäÀ̽º¸¦ ÀÌ¿ëÇÏ¸é »ç¿ëÀÚ°¡ ¿É¼Ç´ÙÀ̾ó·Î±×¸¦ ÅëÇØ º¯°æÇÑ ¿É¼Ç Ç׸ñÀÇ °ªÀ» ÂüÁ¶ ÇÒ ¼ö ÀÖ´Ù. IStarUMLApplicationÀÇ GetOptionValue()´Â ÀÔ·Â ¹ÞÀº SchemaID¿Í ¿É¼ÇÀÇ Key·ÎºÎÅÍ ¿É¼ÇÀÇ °ªÀ» Variant·Î ¸®ÅÏÇØÁØ´Ù. GetOptionValue()ÀÇ È£Ãâ Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
IStarUMLApplication.GetOptionValue(SchemaID: String, Key: String): Variant
GetOptionValue()ÀÇ Variant ŸÀÔÀÇ ¸®ÅÏ°ªÀº °¢ ¿É¼Ç Ç׸ñÀÇ Å¸ÀÔ¿¡ µû¶ó¼ ij½ºÆÃÇÏ¿© »ç¿ëÇÏ¸é µÈ´Ù. ±×·¯³ª, Jscript ³ª VBscriptó·³ ŸÀÔ °Ë»ç¸¦ ÇÏÁö ¾Ê´Â ¾ð¾î¿¡¼´Â º°µµÀÇ Å¸ÀÔ Ä³½ºÆà ÀýÂ÷ ¾øÀÌ ¹Ù·Î °ªÀ» Àоî¿Ã ¼ö ÀÖ´Ù.
´ÙÀ½Àº StarUML™ÀÇ ±âº» ¿É¼Ç ½ºÅ°¸¶¿¡ Á¤ÀǵǾî ÀÖ´Â "UNDO_LEVEL" ¿É¼Ç Ç׸ñÀÇ °ªÀ» ¾ò¾î¿Í¼ ¸Þ¼¼Áö »óÀÚ·Î Ãâ·ÂÇÏ´Â JScript ¿¹Á¦ÀÌ´Ù.
var app = new ActiveXObject("StarUML.StarUMLApplication"); var undoLevel = app.GetOptionValue("ENVIRONMENT", "UNDO_LEVEL"); WScript.Echo("Max. number of undo actions : " + undoLevel);
StarUML™Àº IEventSubscriber¸¦ ±¸ÇöÇÑ Add-inµé¿¡°Ô ÇÁ·Î±×·¥ÀÇ Á¶ÀÛ °úÁ¤¿¡¼ ¹ß»ýÇÏ´Â À̺¥Æ®¸¦ ÀüÆÄÇØÁØ´Ù. »ç¿ëÀÚ°¡ ¿É¼Ç ´ÙÀ̾ó·Î±×¸¦ ÅëÇØ ¿É¼Ç°ªÀ» º¯°æÇÏ¸é ¾ÖÇø®ÄÉÀ̼ÇÀº IEventSubscriber¸¦ ±¸ÇöÇÑ Add-inµéÀÇ À̺¥Æ® Çڵ鷯- NotifyEvent()-¸¦ È£ÃâÇÑ´Ù. ¿É¼Ç°ªÀÌ º¯°æµÇ¾úÀ» ¶§ ¿É¼Ç °ªÀ» Áï½Ã Add-in¿¡ ¹Ý¿µÇÏ·Á¸é IEventSubscriberÀ» ±¸ÇöÇÏ°í NotifiyEvent()¸Þ½áµå ³»¿¡¼ EVK_OPTIONS_APPLIED À̺¥Æ®À϶§ IStarUMLApplication.GetOptionValue() ¸Þ½áµå¸¦ »ç¿ëÇÏ¿© Á÷Á¢ ¿É¼Ç°ªÀ» ÀÐ¾î ¿À¸é µÈ´Ù. VBScript³ª JScriptµî ½ºÅ©¸³Æ®¸¦ »ç¿ëÇÏ´Â Add-inµéÀº IEventSubscriber¸¦ ±¸ÇöÇÒ ¼ö ¾øÀ¸¹Ç·Î »ç¿ëÀÚ¿¡ ÀÇÇÑ ¿É¼Ç°ª º¯°æ ½Ã¿¡ À̸¦ Add-in¿¡ ¹Ù·Î ¹Ý¿µÇÒ ¼ö ¾ø´Ù.
À̺¥Æ® Çڵ鸵¿¡ °üÇÑ ´õ ÀÚ¼¼ÇÑ ³»¿ëÀº ´ÙÀ½ ¼½¼Ç¿¡¼ ´Ù·ç¾î Áú °ÍÀÌ´Ù.
IEventSubscriber ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â Add-In °³Ã¼´Â StarUML™ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ´Ù¾çÇÑ ³»ºÎ À̺¥Æ®(Event)µéÀ» ÀüÆÄ ¹ÞÀ» ¼ö ÀÖ´Ù. StarUML™ ¾ÖÇø®ÄÉÀ̼ÇÀº ³»ºÎ À̺¥Æ®°¡ ¹ß»ýÇÒ ¶§ ¸¶´Ù µî·ÏµÈ IEventSubscriber ŸÀÔ °³Ã¼µéÀÇ NotifyEvent ¸Þ¼Òµå¸¦ È£ÃâÇÑ´Ù.
¾Æ·¡ÀÇ Å¬·¡½º ´ÙÀ̾î±×·¥Àº À̺¥Æ® ¼ö½Å°ú °ü·ÃµÈ ¿ÜºÎ API ÀÎÅÍÆäÀ̽ºµéÀÇ ±¸Á¶¸¦ º¸¿©ÁÖ°í ÀÖ´Ù.
À§ÀÇ ±×¸²¿¡¼ EventKind ¿°Åü(Enumeration)´Â IEventSubscriber ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â Add-In °³Ã¼°¡ ¼ö½ÅÇÒ ¼ö ÀÖ´Â StarUML™ ¾ÖÇø®ÄÉÀÌ¼Ç ³»ºÎ À̺¥Æ®ÀÇ Á¾·ù¸¦ Á¤ÀÇÇÏ°í ÀÖ´Ù. EventKind ¿°ÅüÀÇ °¢ ¸®ÅÍ·²ÀÇ Àǹ̴ ´ÙÀ½ Ç¥¿Í °°´Ù.
À̺¥Æ® Á¾·ù (¸®ÅÍ·²) | Á¤¼ö °ª | À̺¥Æ® ¼³¸í |
---|---|---|
EVK_APPLICATION_ACTIVATE | 0 | StarUML™ ¾ÖÇø®ÄÉÀ̼ÇÀÇ Ã¢(Window)ÀÌ È°¼ºÈ(activate)µÉ ¶§ ¹ß»ýÇÑ´Ù. |
EVK_APPLICATION_DEACTIVATE | 1 | StarUML™ ¾ÖÇø®ÄÉÀ̼ÇÀÇ Ã¢ÀÌ ºñÈ°¼ºÈ(deactivate)µÉ ¶§ ¹ß»ýÇÑ´Ù. |
EVK_APPLICATION_MINIMIZE | 2 | StarUML™ ¾ÖÇø®ÄÉÀ̼ÇÀÇ Ã¢ÀÌ ÃÖ¼Ò鵃 ¶§ ¹ß»ýÇÑ´Ù. |
EVK_APPLICATION_RESTORE | 3 | ÃÖ¼ÒÈµÈ StarUML™ ¾ÖÇø®ÄÉÀ̼ÇÀÇ Ã¢ÀÌ ÀÌÀü Å©±â·Î º¹±¸µÉ ¶§ ¹ß»ýÇÑ´Ù. |
EVK_OPTIONS_APPLIED | 4 | ¿É¼Ç °ªÀÌ º¯°æµÇ¾úÀ» ¶§ ¹ß»ýÇÑ´Ù. |
EVK_PROJECT_OPENED | 5 | ÇÁ·ÎÁ§Æ® ¿ä¼Ò°¡ »ý¼ºµÇ¾ú°Å³ª ÇÁ·ÎÁ§Æ® ÆÄÀÏÀ» ¿¾úÀ» ¶§ ¹ß»ýÇÑ´Ù. |
EVK_PROJECT_SAVED | 6 | ÇÁ·ÎÁ§Æ®°¡ ÀúÀåµÇ¾úÀ» ¶§ ¸¶´Ù ¹ß»ýÇÑ´Ù. |
EVK_PROJECT_CLOSING | 7 | ÇÁ·ÎÁ§Æ® ´Ý±â¸¦ ¼±ÅÃÇßÀ» ¶§ ¹ß»ýÇÑ´Ù. |
EVK_PROJECT_CLOSED | 8 | ÇÁ·ÎÁ§Æ®°¡ ´ÝÇûÀ» ¶§ ¹ß»ýÇÑ´Ù. |
EVK_DOCUMENT_MODIFIED | 9 | µµÅ¥¸ÕÆ®(ÇÁ·ÎÁ§Æ®, À¯´Ö)°¡ º¯°æµÇ¾úÀ» ¶§ ¹ß»ýÇÑ´Ù. |
EVK_DOCUMENT_SAVED | 10 | µµÅ¥¸ÕÆ®(ÇÁ·ÎÁ§Æ®, À¯´Ö)°¡ ÀúÀåµÇ¾úÀ» ¶§ ¹ß»ýÇÑ´Ù. |
EVK_UNIT_SEPARATED | 11 | À¯´Ö(Unit) ¿ä¼Ò·Î ºÐ¸®µÇ¾úÀ» ¶§ ¹ß»ýÇÑ´Ù. |
EVK_UNIT_MERGED | 12 | ºÐ¸®µÈ À¯´Ö ¿ä¼Ò°¡ º´ÇյǾúÀ» ¶§ ¹ß»ýÇÑ´Ù. |
EVK_UNIT_OPENED | 13 | À¯´ÖÀÌ ºÒ·¯¿À±â µÇ¾úÀ» ¶§ ¹ß»ýÇÑ´Ù. |
EVK_SELECTION_CHANGED | 14 | ¸ðµ¨¸µ ¿ä¼ÒÀÇ ¼±ÅÃÀÌ º¯°æµÉ ¶§ ¹ß»ýÇÑ´Ù. |
EVK_DIAGRAM_ACTIVATED | 15 | ´ÙÀ̾î±×·¥ÀÌ ¿¸± ¶§ ¹ß»ýÇÑ´Ù. |
EVK_ELEMENTS_ADDED | 16 | »õ·Î¿î ¸ðµ¨¸µ ¿ä¼Ò°¡ »ý¼ºµÇ¾úÀ» ¶§ ¸¶´Ù ¹ß»ýÇÑ´Ù. |
EVK_ELEMENTS_DELETING | 17 | ¸ðµ¨¸µ ¿ä¼Ò¸¦ »èÁ¦ÇÒ ¶§ ¹ß»ýÇÑ´Ù. |
EVK_ELEMENTS_DELETED | 18 | ¸ðµ¨¸µ ¿ä¼Ò°¡ »èÁ¦µÇ¾úÀ» ¶§ ¹ß»ýÇÑ´Ù. |
EVK_MODELS_CHANGED | 19 | ¸ðµ¨ ¿ä¼ÒÀÇ ¼Ó¼º °ªÀÌ º¯°æµÇ¾úÀ» ¶§ ¹ß»ýÇÑ´Ù. |
EVK_VIEWS_CHANGED | 20 | ºä ¿ä¼ÒÀÇ ¼Ó¼º °ªÀÌ º¯°æµÇ¾úÀ» ¶§ ¹ß»ýÇÑ´Ù. |
StarUML™ ¾ÖÇø®ÄÉÀ̼ÇÀÇ À̺¥Æ®¸¦ ¼ö½ÅÇÏ·Á´Â Add-In °³Ã¼´Â ¸ðµç StarUML™ Add-InµéÀÇ °øÅë»çÇ×ÀÎ IStarUMLAddIn ÀÎÅÍÆäÀ̽º ¿Ü¿¡ Ãß°¡·Î IEventSubscriber ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇØ¾ß ÇÑ´Ù.
´ÙÀ½ ¿¹Á¦´Â IStarUMLAddIn ÀÎÅÍÆäÀ̽º¿Í IEventSubscriber ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â StarUML™ Add-In °³Ã¼ÀÇ Å¬·¡½º Á¤ÀǸ¦ º¸¿©ÁØ´Ù. ¿¹Á¦´Â µ¨ÆÄÀÌ ÆĽºÄ®(Delphi Pascal) ÄÚµå·Î ¾²¿©Á³´Ù.
type AddInExample = class(TComObject, IStarUMLAddIn, IEventSubscriber) private StarUMLApp: IStarUMLApplication; EventPub: IEventPublisher; protected function InitializeAddIn: HResult; stdcall; function FinalizeAddIn: HResult; stdcall; function DoMenuAction(ActionID: Integer): HResult; stdcall; function NotifyEvent(AEvent: EventKind): HResult; stdcall; ... public procedure Initialize; override; destructor Destroy; override; ... end;
IEventSubscriber ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÑ Add-In °³Ã¼°¡ ½ÇÁ¦·Î À̺¥Æ®¸¦ ¼ö½ÅÇϱâ À§Çؼ´Â À̺¥Æ® ¼ö½ÅÀ» µî·ÏÇÏ´Â °úÁ¤ÀÌ ÇÊ¿äÇÏ´Ù. À̺¥Æ® ¼ö½Å µî·Ï°ú ÇØÁö´Â IEventPublisher ŸÀÔ °³Ã¼¸¦ ÅëÇØ ÇÒ ¼ö Àִµ¥, IEventPublisher ŸÀÔ °³Ã¼´Â IStarUMLApplication ¿ä¼Ò¸¦ ÅëÇØ ¾òÀ» ¼ö ÀÖ´Ù. ¾Æ·¡ÀÇ ¿¹Á¦´Â µ¨ÆÄÀÌ ÆĽºÄ® Äڵ忡¼ IStarUMLApplication°ú IEventPublisher ŸÀÔ °³Ã¼ÀÇ ÂüÁ¶¸¦ ¾ò´Â °ÍÀ» º¸¿©ÁÖ°í ÀÖ´Ù.
implementation procedure AddInExample.Initialize; begin inherited; StarUMLApp := CreateOleObject('StarUML.StarUMLApplication') as IStarUMLApplication; EventPub := StarUMLApp.EventPublisher; end; destructor AddInExample.Destroy; begin EventPub := nil; StarUMLApp := nil; inherited; end;
±×¸®°í IEventPublisher ÀÎÅÍÆäÀ̽º´Â À̺¥Æ® ¼ö½Å µî·Ï°ú ÇØÁö¸¦ Áö¿øÇÏ´Â ´ÙÀ½°ú °°Àº ¸Þ¼ÒµåµéÀ» Á¦°øÇÑ´Ù. °¢ ¸Þ¼Òµå¿¡¼ "ASubscriber" ÀÎÀÚ´Â IEventSubscriber ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÑ Add-In °³Ã¼ ÀÚ½ÅÀÌ´Ù.
¸Þ¼Òµå | ¼³¸í |
---|---|
Subscribe(ASubscriber: IEventSubscriber; AEvent: EventKind) | AEvent ÀÎÀÚ°¡ ÁöÁ¤ÇÏ´Â À̺¥Æ®¿¡ ´ëÇÑ ¼ö½ÅÀ» µî·ÏÇÑ´Ù. |
SubscribeAll(ASubscriber: IEventSubscriber) | ¸ðµç À̺¥Æ®¿¡ ´ëÇÑ ¼ö½ÅÀ» µî·ÏÇÑ´Ù. |
Unsubscribe(ASubscriber: IEventSubscriber; AEvent: EventKind) | AEvent ÀÎÀÚ°¡ ÁöÁ¤ÇÏ´Â À̺¥Æ®¿¡ ´ëÇÑ ¼ö½ÅÀ» ÇØÁöÇÑ´Ù. |
UnsubscribeAll(ASubscriber: IEventSubscriber) | ¸ðµç À̺¥Æ®¿¡ ´ëÇÑ ¼ö½ÅÀ» ÇØÁöÇÑ´Ù. |
Add-In °³Ã¼°¡ ƯÁ¤ À̺¥Æ® ¸¸À» ¼ö½ÅÇÏ°íÀÚ ÇÒ ¶§´Â Subscribe ¸Þ¼Òµå¸¦ »ç¿ëÇÑ´Ù. ¿¹¸¦ µé¾î µÎ °¡ÁöÀÇ Æ¯Á¤ À̺¥Æ®¿¡ ´ëÇؼ¸¸ ¼ö½ÅÀ» ÇÏ°íÀÚ ÇÏ´Â °æ¿ì, °¢°¢ÀÇ À̺¥Æ®¿¡ ´ëÇØ Subscribe ¸Þ¼Òµå¸¦ È£ÃâÇØ¾ß ÇÑ´Ù. ¸ðµç À̺¥Æ®µéÀ» ¸ðµÎ ¼ö½Å Çϱ⸦ ¿øÇÑ´Ù¸é SubscribeAll ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¸é µÈ´Ù. ÀϹÝÀûÀ¸·Î Subscribe, SubscribeAll ¸Þ¼Òµå´Â IStarUMLAddIn .InitializeAddIn ¸Þ¼Òµå ±¸Çö¿¡¼ È£ÃâÇÑ´Ù.
Add-In °³Ã¼´Â ¼ö½Å µî·ÏÇÑ À̺¥Æ®¸¦ ´õ ÀÌ»ó ¼ö½ÅÇÒ ÇÊ¿ä°¡ ¾øÀ» ¶§(°³Ã¼°¡ ¼Ò¸êµÉ ¶§ µî) ÀÚ½ÅÀÌ µî·ÏÇÑ ¸ðµç À̺¥Æ®µé¿¡ ´ëÇØ µî·ÏÀ» ÇØÁöÇØ¾ß ÇÑ´Ù. Subscribe ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ¼ö½Å µî·ÏÀ» ÇÑ °æ¿ì¿¡´Â Unsubscribe ¸Þ¼Òµå¸¦ »ç¿ëÇÏ°í, SubscribeAll ¸Þ¼Òµå¸¦ »ç¿ëÇÑ °æ¿ì¿¡´Â UnsubscribeAll ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© µî·ÏÀ» ÇØÁöÇÑ´Ù. ÀϹÝÀûÀ¸·Î Unsubscribe, SubscribeAll ¸Þ¼Òµå´Â IStarUMLAddIn.FinalizeAddIn ¸Þ¼Òµå ±¸Çö¿¡¼ È£ÃâÇÑ´Ù.
´ÙÀ½Àº EVK_ELEMENTS_ADDED, EVK_ELEMENTS_DELETED µÎ À̺¥Æ®¿¡ ´ëÇÑ ¼ö½Å µî·Ï°ú ÇØÁö¸¦ ÇÏ´Â ¿¹ÀÌ´Ù.
implementation function AddInExample.InitializeAddIn: HResult; begin EventPub.Subscribe(Self, EVK_ELEMENTS_ADDED); EventPub.Subscribe(Self, EVK_ELEMENTS_DELETED); ... Result := S_OK; end; function AddInExample.FinalizeAddIn: HResult; begin EventPub.Unsubscribe(Self, EVK_ELEMENTS_ADDED); EventPub.Unsubscribe(Self, EVK_ELEMENTS_DELETED); ... Result := S_OK; end;
°¢ À̺¥Æ®°¡ ¹ß»ýÇßÀ» ¶§ ÇØ´ç À̺¥Æ®¿Í °ü·ÃµÈ ¾Æ±Ô¸ÕÆ®(Argument)¸¦ ¾ò¾î¾ß ÇÒ Çʿ伺ÀÌ ÀÖ´Ù. ¿¹¸¦ µé¾î ¸ðµ¨¸µ ¿ä¼ÒÀÇ »ý¼º°ú °ü·ÃµÈ(EVK_ELEMENTS_ADDED) À̺¥Æ®°¡ ¹ß»ýÇßÀ» ¶§ ¾î¶² ¸ðµ¨¸µ ¿ä¼Ò°¡ »ý¼ºµÇ¾ú´ÂÁö¸¦ ¾Ë¾Æ¾ß ÇÏ´Â °æ¿ì µîÀÌ´Ù. IEventPublisher ÀÎÅÍÆäÀ̽º´Â À̺¥Æ® ¾Æ±Ô¸ÕÆ®¿Í °ü·ÃÇÏ¿© ´ÙÀ½°ú °°Àº ¸Þ¼ÒµåµéÀ» Á¦°øÇÏ°í ÀÖ´Ù.
¸Þ¼Òµå | ¼³¸í |
---|---|
GetEventArgModelCount (): Integer | À̺¥Æ®¿Í °ü·ÃµÈ ¸ðµ¨ ¿ä¼ÒµéÀÇ °³¼ö¸¦ ¹ÝȯÇÑ´Ù. |
GetEventArgModelAt(Index: Integer): IModel | À̺¥Æ®¿Í °ü·ÃµÈ ¸ðµ¨ ¿ä¼Òµé Áß¿¡¼ Index ¹ø° ¿ä¼Ò¿¡ ´ëÇÑ ÂüÁ¶¸¦ ¹ÝȯÇÑ´Ù. |
GetEventArgViewCount: Integer | À̺¥Æ®¿Í °ü·ÃµÈ ºä ¿ä¼ÒµéÀÇ °³¼ö¸¦ ¹ÝȯÇÑ´Ù. |
GetEventArgViewAt(Index: Integer): IView | À̺¥Æ®¿Í °ü·ÃµÈ ºä ¿ä¼Òµé Áß¿¡¼ Index ¹ø° ¿ä¼Ò¿¡ ´ëÇÑ ÂüÁ¶¸¦ ¹ÝȯÇÑ´Ù. |
GetEventArgDocument: IDocument | À̺¥Æ®¿Í °ü·ÃµÈ µµÅ¥¸ÕÆ®(Document) ¿ä¼Ò¿¡ ´ëÇÑ ÂüÁ¶¸¦ ¹ÝȯÇÑ´Ù. |
GetEventArgUnit: IUMLUnitDocument | À̺¥Æ®¿Í °ü·ÃµÈ À¯´Ö(Unit) ¿ä¼Ò¿¡ ´ëÇÑ ÂüÁ¶¸¦ ¹ÝȯÇÑ´Ù. |
Add-In¿¡¼ À̺¥Æ® ¼ö½ÅÀ» µî·ÏÇß´Ù¸é µî·ÏÇÑ À̺¥Æ®°¡ ¹ß»ýÇßÀ» ¶§ ÇÊ¿äÇÑ Ã³¸®¸¦ ÇØ¾ß ÇÒ °ÍÀÌ´Ù. StarUML™ ¾ÖÇø®ÄÉÀ̼ÇÀº µî·ÏµÈ À̺¥Æ®°¡ ¹ß»ýÇÒ ¶§ ¸¶´Ù ÇØ´ç Add-InÀÇ NotifyEvent ¸Þ¼Òµå¸¦ È£ÃâÇϸç, ¹ß»ýÇÒ À̺¥Æ®ÀÇ Á¾·ù¸¦ ÀÎÀÚ·Î Àü´ÞÇÑ´Ù. NotifyEvent ¸Þ¼ÒµåÀÇ ÀÎÀÚ·Î À̺¥Æ®ÀÇ Á¾·ù¸¦ Àü´ÞÇÏ´Â ÀÌÀ¯´Â Add-InÀÌ Çϳª ÀÌ»óÀÇ À̺¥Æ®¿¡ ´ëÇÑ ¼ö½Å µî·ÏÀ» ÇßÀ» °¡´É¼ºÀÌ Àֱ⠶§¹®ÀÌ´Ù. °¢ Add-InÀº NotifyEvent ¸Þ¼Òµå¿¡¼ À̺¥Æ®ÀÇ Á¾·ùº°·Î ÇÊ¿äÇÑ Ã³¸®¸¦ ÇÏ´Â ·ÎÁ÷(logic)À» ±¸ÇöÇÏ¸é µÈ´Ù.
´ÙÀ½Àº NotifyEvent ¸Þ¼Òµå¸¦ ±¸ÇöÇÑ ¿¹Á¦ÀÌ´Ù. ÀÌ ¿¹Á¦¿¡¼´Â StarUML™ ¾ÖÇø®ÄÉÀ̼ǿ¡ ¿¬°ü(UMLAssociation) ¿ä¼Ò³ª ÀϹÝÈ(UMLGeneralization) ¿ä¼Ò°¡ »ý¼ºµÇ¾úÀ» ¶§, °¢ ¿ä¼ÒÀÇ ¿¬°áÀÌ ÀǹÌÀûÀ¸·Î À¯È¿ÇÑÁö¸¦ °Ë»çÇÏ°í ÀÖ´Ù. (ÀÌ ¿¹Á¦´Â À§ÀÇ ¿¹Á¦µé°ú ¿¬°áµÇ¹Ç·Î Add-In °³Ã¼ÀÇ Á¤ÀǺκÐÀº À§ÀÇ ¿¹Á¦¸¦ Âü°íÇϱ⠹ٶõ´Ù.)
implementation function AddInExample.NotifyEvent(AEvent: EventKind): HResult; var M: IModel; Assoc: IUMLAssociation; Gen: IUMLGeneralization; End1, End2: IUMLClassifier; begin if AEvent = EVK_ELEMENTS_ADDED then begin if EventPub.GetEventArgModelCount = 1 then begin M := EventPub.GetEventArgModelAt(0); // Association if M.QueryInterface(IUMLAssociation, Assoc) = S_OK then begin End1 := Assoc.GetConnectionAt(0).Participant; End2 := Assoc.GetConnectionAt(1).Participant if End1.IsKindOf('UMLPackage') or End2.IsKindOf('UMLPackage') then ShowMessage('Packages cannot have associations.') ... end; // Generalization if M.QueryInterface(IUMLGeneralization, Gen) = S_OK then begin if Gen.Child.IsRoot then ShowMessage('Root elements cannot have parent elements.'); if Gen.Parent.IsLeaf then ShowMessage('Leaf elements cannot have child elements.'); end; end; end; Result := S_OK; end;
¡¡