This is an old revision of the document!
This is a JavaScript module that allows you to implement interlocking easily in guiDesigner & iViewer.
What is interlocking when we refer to a graphical user interface (GUI)?
Basically, it is when only one join can be active at a time in a group of joins.
E.g. you have 4 buttons in a GUI, each that select a source. Only one source can be selected at a time, so you would use interlocking to make sure that only one join can be active at a time. When a different join is activated, it first deactivates all other joins in that group.
These files are designed to help you implement interlocking in your projects.
It contains a demo gui and all the required JavaScript files.
Below is a screen shot of the .gui file
The below instructions are included in the Interlock.js file.
// A simple module to manage interlock groups in iViewer
//
// The module provides a suite of simple calls to manage interlocks:
//
// * to create an interlock group:
Interlock.create("group name", join1, join2 ... joinN);
// * to set the currently selected item in an interlock group:
Interlock.select("group name", join);
// * to be notified when the current selection of an interlock group changes:
Interlock.watch("group name", function(group name, newSelectedJoin, previousSelectedJoin) {
// ... do something here ...
});
// * to stop being notified for an interlock group
Interlock.unwatch("group name");
// * to get the current selected join for an interlock group
var join = Interlock.get("group name");
// * to remove an interlock group (remove interlock functionality):
Interlock.remove("group name");
// Author: Florent Pillet, CommandFusion