thanks at first for your reply. I will try to explain my situation more clearly with screen shots.
This is the workflow that I test on.Table2XLogConverter produces one customized Out PortObject and pass it to the second node XLog2Table Convertor. The second node configures its NodeDialog based on the PortObjecSpec of OutPortObject.
This is the NodeDialog for the second node XLog2Table Converter. First Configuration is to choose trace Attribtues, whose value will be store in m_traceAttrSet in the codes.
What is m_traceAttrSet?
m_traceAttrSet is a SettingsModelFilterString used for storing the attribute set. The similar situation is with m_eventAttrSet.
They will be configured in NodeDialog and passed to NodeModel later.
m_traceAttrSet has available choices from the PortObjectSpec.
What I mean Connection Change
The NodeDialog is connected to an OutPortObject, which is customized and has its customized PortObjectSpec coded by me. When the OutPortObject changes due to different configuration, so does the PortObjectSpec, I consider it is a connection change. Because PortObjectSpec changes, the possible choices for SettingsModelFilterString m_traceAttrSet should also be updated.
Problems with Configuration on m_traceAttrSet
There are two situations for the value change of m_traceAttrSet.
- when dragging the node and connect it with OutPortObject at the first time. Here, PortObjectSpec should provide the values for the initialization totally.
- when reloading from the setting, i.e., reopening the workflow, or simply reconfiguration the node after the exection on it. In this situation, we don’t need to check the PortObjectSpec again, and m_traceAttrSet should show with the old values configured last time.
However, I can’t find a way to detect those two situations and give the corresponding possible set for m_traceAttrSet.