Follow Up "Multiple Inheritance" : Constraints on drawing the connectorFollow Up "Multiple Inheritance" : Constraints on drawing the connectorRE: Follow Up "Multiple Inheritance" : Constraints on drawing the connectorSabin Popescuhttps://www.adoxx.org/live/c/message_boards/find_message?p_l_id=&messageId=200662013-06-24T10:16:38Z2013-06-24T09:17:00ZThe event "BeforeCreateRelationInstance" is triggered <em>before</em> a relation (connector) is created. You can an event handler for this event in the library attribute "Modi" and exit the creation process with the code "-1". Thus the process of creating the relation instance is aborted without displaying any error message.<br />An example of a possible implementation of the event handler can be seen below:<br /><br /><div class="code"><span class="code-lines"> 1</span>...<br /><span class="code-lines"> 2</span>ON_EVENT "BeforeCreateRelationInstance"<br /><span class="code-lines"> 3</span>{<br /><span class="code-lines"> 4</span>#Event triggered before a relation instance (connector) is created<br /><span class="code-lines"> 5</span>#componentid contains the ID of the affected component<br /><span class="code-lines"> 6</span>#relationclassid the ID of the new relation's class<br /><span class="code-lines"> 7</span>#frominstid the ID of the from-instance of the relation<br /><span class="code-lines"> 8</span>#toinstid the ID of the to-instance of the new relation. <br /><span class="code-lines"> 9</span>#The Event Handler returns one of these values: 0 - no abortion, -1 - abortion without error, -2 - abortion with error, >0 - abort with core error code. <br /><span class="code-lines">10</span><br /><span class="code-lines">11</span>SET id_relationclassid: (relationclassid)<br /><span class="code-lines">12</span>SET id_frominstanceid: (frominstid)<br /><span class="code-lines">13</span>SET id_toinstanceid: (toinsid)<br /><span class="code-lines">14</span>SET id_componentid: (componentid)<br /><span class="code-lines">15</span><br /><span class="code-lines">16</span>CC "Core" GET_CLASS_NAME classid: (relationclassid)<br /><span class="code-lines">17</span> # --> RESULT ecode: intValue classname: strValue isrel: intValue <br /><span class="code-lines">18</span>SET str_classname: (classname)<br /><span class="code-lines">19</span> IF (str_classname = "any2any")<br /><span class="code-lines">20</span> {<br /><span class="code-lines">21</span> #determine the interref name<br /><span class="code-lines">22</span> CC "Core" GET_CLASS_ID objid: (id_frominstanceid) <br /><span class="code-lines">23</span> #--> RESULT ecode: intValue classid: intValue isrel: intValue . <br /><span class="code-lines">24</span> SET id_fromClassID: (classid)<br /><span class="code-lines">25</span> CC "Core" GET_CLASS_NAME classid: (id_fromClassID) <br /><span class="code-lines">26</span> #--> RESULT ecode: intValue classname: strValue isrel: intValue .<br /><span class="code-lines">27</span> SET str_fromClassName: (classname)<br /><span class="code-lines">28</span> CC "Core" GET_CLASS_ID objid: (id_toinstanceid) <br /><span class="code-lines">29</span> #--> RESULT ecode: intValue classid: intValue isrel: intValue .<br /><span class="code-lines">30</span> SET id_toClassID: (classid) <br /><span class="code-lines">31</span> CC "Core" GET_CLASS_NAME classid: (id_toClassID) <br /><span class="code-lines">32</span> #--> RESULT ecode: intValue classname: strValue isrel: intValue .<br /><span class="code-lines">33</span> SET str_toClassName: (classname)<br /><span class="code-lines">34</span> <br /><span class="code-lines">35</span> IF (str_fromClassName = "A") <br /><span class="code-lines">36</span> {<br /><span class="code-lines">37</span> IF (str_toClassName = "B") <br /><span class="code-lines">38</span> {<br /><span class="code-lines">39</span> EXIT -1<br /><span class="code-lines">40</span> }<br /><span class="code-lines">41</span> IF (str_toClassName = "A") <br /><span class="code-lines">42</span> {<br /><span class="code-lines">43</span> EXIT -1<br /><span class="code-lines">44</span> }<br /><span class="code-lines">45</span> IF (str_toClassName = "E") <br /><span class="code-lines">46</span> {<br /><span class="code-lines">47</span> EXIT -1<br /><span class="code-lines">48</span> }<br /><span class="code-lines">49</span> IF (str_toClassName = "Y") <br /><span class="code-lines">50</span> {<br /><span class="code-lines">51</span> EXIT -1<br /><span class="code-lines">52</span> }<br /><span class="code-lines">53</span> }<br /><span class="code-lines">54</span> ELSIF (str_fromClassName = "B") <br /><span class="code-lines">55</span> {<br /><span class="code-lines">56</span> IF (str_toClassName != "Y") <br /><span class="code-lines">57</span> {<br /><span class="code-lines">58</span> EXIT -1<br /><span class="code-lines">59</span> }<br /><span class="code-lines">60</span> }<br /><span class="code-lines">61</span> ELSIF (str_fromClassName = "E") <br /><span class="code-lines">62</span> {<br /><span class="code-lines">63</span> IF (str_toClassName = "A") <br /><span class="code-lines">64</span> {<br /><span class="code-lines">65</span> EXIT -1<br /><span class="code-lines">66</span> }<br /><span class="code-lines">67</span> IF (str_toClassName = "B") <br /><span class="code-lines">68</span> {<br /><span class="code-lines">69</span> EXIT -1<br /><span class="code-lines">70</span> }<br /><span class="code-lines">71</span> } <br /><span class="code-lines">72</span> }<br /><span class="code-lines">73</span>}<br /></div>Sabin Popescu2013-06-24T09:17:00ZFollow Up "Multiple Inheritance" : Constraints on drawing the connectorhttps://www.adoxx.org/live/c/message_boards/find_message?p_l_id=&messageId=200582014-03-27T11:17:23Z2013-06-24T09:13:36ZWhen there is not a relation (an attribute in my case) that connects two classes and i am trying to do so, a window without attributes appears and then when the user clicks on "Cancel" there is a connection (a simple arrow) between the classes but without any actual meaning. Could I avoid it and prevent the connector to be drawn if it is not allowed?2013-06-24T09:13:36Z