uitest: support tree lists
Change-Id: Iaa1a49d7e38c8d87bb3cfd749af94a0b92feee0d
diff --git a/svtools/inc/uitest/uiobject.hxx b/svtools/inc/uitest/uiobject.hxx
index 2949421..93cfc15 100644
--- a/svtools/inc/uitest/uiobject.hxx
+++ b/svtools/inc/uitest/uiobject.hxx
@@ -10,6 +10,7 @@
#include <vcl/uitest/uiobject.hxx>
class SvTreeListBox;
class SvTreeListEntry;
class TreeListUIObject : public WindowUIObject
{
@@ -20,9 +21,44 @@ public:
static std::unique_ptr<UIObject> create(vcl::Window* pWindow);
virtual void execute(const OUString& rAction,
const StringMap& rParameters) override;
virtual std::unique_ptr<UIObject> get_child(const OUString& rID) override;
virtual std::set<OUString> get_children() const override;
protected:
virtual OUString get_name() const override;
private:
VclPtr<SvTreeListBox> mxTreeList;
};
class TreeListEntryUIObject : public UIObject
{
public:
TreeListEntryUIObject(VclPtr<SvTreeListBox> xTreeList, SvTreeListEntry* pEntry);
virtual StringMap get_state() override;
virtual void execute(const OUString& rAction,
const StringMap& rParameters) override;
virtual std::unique_ptr<UIObject> get_child(const OUString& rID) override;
virtual std::set<OUString> get_children() const override;
virtual OUString get_type() const override;
private:
VclPtr<SvTreeListBox> mxTreeList;
SvTreeListEntry* mpEntry;
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svtools/source/uitest/uiobject.cxx b/svtools/source/uitest/uiobject.cxx
index 65cd4a7..494406a 100644
--- a/svtools/source/uitest/uiobject.cxx
+++ b/svtools/source/uitest/uiobject.cxx
@@ -12,13 +12,58 @@
#include <svtools/treelistbox.hxx>
TreeListUIObject::TreeListUIObject(VclPtr<SvTreeListBox> xTreeList):
WindowUIObject(xTreeList)
WindowUIObject(xTreeList),
mxTreeList(xTreeList)
{
}
StringMap TreeListUIObject::get_state()
{
return WindowUIObject::get_state();
StringMap aMap = WindowUIObject::get_state();
aMap["SelectionCount"] = OUString::number(mxTreeList->GetSelectionCount());
aMap["VisibleCount"] = OUString::number(mxTreeList->GetVisibleCount());
aMap["Children"] = OUString::number(mxTreeList->GetChildCount(nullptr));
aMap["LevelChildren"] = OUString::number(mxTreeList->GetLevelChildCount(nullptr));
return aMap;
}
void TreeListUIObject::execute(const OUString& rAction,
const StringMap& rParameters)
{
if (rAction == "")
{
}
else
WindowUIObject::execute(rAction, rParameters);
}
std::unique_ptr<UIObject> TreeListUIObject::get_child(const OUString& rID)
{
sal_Int32 nID = rID.toInt32();
if (nID >= 0)
{
SvTreeListEntry* pEntry = mxTreeList->GetEntry(nullptr, nID);
if (!pEntry)
return nullptr;
return std::unique_ptr<UIObject>(new TreeListEntryUIObject(mxTreeList, pEntry));
}
return nullptr;
}
std::set<OUString> TreeListUIObject::get_children() const
{
std::set<OUString> aChildren;
size_t nChildren = mxTreeList->GetLevelChildCount(nullptr);
for (size_t i = 0; i < nChildren; ++i)
{
aChildren.insert(OUString::number(i));
}
return aChildren;
}
OUString TreeListUIObject::get_name() const
@@ -33,4 +78,66 @@ std::unique_ptr<UIObject> TreeListUIObject::create(vcl::Window* pWindow)
return std::unique_ptr<UIObject>(new TreeListUIObject(pTreeList));
}
TreeListEntryUIObject::TreeListEntryUIObject(VclPtr<SvTreeListBox> xTreeList, SvTreeListEntry* pEntry):
mxTreeList(xTreeList),
mpEntry(pEntry)
{
}
StringMap TreeListEntryUIObject::get_state()
{
StringMap aMap;
aMap["Text"] = mxTreeList->GetEntryText(mpEntry);
aMap["Children"] = OUString::number(mxTreeList->GetLevelChildCount(mpEntry));
aMap["VisibleChildCount"] = OUString::number(mxTreeList->GetVisibleChildCount(mpEntry));
return aMap;
}
void TreeListEntryUIObject::execute(const OUString& rAction, const StringMap& rParameters)
{
if (rAction == "COLLAPSE")
{
mxTreeList->Collapse(mpEntry);
}
else if (rAction == "EXPAND")
{
mxTreeList->Expand(mpEntry);
}
}
std::unique_ptr<UIObject> TreeListEntryUIObject::get_child(const OUString& rID)
{
sal_Int32 nID = rID.toInt32();
if (nID >= 0)
{
SvTreeListEntry* pEntry = mxTreeList->GetEntry(mpEntry, nID);
if (!pEntry)
return nullptr;
return std::unique_ptr<UIObject>(new TreeListEntryUIObject(mxTreeList, pEntry));
}
return nullptr;
}
std::set<OUString> TreeListEntryUIObject::get_children() const
{
std::set<OUString> aChildren;
size_t nChildren = mxTreeList->GetLevelChildCount(mpEntry);
for (size_t i = 0; i < nChildren; ++i)
{
aChildren.insert(OUString::number(i));
}
return aChildren;
}
OUString TreeListEntryUIObject::get_type() const
{
return OUString("TreeListEntry");
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */