More on UITable and the Market.
This commit is contained in:
parent
9c8134c8a6
commit
76c7bf45bd
|
@ -1,9 +1,13 @@
|
||||||
Table < UITable
|
Table < UITable
|
||||||
layout: verticalBox
|
layout: verticalBox
|
||||||
|
column-style: TableColumn
|
||||||
|
row-style: TableRow
|
||||||
|
|
||||||
TableRow < UIScrollArea
|
TableRow < Label
|
||||||
|
id: defaultRow
|
||||||
layout: horizontalBox
|
layout: horizontalBox
|
||||||
height: 10
|
height: 10
|
||||||
|
|
||||||
TableColumn < UIScrollArea
|
TableColumn < Label
|
||||||
|
id: defaultColumn
|
||||||
width: 30
|
width: 30
|
||||||
|
|
|
@ -5,8 +5,9 @@ function UITable.create()
|
||||||
local table = UITable.internalCreate()
|
local table = UITable.internalCreate()
|
||||||
table.rows = {}
|
table.rows = {}
|
||||||
table.rows.columns = {}
|
table.rows.columns = {}
|
||||||
table.rowStyle = {}
|
table.rowBaseStyle = nil
|
||||||
table.columStyle = {}
|
table.columBaseStyle = nil
|
||||||
|
table.selectedRow = nil
|
||||||
return table
|
return table
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -22,23 +23,37 @@ function UITable:onStyleApply(styleName, styleNode)
|
||||||
for name, value in pairs(styleNode) do
|
for name, value in pairs(styleNode) do
|
||||||
if name == 'column-style' then
|
if name == 'column-style' then
|
||||||
addEvent(function()
|
addEvent(function()
|
||||||
self:setRowStyle(self:getParent():getChildById(value))
|
self:setColumnStyle(value)
|
||||||
end)
|
end)
|
||||||
elseif name == 'row-style' then
|
elseif name == 'row-style' then
|
||||||
addEvent(function()
|
addEvent(function()
|
||||||
self:setRowStyle(self:getParent():getChildById(value))
|
self:setRowStyle(value)
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function UITable:addRow(columns, rowStyle, columStyle)
|
function UITable:addRow(columns)
|
||||||
local row = g_ui.createWidget(rowStyle, self)
|
if not columns or type(columns) ~= 'table' then
|
||||||
|
g_logger.error('UITable:addRow - table columns must be provided in a table')
|
||||||
|
end
|
||||||
|
|
||||||
|
-- TODO: table header rows as buttons.
|
||||||
|
--[[if #self.rows < 1 then
|
||||||
|
g_ui.createWidget(self.rowBaseStyle, self)
|
||||||
|
end]]
|
||||||
|
|
||||||
|
local row = g_ui.createWidget(self.rowBaseStyle, self)
|
||||||
row.columns = {}
|
row.columns = {}
|
||||||
|
|
||||||
for k, data in pairs(columns) do
|
for _, column in pairs(columns) do
|
||||||
local col = g_ui.createWidget(columStyle, row)
|
local col = g_ui.createWidget(self.columBaseStyle, row)
|
||||||
col:setText(data)
|
if column[1] then
|
||||||
|
col:setText(column[1])
|
||||||
|
end
|
||||||
|
if #column > 1 then
|
||||||
|
col:setWidth(column[2])
|
||||||
|
end
|
||||||
table.insert(row.columns, col)
|
table.insert(row.columns, col)
|
||||||
end
|
end
|
||||||
row.onClick = function(row) self:selectRow(row) end
|
row.onClick = function(row) self:selectRow(row) end
|
||||||
|
@ -72,15 +87,15 @@ function UITable:selectRow(selectedRow)
|
||||||
end
|
end
|
||||||
|
|
||||||
function UITable:setRowStyle(style)
|
function UITable:setRowStyle(style)
|
||||||
self.rowStyle = style
|
self.rowBaseStyle = style
|
||||||
for k, row in pairs(self.rows) do
|
--[[for k, row in pairs(self.rows) do
|
||||||
row:setStyle(style)
|
row:setStyle(style)
|
||||||
end
|
end]]
|
||||||
end
|
end
|
||||||
|
|
||||||
function UITable:setColumnStyle(style)
|
function UITable:setColumnStyle(style)
|
||||||
self.columStyle = style
|
self.columBaseStyle = style
|
||||||
for k, col in pairs(self.rows.columns) do
|
--[[for k, col in pairs(self.rows.columns) do
|
||||||
col:setStyle(style)
|
col:setStyle(style)
|
||||||
end
|
end]]
|
||||||
end
|
end
|
|
@ -256,23 +256,23 @@ function Market.updateOffers(offers)
|
||||||
for k, offer in pairs(offers) do
|
for k, offer in pairs(offers) do
|
||||||
if offer and offer:getAction() == MarketAction.Buy then
|
if offer and offer:getAction() == MarketAction.Buy then
|
||||||
local data = {
|
local data = {
|
||||||
offer:getPlayer(),
|
{offer:getPlayer(), 80},
|
||||||
offer:getAmount(),
|
{offer:getAmount(), 50},
|
||||||
offer:getPrice()*offer:getAmount(),
|
{offer:getPrice()*offer:getAmount(), 80},
|
||||||
offer:getPrice(),
|
{offer:getPrice(), 60},
|
||||||
offer:getTimeStamp()
|
{offer:getTimeStamp(), 80}
|
||||||
}
|
}
|
||||||
local row = buyOfferTable:addRow(data, 'OfferTableRow', 'OfferTableColumn')
|
local row = buyOfferTable:addRow(data)
|
||||||
table.insert(marketOffers[MarketAction.Buy], offer)
|
table.insert(marketOffers[MarketAction.Buy], offer)
|
||||||
else
|
else
|
||||||
local data = {
|
local data = {
|
||||||
offer:getPlayer(),
|
{offer:getPlayer(), 80},
|
||||||
offer:getAmount(),
|
{offer:getAmount(), 50},
|
||||||
offer:getPrice()*offer:getAmount(),
|
{offer:getPrice()*offer:getAmount(), 80},
|
||||||
offer:getPrice(),
|
{offer:getPrice(), 60},
|
||||||
offer:getTimeStamp()
|
{offer:getTimeStamp(), 80}
|
||||||
}
|
}
|
||||||
local row = sellOfferTable:addRow(data, 'OfferTableRow', 'OfferTableColumn')
|
local row = sellOfferTable:addRow(data)
|
||||||
table.insert(marketOffers[MarketAction.Sell], offer)
|
table.insert(marketOffers[MarketAction.Sell], offer)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -323,7 +323,10 @@ function Market.onMarketEnter(depotItems, offers, balance)
|
||||||
loadDepotItems(depotItems)
|
loadDepotItems(depotItems)
|
||||||
|
|
||||||
-- TODO: if you are already viewing an item on market enter it must recheck the current item
|
-- TODO: if you are already viewing an item on market enter it must recheck the current item
|
||||||
if selectedItem and selectedItem:isChecked() then
|
print(selectedItem)
|
||||||
|
print(selectedItem:isChecked())
|
||||||
|
if selectedItem then
|
||||||
|
print('in')
|
||||||
selectedItem:setChecked(false)
|
selectedItem:setChecked(false)
|
||||||
selectedItem:setChecked(true)
|
selectedItem:setChecked(true)
|
||||||
end
|
end
|
||||||
|
|
|
@ -4,7 +4,7 @@ OfferTableRow < TableRow
|
||||||
text-offset: 2 0
|
text-offset: 2 0
|
||||||
focusable: true
|
focusable: true
|
||||||
color: #cccccc
|
color: #cccccc
|
||||||
height: 25
|
height: 15
|
||||||
|
|
||||||
$focus:
|
$focus:
|
||||||
background-color: #294f6d
|
background-color: #294f6d
|
||||||
|
@ -51,6 +51,8 @@ Panel
|
||||||
border-width: 1
|
border-width: 1
|
||||||
border-color: #191f27
|
border-color: #191f27
|
||||||
vertical-scrollbar: sellingTableScrollBar
|
vertical-scrollbar: sellingTableScrollBar
|
||||||
|
row-style: OfferTableRow
|
||||||
|
column-style: OfferTableColumn
|
||||||
|
|
||||||
VerticalScrollBar
|
VerticalScrollBar
|
||||||
id: sellingTableScrollBar
|
id: sellingTableScrollBar
|
||||||
|
@ -91,6 +93,8 @@ Panel
|
||||||
border-width: 1
|
border-width: 1
|
||||||
border-color: #191f27
|
border-color: #191f27
|
||||||
vertical-scrollbar: buyingTableScrollBar
|
vertical-scrollbar: buyingTableScrollBar
|
||||||
|
row-style: OfferTableRow
|
||||||
|
column-style: OfferTableColumn
|
||||||
|
|
||||||
VerticalScrollBar
|
VerticalScrollBar
|
||||||
id: buyingTableScrollBar
|
id: buyingTableScrollBar
|
||||||
|
|
Loading…
Reference in New Issue