Asa@28
|
1 local addonName, addonTable = ...;
|
Asa@28
|
2 local ItemAuditor = _G[addonName]
|
Asa@28
|
3
|
Asa@28
|
4 local AceGUI = LibStub("AceGUI-3.0")
|
Asa@28
|
5 local ScrollingTable = LibStub("ScrollingTable")
|
Asa@28
|
6
|
Asa@28
|
7 local investedCols = {
|
Asa@28
|
8 { name= "Item", width = 200,
|
Asa@28
|
9 ['DoCellUpdate'] = function(rowFrame, cellFrame, data, cols, row, realrow, column, fShow, table, ...)
|
Asa@28
|
10 if fShow == true then
|
Asa@28
|
11 local _, link= strsplit("|", data[realrow][column], 2)
|
Asa@28
|
12 cellFrame.text:SetText(link)
|
Asa@28
|
13 end
|
Asa@28
|
14 end,
|
Asa@28
|
15 },
|
Asa@28
|
16 { name= "Invested Total", width = 100, align = "RIGHT",
|
Asa@28
|
17 ['DoCellUpdate'] = function(rowFrame, cellFrame, data, cols, row, realrow, column, fShow, table, ...)
|
Asa@28
|
18 if fShow == true then
|
Asa@28
|
19 cellFrame.text:SetText(ItemAuditor:FormatMoney(data[realrow][column]))
|
Asa@28
|
20 end
|
Asa@28
|
21 end,
|
Asa@28
|
22 },
|
Asa@28
|
23 { name= "Invested each", width = 100, align = "RIGHT",
|
Asa@28
|
24 ['DoCellUpdate'] = function(rowFrame, cellFrame, data, cols, row, realrow, column, fShow, table, ...)
|
Asa@28
|
25 if fShow == true then
|
Asa@28
|
26 cellFrame.text:SetText(ItemAuditor:FormatMoney(data[realrow][column]))
|
Asa@28
|
27 end
|
Asa@28
|
28 end,
|
Asa@28
|
29 },
|
Asa@32
|
30 { name= "# owned", width = 50, align = "RIGHT", defaultsort = "asc", },
|
Asa@28
|
31 }
|
Asa@28
|
32
|
Asa@28
|
33 local investedTable = false
|
Asa@28
|
34 local function ShowInvested(container)
|
Asa@28
|
35 if investedTable == false then
|
Asa@28
|
36 local window = container.frame
|
Asa@28
|
37 investedTable = ScrollingTable:CreateST(investedCols, 23, nil, nil, window)
|
Asa@28
|
38 investedTable.frame:SetPoint("BOTTOMLEFT",window, 10,10)
|
Asa@28
|
39 investedTable.frame:SetPoint("TOP", window, 0, -60)
|
Asa@28
|
40 investedTable.frame:SetPoint("RIGHT", window, -10,0)
|
Asa@28
|
41 investedTable:RegisterEvents({
|
Asa@28
|
42 ["OnEnter"] = function (rowFrame, cellFrame, data, cols, row, realrow, column, scrollingTable, ...)
|
Asa@28
|
43 if realrow then
|
Asa@28
|
44 local _, link= strsplit("|", data[realrow][1], 2)
|
Asa@28
|
45
|
Asa@28
|
46 GameTooltip:SetOwner(rowFrame, "ANCHOR_CURSOR")
|
Asa@28
|
47 GameTooltip:SetHyperlink(link)
|
Asa@28
|
48 GameTooltip:Show()
|
Asa@28
|
49 end
|
Asa@28
|
50 end,
|
Asa@28
|
51 ["OnLeave"] = function (rowFrame, cellFrame, data, cols, row, realrow, column, scrollingTable, ...)
|
Asa@28
|
52 GameTooltip:Hide()
|
Asa@28
|
53 end,
|
Asa@28
|
54 ["OnClick"] = function (rowFrame, cellFrame, data, cols, row, realrow, column, scrollingTable, ...)
|
Asa@28
|
55 if column == 3 then
|
Asa@28
|
56 GameTooltip:Hide()
|
Asa@28
|
57 end
|
Asa@28
|
58 end,
|
Asa@28
|
59 });
|
Asa@28
|
60 end
|
Asa@28
|
61 investedTable:Show()
|
Asa@28
|
62
|
Asa@28
|
63 local width = 80
|
Asa@28
|
64 for i, data in pairs(investedCols) do
|
Asa@28
|
65 width = width + data.width
|
Asa@28
|
66 end
|
Asa@28
|
67 if container.parent then
|
Asa@28
|
68 container.parent:SetWidth(width);
|
Asa@28
|
69 end
|
Asa@28
|
70
|
Asa@28
|
71
|
Asa@28
|
72 UpdateInvestedData()
|
Asa@28
|
73 end
|
Asa@28
|
74
|
Asa@28
|
75
|
Asa@28
|
76 local function switchTab(container, event, group)
|
Asa@28
|
77 container:ReleaseChildren()
|
Asa@28
|
78
|
Asa@28
|
79 if investedTab then investedTab:Hide() end
|
Asa@28
|
80
|
Asa@28
|
81 if group == "tab_invested" then
|
Asa@28
|
82 ShowInvested(container)
|
Asa@28
|
83 end
|
Asa@28
|
84 end
|
Asa@28
|
85
|
Asa@28
|
86
|
Asa@28
|
87
|
Asa@28
|
88 displayFrame = false
|
Asa@28
|
89 local function CreateFrames()
|
Asa@28
|
90 if not displayFrame then
|
Asa@28
|
91 -- Create the frame container
|
Asa@28
|
92 displayFrame = AceGUI:Create("Frame")
|
Asa@28
|
93 local window = displayFrame.frame;
|
Asa@28
|
94 displayFrame:SetTitle("ItemAuditor")
|
Asa@28
|
95 displayFrame:SetStatusText("")
|
Asa@28
|
96
|
Asa@28
|
97 displayFrame:SetLayout("Fill")
|
Asa@28
|
98
|
Asa@28
|
99 window:SetHeight(500);
|
Asa@28
|
100
|
Asa@28
|
101 local width = 80
|
Asa@28
|
102 for i, data in pairs(investedCols) do
|
Asa@28
|
103 width = width + data.width
|
Asa@28
|
104 end
|
Asa@28
|
105 window:SetWidth(width);
|
Asa@28
|
106
|
Asa@28
|
107 local tab = AceGUI:Create("TabGroup")
|
Asa@28
|
108 tab:SetLayout("Flow")
|
Asa@28
|
109 tab:SetTabs({{text="Invested", value="tab_invested"}})
|
Asa@28
|
110 tab:SetCallback("OnGroupSelected", switchTab)
|
Asa@28
|
111 tab:SelectTab("tab_invested")
|
Asa@28
|
112
|
Asa@28
|
113 displayFrame:AddChild(tab)
|
Asa@28
|
114 end
|
Asa@28
|
115 displayFrame:Show()
|
Asa@28
|
116 end
|
Asa@28
|
117
|
Asa@28
|
118
|
Asa@28
|
119
|
Asa@28
|
120
|
Asa@28
|
121
|
Asa@28
|
122 function UpdateInvestedData()
|
Asa@28
|
123 if investedTable then
|
Asa@28
|
124 tableData = {} --reset
|
Asa@28
|
125 local totalInvested = 0
|
Asa@28
|
126
|
Asa@28
|
127 local i = 1
|
Asa@28
|
128 local data
|
Asa@28
|
129 for link in pairs(ItemAuditor.db.factionrealm.items) do
|
Asa@28
|
130 local investedTotal, investedPerItem, count = ItemAuditor:GetItemCost(link)
|
Asa@28
|
131 local itemName, link = GetItemInfo(link)
|
Asa@28
|
132 if investedTotal > 0 then
|
Asa@28
|
133 tableData[i] = {
|
Asa@28
|
134 itemName.."|"..link,
|
Asa@28
|
135 investedTotal,
|
Asa@28
|
136 investedPerItem,
|
Asa@28
|
137 count,
|
Asa@28
|
138 }
|
Asa@28
|
139
|
Asa@28
|
140 totalInvested = totalInvested + investedTotal
|
Asa@28
|
141
|
Asa@28
|
142 i = i + 1
|
Asa@28
|
143 end
|
Asa@28
|
144 end
|
Asa@28
|
145
|
Asa@28
|
146 if investedTable.frame:IsShown() then
|
Asa@28
|
147 displayFrame:SetStatusText("Total Invested: "..ItemAuditor:FormatMoney(totalInvested))
|
Asa@28
|
148 end
|
Asa@28
|
149
|
Asa@28
|
150 investedTable:SetData(tableData, true)
|
Asa@28
|
151 end
|
Asa@28
|
152 end
|
Asa@28
|
153
|
Asa@28
|
154 function ItemAuditor:CreateFrames()
|
Asa@28
|
155 CreateFrames()
|
Asa@28
|
156 end
|
Asa@28
|
157
|