The Meta-Environment API
00001 #ifndef __MODULE_SELECTION_LISTENER__ 00002 #define __MODULE_SELECTION_LISTENER__ 00003 00004 #include <navigator.idef> 00005 #include <graph-painter.idef> 00006 #include <moduledetails.idef> 00007 #include <undefined.h> 00008 00009 process SynchronizeModuleSelection(GraphId: term) is 00010 let 00011 Event: attribute-changed-event, 00012 EventModuleId: module-id, 00013 ModuleId: module-id 00014 in 00015 ModuleId := UNDEFINED 00016 . subscribe(nav-module-selected(<term>)) 00017 . subscribe(gp-node-selected(<str>,<term>,<term>)) 00018 . MM-Subscribe-Attribute-Changed(<module-id>,<term>,<term>,<term>,<term>) 00019 . 00020 ( 00021 rec-note(nav-module-selected(ModuleId?)) 00022 . snd-msg(gp-select-node("import-graph", GraphId, ModuleId)) 00023 . ShowModuleDetails(ModuleId) 00024 + 00025 rec-note(gp-node-selected("import-graph", GraphId, ModuleId?)) 00026 . snd-msg(nav-select-module(ModuleId)) 00027 . ShowModuleDetails(ModuleId) 00028 + 00029 rec-note(mm-attribute-changed(Event?)) 00030 . ACE-GetModuleId(Event, EventModuleId?) 00031 . 00032 if equal(ModuleId, EventModuleId) then 00033 ShowModuleDetails(ModuleId) 00034 else 00035 tau 00036 fi 00037 ) 00038 * delta 00039 endlet 00040 00041 process ShowModuleDetails(ModuleId: module-id) is 00042 let 00043 Attributes: list 00044 in 00045 MM-GetAllAttributes(ModuleId, Attributes?) 00046 . snd-msg(md-set-details(Attributes)) 00047 endlet 00048 00049 #endif /* __MODULE_SELECTION_LISTENER__ */