Assemble ORM model from multiple pages

  • Christina

    Christina - 2007-05-31

    I have used NORMA to have an ORM model broken in multiple pages.
    Is there any way to assemble the complete model in just one page?
    I cannot also print all the pages at once.
    The printing options i have print just the current page.


    • Kevin M. Owen

      Kevin M. Owen - 2007-05-31

      You can currently use the Model Browser (if it is not showing, right click on an ORM diagram, select ORM Tool Windows, then ORM Model Browser) to drag and drop individual model elements onto a diagram / page. We will be adding the ability to select multiple elements fom the Model Browser and drag them all on at once in the future.

      For now, the easiest way to get everything onto a page is to add a new page to the model, and then save it. Open up the .orm file in a text editor (like notepad), and find the last ormDiagram:ORMDiagram element in the file (it should usually be within the last few lines of the file). Add a new attribute named AutoPopulateShapes to the ORMDiagram element, and give it the value "true". At that point, you can save the file, and re-open it in NORMA, and it will put a shape for every element in the model onto that page.

      The ormDiagram:ORMDiagram element that you're looking for should resemble this (with the ...'s replaced by other information that will vary from model to model):
      <ormDiagram:ORMDiagram id="..." IsCompleteView="false" Name="..." BaseFontName="..." BaseFontSize="...">
          <ormDiagram:Subject ref="..." />

      Once you've added the AutoPopulateShapes attribute, it should look like this:
      <ormDiagram:ORMDiagram id="..." IsCompleteView="false" AutoPopulateShapes="true" Name="..." BaseFontName="..." BaseFontSize="...">
          <ormDiagram:Subject ref="..." />

    • Brian Nalewajek

      Brian Nalewajek - 2007-05-31


      I see K.O. has given you the answer to your question.  I just wanted to add some comments about multi-page vs single-page ORM diagrams. 

      In general, I think ORM diagram that are intelligently segregated into important sub-model pages are far more useful than a highly populated single graphic representation.   Perhaps, as advanced graphical functionality is incorporated into future versions of the NORMA tool, this will change.

      Part of what makes an ORM graphical representation useful is the carefully thought out manner in which the elements are arranged and grouped.  I've yet to see an automatic arrangement of a set of elements from a complicated model that is anywhere near as informative as one fashioned by a human who understands the the model (even given the range of skill levels for that).

      Of course, you can take the elements that have been auto-arranged on a page and drag and twist them to a more presentable form, but good luck with that!

      Even getting the sub-model segments that you carefully laid out on separate pages arranged on to a single page would, I think, be of limited use.  What will be more useful is when abstraction layering is provided for by the tool.  Then, a page of graphical elements, summarized by a single element at the chosen level of abstraction, can be used as part of a meaningful representation of like-level elements.  Better still, is when the any model element's graphical representation can have its abstraction level raised or lowered with something as simple as a mouse over. I think that the technology base for implementing something like this is becoming available, and that will be something to see!

      Looking forward to that day, I think it will help to continue to segregate logically related elements of an ORM model into page sized units.  The logic will be easier to preserve when abstraction layering is available; and makes for better models in the meantime.

      Your question about printing a set of selected (or all), pages is a good one, though.  I didn't see an answer to that in Kevin's reply - I can't recall if I've tried that myself yet.  BRN..

      • Kevin M. Owen

        Kevin M. Owen - 2007-05-31

        Oops, you're right, I forgot to provide an answer to the printing part of the question.
        Unfortunately, the answer (currently) is that we only support printing the current page.
        We pick up the printing support more or less for free from DSL Tools, whereas the multi-page models is all our own code. Because of this, the printing support doesn't know that there are multiple pages. We briefly looked into providing better support here, but it looked like it would be quite a bit of work. Most of the DSL Tools printing support isn't extensible, so we would instead have to reimplement it ourselves.
        We could pretty easily* add a command that will print all pages. You wouldn't get the nice dialog that lets you select the printer and options and all that, but you at least wouldn't have to manually print every page. Would that be helpful at all?

        *At least I think we could from what I've looked at so far. No promises, though.

    • Matthew Curland

      Matthew Curland - 2007-06-19

      If you want to preserve formatting for different parts of your diagram:
      1) Add a new diagram in the tool
      2) Choose 'Window/New Window' (standard VS menu item on the menu bar)
      3) Right click in the tab for the window and choose 'New Horizontal Tab Group'
      4) You can now click through your old diagrams, select all (Ctrl-A) and then drag the shapes to the new diagram, positioning as you see fit.

      The 'AutoPopulateShapes' option is also very viable. We added this for automatically importing models from other products that had no model information, but it could definitely come in handy here as well. -Matt


Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks