Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 15 Next »

Message data sent to iframe is expected to be a JSON object with a messageName string and some message dependent strings.

{
  messageName: "nameOfTheMessage",
  ...
}

Supported messages

runcommand

Run a command in Kudo:

where resultMessage: if specified, the message is posted to the iframe parent when command execution is done and messageId: if specified, it is passed to resultMessage

var message = {
  messageName: "runcommand",
  commandString: "_YourCommand",
  resultMessage: "nameOfPostedResultMessage", //optional
  messageId: "messageId" ;//optional
}
window.postMessage(message, '*');

You can also pass parameters to your command like this:

 commandString: "_YourCommand Param1 Param2"

or

commandString: "_YourCommand\nParam1\nParam2"

 Example message to add a line
var message = {
  messageName: "runcommand",
  commandString: "_LINE 0,0 10,10 "
}
window.postMessage(message, '*');

Note: Only whitelisted commands are allowed to be run from the client side by runcommand message. To whitelist a command, add it to Default Files/OEM Commands/commands.xml (see Customization package and https://graebert.atlassian.net/l/cp/EUUwZ9r2

<?xml version="1.0" encoding="UTF-8"?>
<commands>
 <OEM name="graebert">
   <command name="_XEREPLACEOPEN"/>
   <command name="_DOATTACHMENT"/>
   <command name=" _YourCommand"/>
 </OEM>
</commands>

runlisp

Execute the passed Lisp expression:

where resultMessage: if specified, message is posted to iframe parent when lisp execution is done

and messageId: if specified, it is passed to resultMessage

var message = {
messageName: "runlisp",
lispExpression: "lispExpression",
resultMessage: "nameOfPostedResultMessage", //optional
messageId: "messageId"; //optional
}
window.postMessage(message, '*');

eventRegister/eventDeRegister

Event types: commandEvent, sysVarEvent, lispEvent, drawingEvent, selectionEvent, drawingModifiedEvent

You can find available events on the event page. See https://graebert.atlassian.net/wiki/x/QAFdRg page for more details about events.

eventRegister

Register for receiving different types of additional events notifications.

where eventName will be the event type which you want to register:

var message = {
messageName: "eventRegister",
eventName: "commandEvent";//one of the above event types
}
window.postMessage(message, '*');

eventDeRegister

Deregister to stop receiving different types of additional events notifications.

where eventName will be the event type which you want to deregister:

var message = {
messageName: "eventDeRegister",
eventName: "commandEvent";//one of the above event types
}
window.postMessage(message, '*');

Upgrading/Downgrading

Upgrading: To change from View mode to Edit mode

Downgrading: Change from Edit mode to view mode

You can update the drawing state using send post message from iframe parent

where state can be “view” or “edit”

var message={
messageName= “stateChanged”,
state = “view”;
}
window.postMessage(message, '*');

setvariable **

Change a variable value

drawingdescription**

Trigger creation of drawing description

** Not implemented yet

  • No labels