Exemplo n.º 1
0
void WTreeNode::create()
{
  setImplementation(layout_ = new WTable());

  setStyleClass("Wt-tree");
  layout_->setSelectable(false);

  if (WApplication::instance()->environment().agentIsOpera())
    layout_->setAttributeValue("style", "table-layout: auto");

  implementStateless(&WTreeNode::doExpand, &WTreeNode::undoDoExpand);
  implementStateless(&WTreeNode::doCollapse, &WTreeNode::undoDoCollapse);

  WApplication *app = WApplication::instance();

  expandIcon_
    = new WIconPair(WApplication::resourcesUrl() + "themes/" + app->cssTheme()
		    + "/" + imagePlus_,
		    WApplication::resourcesUrl() + "themes/" + app->cssTheme()
		    + "/" + imageMin_);
  noExpandIcon_ = new WText();
  noExpandIcon_->setStyleClass("Wt-noexpand");

  layout_->rowAt(1)->hide();

  if (labelText_)
    // "treenodelabel" is for backwards compatibility with Wt < 3.1.1
    labelText_->setStyleClass("Wt-label treenodelabel");

  childCountLabel_ = 0;

  layout_->elementAt(0, 0)->setStyleClass("Wt-trunk");
  layout_->elementAt(0, 0)->addWidget(noExpandIcon_);

  if (labelIcon_) {
    layout_->elementAt(0, 1)->addWidget(labelIcon_);
    labelIcon_->setVerticalAlignment(AlignMiddle);
  }

  if (labelText_)
    layout_->elementAt(0, 1)->addWidget(labelText_);

  layout_->elementAt(0, 0)->setContentAlignment(AlignLeft | AlignTop);
  layout_->elementAt(0, 1)->setContentAlignment(AlignLeft | AlignMiddle);

  layout_->rowAt(0)->setStyleClass("Wt-node");

  childrenLoaded_ = false;

  setLoadPolicy(LazyLoading);
}
Exemplo n.º 2
0
void WTreeNode::create()
{
  setImplementation(layout_ = new WTable());

  implementStateless(&WTreeNode::doExpand, &WTreeNode::undoDoExpand);
  implementStateless(&WTreeNode::doCollapse, &WTreeNode::undoDoCollapse);

  expandIcon_ = new WIconPair(imagePlus_[Last], imageMin_[Last]);
  noExpandIcon_ = new WImage(imageLine_[Last]);

  expandedContent_ = new WContainerWidget();
  expandedContent_->hide();

  if (labelText_) {
    labelText_->setStyleClass(L"treenodelabel");
    childCountLabel_ = new WText();
    childCountLabel_->setMargin(WLength(7), Left);
    childCountLabel_->setStyleClass(L"treenodechildcount");
  } else
    childCountLabel_ = 0;

  layout_->elementAt(0, 0)->addWidget(noExpandIcon_);

  if (labelIcon_) {
    layout_->elementAt(0, 1)->addWidget(labelIcon_);
    labelIcon_->setVerticalAlignment(AlignMiddle);
  }

  if (labelText_)
    layout_->elementAt(0, 1)->addWidget(labelText_);

  if (childCountLabel_)
    layout_->elementAt(0, 1)->addWidget(childCountLabel_);

  layout_->elementAt(1, 1)->addWidget(expandedContent_);

  layout_->elementAt(0, 0)->setContentAlignment(AlignTop);
  layout_->elementAt(0, 1)->setContentAlignment(AlignMiddle);

  childrenLoaded_ = false;

  setLoadPolicy(LazyLoading);
}
Exemplo n.º 3
0
void WTreeNode::create()
{
  setImplementation(layout_ = new WTemplate(tr("Wt.WTreeNode.template")));
  setStyleClass("Wt-tree");
  layout_->setSelectable(false);

  layout_->bindEmpty("cols-row");
  layout_->bindEmpty("trunk-class");

  implementStateless(&WTreeNode::doExpand, &WTreeNode::undoDoExpand);
  implementStateless(&WTreeNode::doCollapse, &WTreeNode::undoDoCollapse);

  WApplication *app = WApplication::instance();

  /*
   * Children
   */
  WContainerWidget *children = new WContainerWidget();
  children->setList(true);
  children->hide();
  layout_->bindWidget("children", children);

  /*
   * Expand icon
   */
  if (WApplication::instance()->layoutDirection() == RightToLeft)
    expandIcon_
      = new WIconPair(app->theme()->resourcesUrl() + imagePlusRtl_,
		      app->theme()->resourcesUrl() + imageMinRtl_);
  else
    expandIcon_
      = new WIconPair(app->theme()->resourcesUrl() + imagePlus_,
		      app->theme()->resourcesUrl() + imageMin_);
  expandIcon_->setStyleClass("Wt-ctrl Wt-expand");
  noExpandIcon_ = new WText();
  noExpandIcon_->setStyleClass("Wt-ctrl Wt-noexpand");
  layout_->bindWidget("expand", noExpandIcon_);
  addStyleClass("Wt-trunk");

  /*
   * Label
   */
  layout_->bindWidget("label-area", new WContainerWidget());

  if (labelText_)
    labelText_->setStyleClass("Wt-label");

  childCountLabel_ = 0;

  if (labelIcon_) {
    labelArea()->addWidget(labelIcon_);
    labelIcon_->setVerticalAlignment(AlignMiddle);
  }

  if (labelText_)
    labelArea()->addWidget(labelText_);

  childrenLoaded_ = false;

  setLoadPolicy(LazyLoading);
}