Skip to content
Patrick Plenefisch edited this page May 20, 2013 · 3 revisions

Welcome to the JRubyFX-FXMLLoader wiki!

What needs doing

  • coercion
  • and more (see JRubyFX wiki for most other stuff)

Coercion

Coercion in RubyWrapperBeanAdapter.coerce (rrba.rb) needs some overrides provided

  • !!! means this needs to be properly coerced
  • x means good
  • o means this should never be called because it is always an object coerced to itself
  • e means enum (and all enums are properly converted currently)
  • ? means look into this more as we might need to fix this
  • and nothing means it should be ok

(in order of # of times it appears as a fxml property)

 x javafx.event.EventHandler
 x double
 x boolean
 x java.lang.String
 o javafx.scene.Node
 x java.lang.Object
  javafx.scene.effect.Effect
  javafx.event.EventDispatcher
 ? javafx.geometry.Point3D
 e javafx.scene.effect.BlendMode
!!!javafx.scene.Cursor
  javafx.scene.input.InputMethodRequests
 e javafx.scene.DepthTest
 e javafx.scene.CacheHint
  com.sun.javafx.scene.traversal.TraversalEngine
 x javafx.scene.paint.Paint
 x int
  javafx.scene.control.Skin
 o javafx.scene.control.ContextMenu
 o javafx.scene.control.Tooltip
 e javafx.geometry.Side
!!!javafx.util.Duration
 ? javafx.geometry.Insets
 e javafx.geometry.Pos
 o javafx.scene.text.Font
 o javafx.collections.ObservableList
 e javafx.scene.text.TextAlignment
 e javafx.scene.control.OverrunStyle
 e javafx.scene.control.ContentDisplay
 e javafx.scene.shape.StrokeLineCap
 e javafx.scene.shape.StrokeLineJoin
 e javafx.scene.shape.StrokeType
!!!javafx.animation.Interpolator
  java.lang.Runnable
  javafx.util.Callback
 e javafx.geometry.Orientation
 ? javafx.scene.paint.Color
 ? javafx.scene.input.KeyCombination
  javafx.util.StringConverter
!!!java.lang.Number
!!!java.lang.Boolean
 e javafx.geometry.VPos
  javafx.scene.control.ToggleGroup
  javafx.scene.control.SingleSelectionModel
  javafx.scene.shape.Shape
 e javafx.geometry.HPos
 e javafx.scene.effect.BlurType
  java.io.File
 ? [Ljavafx.scene.shape.PathElement;
 e javafx.scene.text.FontSmoothingType
 e javafx.scene.shape.FillRule
 e javafx.scene.layout.Priority
 ? javafx.geometry.Rectangle2D
 o javafx.scene.image.Image
  javafx.collections.ObservableMap
  javafx.collections.ObservableSet
  [Ljava.lang.StackTraceElement;
 e javafx.scene.control.ScrollPane$ScrollBarPolicy
  javafx.scene.control.FocusModel
  javafx.scene.control.MultipleSelectionModel
 e javafx.scene.control.TabPane$TabClosingPolicy
 o javafx.scene.control.TreeItem
 e javafx.scene.text.TextBoundsType
  javafx.scene.media.AudioSpectrumListener
  javafx.scene.media.MediaPlayer
!!!long
  java.util.Collection
  [Ljava.lang.Object;
!!!float
  javafx.scene.effect.FloatMap
 e javafx.scene.shape.ArcType
 e javafx.animation.PathTransition$OrientationType
 e javafx.scene.control.TableColumn$SortType
  java.util.Comparator
  javafx.scene.control.TableView$TableViewFocusModel
  javafx.scene.control.TableView$TableViewSelectionModel
 x [D
 ? javafx.geometry.Bounds
  javafx.scene.Camera
  java.util.Map
 o javafx.scene.Parent
 o javafx.scene.Scene
  javafx.scene.effect.Light
 o javafx.scene.control.ListCell
 o javafx.scene.control.TitledPane

Code used to generate this list:

aargs = []
JRubyFX::DSL::NAME_TO_CLASSES.each do |n,cls|
  cls.java_class.java_instance_methods.each do |method|
    next unless method.name.start_with?("set")
    args = method.argument_types

    aargs += args.map{|x| ( x.enum? ? " e ": "  ") + x.to_s }
  end if cls.respond_to? :ancestors and cls.ancestors.include? JavaProxy # some are not java classes. ignore those
end

aargs = Hash[aargs.uniq.map{|u| [u, aargs.count(u)]}]
aargs = Hash[aargs.sort { |a, b| a[1] <=> b[1] }]
puts aargs
puts "-"*40
puts aargs.map{|k,v|k}.reverse
Clone this wiki locally