*/
#include <ModuleBase_WidgetFactory.h>
+#include <ModuleBase_IconFactory.h>
#include <ModuleBase_Operation.h>
#include <ModuleBase_OperationDescription.h>
#include <ModuleBase_WidgetLineEdit.h>
#include <ModuleBase_WidgetMultiSelector.h>
#include <ModuleBase_WidgetLabel.h>
-#include <ModuleBase_WidgetErrorLabel.h>
#include <ModuleBase_WidgetToolbox.h>
#include <ModuleBase_PageBase.h>
#include <ModuleBase_PageGroupBox.h>
#include <ModuleBase_PageWidget.h>
#include <ModuleBase_WidgetExprEditor.h>
#include <ModuleBase_WidgetCreatorFactory.h>
+#include <ModuleBase_WidgetAction.h>
#include <ModelAPI_Validator.h>
#include <ModelAPI_Session.h>
delete myWidgetApi;
}
-void ModuleBase_WidgetFactory::createWidget(ModuleBase_PageBase* thePage)
+void ModuleBase_WidgetFactory::createWidget(ModuleBase_PageBase* thePage, bool alignToTop)
{
std::string aWType = myWidgetApi->widgetType();
if (aWType == NODE_FEATURE) {
if (myWidgetApi->isPagedWidget()) {
//If current widget is toolbox or switch-casebox then fetch all
//it's pages recursively and setup into the widget.
- myWidgetApi->toChildWidget();
- do {
- QString aPageName = qs(myWidgetApi->getProperty(CONTAINER_PAGE_NAME));
- QString aCaseId = qs(myWidgetApi->getProperty(_ID));
- ModuleBase_PageBase* aPage = new ModuleBase_PageWidget(aWidget);
- createWidget(aPage);
- if (aWdgType == WDG_SWITCH || aWdgType == WDG_TOOLBOX) {
- ModuleBase_PagedContainer* aContainer = qobject_cast<ModuleBase_PagedContainer*>(aWidget);
-
- QString anIconPath = qs( myWidgetApi->getProperty( CONTAINER_PAGE_ICON ) );
- QPixmap anIcon( anIconPath );
- aContainer->addPage( aPage, aPageName, aCaseId, anIcon );
- }
- } while (myWidgetApi->toNextWidget());
+ if (myWidgetApi->toChildWidget()) {
+ do {
+ QString aPageName = qs(myWidgetApi->getProperty(CONTAINER_PAGE_NAME));
+ QString aCaseId = qs(myWidgetApi->getProperty(_ID));
+ ModuleBase_PageBase* aPage = new ModuleBase_PageWidget(aWidget);
+ createWidget(aPage);
+ if (aWdgType == WDG_SWITCH || aWdgType == WDG_TOOLBOX) {
+ ModuleBase_PagedContainer* aContainer = qobject_cast<ModuleBase_PagedContainer*>(aWidget);
+
+ QString anIconPath = qs( myWidgetApi->getProperty( CONTAINER_PAGE_ICON ) );
+ QPixmap anIcon = ModuleBase_IconFactory::loadPixmap( anIconPath );
+ aContainer->addPage( aPage, aPageName, aCaseId, anIcon );
+ }
+ } while (myWidgetApi->toNextWidget());
+ }
}
}
} while (myWidgetApi->toNextWidget());
- thePage->alignToTop();
+ if (alignToTop)
+ thePage->alignToTop();
}
void ModuleBase_WidgetFactory::createPanel(ModuleBase_PageBase* thePage,
if (theAttributeId.empty() && myWidgetApi->isPagedWidget()) {
//If current widget is toolbox or switch-casebox then fetch all
//it's pages recursively and setup into the widget.
- myWidgetApi->toChildWidget();
- do {
- getGreedAttribute(theAttributeId);
- } while (theAttributeId.empty() && myWidgetApi->toNextWidget());
+ if (myWidgetApi->toChildWidget()) {
+ do {
+ getGreedAttribute(theAttributeId);
+ } while (theAttributeId.empty() && myWidgetApi->toNextWidget());
+ }
}
}
} while (theAttributeId.empty() && myWidgetApi->toNextWidget());
if (!theFound && myWidgetApi->isPagedWidget()) {
//If current widget is toolbox or switch-casebox then fetch all
//it's pages recursively and setup into the widget.
- myWidgetApi->toChildWidget();
- do {
- moveToWidgetId(theWidgetId, theFound);
- } while (!theFound && myWidgetApi->toNextWidget());
+ if (myWidgetApi->toChildWidget()) {
+ do {
+ moveToWidgetId(theWidgetId, theFound);
+ } while (!theFound && myWidgetApi->toNextWidget());
+ }
}
}
} while (!theFound && myWidgetApi->toNextWidget());
if (theType == WDG_INFO) {
result = new ModuleBase_WidgetLabel(theParent, myWidgetApi);
- } else if (theType == WDG_ERRORINFO) {
- result = new ModuleBase_WidgetErrorLabel(theParent, myWidgetApi);
} else if (theType == WDG_DOUBLEVALUE) {
result = new ModuleBase_WidgetDoubleValue(theParent, myWidgetApi);
} else if (theType == WDG_INTEGERVALUE) {
theType == NODE_VALIDATOR) {
// Do nothing for "box" and "case"
result = NULL;
+ } else if (theType == WDG_ACTION) {
+ result = new ModuleBase_WidgetAction(theParent, myWidgetApi);
} else {
result = myWorkshop->module()->createWidgetByType(theType, theParent, myWidgetApi);
if (!result)