20 #ifndef _GUIOBSERVERS_HXX_
21 #define _GUIOBSERVERS_HXX_
55 class SalomePythonNode;
68 class InputDataStreamPort;
69 class OutputDataStreamPort;
71 class ComponentInstance;
73 class HomogeneousPoolContainer;
116 class SubjectReference;
125 virtual void select(
bool isSelected);
127 virtual std::string getName();
128 virtual bool setName(std::string name);
129 virtual bool setProperties(std::map<std::string, std::string> properties);
130 virtual std::map<std::string, std::string> getProperties();
131 virtual std::vector<std::string> knownProperties();
133 virtual void setParent(
Subject* son);
134 virtual bool destroy(
Subject *son);
135 virtual void loadChildren();
136 virtual void loadLinks();
137 virtual void addSubjectReference(
Subject *
ref);
138 virtual void clean(
Command *command=0);
139 void localclean(
Command *command=0);
140 void registerUndoDestroy();
143 static void erase(
Subject* sub,
Command *command=0,
bool post=
false);
145 virtual void setProgress( std::string newProgress );
160 virtual void select(
bool isSelected);
162 virtual void incrementSubjects(
Subject *subject);
163 virtual void decrementSubjects(
Subject *subject);
166 static std::string eventName(
GuiEvent event);
167 static void setEventMap();
179 virtual void select(
bool isSelected);
208 virtual std::string getName();
209 virtual bool setName(std::string name);
212 virtual void clean(
Command *command=0);
213 void localclean(
Command *command=0);
217 virtual bool setValue(std::string value);
218 void setExecValue(std::string value);
219 std::string getExecValue();
220 void registerUndoDestroy();
234 virtual bool setValue(std::string value);
247 virtual bool setValue(std::string value);
258 virtual bool setProperties(std::map<std::string, std::string> properties);
274 virtual bool setProperties(std::map<std::string, std::string> properties);
294 virtual bool setProperties(std::map<std::string, std::string> properties);
295 virtual std::map<std::string, std::string> getProperties();
296 virtual bool reparent(
Subject* parent);
297 virtual bool copy(
Subject* parent);
298 virtual std::string getName();
299 virtual bool setName(std::string name);
301 virtual void clean(
Command *command=0);
302 void registerUndoDestroy();
311 void localclean(
Command *command=0);
314 virtual void removeExternalLinks();
315 virtual void removeExternalControlLinks();
316 virtual void saveLinks();
317 virtual void restoreLinks();
318 virtual bool putInComposedNode(std::string name,std::string type,
bool toSaveRestoreLinks=
true);
319 virtual int isValid();
320 void setExecState(
int execState);
325 std::string name =
"");
327 std::string name =
"");
329 std::string name =
"");
331 std::string name =
"");
344 std::vector< std::pair<YACS::ENGINE::OutPort *, YACS::ENGINE::InPort *> >
dataLinks;
345 std::vector< std::pair<YACS::ENGINE::OutPort *, YACS::ENGINE::InPort *> >
dataflowLinks;
363 std::string name =
"",
365 std::string compo =
"",
366 std::string type =
"");
422 virtual std::string getName();
424 virtual bool setName(std::string name);
426 virtual std::map<std::string, std::string> getProperties();
427 virtual bool setProperties(std::map<std::string, std::string> properties);
432 virtual void notifyComponentsChange(
GuiEvent event,
int type,
Subject* son);
433 virtual void clean(
Command *command=0);
434 void localclean(
Command *command=0);
435 bool isUsed() {
return !_subComponentSet.empty(); }
447 void registerUndoDestroy();
455 void registerUndoDestroy();
457 std::string
getLabelForHuman()
const {
return std::string(
"Salome Homogeneous Pool Container"); }
460 class SubjectServiceNode;
467 virtual std::string getName();
468 virtual void setContainer();
474 virtual bool setProperties(std::map<std::string, std::string> properties);
475 virtual std::map<std::string, std::string> getProperties();
476 virtual void notifyServicesChange(
GuiEvent event,
int type,
Subject* son);
477 virtual std::pair<std::string, int> getKey();
478 virtual void clean(
Command *command=0);
480 void localclean(
Command *command=0);
597 bool replace =
false);
600 std::map<int, SubjectNode*> getBodyMap();
601 virtual void completeChildrenSubjectList(
SubjectNode *son);
603 virtual bool setSelect(std::string select);
604 virtual bool setCase(std::string caseId,
SubjectNode* snode);
605 virtual bool hasValue();
606 virtual std::string getValue();
607 virtual void houseKeepingAfterCutPaste(
bool isCut,
SubjectNode *son);
608 virtual void clean(
Command *command=0);
609 void localclean(
Command *command=0);
666 virtual bool setAlgorithm(
const std::string& alglib,
const std::string& symbol);
697 virtual bool setScript(std::string script);
741 std::string service);
905 virtual bool setProperties(std::map<std::string, std::string> properties);
Composed node to group elementary and composed nodes.
Class for CORBA Service Node.
Base class for all component instances.
Base class for all composed nodes.
Class for C++ Nodes (in process component)
Class for data parameters specification.
Base class for dynamically (fully or semifully) built graphs.
Base class for all calculation nodes.
Class for calculation node (script) inlined (and executed) in the schema.
Base class for all nodes.
Base class for observer in observer pattern.
class to build optimization loops
Base class for all schema objects.
Class for Salome component Service Node.
Class for calculation node associated with a component service.
Control node that emulates the C switch.
Base class for all type objects.
static std::map< int, std::string > _eventNameMap
std::set< Subject * > _subjectSet
virtual void clean(Command *command=0)
virtual void removeNode(SubjectNode *child)
virtual void houseKeepingAfterCutPaste(bool isCut, SubjectNode *son)
virtual TypeOfElem getType()
YACS::ENGINE::Bloc * _bloc
virtual void completeChildrenSubjectList(SubjectNode *son)
void localclean(Command *command=0)
virtual SubjectNode * addNode(YACS::ENGINE::Catalog *catalog, std::string compo, std::string type, std::string name, bool newCompoInst)
std::set< SubjectNode * > _children
SubjectBloc(YACS::ENGINE::Bloc *bloc, Subject *parent)
virtual void recursiveUpdate(GuiEvent event, int type, Subject *son)
virtual SubjectNode * getChild(YACS::ENGINE::Node *node=0) const
SubjectCORBANode(YACS::ENGINE::CORBANode *corbaNode, Subject *parent)
virtual TypeOfElem getType()
YACS::ENGINE::CORBANode * _corbaNode
virtual void clean(Command *command=0)
void localclean(Command *command=0)
virtual ~SubjectCORBANode()
std::map< SubjectServiceNode *, SubjectReference * > _subReferenceMap
virtual TypeOfElem getType()
YACS::ENGINE::ComponentInstance * _compoInst
std::set< SubjectServiceNode * > _subServiceSet
SubjectReference * _subRefContainer
virtual void removeExternalControlLinks()
virtual SubjectNode * addNode(YACS::ENGINE::Catalog *catalog, std::string compo, std::string type, std::string name, bool newCompoInst)
SubjectControlLink * addSubjectControlLink(SubjectNode *sno, SubjectNode *sni)
virtual void clean(Command *command=0)
void localclean(Command *command=0)
SubjectComposedNode(YACS::ENGINE::ComposedNode *composedNode, Subject *parent)
virtual ~SubjectComposedNode()
virtual void removeControlLink(SubjectControlLink *link)
virtual std::string getValue()
SubjectNode * addSubjectNode(YACS::ENGINE::Node *node, std::string name="", YACS::ENGINE::Catalog *catalog=0, std::string compo="", std::string type="")
virtual void loadChildren()
virtual void houseKeepingAfterCutPaste(bool isCut, SubjectNode *son)
virtual void removeLink(SubjectLink *link)
SubjectLink * addSubjectLink(SubjectNode *sno, SubjectDataPort *spo, SubjectNode *sni, SubjectDataPort *spi)
static SubjectComposedNode * getLowestCommonAncestor(SubjectNode *snode1, SubjectNode *snode2)
Retrieves the lowest common ancestor of 2 nodes.
virtual SubjectNode * createNode(YACS::ENGINE::Catalog *catalog, std::string compo, std::string type, std::string name, bool newCompoInst, int swCase=0)
virtual void completeChildrenSubjectList(SubjectNode *son)
YACS::ENGINE::ComposedNode * _composedNode
virtual SubjectNode * getChild(YACS::ENGINE::Node *node=0) const
virtual YACS::ENGINE::Container * getContainer() const
std::map< SubjectComponent *, SubjectReference * > _subReferenceMap
virtual std::string getLabelForHuman() const =0
std::set< SubjectComponent * > _subComponentSet
YACS::ENGINE::Container * _container
std::string getLabelForHuman() const
virtual TypeOfElem getType()
virtual ~SubjectControlLink()
SubjectNode * _subOutNode
SubjectControlLink(SubjectNode *subOutNode, SubjectNode *subInNode, Subject *parent)
void localclean(Command *command=0)
virtual std::string getName()
SubjectNode * getSubjectOutNode()
virtual void clean(Command *command=0)
SubjectNode * getSubjectInNode()
void registerUndoDestroy()
YACS::ENGINE::ComposedNode * _cla
virtual TypeOfElem getType()
YACS::ENGINE::CppNode * _cppNode
virtual ~SubjectCppNode()
SubjectCppNode(YACS::ENGINE::CppNode *cppNode, Subject *parent)
void localclean(Command *command=0)
virtual void clean(Command *command=0)
YACS::ENGINE::DataNode * _dataNode
void localclean(Command *command=0)
virtual void clean(Command *command=0)
virtual ~SubjectDataNode()
SubjectDataNode(YACS::ENGINE::DataNode *dataNode, Subject *parent)
void addSubjectLink(SubjectLink *subject)
std::list< SubjectLink * > _listSubjectLink
void removeSubjectLink(SubjectLink *subject)
YACS::ENGINE::DataPort * _dataPort
std::list< SubjectLink * > getListOfSubjectLink()
virtual YACS::ENGINE::TypeCode * getTypeCode()
YACS::ENGINE::TypeCode * _typeCode
virtual TypeOfElem getType()
virtual ~SubjectDataType()
void localclean(Command *command=0)
SubjectDataType(YACS::ENGINE::TypeCode *typeCode, Subject *parent, std::string alias)
virtual std::string getAlias()
virtual std::string getName()
virtual void clean(Command *command=0)
SubjectNode * _subjectInitNode
virtual void clean(Command *command=NULL)
virtual SubjectNode * addNode(YACS::ENGINE::Catalog *catalog, std::string compo, std::string type, std::string name, bool newCompoInst)
virtual SubjectNode * getChild(YACS::ENGINE::Node *node=NULL) const
YACS::ENGINE::DynParaLoop * _dynParaLoop
virtual ~SubjectDynParaLoop()
virtual std::string getValue()
SubjectNode * _subjectExecNode
virtual void removeNode(SubjectNode *child)
virtual void recursiveUpdate(GuiEvent event, int type, Subject *son)
virtual bool setNbBranches(std::string nbBranches)
void localclean(Command *command=NULL)
SubjectNode * _subjectFinalizeNode
SubjectDynParaLoop(YACS::ENGINE::DynParaLoop *dynParaLoop, Subject *parent)
virtual void houseKeepingAfterCutPaste(bool isCut, SubjectNode *son)
virtual void completeChildrenSubjectList(SubjectNode *son)
virtual bool OrderDataPorts(SubjectDataPort *portToMove, int isUp)
SubjectElementaryNode(YACS::ENGINE::ElementaryNode *elementaryNode, Subject *parent)
void localclean(Command *command=0)
virtual SubjectDataPort * addInputPort(YACS::ENGINE::Catalog *catalog, std::string type, std::string name)
virtual void clean(Command *command=0)
virtual SubjectDataPort * addIDSPort(YACS::ENGINE::Catalog *catalog, std::string type, std::string name)
virtual void removePort(SubjectDataPort *port)
virtual void restoreLinks()
virtual SubjectDataPort * addODSPort(YACS::ENGINE::Catalog *catalog, std::string type, std::string name)
YACS::ENGINE::ElementaryNode * _elementaryNode
virtual ~SubjectElementaryNode()
virtual void recursiveUpdate(GuiEvent event, int type, Subject *son)
virtual void loadChildren()
virtual SubjectDataPort * addOutputPort(YACS::ENGINE::Catalog *catalog, std::string type, std::string name)
virtual TypeOfElem getType()
SubjectForEachLoop(YACS::ENGINE::ForEachLoopGen *forEachLoop, Subject *parent)
YACS::ENGINE::ForEachLoopGen * _forEachLoop
virtual void removeNode(SubjectNode *child)
virtual ~SubjectForEachLoop()
virtual void completeChildrenSubjectList(SubjectNode *son)
void localclean(Command *command=0)
virtual void clean(Command *command=0)
virtual void houseKeepingAfterCutPaste(bool isCut, SubjectNode *son)
virtual SubjectNode * addNode(YACS::ENGINE::Catalog *catalog, std::string compo, std::string type, std::string name, bool newCompoInst)
YACS::ENGINE::ForLoop * _forLoop
virtual SubjectNode * getChild(YACS::ENGINE::Node *node=0) const
SubjectForLoop(YACS::ENGINE::ForLoop *forLoop, Subject *parent)
virtual void clean(Command *command=0)
virtual std::string getValue()
virtual ~SubjectForLoop()
virtual void completeChildrenSubjectList(SubjectNode *son)
virtual bool setNbSteps(std::string nbSteps)
virtual void recursiveUpdate(GuiEvent event, int type, Subject *son)
virtual TypeOfElem getType()
void localclean(Command *command=0)
std::string getLabelForHuman() const
virtual bool setScript(std::string script)
SubjectInlineNode(YACS::ENGINE::InlineNode *inlineNode, Subject *parent)
void localclean(Command *command=0)
YACS::ENGINE::InlineNode * _inlineNode
virtual std::string getScript()
virtual bool setExecutionMode(const std::string &mode)
virtual ~SubjectInlineNode()
virtual void clean(Command *command=0)
virtual bool setContainer(SubjectContainerBase *scont)
SubjectDataPort * getSubjectInPort()
void registerUndoDestroy()
SubjectLink(SubjectNode *subOutNode, SubjectDataPort *outPort, SubjectNode *subInNode, SubjectDataPort *inPort, Subject *parent)
SubjectNode * _subOutNode
void localclean(Command *command=0)
SubjectNode * getSubjectOutNode()
SubjectDataPort * _outPort
virtual void clean(Command *command=0)
YACS::ENGINE::OutPort * _outp
YACS::ENGINE::ComposedNode * _cla
virtual std::vector< std::string > knownProperties()
virtual TypeOfElem getType()
SubjectDataPort * getSubjectOutPort()
virtual bool setProperties(std::map< std::string, std::string > properties)
SubjectNode * getSubjectInNode()
YACS::ENGINE::InPort * _inp
virtual std::map< std::string, std::string > getProperties()
virtual std::string getName()
SubjectDataPort * _inPort
std::list< YACS::ENGINE::OutGate * > loutgate
std::list< SubjectInputDataStreamPort * > getSubjectInputDataStreamPorts() const
void removeSubjectControlLink(SubjectControlLink *sub)
std::list< SubjectOutputPort * > _listSubjectOutputPort
YACS::ENGINE::Node * _node
std::list< SubjectInputPort * > getSubjectInputPorts() const
std::vector< std::pair< YACS::ENGINE::OutPort *, YACS::ENGINE::InPort * > > dataLinks
std::list< SubjectLink * > _listSubjectLink
SubjectControlLink * addSubjectControlLink(SubjectControlLink *sub)
std::vector< std::pair< YACS::ENGINE::OutPort *, YACS::ENGINE::InPort * > > dataflowLinks
std::list< SubjectLink * > getSubjectLinks() const
std::list< SubjectOutputPort * > getSubjectOutputPorts() const
std::list< SubjectInputPort * > _listSubjectInputPort
std::list< SubjectControlLink * > getSubjectControlLinks() const
std::list< SubjectOutputDataStreamPort * > _listSubjectODSPort
std::list< SubjectInputDataStreamPort * > _listSubjectIDSPort
std::list< SubjectControlLink * > _listSubjectControlLink
std::list< SubjectOutputDataStreamPort * > getSubjectOutputDataStreamPorts() const
std::list< YACS::ENGINE::InGate * > singate
YACS::ENGINE::OptimizerLoop * _optimizerLoop
virtual TypeOfElem getType()
SubjectOptimizerLoop(YACS::ENGINE::OptimizerLoop *optimizerLoop, Subject *parent)
virtual ~SubjectOptimizerLoop()
virtual bool setAlgorithm(const std::string &alglib, const std::string &symbol)
virtual void clean(Command *command=0)
void localclean(Command *command=0)
void localclean(Command *command=0)
virtual void clean(Command *command=0)
virtual TypeOfElem getType()
virtual ~SubjectOutNode()
SubjectOutNode(YACS::ENGINE::OutNode *outNode, Subject *parent)
YACS::ENGINE::OutNode * _outNode
virtual bool setProperties(std::map< std::string, std::string > properties)
virtual ~SubjectOutputDataStreamPort()
YACS::ENGINE::OutputDataStreamPort * _outputDataStreamPort
void registerUndoDestroy()
virtual std::map< std::string, std::string > getProperties()
SubjectOutputDataStreamPort(YACS::ENGINE::OutputDataStreamPort *port, Subject *parent)
virtual TypeOfElem getType()
void localclean(Command *command=0)
virtual void clean(Command *command=0)
YACS::ENGINE::OutputPort * _outputPort
virtual void clean(Command *command=0)
void localclean(Command *command=0)
virtual bool setValue(std::string value)
virtual ~SubjectOutputPort()
virtual TypeOfElem getType()
SubjectOutputPort(YACS::ENGINE::OutputPort *port, Subject *parent)
virtual TypeOfElem getType()
YACS::ENGINE::PresetNode * _presetNode
SubjectPresetNode(YACS::ENGINE::PresetNode *presetNode, Subject *parent)
virtual ~SubjectPresetNode()
void localclean(Command *command=0)
virtual void clean(Command *command=0)
std::vector< Subject * > _postEraseList
YACS::ENGINE::Proc * _proc
SubjectProc(YACS::ENGINE::Proc *proc, Subject *parent)
virtual SubjectContainerBase * addHPContainer(std::string name, std::string ref="")
SubjectContainerBase * addSubjectContainer(YACS::ENGINE::Container *cont, std::string name="")
virtual SubjectComponent * addComponent(std::string compoName, std::string containerName="")
virtual bool addDataType(YACS::ENGINE::Catalog *catalog, std::string typeName)
virtual void clean(Command *command=0)
virtual SubjectContainerBase * addContainer(std::string name, std::string ref="")
void addPostErase(Subject *sub)
virtual TypeOfElem getType()
SubjectDataType * addSubjectDataType(YACS::ENGINE::TypeCode *type, std::string alias)
void loadTypes()
Load types for a SubjectProc.
SubjectDataType * addComSubjectDataType(YACS::ENGINE::TypeCode *type, std::string alias)
void localclean(Command *command=0)
void removeSubjectContainer(SubjectContainerBase *scont)
SubjectComponent * addSubjectComponent(YACS::ENGINE::ComponentInstance *compo)
void removeSubjectDataType(std::string typeName)
SubjectPyFuncNode(YACS::ENGINE::PyFuncNode *pyFuncNode, Subject *parent)
virtual bool setFunctionName(std::string funcName)
virtual ~SubjectPyFuncNode()
virtual void clean(Command *command=0)
YACS::ENGINE::PyFuncNode * _pyFuncNode
void localclean(Command *command=0)
virtual TypeOfElem getType()
YACS::ENGINE::PythonNode * _pythonNode
virtual TypeOfElem getType()
virtual ~SubjectPythonNode()
virtual void clean(Command *command=0)
SubjectPythonNode(YACS::ENGINE::PythonNode *pythonNode, Subject *parent)
void localclean(Command *command=0)
virtual void clean(Command *command=0)
virtual TypeOfElem getType()
SubjectReference(Subject *ref, Subject *parent)
void localclean(Command *command=0)
virtual void reparent(Subject *parent)
virtual ~SubjectReference()
virtual Subject * getReference() const
virtual std::string getName()
SubjectSalomeNode(YACS::ENGINE::SalomeNode *salomeNode, Subject *parent)
virtual TypeOfElem getType()
void localclean(Command *command=0)
virtual ~SubjectSalomeNode()
virtual void clean(Command *command=0)
YACS::ENGINE::SalomeNode * _salomeNode
void localclean(Command *command=0)
virtual void clean(Command *command=0)
virtual TypeOfElem getType()
YACS::ENGINE::SalomePythonNode * _salomePythonNode
virtual ~SubjectSalomePythonNode()
SubjectSalomePythonNode(YACS::ENGINE::SalomePythonNode *salomePythonNode, Subject *parent)
SubjectReference * _subjectReference
void localclean(Command *command=0)
virtual ~SubjectServiceNode()
virtual void clean(Command *command=0)
SubjectReference * _subRefComponent
virtual SubjectReference * getSubjectReference()
virtual void setComponentFromCatalog(YACS::ENGINE::Catalog *catalog, std::string compo, std::string service)
YACS::ENGINE::ServiceNode * _serviceNode
virtual void removeSubRefComponent()
virtual bool associateToComponent(SubjectComponent *subcomp)
virtual void addSubjectReference(Subject *ref)
virtual void setComponent()
SubjectServiceNode(YACS::ENGINE::ServiceNode *serviceNode, Subject *parent)
virtual void removeSubjectReference()
virtual TypeOfElem getType()
virtual std::string getName()
void localclean(Command *command=0)
YACS::ENGINE::SplitterNode * _splitterNode
SubjectSplitterNode(YACS::ENGINE::SplitterNode *splitterNode, Subject *parent)
virtual ~SubjectSplitterNode()
virtual void clean(Command *command=0)
virtual TypeOfElem getType()
virtual ~SubjectStudyInNode()
void localclean(Command *command=0)
SubjectStudyInNode(YACS::ENGINE::StudyInNode *studyInNode, Subject *parent)
YACS::ENGINE::StudyInNode * _studyInNode
virtual void clean(Command *command=0)
YACS::ENGINE::StudyOutNode * _studyOutNode
virtual TypeOfElem getType()
SubjectStudyOutNode(YACS::ENGINE::StudyOutNode *studyOutNode, Subject *parent)
virtual ~SubjectStudyOutNode()
void localclean(Command *command=0)
virtual void clean(Command *command=0)
YACS::ENGINE::Switch * _switch
virtual TypeOfElem getType()
std::map< int, SubjectNode * > _bodyMap
virtual std::string getValue()
virtual void completeChildrenSubjectList(SubjectNode *son)
virtual bool setCondition(std::string condition)
SubjectWhileLoop(YACS::ENGINE::WhileLoop *whileLoop, Subject *parent)
virtual ~SubjectWhileLoop()
virtual void clean(Command *command=0)
YACS::ENGINE::WhileLoop * _whileLoop
virtual SubjectNode * getChild(YACS::ENGINE::Node *node=0) const
virtual SubjectNode * addNode(YACS::ENGINE::Catalog *catalog, std::string compo, std::string type, std::string name, bool newCompoInst)
virtual void recursiveUpdate(GuiEvent event, int type, Subject *son)
virtual void houseKeepingAfterCutPaste(bool isCut, SubjectNode *son)
void localclean(Command *command=0)
virtual TypeOfElem getType()
SubjectXmlNode(YACS::ENGINE::XmlNode *xmlNode, Subject *parent)
virtual ~SubjectXmlNode()
YACS::ENGINE::XmlNode * _xmlNode
virtual void clean(Command *command=0)
virtual TypeOfElem getType()
void localclean(Command *command=0)
void askRegisterUndoDestroy()
std::set< GuiObserver * > _setObs
virtual TypeOfElem getType()
virtual std::string getProgress()
def ref(target, callback=None)