Class: ViewWrapper

Inherits:
Object show all
Includes:
Droiuby::ViewHelper, Droiuby::Wrappers::Listeners, JavaMethodHelper
Defined in:
lib/droiuby/wrappers/view_wrapper.rb

Instance Method Summary collapse

Methods included from Droiuby::Wrappers::Listeners

#on

Methods included from Droiuby::ViewHelper

included

Methods included from JavaMethodHelper

included

Constructor Details

#initialize(view = nil) ⇒ ViewWrapper

Returns a new instance of ViewWrapper.



19
20
21
22
23
24
25
26
27
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 19

def initialize(view = nil)
  unless view.nil?
    @view = view
  else
    @view = Java::com.droiuby.wrappers.ViewRubyWrapper.new(_execution_bundle, self, _current_activity)
  end
  @builder = Java::com.droiuby.client.core.builder.ViewBuilder.new
  @builder.setContext(_current_activity)
end

Instance Method Details

#animate(&block) ⇒ Object



126
127
128
129
130
131
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 126

def animate(&block)
  animator = Animator.new(self)
  block.call(animator)
  animator.done
  animator
end

#background=(background) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 37

def background=(background)
  if background.kind_of? DrawableWrapper
    @view.setBackgroundDrawable(background.native)
  else
    builder.setProperty(native,'background', background.to_s)
  end
end

#background_color=(value) ⇒ Object



53
54
55
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 53

def background_color=(value)
  @view.setBackgroundColor(parse_color(value));
end


105
106
107
108
109
110
111
112
113
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 105

def blink
  orig_alpha = self.alpha
  view = self
  self.animate { |a|
    a.alpha 0, 1
  }.on(:end) { |v|
    view.alpha = orig_alpha
  }.start
end

#builderObject



33
34
35
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 33

def builder
  @builder
end

#clickObject



141
142
143
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 141

def click
  self.native.performClick
end

#data(key) ⇒ Object



191
192
193
194
195
196
197
198
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 191

def data(key)
  if _extras
    data_attributes = _extras.getDataAttributes
    if data_attributes.containsKey(key)
      data_attributes.get(key)
    end
  end
end

#enabled=(flag) ⇒ Object



93
94
95
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 93

def enabled=(flag)
  @view.setEnabled(flag)
end

#enabled?Boolean

Returns:

  • (Boolean)


97
98
99
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 97

def enabled?
  @view.isEnabled
end

#find(selectors) ⇒ Object



115
116
117
118
119
120
121
122
123
124
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 115

def find(selectors)
  view = _activity_builder.findViewByName(selectors, self.native, false)
  if (view.kind_of? Java::java.util.ArrayList)
    view.toArray.to_a.collect do |element|
      wrap_native_view(element)
    end
  else
    wrap_native_view(view) if view
  end
end

#gone=(flag) ⇒ Object



57
58
59
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 57

def gone=(flag)
  @view.setVisibility(Java::android.view.View::GONE) if flag
end

#gone?Boolean

Returns:

  • (Boolean)


61
62
63
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 61

def gone?
  hidden?
end

#height=(height) ⇒ Object



49
50
51
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 49

def height=(height)
  builder.setProperty(native,'height', height.to_s)
end

#hidden?Boolean

Returns:

  • (Boolean)


69
70
71
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 69

def hidden?
  @view.getVisibility == Java::android.view.View::GONE
end

#hide!Object



77
78
79
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 77

def hide!
  @view.setVisibility(Java::android.view.View::GONE)
end

#invalidateObject



65
66
67
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 65

def invalidate
  @view.invalidate
end

#nativeObject



29
30
31
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 29

def native
  @view
end

#p_tree(level = 0, extra_attributes = %w[measured_height measured_width]) ⇒ Object



145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 145

def p_tree(level = 0, extra_attributes = %w[measured_height measured_width])
  spaces = ''
  level.times { |i| spaces << '  '}

  id_attr = self.id
  name_attr = ""
  class_attr = ""

  if tag
    id_attr = tag.getView_id
    name_attr = tag.getView_name
    class_attr = tag.getView_class
  else
    rid = reverse_resolve(id_attr)
    id_attr = "^#{rid}" unless rid.nil?
  end

  data_attribute_list = []
  if _extras
    attributes = _extras.getDataAttributes

    attributes.keySet.each do |key|
      data_attribute_list << "data-#{key}=\"#{self.data(key)}\""
    end
  end

  extra_attributes.each do |attr|
    data_attribute_list << "#{attr.to_sym}=\"#{p_format(attr,self.send(attr.to_sym))}\""  
  end

  puts "#{spaces}#{self.class.name} id=\"#{id_attr}\" name=\"#{name_attr}\" class=\"#{class_attr}\" #{data_attribute_list.join(' ')}\n"
  self.children.each { |c|
    c.p_tree(level + 1, extra_attributes)
  } if self.respond_to? :children
end

#parentObject



101
102
103
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 101

def parent
  wrap_native_view(@view.getParent)
end

#show!Object



73
74
75
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 73

def show!
  @view.setVisibility(Java::android.view.View::VISIBLE)
end

#tagObject



181
182
183
184
185
186
187
188
189
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 181

def tag
  unless native.getTag.nil?
    tag = native.getTag
    if tag.kind_of? Java::com.droiuby.client.core.ViewExtras
      return tag
    end
  end
  nil
end

#to_front!Object



81
82
83
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 81

def to_front!
  @view.bringToFront
end

#to_native(target) ⇒ Object



133
134
135
136
137
138
139
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 133

def to_native(target)
  if child.kind_of? ViewWrapper
    target.native
  elsif target.kind_of? Java::android.view.View.new
    target
  end
end

#visible=(flag) ⇒ Object



85
86
87
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 85

def visible=(flag)
  @view.setVisibility(flag ? Java::android.view.View::VISIBLE : Java::android.view.View::INVISIBLE)
end

#visible?Boolean

Returns:

  • (Boolean)


89
90
91
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 89

def visible?
  @view.getVisibility == Java::android.view.View::VISIBLE
end

#width=(width) ⇒ Object



45
46
47
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 45

def width=(width)
  builder.setProperty(native,'width', width.to_s)
end