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.



22
23
24
25
26
27
28
29
30
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 22

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



129
130
131
132
133
134
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 129

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

#background=(background) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 40

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



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

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


108
109
110
111
112
113
114
115
116
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 108

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



36
37
38
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 36

def builder
  @builder
end

#clickObject



144
145
146
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 144

def click
  self.native.performClick
end

#data(key) ⇒ Object



194
195
196
197
198
199
200
201
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 194

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

#enabled=(flag) ⇒ Object



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

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

#enabled?Boolean

Returns:



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

def enabled?
  @view.isEnabled
end

#find(selectors) ⇒ Object



118
119
120
121
122
123
124
125
126
127
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 118

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



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

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

#gone?Boolean

Returns:



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

def gone?
  hidden?
end

#height=(height) ⇒ Object



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

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

#hidden?Boolean

Returns:



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

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

#hide!Object



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

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

#invalidateObject



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

def invalidate
  @view.invalidate
end

#nativeObject



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

def native
  @view
end

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



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
180
181
182
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 148

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}=\"#{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



104
105
106
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 104

def parent
  wrap_native_view(@view.getParent)
end

#show!Object



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

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

#tagObject



184
185
186
187
188
189
190
191
192
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 184

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



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

def to_front!
  @view.bringToFront
end

#to_native(target) ⇒ Object



136
137
138
139
140
141
142
# File 'lib/droiuby/wrappers/view_wrapper.rb', line 136

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



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

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

#visible?Boolean

Returns:



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

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

#width=(width) ⇒ Object



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

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