search table refactoring

This commit is contained in:
Manuel Simon Hirsig
2016-03-24 22:58:48 +01:00
parent e2e1aae6ed
commit a1ba701217
4 changed files with 402 additions and 184 deletions
+26 -41
View File
@@ -5,28 +5,32 @@ local auction_records
local selected_auction
function public.on_load()
private.listing = Aux.listing.CreateScrollingTable(AuxAuctionsFrameListing)
private.listing:SetColInfo({
{ name='Item', width=.4 },
{ name='Qty', width=.075, align='CENTER' },
{ name='Left', width=.075, align='CENTER' },
{ name='High Bid', width=.15, align='RIGHT' },
{ name='Start Price', width=.15, align='RIGHT' },
{ name='Buy', width=.15, align='RIGHT' },
})
private.listing:SetHandler('OnClick', function(table, row_data, column, button)
if button == 'LeftButton' then
private.on_row_click(row_data.record)
elseif button == 'RightButton' then
Aux.tab_group:set_tab(1)
Aux.search_frame.start_search(strlower(Aux.info.item(this.row.data.record.item_id).name)..'/exact')
end
-- private.listing:SetHandler('OnClick', function(table, row_data, column, button)
-- if button == 'LeftButton' then
-- private.on_row_click(row_data.record)
-- elseif button == 'RightButton' then
-- Aux.tab_group:set_tab(1)
-- Aux.search_frame.start_search(strlower(Aux.info.item(this.row.data.record.item_id).name)..'/exact')
-- end
-- end)
private.listing = Aux.auction_listing.CreateAuctionResultsTable(AuxAuctionsFrameListing, Aux.auction_listing.auctions_config)
private.listing:Show()
private.listing:SetSort(7)
private.listing:Clear()
private.listing:SetHandler('OnCellClick', function(cell, button)
-- if IsAltKeyDown() and private.listing:GetSelection().record == cell.row.data.record then
-- if button == 'LeftButton' and private.buyout_button:IsEnabled() then
-- private.buyout_button:Click()
-- return
-- elseif button == 'RightButton' and private.bid_button:IsEnabled() then
-- private.bid_button:Click()
-- return
-- end
-- end
end)
private.listing:SetHandler('OnEnter', function(table, row_data, column)
Aux.info.set_tooltip(row_data.record.itemstring, column.row, 'ANCHOR_RIGHT')
end)
private.listing:SetHandler('OnLeave', function(table, row_data, column)
GameTooltip:Hide()
private.listing:SetHandler('OnSelectionChanged', function(rt, datum)
-- if not datum then return end
-- private.find_auction(datum.record)
end)
do
@@ -64,26 +68,7 @@ function private.update_listing()
return
end
local auction_rows = {}
for i, auction_record in auction_records or {} do
local historical_value = Aux.history.value(auction_record.item_key)
tinsert(auction_rows, {
cols = {
{ value=({GetItemQualityColor(auction_record.quality)})[4]..'['..auction_record.name..']'..'|r' },
{ value=auction_record.aux_quantity },
{ value=Aux.auction_listing.time_left(auction_record.duration) },
{ value=auction_record.high_bid > 0 and Aux.money.to_string(auction_record.high_bid, true, false) or RED_FONT_COLOR_CODE..'No Bids'..FONT_COLOR_CODE_CLOSE },
{ value=Aux.money.to_string(auction_record.start_price, true, false) },
{ value=auction_record.buyout_price > 0 and Aux.money.to_string(auction_record.buyout_price, true, false) or '---' },
-- { value=Aux.auction_listing.percentage_historical(market_value and Aux.round(auction_record.unit_buyout_price/market_value * 100) or '---') },
},
record = auction_record,
})
end
sort(auction_rows, function(a, b) return Aux.sort.multi_lt(a.record.name, b.record.name, a.record.search_signature, b.record.search_signature, tostring(a.record), tostring(b.record)) end)
private.listing:SetData(auction_rows)
private.listing:SetSelection(function(row) return row.record == selected_auction end)
private.listing:SetDatabase(auction_records)
end
function public.on_open()