94 layoutAboutToBeChanged().emit();
95 layoutChanged().emit();
101 layoutAboutToBeChanged().emit();
102 layoutChanged().emit();
114 return mNode->getModuleList().size();
121 if (
mNode != 0 && index.isValid())
123 auto mod =
mNode->getModuleList();
124 auto iter = mod.begin();
125 std::advance(iter, index.row());
127 if (role == Wt::ItemDataRole::Display || role == Wt::ItemDataRole::ToolTip)
129 if (index.column() == 0)
131 return (*iter)->getName();
133 if (index.column() == 1)
135 return (*iter)->getModuleType();
138 else if (role == Wt::ItemDataRole::Decoration)
140 if (index.column() == 0)
142 return std::string(
"icons/module.png");
146 return Wt::cpp17::any();
151 if (orientation == Wt::Orientation::Horizontal && role == Wt::ItemDataRole::Display) {
154 return std::string(
"Module");
156 return std::string(
"Type");
158 return Wt::cpp17::any();
162 return Wt::cpp17::any();
167 table = panel->setCentralWidget(std::make_unique<Wt::WTable>());
168 std::vector<dyno::FBase*>& fields =
mNode->getAllFields();
176 if (var->getClassName() == std::string(
"FVar"))
178 std::string template_name = var->getTemplateName();
180 Wt::log(
"info") << var->getTemplateName();
189 table->setMargin(10);
194 table = panel->setCentralWidget(std::make_unique<Wt::WTable>());
195 std::vector<dyno::FBase*>& fields =
mModule->getAllFields();
203 if (var->getClassName() == std::string(
"FVar"))
205 std::string template_name = var->getTemplateName();
207 Wt::log(
"info") << var->getTemplateName();
216 table->setMargin(10);
233 Wt::WContainerWidget* fw =
nullptr;
238 fw = reg->constructor(field);
290 Wt::log(
"info") <<
"Error with dynamic_cast!";
301 std::unique_ptr<Wt::WContainerWidget> mWidget(fw);
303 int row =
table->rowCount();
304 auto cell0 =
table->elementAt(row, 0);
305 auto cell1 =
table->elementAt(row, 1);
307 cell0->addNew<Wt::WText>(label);
308 cell0->setContentAlignment(Wt::AlignmentFlag::Middle);
309 cell0->setWidth(labelWidth);
311 cell1->setContentAlignment(Wt::AlignmentFlag::Middle);
312 cell1->setWidth(widgetWidth);
314 cell1->addWidget(std::unique_ptr<Wt::WContainerWidget>(std::move(mWidget)));
std::shared_ptr< dyno::Node > mNode
static FieldWidgetMeta * getRegistedWidget(const std::string &)
static std::map< std::string, FieldWidgetMeta > sFieldWidgetMeta
void addScalarFieldWidget(Wt::WTable *table, std::string label, dyno::FBase *field, int labelWidth=150, int widgetWidth=300)
static int registerWidget(const FieldWidgetMeta &meta)
virtual int rowCount(const Wt::WModelIndex &parent=Wt::WModelIndex()) const
void createParameterPanel(Wt::WPanel *panel)
std::shared_ptr< dyno::Module > mModule
void setModule(std::shared_ptr< dyno::Module > module)
void setNode(std::shared_ptr< dyno::Node > node)
Wt::Signal< int > changeValue_
void createParameterPanelModule(Wt::WPanel *panel)
void castToDerived(Wt::WContainerWidget *fw)
virtual Wt::cpp17::any data(const Wt::WModelIndex &index, Wt::ItemDataRole role=Wt::ItemDataRole::Display) const
virtual Wt::cpp17::any headerData(int section, Wt::Orientation orientation=Wt::Orientation::Horizontal, Wt::ItemDataRole role=Wt::ItemDataRole::Display) const
virtual int columnCount(const Wt::WModelIndex &parent=Wt::WModelIndex()) const
Wt::WContainerWidget * createFieldWidget(dyno::FBase *field)
virtual const std::string getTemplateName()
Vector< double, 3 > Vec3d