48 DEBTRACE(
"SchemaNodeItem::SchemaNodeItem");
61 DEBTRACE(
"SchemaNodeItem::~SchemaNodeItem");
80 model->beginInsertRows(
modelIndex(), nbsons, nbsons);
84 model->endInsertRows();
91 model->beginInsertRows(
modelIndex(), nbsons, nbsons);
95 model->endInsertRows();
114 model->beginRemoveRows(
modelIndex(), 0, nbChildren-1);
115 for (
int i = nbChildren;
i >= 0;
i--)
117 model->endRemoveRows();
120 int nbIn = plisti.size();
123 model->beginInsertRows(
modelIndex(), 0, nbIn-1);
124 list<InputPort*>::iterator iti = plisti.begin();
125 for(; iti != plisti.end(); iti++)
131 model->endInsertRows();
135 int nbOut = plisto.size();
138 model->beginInsertRows(
modelIndex(), nbIn, nbIn + nbOut -1);
139 list<OutputPort*>::iterator ito = plisto.begin();
140 for(; ito != plisto.end(); ito++)
146 model->endInsertRows();
182 m.popupMenu(caller, globalPos);
187 Qt::ItemFlags pflag = Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsDropEnabled;
192 pflag = pflag | Qt::ItemIsDragEnabled;
193 Qt::ItemFlags flagEdit = 0;
194 int column = index.column();
198 flagEdit = Qt::ItemIsEditable;
202 return pflag | flagEdit;
211 if (QApplication::mouseButtons() == Qt::MidButton)
212 return "yacs/subjectNode";
214 return "yacs/subjectOutGate";
219 DEBTRACE(
"SchemaNodeItem::toggleState");
239 DEBTRACE(
"SchemaNodeItem::dropMimeData");
240 if (!
data)
return false;
242 if (!myData)
return false;
243 if(!myData->hasFormat(
"yacs/subjectOutGate"))
return false;
246 if (!subFrom)
return false;
250 if (!to)
return false;
264 DEBTRACE(
"SchemaNodeItem::setCaseValue");
267 if (!sSwitch)
return;
275 if (rank == Switch::ID_FOR_DEFAULT_NODE)
284 return "<p>To edit the node properties, select the node and use the input panel. <a href=\"modification.html#property-page-for-node\">More...</a></p>";
#define YASSERT(val)
YASSERT macro is always defined, used like assert, but throw a YACS::Exception instead of abort.
std::string getChildName(const Node *node) const
Base class for all calculation nodes.
std::list< OutputPort * > getSetOfOutputPort() const
std::list< InputPort * > getSetOfInputPort() const
Base class for all nodes.
virtual YACS::StatesForNode getState() const
Control node that emulates the C switch.
int getRankOfNode(Node *node) const
YACS::ENGINE::Proc * getProc()
std::map< YACS::ENGINE::DataPort *, YACS::HMI::SubjectDataPort * > _mapOfSubjectDataPort
void removeBreakpoint(std::string breakpoint)
void addBreakpoint(std::string breakpoint)
static std::string eventName(GuiEvent event)
virtual Subject * getSubject(int i=0) const
std::map< YACS::HMI::Subject *, YACS::HMI::SchemaItem * > _mapOfSchemaItem
YACS::HMI::SchemaModel * getSchemaModel()
static QtGuiContext * getQtCurrent()
YACS::HMI::GuiExecutor * getGuiExecutor()
virtual Subject * getSubject()
virtual void appendChild(SchemaItem *child)
virtual void setExecState(int execState)
virtual void toggleState()
QList< QVariant > _itemCheckState
QModelIndex modelIndex(int column=0)
QList< QVariant > _itemDeco
virtual void update(GuiEvent event, int type, Subject *son)
virtual QVariant data(int column, int role) const
virtual SchemaItem * child(int row)
QList< QVariant > _itemForeground
QList< QVariant > _itemData
virtual void removeChild(SchemaItem *child)
virtual int childCount() const
virtual bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)
virtual ~SchemaNodeItem()
virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action)
virtual void update(GuiEvent event, int type, Subject *son)
virtual void toggleState()
virtual QVariant editionWhatsThis(int column) const
virtual QString getMimeFormat()
virtual void setCaseValue()
used in node derived classes
virtual Qt::ItemFlags flags(const QModelIndex &index)
virtual void popupMenu(QWidget *caller, const QPoint &globalPos)
virtual YACS::ENGINE::Node * getNode()
static bool tryCreateLink(SubjectNode *subOutNode, SubjectNode *subInNode)
virtual std::string getName()