Author Topic: Compound master help needed  (Read 2203 times)

0 Members and 1 Guest are viewing this topic.

sbdragoo

  • Newbie
  • *
  • Posts: 1
Compound master help needed
« on: August 19, 2014, 03:52:18 PM »
I am trying to create a master and am having difficulty figuring out how to do something.  The idea of the master is to be similar to what is documented here :  http://www.geospatialtraining.com/Newsletter/Fall%202005/ObjectModelDiagrams.htm .  The version I wish to create would be similar to the the interface named "Map" in the linked page. My original thoughts were to create nested containers, but that apparently cannot be done in a master.  I know how to create the icon that indicates the 'direction' of the property portion based on shape data for the individual properties. What I cannot figure is the following:
1. How do I create the individual sections of a master that will have a variable number of properties or methods in them(and re-sizes accordingly) and possibly include a first row in each?
2. How do I include each of the sections in a "top-level" master so that the end user only has to drag a single entity onto the drawing and enter the appropriate properties / methods?

I have searched visguy.com repeatedly as well as played "Ask the Googles" for the past couple of days without any luck on this. Part of the issue is the terminology I am thinking in corresponds to so many different disciplines with different definitions that the search results have to be re-filtered manually....

Can anyone point me in the right direction on this? 

No, ESRI does not supply a template, stencil, masters for these... we've tried that route already.

Many Thanks in Advance!!

Scott B Dragoo
Director, Client Facing BI
RealPage, Inc
Chicago Office
scott.dragoo <ampersand> realpage.com

The most exciting phrase to hear in science, the one that heralds the most discoveries, is not 'Eureka' but 'That's funny...' - Isaac Asimov

Yacine

  • Hero Member
  • *****
  • Posts: 2991
Re: Compound master help needed
« Reply #1 on: August 20, 2014, 12:52:47 AM »
Hi Scott,
that's an interesting exercise.

You could do the following:
  • setup the container as group and its behaviour to "accept dropped shapes". Give it a proper name ("MapContainer"??)
  • setup the subshape with a behaviour to allow it to be dropped in groups. Give it also a meaningfull name ("Entity").
  • Open the VBA-editor. In the ThisDocument module add 2 subs "Document_ShapeAdded" and "Document_ShapeParentChanged".
  • Document_Shape added will check if Shape.Master.Name = "Entity", if so then check if it has been dropped into a container: Shape.Parent.Master.Name = "MapContainer", if so call a form in which you can enter the entity's data. This would probably be name of the entity and its value. Or only a value, keeping the name of the property constant.
  • The form would then add a custom property to the container and insert the new data in it. The Entity on the other hand would just get its text linked to the new custom property of the parent.
  • The ID of the parent shape will be written in a user field as text for later handling (see below)
  • The Document_ParentChanged sub will make sure that you can remove entitiesand their respective properties. It will check for the right master name of the shape. If the Entity is added to a container, then do the assignment stuff described earlier. If the new parent is not a right container, then read the user.parent, remove the according custom property of the container, refresh the user.parent field in the entity. The question would then be, whether the custom property should be kept in the entity shape or just removed.
Voila!

Some additional features:
  • You might want to add some protections to both the container and the entity (eg Text)
  • There might be an automatic sorting and positioning of the entities. (Last added entity to the bottom, or sorted alphabetically) You may as well add an order field to the entities,...)
Regards,
Yacine

PS: In addition to removing entities by dragging, the possibilities to removing them by deleting should be considered as well. So the Document_BeforeSelectionDelete would need to be handled too.
« Last Edit: August 20, 2014, 01:19:41 AM by Yacine »
Yacine