Ejemplo n.º 1
0
bool WTreeNode::triggerSlot(WObject *sender, const WSlot_ *slot, void **args)
{
    if (slot == slots_ + 0) {
        sender_ = sender;
        collapse();
        return true;
    }
    if (slot == slots_ + 1) {
        sender_ = sender;
        expand();
        return true;
    }
    if (slot == slots_ + 2) {
        sender_ = sender;
        select();
        return true;
    }
    if (slot == slots_ + 3) {
        sender_ = sender;
        OnTreeNodeCheck();
        return true;
    }
    if (slot == slots_ + 4) {
        sender_ = sender;
        OnRightClick();
        return true;
    }
    return WCompositeWidget::triggerSlot(sender, slot, args);
}
Ejemplo n.º 2
0
WTreeNode::WTreeNode(const std::string labelText, const std::string nodeId, bool bCheck, bool bDevice,int nType, 
                     WText::Formatting labelFormatting,
                     WStateIcon *labelIcon,
                     WWidget *userContent, WContainerWidget *parent)
                     : parentNode_(0),
                     labelIcon_(labelIcon),
                     userContent_(userContent),
                     wasSelected_(false)
{

    bMExpand =false;
    bFirst = true;
    bFirstadjust=true;
    bFistundoCollapse =true;
    m_CheckBoxTreeView =NULL;
    treeCheckBox_ =NULL;
    nTreeType= nType;
    setImplementation(layout_ = new WTable(parent));
    layout_->setCellSpaceing(0);
	layout_->setCellSpaceing(0);
	layout_->setStyleClass("widthauto");
    
    strId = nodeId;
    expandIcon_ = new WStateIcon(imageFold_[OPEN], imageFold_[CLOSE ]);
    expandedContent_ = new WContainerWidget();
    if (userContent)
        expandedContent_->addWidget(userContent);

    labelText_ = new WText(labelText);
		labelText_->setStyleClass("hand");
    labelText_->setFormatting(labelFormatting);


    connect(labelText_ , SIGNAL(clicked()), this ,SLOT(OnRightClick()));

    noExpandIcon_ = new WImage("../Images/9bland.gif");

		WText *blank = new WText(" ");
		//layout_->elementAt(0, 1)->setStyleClass("tree_text");
		layout_->elementAt(0, 0)->setStyleClass("padding_right_2");
    layout_->elementAt(0, 0)->addWidget(expandIcon_);
    layout_->elementAt(0, 0)->addWidget(noExpandIcon_);
    layout_->elementAt(0, 0)->addWidget(blank);
    
    if( (false==bDevice)&&( Tree_DEVICE==nTreeType))//ajax --monitor
    {
        noExpandIcon_->hide();
    }else 
    {
        expandIcon_->hide();
	}

    treeCheckBox_ = new WCheckBox(labelText);
    treeCheckBox_->setStyleClass("smallcheckbox");

    if(nTreeType==Tree_MONITOR)
    {
        connect(treeCheckBox_,SIGNAL(clicked()),this,SLOT(OnTreeNodeCheck()));
        layout_->elementAt(0, 1)->setStyleClass("tree_text");
    }
    if (labelIcon_) 
    {
        if(bCheck)
        {
            layout_->elementAt(0, 0)->addWidget(treeCheckBox_);
        }
        layout_->elementAt(0, 1)->addWidget(labelIcon_);
        labelIcon_->setVerticalAlignment(AlignMiddle);
    }
    layout_->elementAt(0, 1)->addWidget(labelText_);
    layout_->elementAt(1, 1)->addWidget(expandedContent_);
    layout_->elementAt(0, 0)->setVerticalAlignment(AlignMiddle);
    layout_->elementAt(0, 0)->setContentAlignment(AlignMiddle);
    layout_->elementAt(0, 1)->setContentAlignment(AlignMiddle);
    layout_->elementAt(0, 1)->setVerticalAlignment(AlignMiddle);

	//add end
    connect(expandIcon_->icon1(), SIGNAL(clicked()), this, SLOT(expand()), STATIC);
    connect(expandIcon_->icon2(), SIGNAL(clicked()), this, SLOT(collapse()), STATIC);
}