Class: Clevic::CellRenderer

Inherits:
Object show all
Defined in:
lib/clevic/swing/cell_renderer.rb

Instance Method Summary collapse

Constructor Details

#initialize(table_view) ⇒ CellRenderer

Returns a new instance of CellRenderer.



4
5
6
7
# File 'lib/clevic/swing/cell_renderer.rb', line 4

def initialize( table_view )
  super()
  @table_view = table_view
end

Instance Method Details

#getTableCellRendererComponent(table, value, selected, has_focus, row_index, column_index) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/clevic/swing/cell_renderer.rb', line 9

def getTableCellRendererComponent( table, value, selected, has_focus, row_index, column_index )
  index = table.model.create_index( row_index, column_index )
  component = super( table, index.display_value, selected, has_focus, row_index, column_index )

  # set alignment
  component.horizontal_alignment = index.field.swing_alignment

  # set text colour
  component.foreground =
  case
  # read-only
  when index.field.read_only? || index.entity.andand.readonly? || @table_view.model.read_only?
    java.awt.Color.lightGray

  # errors
  when index.entity.errors.has_key?( index.field.id )
    java.awt.Color.red

  # whatever the view says
  else
    index.field.foreground_for( index.entity )
  end

  # set tooltip
  component.tool_tip_text = index.tooltip

  component
rescue
  puts $!.backtrace
  puts $!.message
  puts index.entity.inspect
  nil
end