Class: Y2Network::Widgets::WirelessNetworks

Inherits:
CWM::Table
  • Object
show all
Defined in:
src/lib/y2network/widgets/wireless_networks.rb

Overview

This class

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(builder, networks = []) ⇒ WirelessNetworks

Constructor

Parameters:



33
34
35
36
37
38
# File 'src/lib/y2network/widgets/wireless_networks.rb', line 33

def initialize(builder, networks = [])
  super()
  textdomain "network"
  @networks = networks
  @builder = builder
end

Instance Attribute Details

#selectedObject (readonly)

Returns the value of attribute selected.



27
28
29
# File 'src/lib/y2network/widgets/wireless_networks.rb', line 27

def selected
  @selected
end

Instance Method Details

#headerArray<String>

Returns table headers

Returns:

  • (Array<String>)


57
58
59
# File 'src/lib/y2network/widgets/wireless_networks.rb', line 57

def header
  [_("ESSID"), _("Mode"), _("Channel"), _("Rate"), _("Signal"), _("Authentication")]
end

#initObject

See Also:

  • CWM::AbstractWidget


41
42
43
44
45
46
47
48
49
50
51
52
# File 'src/lib/y2network/widgets/wireless_networks.rb', line 41

def init
  self.value = @builder.essid if @builder.essid

  if value.nil?
    first_essid = @networks.map(&:essid).min
    self.value = first_essid if first_essid
  end

  # FIXME: the dialog does not implement this method, so we need to set the focus
  # within the widget. We should find a better way.
  focus
end

#itemsArray<Array<String>>

Returns table items

Each item corresponds to a wireless network.

Returns:

  • (Array<Array<String>>)


66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'src/lib/y2network/widgets/wireless_networks.rb', line 66

def items
  @networks.map do |network|
    [
      network.essid,
      network.essid,
      network.mode,
      network.channel,
      network.rates.max.to_s,
      network.quality ? "#{network.quality}%" : "",
      network.auth_mode&.to_human_string
    ]
  end
end

#storeObject

See Also:

  • CWM::AbstractWidget


91
92
93
# File 'src/lib/y2network/widgets/wireless_networks.rb', line 91

def store
  @selected = @networks.find { |n| n.essid == value }
end

#update(networks) ⇒ Object

Updates the list of networks

Parameters:



83
84
85
86
87
88
# File 'src/lib/y2network/widgets/wireless_networks.rb', line 83

def update(networks)
  @networks = networks
  old_value = Yast::UI.QueryWidget(Id(widget_id), :SelectedItems)
  change_items(items)
  self.value = old_value if old_value
end