Module: Archimate::FileFormats::Serializer::ModelExchangeFile::V21::ViewNode
- Included in:
- ModelExchangeFileWriter21
- Defined in:
- lib/archimate/file_formats/serializer/model_exchange_file/v21/view_node.rb
Instance Method Summary collapse
- #serialize_view_node(xml, view_node, x_offset = 0, y_offset = 0) ⇒ Object
- #view_node_attrs(view_node, x_offset = 0, y_offset = 0) ⇒ Object
Instance Method Details
#serialize_view_node(xml, view_node, x_offset = 0, y_offset = 0) ⇒ Object
9 10 11 12 13 14 15 16 17 18 |
# File 'lib/archimate/file_formats/serializer/model_exchange_file/v21/view_node.rb', line 9 def serialize_view_node(xml, view_node, x_offset = 0, y_offset = 0) attrs = view_node_attrs(view_node, x_offset, y_offset) xml.node(attrs) do serialize_label(xml, view_node.name) if attrs[:type] == "group" serialize(xml, view_node.style) if view_node.style view_node.nodes.each do |c| serialize_view_node(xml, c) # , attrs[:x].to_f, attrs[:y].to_f) end end end |
#view_node_attrs(view_node, x_offset = 0, y_offset = 0) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/archimate/file_formats/serializer/model_exchange_file/v21/view_node.rb', line 20 def view_node_attrs(view_node, x_offset = 0, y_offset = 0) attrs = { identifier: identifier(view_node.id), elementref: nil, x: view_node.bounds ? (view_node.bounds&.x + x_offset).round : nil, y: view_node.bounds ? (view_node.bounds&.y + y_offset).round : nil, w: view_node.bounds&.width&.round, h: view_node.bounds&.height&.round, type: view_node.child_type } if view_node.element attrs[:elementref] = identifier(view_node.element.id) elsif view_node.view_refs # Since it doesn't seem to be forbidden, we just assume we can use # the elementref for views in views attrs[:elementref] = view_node.view_refs end attrs.compact end |