Module: Archimate::FileFormats::Serializer::ModelExchangeFile::V30::ViewNode
- Included in:
- ModelExchangeFileWriter30
- Defined in:
- lib/archimate/file_formats/serializer/model_exchange_file/v30/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/v30/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, :label) serialize(xml, view_node.style) if view_node.style view_node.nodes.each do |c| serialize_view_node(xml, c) # , view_node_attrs[:x].to_f, view_node_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 39 |
# File 'lib/archimate/file_formats/serializer/model_exchange_file/v30/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, "xsi:type" => view_node.type, "x" => view_node.bounds ? ((view_node.bounds&.x || 0) + x_offset).round : nil, "y" => view_node.bounds ? ((view_node.bounds&.y || 0) + y_offset).round : nil, "w" => view_node.bounds&.width&.round, "h" => view_node.bounds&.height&.round } 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 attrs[:type] = "model" end attrs.compact end |