Category Archives: Diagram Editor

Installations All Around the World

I just wanted to post an updated image showing you WHERE the Eclipse Schema Diagram Editor was installed during the last half year.  I must say I’m both impressed and surprised (ad of course pleased) to see that my software has been installed all around the world.  I’m curious whether you installed the diagram editor because you’re using IDMS or whether you’re in the process of writing a graphical editor for Eclipse with the Graphical Editing Framework (GEF) and just wanted to look at an example… please let me know by commenting on this post ! 😉

installs

Advertisements

Old Update Site Removed

The old update site (http://users.skynet.be/dmlj) has already been removed because with 30 installs/updates last month, I think most of you can find their way to the new update site at Bintray (https://dl.bintray.com/kozzeluc/dmlj/latest).

The following illustration (taken from Bintray) shows where the Eclipse CA IDMS™/DB Schema Diagram Editor has been installed or updated last month :

installs_20170429_122000

The archived update site was downloaded in Germany, but the above map is for the live update site only (that’s why Germany is white).  If your country is white but you would like to see it colored, make sure to install or update the diagram editor somewhere this May 😉

Update Site has moved to Bintray

Because the space I have available from my internet provider is only 50Mb and because we started experiencing problems when installing due to (I guess) a firewall issue, I needed to look for an alternative for the diagram editor’s Eclipse update site.  Bintray offers a lot more space, so that from now on I can publish each new version while retaining the previous ones (the actual update site however only contains the latest version).

Apart from installing through HTTPS instead of HTTP, you shouldn’t notice too many differences when installing the product for the first time via the Eclipse Marketplace Client, nothing has changed in that respect (I hope you don’t have too much trouble because of HTTPS, you might need to talk to your firewall guys or download the archive with your browser).

If you already have installed the diagram editor and you would like to continue to receive updates, you should change the update site in the Eclipse preferences.  Look for the update site definition and change the URL from http://users.skynet.be/luc_h/dmlj to https://dl.bintray.com/kozzeluc/dmlj/latest :

new_update_site

If you make this modification and run ‘Help/Check for Updates’, you can update to the new version 3.1.0.  The only new feature is the ‘Copy to Clipboard‘ menu item, which lets you copy your entire diagram to your clipboard, allowing you to paste it in the graphics program of your choice (Paint, …).  I think this can be of help when cutting up your diagram into several pages (because printing large diagrams is still problematic in the diagram editor).

For now, version 3.0.2 will stay for some time at the old update site URL, but I won’t put any new version there.  So you really should change your update site definition.

The installation manual has been updated.  You can now download the update site archive from Bintray and stash it on your local file system; this wasn’t possible in the past.

Record Structures

You can change record structures with the Record Elements Import wizard.  This wizard has become more powerful in version 3.0.0 and must now be started from the Properties view (the menu item in the Diagram menu is gone forever).  There are 2 area’s in the Properties view that you can use to go ahead with modifying the structure of any record :

  • On the ‘General‘ tab :

record-general-properties

Click on the ‘Edit record element(s)‘ hyperlink to open the import wizard.

  • On the ‘Length‘ tab :

record-length-properties

You can click on either the data length or control length values to start the wizard.

Once the wizard is active, there are a few ways in which you can go ahead with changing the record structure; new in version 3.0.0 are :

  • directly specifying record elements DSL – you need to be familiar with the record element DSL.
  • connecting to a live IDMS dictionary on (one of) your mainframe(s) and use the structure of any record synonym that is defined there – note that you need to have either the SQL Option or the (free) SQL Web Connect feature for this).

import-record-elements-wizard-page-1

You will notice that, in contrast to previous versions of the schema diagram editor, the current record structure (on the wizard’s first page) is shown in record elements DSL format.  This used to be regular IDMS schema syntax, but the DSL is a litte more compact and you will thus have a better overview of the current record structure (I think).

If you choose to directly edit the record elements DSL, you will have to press the Validate button before you can proceed.  Any errors in the syntax will prevent you to advance to the final page and you will get a groovy error message that indicates your syntax is (somewhere) in error.  Pressing the Reset button undoes any changes you made.

import-record-elements-wizard-page-2a

When you go for the IDMS dictionary MO, you will be presented a list of dictionaries (that you defined in your Eclipse workspace) first, and after selecting a dictionary you will be able to search for a record synonym (no list here since that would take far too long to produce, at least if you have a lot of record synonyms in your dictionary).  I’m sorry I cannot show a screenshot of the record synonym search page (no mainframe at home, sorry).

import-record-elements-wizard-page-2b

The last wizard page gives a preview of the new record structure (in my example I changed the PICture of  the EMP-ID-0415 element and added the NEW-FIELD-0415 element).  It’s up to you to go ahead with the change  or not (by pressing either the OK or Cancel button) (but thank God you still have Eclipse’s undo/redo functionality available should you change your mind).

import-record-elements-wizard-page-3

To conclude, a word about the record elements DSL itself.  You may find that it looks a little bit like regular IDMS schema syntax and you’re right, with the difference that you MUST code every aspect for a given element on the SAME LINE.  The best advice I can give you is to look at the record elements DSL for some of your schemas and you’ll soon see that there is no magic.

Some areas of the record elements DSL need some explanation however, e.g. cases where you have base records, for which you define record synonyms (with suffixes or prefixes, but I’m not sure how well the schema diagram editor handles the latter), that you use in your schemas (this is how we’ve worked for the last 30 years or so).  You’ll see that the base element name will appear in parentheses following the element (synonym) name, like so :

02 IDMS-RELEASE-7301 (IDMS-RELEASE) picture 9

Other cases involve indexes on OCCURS clauses :

02 ELEMENT-1 picture X(8)
   occurs 5 indexedBy ELEMENT-WITHOUT-BASE-NAME, 
                      ELEMENT-WITH-BASE-NAME-1
                         (INDEX-ELEMENT-BASE-NAME-1), 
                      ELEMENT-WITH-BASE-NAME-2
                         (INDEX-ELEMENT-BASE-NAME-2)

Remember to code everything that belongs to 1 element on the same line, so just assume that all of the above is on the same line.

I believe the diagram editor is now (and finally) in a stage that it can be used to design IDMS databases from scratch and edit existing ones in every facet.

Version 3.0.0 is out

It’s been a while since the previous version (2.1.0) was published, but I’ve been working quite hard on this new version for the last 5 months or so.

Why a new major version ?  Because the DSL that was introduced in version 2.1.0 now has its own file extension :  .schemadsl.  You can now save diagrams in this new file format and you’ll see that it is a LOT more human readable than the .schema file extension that was (and still is) the standard.  A drawback of the new file format is that it takes longer to load a diagram; not such a big deal for small diagrams, but I’m sure you’ll notice the difference for IDMSNTWK. The big advantage however is that it now makes sense to compare a .schemadsl diagram with a previous version (which you’ve put aside or kept in a version control system like Subversion or GIT) AND you can tweak the file yourself. You can set the default file extension in the preferences and can easily switch between the 2 using the File menu’s ‘Save As…’ menu item (just change the file extension).

Another big improvement in the new version is the ability to manage a record type’s elements :  besides copying the structure from another record in 1 of your diagrams, you can now enter the record elements DSL yourself or connect to a CA IDMS dictionary and use a record synonym’s elements.

An overview of all what’s new and noteworthy in (GIT) commit comment style :

  1. Record element management changes :
    • Add ‘Edit record element(s)’ bottom hyperlink to general record properties
    • Invoke import record elements wizard from record length property section
    • Replace schema syntax by rec. el. DSL on import rec. elements wizard’s 1st page
    • Add the preview page to the import record elements wizard
    • Develop the ‘Import from DSL’ record elements import tool
    • Develop the import record elements from a mainframe dictionary tool
    • Set help available to false for the import record elements wizard
    • Change undo/redo ‘Import Record Elements’ to ‘Edit Record Elements’
  2. DSL changes :
    • Suppress area body in schema DSL when empty (e.g. area DDLDCTRC in IDMSNTWK)
    • Fine-tune the area and record procedure call related DSL
    • Restyle the record elements DSL syntax
  3. Groovy :
    • Upgrade Groovy to v2.4.7
  4. Miscellaneous changes :
    • Implement the ‘edit schema comments’ feature
    • Develop the dialog to maintain an area or record’s procedure call specs
    • Provide read-only feature for the diagram editor
    • Diagrams can be opened from the SVN Repositories view (read-only)
    • Add support for the .schemadsl file extension
    • Add diagram preferences page and default file extension preference
    • Adapt New Schema Wizard to take default file extension into account
    • Adapt Import/Update Schema Wizard to take default file extension into account
    • Closing all .schemadsl files on workbench shutdown is configurable
    • Provide model diagram for the current Ecore Diagram Editor
  5. Bug fixes :
    • Rulers are ignored in the DSL and are lost when saving to .schemadsl
    • Prevent NullPointerException when saving with Eclipse Neon

I’ll try to elaborate on some of these items in future posts…

Reworked record DSL

The next version of the diagram editor is in development.  Actually, development work for that next version was started right after publishing the current version, some 4 months ago already, but was paused after about a month.  I’ve been working on a (private) project that I’m determined to deliver some day (for myself) in the future :  my own version of Microsoft Money, a product that is no longer in support for a number of years and that I’m still using for my personal finances.  For those interested, it is an Eclipse e4 RCP application that I’m writing entirely in Groovy and that is backed by a Neo4j graph database.

A first feature of the new version will be the ability to view a diagram directly from the SVN Repository Exploring views of both Subclipse and Subversive (both are Subversion clients, needed for version control; you usually install only one of these when working with Subversion).  Subclipse is the one we use at the office and some of our developers, while switching to modern tools like Eclipse and the Compuware/Topaz Workbench for their daily development tasks, have brought this issue to light.  Before this feature, where the diagram editor actually becomes a diagram viewer (the introduction of read-only mode), you needed to checkout the whole project containing the diagram of interest, thus soon you will be able to view a diagram directly from your Subversion repository.

Knipsel

The above image shows the IDMS demo database schema opened via the Subversive plug-in.

The ‘schema’ file extension is currently the only file format supported for storing your diagrams.  That format is the easiest way to save Ecore models (like your diagrams) from a programmatic point of view, but the resulting file (XML/XMI) is very hard to read and tweak by a human being. For that reason, the ‘schemadsl’ file extension will be introduced.  You will be able to choose the file format when creating/saving/importing diagrams in the next version.  The contents of the ‘schemadsl’ file format is the DSL that was introduced in version 2.1.0.  You will see that that format is far more understandable and tweakable than the ‘schema’ file format. The syntax for defining a record’s elements will probably change and become more terse, as in the following screen shot :

New record DSL

What I hope to achieve with this new DSL syntax is – apart from better readability, better performance, because loading the IDMSNTWK schema from its DSL syntax takes a lot longer than loading the same diagram from its ‘schema’ file…

VERSION 2.1.0 PUBLISHED

The changes in the new version are :

  • Bug fix: import from syntax can fail when deriving prefix/suffix.

    When similar records were defined, where the name of 1 record was equal to the first characters of another, an internal error occurred.

  • Bug fix: Conflicting handlers for org.eclipse.gef.zoom_in/out errors in the log.

    This was an issue that has been there for a couple of years in the case where more than diagram is opened, but should be solved now (not that it did any harm).

  • Stop virtually locking connection part endpoints.

    For connection parts without a source and/or target endpoint, a kind of ‘virtual endpoint’ was set when creating the owner and member records and this endpoint location (an offset to the record figure) never changed.  By doing so, it was possible to layout a connection part and get a different layout when closing and reopening the diagram.

  • Add Font Size Adjustment feature.

    In the Preferences, you can now correct the font size in case you have specified a percentage other than 100 for the text size in their operating system.

    Note that all dialogs are made resizable to make it possible for the user to use all controls.

    This has only been tested on Windows 7 and 10.

  • Go for a POM-less Tycho build and implement the recommended folder structure that is widely used in Eclipse projects.

    See this blog article.  We’re staying with Maven and thus are not (yet) moving to Gradle as the build tool.  The project folder structure has changed dramatically.

  • Include the DSL plug-in in the build.

    This is the interesting part of the new version.  You’ll see that a DSL tab is added in the Properties view for the schema, areas, records and sets.  In that tab you can get an impression of what the DSL is all about; think of it as a much shorter way of defining an IDMS schema and its diagram configuration.  See my previous blog post. More work on the DSL will follow…

    From now on, besides Java code, the Eclipse/DB Schema Diagram Editor contains code that is written in Groovy.  This needed some tweaking in the build of course 🙂