Version: 9.16.0
YACS::HMI::SchemaOutPortItem Class Reference

#include <SchemaOutPortItem.hxx>

Inheritance diagram for YACS::HMI::SchemaOutPortItem:
Collaboration diagram for YACS::HMI::SchemaOutPortItem:

Public Member Functions

 SchemaOutPortItem (SchemaItem *parent, QString label, Subject *subject)
 
virtual void update (GuiEvent event, int type, Subject *son)
 
virtual Qt::ItemFlags flags (const QModelIndex &index)
 
virtual void popupMenu (QWidget *caller, const QPoint &globalPos)
 
- Public Member Functions inherited from YACS::HMI::SchemaItem
 SchemaItem (SchemaItem *parent, QString label, Subject *subject)
 
virtual ~SchemaItem ()
 
virtual void appendChild (SchemaItem *child)
 
virtual void removeChild (SchemaItem *child)
 
virtual void insertChild (int row, SchemaItem *child)
 
virtual SchemaItemchild (int row)
 
virtual int childCount () const
 
virtual int columnCount () const
 
virtual QVariant data (int column, int role) const
 
virtual Qt::ItemFlags flags (const QModelIndex &index)
 
virtual int row () const
 
virtual SchemaItemparent ()
 
virtual SubjectgetSubject ()
 
virtual void update (GuiEvent event, int type, Subject *son)
 
virtual void select (bool isSelected)
 
virtual void toggleState ()
 
QModelIndex modelIndex (int column=0)
 
virtual void popupMenu (QWidget *caller, const QPoint &globalPos)
 
virtual ItemMimeDatamimeData (ItemMimeData *mime)
 
virtual bool dropMimeData (const QMimeData *data, Qt::DropAction action)
 
virtual void reparent (SchemaItem *parent)
 
virtual void setCaseValue ()
 used in node derived classes More...
 
bool isEmphasized ()
 
void setEmphasize (bool emphasize)
 
- Public Member Functions inherited from YACS::HMI::GuiObserver
 GuiObserver ()
 
virtual ~GuiObserver ()
 
virtual void select (bool isSelected)
 
virtual void update (GuiEvent event, int type, Subject *son)
 
virtual void incrementSubjects (Subject *subject)
 
virtual void decrementSubjects (Subject *subject)
 
int getNbSubjects ()
 
bool isDestructible ()
 

Protected Member Functions

virtual QString getMimeFormat ()
 
- Protected Member Functions inherited from YACS::HMI::SchemaItem
virtual QVariant editionToolTip (int column) const
 
virtual QVariant runToolTip (int column) const
 
virtual QVariant editionWhatsThis (int column) const
 
virtual QVariant runWhatsThis (int column) const
 
virtual QString getMimeFormat ()
 
virtual void setExecState (int execState)
 

Additional Inherited Members

- Static Public Member Functions inherited from YACS::HMI::GuiObserver
static std::string eventName (GuiEvent event)
 
static void setEventMap ()
 
- Protected Attributes inherited from YACS::HMI::SchemaItem
QList< SchemaItem * > _childItems
 
QList< QVariant > _itemData
 
QList< QVariant > _itemDeco
 
QList< QVariant > _itemForeground
 
QList< QVariant > _itemBackground
 
QList< QVariant > _itemCheckState
 
QList< QVariant > _itemToolTip
 
QList< QVariant > _itemWhatsThis
 
QString _label
 
SchemaItem_parentItem
 
Subject_subject
 
int _execState
 
bool _emphasized
 
- Protected Attributes inherited from YACS::HMI::GuiObserver
std::set< Subject * > _subjectSet
 
bool _destructible
 
- Static Protected Attributes inherited from YACS::HMI::GuiObserver
static std::map< int, std::string > _eventNameMap
 

Detailed Description

Definition at line 29 of file SchemaOutPortItem.hxx.

Constructor & Destructor Documentation

◆ SchemaOutPortItem()

SchemaOutPortItem::SchemaOutPortItem ( SchemaItem parent,
QString  label,
Subject subject 
)

column 1: YLabel = name, set in SchemaItem, column 2: YType = data type, never editable, column 3: YValue = value

Definition at line 47 of file SchemaOutPortItem.cxx.

48 : SchemaItem(parent, label, subject)
49{
50 SubjectDataPort *subPort = dynamic_cast<SubjectDataPort*>(subject);
51 if (subPort)
52 {
53 DataPort *dport = subPort->getPort();
55// _itemData.replace(YType, dport->edGetType()->getKindRepr());
56 _itemData.replace(YType, dport->edGetType()->name());
57 _itemForeground.replace(YType, QColor("black"));
58 OutputPort * outport = 0;
59
60 switch (typort)
61 {
63 _itemDeco.replace(YLabel, QIcon("icons:out_port.png"));
64 outport = dynamic_cast<OutputPort*>(dport);
65 _itemData.replace(YValue, outport->getAsString().c_str());
66 break;
68 _itemDeco.replace(YLabel, QIcon("icons:out_port.png"));
69 _itemData.replace(YValue, "stream");
70 _itemForeground.replace(YValue, QColor("grey"));
71 //_itemDeco.replace(YValue, QColor("grey"));
72 break;
73 }
74 }
75}
TypeCode * edGetType() const
Definition: DataPort.hxx:53
virtual std::string getAsString()
returns port value as a string that can be used in a GUI for example
Definition: DataPort.cxx:84
virtual const char * name() const
Definition: TypeCode.cxx:72
static TypeOfElem getTypeOfPort(YACS::ENGINE::DataPort *port)
QList< QVariant > _itemDeco
Definition: SchemaItem.hxx:78
virtual SchemaItem * parent()
Definition: SchemaItem.cxx:163
SchemaItem(SchemaItem *parent, QString label, Subject *subject)
Definition: SchemaItem.cxx:39
QList< QVariant > _itemForeground
Definition: SchemaItem.hxx:79
QList< QVariant > _itemData
Definition: SchemaItem.hxx:77
virtual YACS::ENGINE::DataPort * getPort()
@ OUTPUTDATASTREAMPORT

References YACS::HMI::SchemaItem::_itemData, YACS::HMI::SchemaItem::_itemDeco, YACS::HMI::SchemaItem::_itemForeground, YACS::ENGINE::DataPort::edGetType(), YACS::ENGINE::DataPort::getAsString(), YACS::HMI::SubjectDataPort::getPort(), YACS::HMI::ProcInvoc::getTypeOfPort(), YACS::ENGINE::TypeCode::name(), YACS::HMI::OUTPUTDATASTREAMPORT, YACS::HMI::OUTPUTPORT, YACS::HMI::YLabel, YACS::HMI::YType, and YACS::HMI::YValue.

Member Function Documentation

◆ flags()

Qt::ItemFlags SchemaOutPortItem::flags ( const QModelIndex &  index)
virtual

Reimplemented from YACS::HMI::SchemaItem.

Definition at line 123 of file SchemaOutPortItem.cxx.

124{
125 //DEBTRACE("SchemaOutPortItem::flags");
126 Qt::ItemFlags pflag = Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDropEnabled;
127 if (QtGuiContext::getQtCurrent()->isEdition())
128 pflag = pflag | Qt::ItemIsDragEnabled;
129 else
130 return pflag;
131
132 Qt::ItemFlags flagEdit = 0;
133 int column = index.column();
134 switch (column)
135 {
136 case 0:
137 {
138 SubjectDataPort *sdp = dynamic_cast<SubjectDataPort*>(_subject);
139 Node *parent = sdp->getPort()->getNode();
140 if (parent)
141 if (dynamic_cast<DataNode*>(parent) || dynamic_cast<InlineNode*>(parent))
142 flagEdit = Qt::ItemIsEditable; // --- port name editable
143 }
144 break;
145 case 2:
146 SubjectDataPort *sdp = dynamic_cast<SubjectDataPort*>(_subject);
147 Node *node = sdp->getPort()->getNode();
148 //PresetNode *pnode = dynamic_cast<PresetNode*>(node);
149 DataNode *pnode = dynamic_cast<DataNode*>(node);
150 if (! pnode) break;
151 flagEdit = Qt::ItemIsEditable; // --- port value editable for preset node
152 break;
153 }
154 return pflag | flagEdit;
155}
Class for data parameters specification.
Definition: DataNode.hxx:38
Class for calculation node (script) inlined (and executed) in the schema.
Definition: InlineNode.hxx:44
Base class for all nodes.
Definition: Node.hxx:70
Node * getNode() const
Definition: Port.hxx:46
static QtGuiContext * getQtCurrent()

References YACS::HMI::SchemaItem::_subject, YACS::ENGINE::Port::getNode(), YACS::HMI::SubjectDataPort::getPort(), YACS::HMI::QtGuiContext::getQtCurrent(), and YACS::HMI::SchemaItem::parent().

◆ getMimeFormat()

QString SchemaOutPortItem::getMimeFormat ( )
protectedvirtual

Reimplemented from YACS::HMI::SchemaItem.

Definition at line 163 of file SchemaOutPortItem.cxx.

164{
165 return "yacs/subjectOutPort";
166}

◆ popupMenu()

void SchemaOutPortItem::popupMenu ( QWidget caller,
const QPoint &  globalPos 
)
virtual

Reimplemented from YACS::HMI::SchemaItem.

Definition at line 157 of file SchemaOutPortItem.cxx.

158{
160 m.popupMenu(caller, globalPos);
161}

References gui.GraphViewer::m.

◆ update()

void SchemaOutPortItem::update ( GuiEvent  event,
int  type,
Subject son 
)
virtual

Reimplemented from YACS::HMI::SchemaItem.

Definition at line 77 of file SchemaOutPortItem.cxx.

78{
79 DEBTRACE("SchemaOutPortItem::update");
80 SchemaItem::update(event, type, son);
81 QModelIndex index = QModelIndex();
83 switch (event)
84 {
85 case SETVALUE:
86 {
87 SubjectOutputPort *sop = dynamic_cast<SubjectOutputPort*>(son);
88 if (sop)
89 {
90 DataFlowPort *port = dynamic_cast<DataFlowPort*>(sop->getPort());
91 DEBTRACE(port->getAsString());
92 _itemData.replace(YValue, port->getAsString().c_str());
93 _itemForeground.replace(YValue, QColor("green"));
94 model->setData(modelIndex(YValue), 0); // --- to emit dataChanged signal
95 }
96 }
97 break;
98 case UPDATE:
99 {
100 SubjectOutputPort *sop = dynamic_cast<SubjectOutputPort*>(son);
101 if (sop)
102 {
103 DataFlowPort *port = dynamic_cast<DataFlowPort*>(sop->getPort());
104 _itemData.replace(YType, port->edGetType()->name());
105 _itemForeground.replace(YType, QColor("black"));
106 }
107 }
108 break;
109 case UPDATEPROGRESS:
110 {
111 SubjectOutputPort *sip = dynamic_cast<SubjectOutputPort*>(son);
112 if (sip)
113 {
114 _itemData.replace(YValue, sip->getExecValue().c_str());
115 _itemForeground.replace(YValue, QColor("darkMagenta"));
116 model->setData(modelIndex(YValue), 0); // --- to emit dataChanged signal
117 }
118 }
119 break;
120 }
121}
#define DEBTRACE(msg)
Definition: YacsTrace.hxx:31
YACS::HMI::SchemaModel * getSchemaModel()
QModelIndex modelIndex(int column=0)
Definition: SchemaItem.cxx:253
virtual void update(GuiEvent event, int type, Subject *son)
Definition: SchemaItem.cxx:174
virtual bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)

References YACS::HMI::SchemaItem::_itemData, YACS::HMI::SchemaItem::_itemForeground, DEBTRACE, YACS::ENGINE::DataPort::edGetType(), YACS::ENGINE::DataPort::getAsString(), YACS::HMI::SubjectDataPort::getExecValue(), YACS::HMI::SubjectDataPort::getPort(), YACS::HMI::QtGuiContext::getQtCurrent(), YACS::HMI::QtGuiContext::getSchemaModel(), YACS::HMI::SchemaItem::modelIndex(), YACS::ENGINE::TypeCode::name(), YACS::HMI::SchemaModel::setData(), YACS::HMI::SETVALUE, YACS::HMI::SchemaItem::update(), YACS::HMI::UPDATE, YACS::HMI::UPDATEPROGRESS, YACS::HMI::YType, and YACS::HMI::YValue.

Referenced by gui.graph.MyCanvas::customEvent().


The documentation for this class was generated from the following files: