60 SchemaComposedNodeItem::SchemaComposedNodeItem(
SchemaItem *parent, QString label,
Subject* subject)
63 DEBTRACE(
"SchemaComposedNodeItem::SchemaComposedNodeItem");
88 model->beginInsertRows(
modelIndex(), nbsons, nbsons);
98 model->endInsertRows();
118 DEBTRACE(
"SchemaComposedNodeItem::~SchemaComposedNodeItem");
123 DEBTRACE(
"SchemaComposedNodeItem::update "<<
eventName(event)<<
" "<<type<<
" "<<son);
142 model->beginInsertRows(
modelIndex(), nbsons, nbsons);
146 model->endInsertRows();
162 model->beginInsertRows(
modelIndex(), nbsons, nbsons);
166 model->endInsertRows();
173 model->beginInsertRows(
modelIndex(), nbsons, nbsons);
177 model->endInsertRows();
184 model->beginInsertRows(
modelIndex(), nbsons, nbsons);
188 model->endInsertRows();
296 int position = toMove->
row();
297 model->beginRemoveRows(
modelIndex(), position, position);
299 model->endRemoveRows();
306 model->beginInsertRows(
modelIndex(), nbsons, nbsons);
308 model->endInsertRows();
329 m.popupMenu(caller, globalPos);
335 Qt::ItemFlags pflag = Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled;
339 Qt::ItemFlags flagEdit = 0;
340 int column = index.column();
344 flagEdit = Qt::ItemIsEditable;
348 return pflag | flagEdit;
358 DEBTRACE(
"SchemaComposedNodeItem::dropMimeData");
359 if (!
data)
return false;
361 if (!myData)
return false;
363 if (myData->hasFormat(
"yacs/cataService") || myData->hasFormat(
"yacs/cataNode"))
374 else if(myData->hasFormat(
"yacs/subjectNode"))
378 if (!sub)
return false;
380 if (!node)
return false;
386 else if(myData->hasFormat(
"yacs/subjectOutGate"))
389 if (!subFrom)
return false;
393 if (!to)
return false;
412 if (QApplication::mouseButtons() == Qt::MidButton)
413 return "yacs/subjectNode";
415 return "yacs/subjectOutGate";
420 DEBTRACE(
"SchemaComposedNodeItem::setCaseValue");
423 if (!sSwitch)
return;
431 if (rank == Switch::ID_FOR_DEFAULT_NODE)
440 return "<p>To edit the node properties, select the node and use the input panel. <a href=\"modification.html#property-page-for-block-node\">More...</a></p>";
#define YASSERT(val)
YASSERT macro is always defined, used like assert, but throw a YACS::Exception instead of abort.
Base class for all composed nodes.
virtual std::list< Node * > edGetDirectDescendants() const =0
Base class for all nodes.
virtual YACS::StatesForNode getState() const
Control node that emulates the C switch.
Node * edGetNode(int caseId)
int getRankOfNode(Node *node) const
YACS::HMI::GuiEditor * _guiEditor
std::map< YACS::ENGINE::Node *, YACS::HMI::SubjectNode * > _mapOfSubjectNode
static GuiContext * getCurrent()
void CreateNodeFromCatalog(const ItemMimeData *myData, SubjectComposedNode *cnode, bool createNewComponentInstance)
static std::string eventName(GuiEvent event)
virtual bool getControl() const
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::GenericGui * getGMain()
static bool COMPONENT_INSTANCE_NEW
virtual ~SchemaComposedNodeItem()
SchemaDirTypesItem * _dirTypesItem
std::list< YACS::ENGINE::Node * > getDirectDescendants() const
SchemaDirLinksItem * _dirLinksItem
virtual void update(GuiEvent event, int type, Subject *son)
virtual void setCaseValue()
used in node derived classes
virtual void popupMenu(QWidget *caller, const QPoint &globalPos)
virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action)
virtual QVariant editionWhatsThis(int column) const
virtual Qt::ItemFlags flags(const QModelIndex &index)
SchemaComposedNodeItem(SchemaItem *parent, QString label, Subject *subject)
SchemaDirContainersItem * _dirContainersItem
virtual QString getMimeFormat()
void addContainerItem(Subject *subject)
void addComponentItem(Subject *subject)
void addLinkItem(Subject *subject)
void addTypeItem(Subject *subject)
void removeTypeItem(Subject *subject)
virtual Subject * getSubject()
virtual void setExecState(int execState)
virtual void setCaseValue()
used in node derived classes
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 void reparent(SchemaItem *parent)
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 std::string getValue()
virtual bool reparent(Subject *parent)
virtual YACS::ENGINE::Node * getNode()
static bool tryCreateLink(SubjectNode *subOutNode, SubjectNode *subInNode)
virtual std::string getValue()
virtual std::string getName()
virtual TypeOfElem getType()