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:
# 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: