Custom drop target

The automatically generated designer in DSL assumes that you have to put the shape on the surface and then eventually connect to others.

Statements, in microbasic, are executed sequentially so I want the designer to attach my shapes to one previously placed, dropping it in the link between two shapes.

To drive the shapes drop behaviour I have to modify where the shapes are allowed to be dropped.

Setting the attribute UsesCustomAccept does this (or at least I hope!!!).

<?xml version="1.0" encoding="utf-8"?>
<Dsl dslVersion="1.0.0.0" Id="bd36672a-93b9-4dce-82f8-2551432eb244" Description="Description for myns.Language1.Language1" ...>
  <Classes>
    <DomainClass Id="3a3a6bfd-90ef-4418-91a7-3792d2201167" Description="The root in which all other elements are embedded. Appears as a diagram." ....>
      <ElementMergeDirectives>
        <ElementMergeDirective UsesCustomAccept="true">
          <Notes>Creates an embedding link when an element is dropped onto a model. </Notes>
          <Index>
            <DomainClassMoniker Name="ExampleElement" />
          </Index>
          <LinkCreationPaths>
            <DomainPath>ExampleModelHasElements.Elements</DomainPath>
          </LinkCreationPaths>
        </ElementMergeDirective>
      </ElementMergeDirectives>
    </DomainClass>

As usual regenerate the templates and recompile.

An error appears...

Error    1    'myns.Language1.ExampleModel' does not contain a definition for 'CanMergeExampleElement' and no extension method 'CanMergeExampleElement' accepting a first argument of type 'myns.Language1.ExampleModel' could be found

Clicking on the error you are taken to the  call to the method that you have to implement. Using vs is easy to do this..hover your mouse to the little rectangle at the beginning of the method name.

 

CanMerge

Copy the generated method stub to your partial class and implement it.

How? I don't know...Stay tuned...

posted @ venerdì 9 maggio 2008 23:59

Print
Comments have been closed on this topic.
«aprile»
domlunmarmergiovensab
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011