Registering and Removing ACom Triggers

SIS Desktop commands fire triggers which can be monitored by GisLink applications; these can be viewed in the Developer Control bar.

To add a trigger to your Python GisLink declare a Trigger Handler to register a function to a trigger.

Note: When not using the trigger it is important to remove the handler.

Here is a worked example used to register ACom triggers:

Copy
# Sample from https://community.cadcorp.com/t/registering-acoms/1002

import gislink
import sys

# Set globals read by the Cadcorp SIS GisLink engine
cadcorp_version = '1.0'          # SIS property
cadcorp_vendor = 'miguel1504geo' # SIS property

def log(*args):
    sys.stderr.write("[MyGisLinkApp] %s\n" % " ".join(map(str, args)))

class MyGisLinkApp(gislink.Program):
    def __init__(self):
        name = "Test"
        super().__init__(name=name)
        self.application.add_trigger('AComSelectSlide::Snap', self.on_trigger)
        log('Created app', name)

    def on_trigger(self, event):
        log("Triggered", event)
        log('About to save, will prompt "File Save As"...')
        event.map_manager.SwdSave()
        log("Saved")
        self.application.remove_trigger('AComSelectSlide::Snap', self.on_trigger)

This results in: