Class: UU::OS::VUC::Navigation
- Inherits:
-
Object
- Object
- UU::OS::VUC::Navigation
- Defined in:
- uu_adk-0.28.16/lib/uu/os/vuc/navigation.rb
Overview
Form navigation object.
Defined Under Namespace
Classes: NavigationAction, Progress
Instance Attribute Summary (collapse)
-
- (String, UU::OS::UESURI) action
Navigation action.
-
- (UU::OS::VUC::Navigation::Progress) progress
readonly
Progress dialog settings (progress must be enabled via action).
Class Method Summary (collapse)
-
+ (String) create_download_action(download_uri)
Creates action for launching download from client (browser).
Instance Method Summary (collapse)
-
- (Navigation) initialize(data = nil)
constructor
Creates new instance of navigation.
Constructor Details
- (Navigation) initialize(data = nil)
Creates new instance of navigation.
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'uu_adk-0.28.16/lib/uu/os/vuc/navigation.rb', line 33 def initialize(data = nil) if data.nil? @raw_attrs = {} return end if data.kind_of?String data = JSON.parse(data, :symbolize_names => true) end if data.kind_of?Hash @raw_attrs = data elsif data.kind_of?Navigation if data.raw_attrs @raw_attrs = data.raw_attrs else @raw_attrs = {} end else raise ArgumentError.new("Navigation data must be JSON String or Hash, but was #{data.class}.") end end |
Instance Attribute Details
- (String, UU::OS::UESURI) action
Navigation action. Can be UESURI or value from NavigationAction.
24 25 26 |
# File 'uu_adk-0.28.16/lib/uu/os/vuc/navigation.rb', line 24 def action @action end |
- (UU::OS::VUC::Navigation::Progress) progress (readonly)
Progress dialog settings (progress must be enabled via action).
28 29 30 |
# File 'uu_adk-0.28.16/lib/uu/os/vuc/navigation.rb', line 28 def progress @progress end |
Class Method Details
+ (String) create_download_action(download_uri)
Creates action for launching download from client (browser).
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'uu_adk-0.28.16/lib/uu/os/vuc/navigation.rb', line 87 def self.create_download_action(download_uri) if download_uri.nil? || (download_uri.kind_of?(String) && download_uri.empty?) return download_uri end unless (download_uri.kind_of?(String) && (download_uri.start_with?('ues:') || download_uri.start_with?('uu-uds:'))) || download_uri.kind_of?(UU::OS::UESURI) raise ArgumentError.new("download_uri must be UES-URI instance or URI string containing UES-URI or UDS-URI, but it was #{download_uri}.") end uri = UU::OS::UESURI.new(download_uri) p = [] p = uri.parameters unless uri.parameters.nil? win_params = p.drop_while { |it| it.name != 'windowParameters' }.first if !win_params.nil? && win_params.value.start_with?('{') win_params = JSON.parse(win_params.value, :symbolize_names => true) else win_params = {} end win_params[:target] = 'DOWNLOAD' action_uri_b = UU::OS::UESURIBuilder.parse_uesuri(uri).clear_parameters() p.each { |it| action_uri_b.add_parameter(it.name, it.value) unless it.name == 'windowParameters' } action_uri_b.add_parameter('windowParameters', win_params.to_json) uri.schema + ':' + action_uri_b.to_uesuri.to_s.gsub(/^ues:/, "") # UESURIBuilder currently forces scheme to 'ues:' but the initial URI might have different one, e.g. uu-uds: end |