--------------------------------------------------------------------------------
-- GUIコンポーネントのレイアウトを更新するためのクラスです.
-- レイアウトクラスは、コンポーネントに対する参照を持ちません.
-- また、コンポーネント間で共有してもいいように実装しなければなりません.
--------------------------------------------------------------------------------

-- import
local table             = require "hp/lang/table"
local class             = require "hp/lang/class"
local PropertyUtil      = require "hp/util/PropertyUtil"

-- class
local M                 = class()

--------------------------------------------------------------------------------
-- コンストラクタです
--------------------------------------------------------------------------------
function M:init(params)
    self:initInternal(params)
    self:copyParams(params)
end

--------------------------------------------------------------------------------
-- 内部変数の初期化処理です.
--------------------------------------------------------------------------------
function M:initInternal(params)
    
end

--------------------------------------------------------------------------------
-- レイアウトの更新処理を行います.
-- デフォルトでは何もしません.
-- 継承するクラスで実装してください.
--------------------------------------------------------------------------------
function M:update(parent)

end

--------------------------------------------------------------------------------
-- Set the parameter setter function.
-- @param params Parameter is set to Object.<br>
--------------------------------------------------------------------------------
function M:copyParams(params)
    if params then
        PropertyUtil.setProperties(self, params, true)
    end
end

return M