CSS-Documentation for IDE-Usage
Tom Schindl
tom.schindl at bestsolution.at
Fri Jul 6 10:52:18 PDT 2012
Hi,
Well for me the important thing is a meta format I can feed to my
IDE-Tooling which holds the following informations:
* property name
* validation information
I've been working on a long train drive 2 weeks ago on such a meta
format and translated fairly all informations found in the HTML-document
into my meta language (the grammer of the language is not yet able to
define all constructs in the document but we I'm not far way :-)
I've developed this using xtext-framework
(http://www.eclipse.org/Xtext/) which has the advantage that I also have
an editor with syntax highlighting, auto-completetion, ... in my Eclipse.
I'm not sure this is the same direction you are heading to - for me a
meta format be it XML, ... (I can easily provide you an
XML-Representation of the xtext-Spec I attached) is the important thing
I need to make my tooling cleverer.
Tom
Am 06.07.12 19:21, schrieb David Grieve:
> There is no such document, just the cssref html document.
>
> I would like, however, to get all of the tables and such that describe
> the css properties out of that document and into proper javadoc for the
> corresponding JavaFX properties - perhaps with an @css javadoc tag or an
> @css annotation. I'm not sure if that would hurt or help.
>
> On Jun 19, 2012, at 11:59 AM, Richard Bair wrote:
>
>> Hi Tom,
>>
>> I don't think we have a structured document with this information, but
>> it sounds useful! David is on Vacation but he should be involved when
>> he gets back hopefully later this week or next week.
>>
>> Cheers
>> Richard
>>
>> On Jun 19, 2012, at 1:38 AM, Tom Schindl wrote:
>>
>>> Hi,
>>>
>>> Is there some structured text document one can use to teach IDEs hover
>>> documentation of CSS-Attribute, or do I need to extract those
>>> information from the published HTML-CSS-Documentation?
>>>
>>> My hope is that this document is generated from some more structured
>>> resource I can use in my Eclipse integration. If there's no such
>>> document, I'd like to contribute in creating such a meta-format and
>>> generate the HTML-Document from it. Any netbeans people here who'd like
>>> to work with me on this?
>>>
>>> Tom
>>>
>>> --
>>> B e s t S o l u t i o n . a t EDV Systemhaus GmbH
>>> ------------------------------------------------------------------------
>>> tom schindl geschäftsführer/CEO
>>> ------------------------------------------------------------------------
>>> eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833
>>> http://www.BestSolution.at phone ++43 512 935834
>>
>
> <http://www.oracle.com>
> David Grieve | Principal Member of Technical Staff
> Mobile: +16033121013 <tel:+16033121013>
> Oracle Java Client UI and Tools
> Durham, NH 03824
> <http://www.oracle.com/commitment> Oracle is committed to developing
> practices and products that help protect the environment
>
--
B e s t S o l u t i o n . a t EDV Systemhaus GmbH
------------------------------------------------------------------------
tom schindl geschäftsführer/CEO
------------------------------------------------------------------------
eduard-bodem-gasse 5-7/1 A-6020 innsbruck fax ++43 512 935833
http://www.BestSolution.at phone ++43 512 935834
-------------- next part --------------
package javafx {
// type boolean {
//
// },
type t_number {
DOUBLE
},
enumtype unit_symbols {
'px', 'mm', 'cm', 'in', 'pt','pc','em','ex'
},
enumtype angle_symbols {
'deg','rad','grad','turn'
},
type size {
<t_number> | <length> | <percentage>
},
type length {
<t_number> [<unit_symbols>]?
},
type percentage {
<t_number> '%'
},
type angle {
<t_number> <angle_symbols>
},
type point {
[ <length> <length> ] | [ <percentage> | <percentage> ]
},
type color_stop {
<color> [ <percentage> | <length>]?
},
type uri {
STRING
// url ( [\"\']? <address> [\"\']? )
},
enumtype blur_type {
'gaussian','one-pass-box','three-pass-box','two-pass-box'
},
type effect {
<dropshadow> | <innershadow>
},
type dropshadow {
<blur_type>
// dropshadow( <blur_type> ',' <color> ',' <t_number> ',' <t_number> ',' <t_number> ',' <t_number> )
},
type innershadow {
<blur_type>
},
type font_family {
STRING
},
type font_size {
<size>
},
enumtype font_style {
'normal','italic','oblique'
},
enumtype font_weight {
'normal','bold','bolder','lighter',
'100','200','300','400','500','600','700','800','900'
},
type font {
[ <font_style> || <font_weight> ]? //<font_size> <font_family>
},
type paint {
<color> | <linear_gradient> | <radial_gradient>
},
type linear_gradient {
STRING
//NOT SUPPORTED linear-gradient( [ [from <point> to <point>] | [ to <side-or-corner>], ]? [ [ repeat | reflect ], ]? <color-stop>[, <color-stop>]+)
},
type radial_gradient {
STRING
//NOT SUPPORTED radial-gradient([ focus-angle <angle>, ]? [ focus-distance <percentage>, ]? [ center <point>, ]? radius [ <length> | <percentage> ] [ [ repeat | reflect ], ]? <color-stop>[, <color-stop>]+)
},
type color {
<named_color> | <looked_up_color> | <rgb_color> | <hsb_color> | <color_function>
},
enumtype named_color {
'aliceblue', 'antiquewhite' // ....
},
type looked_up_color {
STRING
},
type rgb_color {
STRING
},
type hsb_color {
STRING
},
type color_function {
STRING
}
package stage {
Window {
},
PopupWindow extends Window {
}
}
package scene {
enumtype fx_cursor {
'null',
'crosshair',
'default',
'hand',
'move',
'e-resize',
'h-resize',
'ne-resize',
'nw-resize',
'n-resize',
'se-resize',
'sw-resize','s-resize',
'w-resize',
'v-resize',
'text',
'wait'
}
/#
# All attributes that can be applied to Nodes
#/
Node {
/#
# Some blurb about the blend mode
#/
enum '-fx-blend-mode' default 'null' {
/#
# blurb about add
#/
'add',
'blue', 'color-burn',
'color-dodge', 'darken', 'difference',
'exclusion', 'green', 'hard-light',
'lighten', 'multiply', 'overlay',
'red', 'screen', 'soft-light',
'src-atop', 'src-in', 'src-out',
'src-over'
},
'-fx-cursor' default 'null' {
<fx_cursor> | <uri>
},
boolean '-fx-focus-traversable' default false,
/#
# Opacity can be thought of conceptually as a postprocessing operation.
# Conceptually, after the node (including its descendants) is rendered into an
# RGBA offscreen image, the opacity setting specifies how to blend the offscreen
# rendering into the current composite rendering.
#/
number '-fx-opacity' default 0d range 0d to 1d,
/#
# This is the angle of the rotation in degrees.
# Zero degrees is at 3 o'clock (directly to the right).
# Angle values are positive clockwise. Rotation is about the center.
#/
number '-fx-rotate' default 0d,
/#
# scale about the center
#/
unsigned number '-fx-scale-x' default 1l,
/#
# scale about the center
#/
unsigned number '-fx-scale-y' default 1l,
/#
# scale about the center
#/
unsigned number '-fx-scale-z' default 1l,
enum 'visibility' default 'visible' {
'visible','hidden','collapse','inherit'
},
/#
# applies when the disabled variable is true
#/
pseudoclass 'disabled',
/#
# applies when the focused variable is true
#/
pseudoclass 'focused',
/#
# applies when the hover variable is true
#/
pseudoclass 'hover',
/#
# applies when the pressed variable is true
#/
pseudoclass 'pressed',
/#
# apples when the mnemonic affordance (typically an underscore) should be shown.
#/
pseudoclass 'show-mnemonic'
},
Parent extends Node {
},
Group extends Parent {
}
package image {
ImageView extends Node {
'-fx-image' default 'null' {
<uri>
}
}
}
package layout {
enumtype bg_pos_1 {
'left','center','right'
},
enumtype bg_pos_2 {
'top','center','bottom'
},
enumtype bg_pos_3 {
'center', 'center'
},
enumtype bg_pos_4 {
'left' , 'right'
},
enumtype bg_pos_5 {
'top' , 'bottom'
},
type bg_position {
[[ <size> | <bg_pos_1> ] [ <size> | <bg_pos_2> ]?] |
[ [ <bg_pos_3> | <bg_pos_4> [<size>]? ] || [ <bg_pos_3> | <bg_pos_5> [<size>]? ]]
},
enumtype repeat_vals_1 {
'repeat-x','repeat-y'
},
enumtype repeat_vals_2 {
'repeat','space','round','stretch','no-repeat'
},
type repeat_style {
[<repeat_vals_1> | <repeat_vals_2>]{1,2}
},
enumtype bg_size_1 {
'auto','auto'
},
enumtype bg_size_2 {
'cover','contain','stretch'
},
type bg_size {
[ <size> | <bg_size_1> ]{1,2} | <bg_size_2>
},
enumtype dash_style_1 {
'none','solid','dotted','dashed'
},
type dash_style {
<dash_style_1> //NOT SUPPORTED| segments( <t_number>, <t_number> [',' <t_number>]*)
},
enumtype border_style_1 {
'centered','inside','outside'
},
type border_style {
<dash_style> /*NOT SUPPORTED['phase' <t_number>]?*/ [<border_style_1>]?
//NOT SUPPORTED <dash-style> [phase <number>]? [centered | inside | outside]? [line-join [miter <number> | bevel | round]]? [line-cap [square | butt | round]]?
// ---
// [ none | solid | dotted | dashed | segments( <number>, <number> [, <number>]*) ]
}
Region extends Parent {
/#
# A series of paint values separated by commas.
#/
'-fx-background-color' default 'null' {
<paint> //NOT SUPPORTED[ , <paint> ]*
},
/#
# A series of size values or sets of four size values, separated by commas. A single size value means all insets are the same. Otherwise, the four values for each inset are given in the order top, right, bottom, left. Each comma-separated value or set of values in the series applies to the corresponding background color.
#/
'-fx-background-insets' default 'null' {
<size> //NOT SUPPORTED | <size> <size> <size> <size> [ , [ <size> | <size> <size> <size> <size>] ]*
},
/#
# A series of radius values or sets of four radius values, separated by commas. A single radius value means the radius of all four corners is the same. Otherwise, the four values in the set determine the radii of the top-left, top-right, bottom-right, and bottom-left corners, in that order. Each comma-separated value or set of values in the series applies to the corresponding background color.
#/
'-fx-background-radius' default 'null' {
<size> //NOT SUPPORTED | <size> <size> <size> <size> [ , [ <size> | <size> <size> <size> <size>] ]*
},
/#
# A series of image URIs separated by commas.
#/
'-fx-background-image' default 'null' {
<uri> //NOT SUPPORTED [ , <uri> ]*
},
'-fx-background-position' default 'null' {
<bg_position> //NOT SUPPORTED [ , <bg_position> ]*
},
'-fx-background-repeat' default 'null' {
<repeat_style> //NOT SUPPORTED [ , <repeat_style> ]*
},
'-fx-background-size' default 'null' {
<bg_size> //NOT SUPPORTED [ , <bg_size> ]*
},
'-fx-border-color' default 'null' {
<paint> //NOT SUPPORTED | <paint> <paint> <paint> <paint> [ , [<paint> | <paint> <paint> <paint> <paint>] ]*
},
'-fx-border-insets' default 'null' {
<size> //NOT SUPPORTED| <size> <size> <size> <size> [ , [ <size> | <size> <size> <size> <size>] ]*
},
'-fx-border-radius' default 'null' {
<size> //NOT SUPPORTED | <size> <size> <size> <size> [ , [ <size> | <size> <size> <size> <size>] ]*
},
'-fx-border-style' default 'null' {
<border_style> // NOT SUPPORTED[ , <border_style> ]*
},
'-fx-border-width' default 'null' {
<size> //NOT SUPPORTED| <size> <size> <size> <size> [ , [ <size> | <size> <size> <size> <size>] ]*
},
'-fx-border-image-source' default 'null' {
<uri> //NOT SUPPORTED [ , <uri> ]*
},
'-fx-border-image-insets' default 'null' {
<size> //NOT SUPPORTED | <size> <size> <size> <size> [ , [ <size> | <size> <size> <size> <size>] ]*
},
'-fx-border-image-repeat' default 'null' {
<repeat_style> //NOT SUPPORTED[ , <repeat_style> ]*
},
'-fx-border-image-slice' default 'null' {
[<size> | <size> <size> <size> <size> ] //NOT SUPPORTED'fill'? [ , [ <size> | <size><size> <size> <size> <size> ] 'fill'? ]*
},
'-fx-border-image-width' default 'null' {
<size> // NOT SUPPORTED| <size> <size> <size> <size> [ , [ <size> | <size> <size> <size> <size>] ]*
},
'-fx-padding' default 'null' {
<size> | <size> <size> <size> <size>
},
boolean '-fx-position-shape' default true,
boolean '-fx-scale-shape' default true,
string '-fx-shape' default 'null',
boolean '-fx-snap-to-pixel' default true
// '-fx-background-fills'
// '-fx-background-images'
// '-fx-stroke-borders'
// '-fx-image-borders'
},
Pane {
},
AnchorPane extends Pane {
},
BorderPane extends Pane {
},
FlowPane extends Pane {
'-fx-hgap' default '0' {
<size>
},
'-fx-vgap' default '0' {
<size>
},
enum '-fx-alignment' default 'top-left' {
'top-left',
'top-center',
'top-right',
'center-left',
'center',
'center-right',
'bottom-left',
'bottom-center',
'bottom-right',
'baseline-left',
'baseline-center',
'baseline-right'
},
enum '-fx-column-halignment' default 'center' {
'left',
'center',
'right'
},
enum '-fx-row-valignment' default 'center' {
'top',
'center',
'baseline',
'bottom'
},
enum '-fx-orientation' default 'horizontal' {
'horizontal',
'vertical'
}
},
GridPane extends Pane {
'-fx-hgap' default '0' {
<size>
},
'-fx-vgap' default '0' {
<size>
},
enum '-fx-alignment' default 'top-left' {
'top-left',
'top-center',
'top-right',
'center-left',
'center',
'center-right',
'bottom-left',
'bottom-center',
'bottom-right',
'baseline-left',
'baseline-center',
'baseline-right'
},
boolean '-fx-grid-lines-visible' default false
},
HBox extends Pane {
'-fx-spacing' default '0' {
<size>
},
enum '-fx-alignment' default 'top-left' {
'top-left',
'top-center',
'top-right',
'center-left',
'center',
'center-right',
'bottom-left',
'bottom-center',
'bottom-right',
'baseline-left',
'baseline-center',
'baseline-right'
},
boolean '-fx-fill-height' default false
},
StackPane extends Pane {
enum '-fx-alignment' default 'top-left' {
'top-left',
'top-center',
'top-right',
'center-left',
'center',
'center-right',
'bottom-left',
'bottom-center',
'bottom-right',
'baseline-left',
'baseline-center',
'baseline-right'
}
},
TilePane extends Pane {
enum '-fx-orientation' default 'horizontal' {
'horizontal','vertical'
},
unsigned integer '-fx-pref-rows' default 5,
unsigned integer '-fx-pref-columns' default 5,
'-fx-pref-tile-width' default '-1' {
<size>
},
'-fx-pref-tile-height' default '-1' {
<size>
},
'-fx-hgap' default '0' {
<size>
},
'-fx-vgap' default '0' {
<size>
},
enum '-fx-alignment' default 'top-left' {
'top-left',
'top-center',
'top-right',
'center-left',
'center','center-right',
'bottom-left',
'bottom-center',
'bottom-right',
'baseline-left',
'baseline-center',
'baseline-right'
},
enum '-fx-tile-alignment' default 'center' {
'top-left',
'top-center',
'top-right',
'center-left',
'center','center-right',
'bottom-left',
'bottom-center',
'bottom-right',
'baseline-left',
'baseline-center',
'baseline-right'
}
},
VBox {
'-fx-spacing' default '0' {
<size>
},
enum '-fx-alignment' default 'top-left' {
'top-left',
'top-center',
'top-right',
'center-left',
'center','center-right',
'bottom-left',
'bottom-center',
'bottom-right',
'baseline-left',
'baseline-center',
'baseline-right'
},
boolean '-fx-fill-width' default true
}
}
package shape {
Shape extends Node {
'-fx-fill' default 'BLACK' {
<paint>
},
boolean '-fx-smooth' default true,
'-fx-stroke' default 'null' {
<paint>
},
enum '-fx-stroke-type' default 'centered' {
'inside','outside','centered'
},
'-fx-stroke-dash-array' default 'null' {
<size>[ <size>]+
},
number '-fx-stroke-dash-offset' default 0d,
enum '-fx-stroke-line-cap' default 'square' {
'square','butt','round'
},
enum '-fx-stroke-line-join' default 'miter' {
'miter','bevel','round'
},
number '-fx-stroke-miter-limit' default 10d,
'-fx-stroke-width' default '1' {
<size>
}
},
Arc extends Shape {
},
Circle extends Shape {
},
CubicCurve extends Shape {
},
Ellipse extends Shape {
},
Line extends Shape {
},
Path extends Shape {
},
Polygon extends Shape {
},
QuadCurve extends Shape {
},
Rectangle extends Shape {
'-fx-arc-height' default '0' {
<size>
},
'-fx-arc-width' default '0' {
<size>
}
},
SVGPath extends Shape {
}
}
package text {
Text extends shape.Shape {
'-fx-font' default 'Font.DEFAULT' {
<font>
},
enum '-fx-font-smoothing-type' default 'gray' {
'gray','lcd'
},
boolean '-fx-strikethrough' default false,
enum '-fx-text-alignment' default 'left' {
'left','center','right','justify'
},
enum '-fx-text-origin' default 'baseline' {
'baseline','top','bottom'
},
boolean '-fx-underline' default false
}
}
package control {
Control extends Parent {
string '-fx-skin' default 'null'
},
Labeled extends Control {
enum '-fx-alignment' default 'top-left' {
'top-left',
'top-center',
'top-right',
'center-left',
'center',
'center-right',
'bottom-left',
'bottom-center',
'bottom-right',
'baseline-left','baseline-center',
'baseline-right'
},
enum '-fx-text-alignment' default 'left' {
'left','center','right','justify'
},
enum '-fx-text-overrun' default 'ellipsis' {
'center-ellipsis',
'center-word-ellipsis',
'clip',
'ellipsis',
'leading-ellipsis',
'leading-word-ellipsis',
'word-ellipsis'
},
boolean '-fx-wrap-text' default false,
'-fx-font' default 'null' {
<font>
},
boolean '-fx-underline' default false,
'-fx-graphic' default 'null' {
<uri>
},
enum '-fx-content-display' default 'left' {
'top',
'right',
'bottom',
'left',
'center',
'right',
'graphic-only',
'text-only'
},
'-fx-graphic-text-gap' default '4' {
<size>
},
'-fx-label-padding' default '0,0,0,0' {
<size> | <size> <size> <size> <size>
},
'-fx-text-fill' default 'BLACK' {
<paint>
}
},
ButtonBase extends Labeled {
pseudoclass 'armed'
},
Accordion extends Control {
},
Button extends ButtonBase {
pseudoclass 'cancel',
pseudoclass 'default'
},
Cell extends Labeled {
'-fx-cell-size' default '15' {
<size>
}
pseudoclass 'empty',
pseudoclass 'filled',
pseudoclass 'selected'
substructure Labeled 'text'
},
CheckBox extends ButtonBase {
pseudoclass 'selected',
pseudoclass 'determinate',
pseudoclass 'indeterminate'
substructure layout.StackPane 'box' {
substructure layout.StackPane 'mark'
}
},
CheckMenuItem extends Control {
pseudoclass 'selected'
},
ChoiceBox extends Control {
substructure layout.Region 'open-button' {
substructure layout.Region 'arrow'
}
},
ComboBoxBase extends Control {
pseudoclass 'editable',
pseudoclass 'showing',
pseudoclass 'armed'
substructure layout.StackPane 'arrow-button' {
substructure layout.StackPane 'arrow'
}
},
ComboBox extends ComboBoxBase {
substructure ListCell 'list-cell',
substructure TextField 'text-input',
substructure PopupControl 'combo-box-popup' {
substructure ListView 'list-view' {
substructure ListCell 'list-cell'
}
}
},
Hyperlink extends ButtonBase {
pseudoclass 'visited'
substructure Label 'label'
},
IndexedCell extends Cell {
pseudoclass 'even',
pseudoclass 'odd'
},
Label extends Labeled {
},
ListCell extends IndexedCell {
},
ListView extends Control {
enum '-fx-orientation' default 'horizontal' {
'horizontal','vertical'
}
pseudoclass 'horizontal',
pseudoclass 'vertical'
},
Menu extends MenuItem {
pseudoclass 'showing'
},
MenuBar extends Control {
boolean '-fx-use-system-menu-bar' default false
substructure Menu 'menu'
},
MenuButton extends ButtonBase {
pseudoclass 'openvertically',
pseudoclass 'showing'
},
MenuItem extends Control {
},
PasswordField extends TextField {
},
PopupControl extends stage.PopupWindow {
},
ProgressBar extends ProgressIndicator {
},
ProgressIndicator extends Control {
'-fx-progress-color' default 'dodgerblue' {
<paint>
}
pseudoclass 'determinate',
pseudoclass 'indetermindate',
substructure layout.StackPane 'indicator',
substructure layout.StackPane 'progress',
substructure text.Text 'percentage',
substructure layout.StackPane 'tick'
},
RadioButton extends ToggleButton {
substructure layout.Region 'radio' {
substructure layout.Region 'dot'
},
substructure Label 'label'
},
RadioMenuItem extends MenuItem {
pseudoclass 'selected'
},
ScrollBar extends Control {
enum '-fx-orientation' default 'horizontal' {
'horizontal','vertical'
},
number '-fx-block-increment' default 10d,
number '-fx-unit-increment' default 1d
pseudoclass 'vertical',
pseudoclass 'horizontal'
substructure layout.StackPane 'decrement-button' {
substructure layout.StackPane 'decrement-arrow'
},
substructure layout.StackPane 'track',
substructure layout.StackPane 'thumb',
substructure layout.StackPane 'increment-button' {
substructure layout.StackPane 'increment-arrow'
}
},
ScrollPane extends Control {
boolean '-fx-fit-to-width' default false,
boolean '-fx-fit-to-height' default false,
boolean '-fx-pannable' default false,
enum '-fx-hbar-policy' default 'always' {
'never','always','as-needed'
},
enum '-fx-vbar-policy' default 'always' {
'never','always','as-needed'
}
pseudoclass 'pannable',
pseudoclass 'fitToWidth',
pseudoclass 'fitToHeight'
substructure ScrollBar 'scroll-bar:vertical',
substructure ScrollBar 'scroll-bar:horizontal',
substructure layout.StackPane 'corner'
},
Separator extends Control {
enum '-fx-orientation' default 'horizontal' {
'horizontal','vertical'
},
enum '-fx-halignment' default 'center' {
'left','center','right'
},
enum '-fx-valignment' default 'center' {
'top','center','baseline','bottom'
}
pseudoclass 'horizontal',
pseudoclass 'vertical'
substructure layout.Region 'line'
},
Slider extends Control {
enum '-fx-orientation' default 'horizontal' {
'horizontal','vertical'
},
boolean '-fx-show-tick-labels' default false,
boolean '-fx-show-tick-marks' default false,
number '-fx-major-tick-unit' default 25d,
integer '-fx-minor-tick-count' default 3,
boolean '-fx-show-tick-labels' default false,
boolean '-fx-snap-to-ticks' default false,
integer '-fx-block-increment' default 10
pseudoclass 'horizontal',
pseudoclass 'vertical'
substructure chart.NumberAxis 'axis',
substructure layout.Region 'track',
substructure layout.Region 'thumb'
},
SplitMenuButton extends MenuButton {
},
SplitPane extends Control {
enum '-fx-orientation' default '' {
'horizontal','vertical'
}
pseudoclass 'horizontal',
pseudoclass 'vertical'
substructure layout.StackPane 'split-pane-divider' {
substructure layout.StackPane 'vertical-grabber',
substructure layout.StackPane 'horizontal-grabber'
}
},
Tab {
},
TabPane extends Control {
number '-fx-tab-min-width' default 0d,
number '-fx-tab-max-width' default 100000000d, //TODO Double.MAX
number '-fx-tab-min-height' default 0d,
number '-fx-tab-max-height' default 100000000d, //TODO Double.MAX
pseudoclass 'top',
pseudoclass 'right',
pseudoclass 'bottom',
pseudoclass 'left'
substructure layout.StackPane 'tab-header-area' {
substructure layout.StackPane 'headers-region',
substructure layout.StackPane 'tab-header-background',
substructure layout.StackPane 'control-buttons-tab' {
substructure layout.Pane 'tab-down-button' {
substructure layout.StackPane 'arrow'
}
},
substructure Tab 'tab' {
substructure Label 'tab-label',
substructure layout.StackPane 'tab-close-button'
}
},
substructure layout.StackPane 'tab-content-area'
},
TableView extends Control {
pseudoclass 'cell-selection',
pseudoclass 'row-selection'
substructure layout.Region 'column-resize-line',
substructure layout.Region 'column-overlay',
substructure layout.StackPane 'placeholder',
substructure layout.StackPane 'column-header-background' {
substructure layout.StackPane 'nested-column-header' {
substructure Label 'column-header' // Not documented!!
},
substructure layout.Region 'filler',
substructure layout.StackPane 'show-hide-columns-button' {
substructure layout.StackPane 'show-hide-column-image'
},
substructure layout.StackPane 'column-drag-header' {
substructure Label 'label'
}
}
},
TextArea extends TextInputControl {
substructure ScrollPane 'scroll-pane' {
substructure layout.Region 'content'
}
},
TextInputControl extends Control {
'-fx-font' default 'null' {
<font>
},
'-fx-text-fill' default 'black' {
<paint>
},
'-fx-prompt-text-fill' default 'gray' {
<paint>
},
'-fx-highlight-fill' default 'dodgerblue' {
<paint>
},
'-fx-highlight-text-fill' default 'white' {
<paint>
},
boolean '-fx-display-caret' default true
pseudoclass 'readonly'
},
TextField extends TextInputControl {
enum '-fx-alignment' default 'center-left' {
'top-left','top-center','top-right','center-left',
'center','center-right','bottom-left',
'bottom-center','bottom-right',
'baseline-left','baseline-center','baseline-right'
}
},
TitledPane extends Labeled {
boolean '-fx-animated' default true,
boolean '-fx-collapsible' default true
pseudoclass 'expanded',
pseudoclass 'collapsed'
substructure layout.HBox 'title' {
substructure Label 'text',
substructure layout.StackPane 'arrow-button' {
substructure layout.StackPane 'arrow'
}
},
substructure layout.StackPane 'content'
},
ToggleButton extends ButtonBase {
pseudoclass 'selected'
},
ToolBar extends Control {
enum '-fx-orientation' default 'horizontal' {
'horizontal','vertical'
}
pseudoclass 'horizontal',
pseudoclass 'vertical'
substructure layout.StackPane 'tool-bar-overflow-button' {
substructure layout.StackPane 'arrow'
}
},
Tooltip extends PopupControl {
enum '-fx-text-alignment' default 'left' {
'left','center','right','justify'
},
enum '-fx-text-overrun' default 'ellipsis' {
'center-ellipsis','center-word-ellipsis','clip',
'ellipsis','leading-ellipsis','leading-word-ellipsis',
'word-ellipsis'
},
boolean '-fx-wrap-text' default false,
'-fx-graphic' default 'null' {
<uri>
},
enum '-fx-content-display' default 'left' {
'top','right','bottom','left','center','right','graphic-only',
'text-only'
},
'-fx-graphic-text-gap' default '4' {
<size>
},
'-fx-font' default 'Font.DEFAULT' {
<font>
}
substructure Label 'label',
substructure layout.StackPane 'page-corner'
},
TreeCell extends IndexedCell {
'-fx-indent' default '10' {
<size>
}
pseudoclass 'expanded',
pseudoclass 'collapsed'
},
TreeView extends Control {
}
}
package chart {
// com.sun.javafx.chart.LegendItem
LegendItem {
},
AreaChart extends XYChart {
substructure Node 'chart-series-area-line series<i> default-color<j>',
substructure shape.Path 'chart-series-area-fill series<i> default-color<j>',
substructure shape.Path 'chart-area-symbol series<i> data<j> default-color<k>',
substructure LegendItem 'chart-area-symbol series<i> area-legend-symbol default-color<j>'
},
BarChart extends XYChart {
number '-fx-bar-gap' default 4d,
number '-fx-category-gap' default 10d
// substructure 'bar-chart',
substructure Node 'chart-bar series<i> data<j> default-color<k>',
substructure LegendItem 'chart-bar series<i> bar-legend-symbol default-color<j>'
},
BubbleChart extends XYChart {
substructure Node 'chart-bubble series<i> data<j> default-color<k>',
substructure LegendItem 'chart-bubble series<i> bubble-legend-symbol default-color<j>'
},
Chart extends layout.Region {
enum '-fx-legend-side' default 'bottom' {
'top','left','bottom','right' //TODO Not documented
},
boolean '-fx-legend-visible' default true,
enum '-fx-title-side' default 'top' {
'top','left','bottom','right' //TODO Not documented
}
substructure control.Label 'chart-title',
substructure layout.Pane 'chart-content'
},
LineChart extends XYChart {
boolean '-fx-symbol-visible' default true
substructure Node 'chart-series-line series<i> default-color<j>',
substructure Node 'chart-line-symbol series<i> data<j> default-color<k>',
substructure LegendItem 'chart-line-symbol series<i> default-color<j>'
},
ScatterChart extends XYChart {
substructure Node 'chart-symbol series<i> data<j> default-color<k>',
substructure LegendItem 'chart-symbol series<i> default-color<k>'
},
PieChart extends Chart {
boolean '-fx-clockwise' default true,
boolean '-fx-pie-label-visible' default true,
'-fx-label-line-length' default '20' {
<size>
},
number '-fx-start-angle' default 0d
substructure Node 'chart-pie data<i> default-color<j>',
substructure shape.Path 'chart-pie-label-line',
substructure text.Text 'chart-pie-label',
substructure LegendItem 'pie-legend-symbol'
},
XYChart extends Chart {
boolean '-fx-alternative-column-fill-visible' default true,
boolean '-fx-alternative-row-fill-visible' default true,
boolean '-fx-horizontal-grid-lines-visible' default true,
boolean '-fx-horizontal-zero-line-visible' default true,
boolean '-fx-vertical-grid-lines-visible' default true,
boolean '-fx-vertical-zero-line-visible' default true
substructure Group 'plot-content',
substructure layout.Region 'chart-plot-background',
substructure shape.Path 'chart-alternative-column-fill',
substructure shape.Path 'chart-alternative-row-fill',
substructure shape.Path 'chart-vertical-grid-lines',
substructure shape.Path 'chart-horizontal-grid-lines',
substructure shape.Line 'chart-vertical-zero-line',
substructure shape.Line 'chart-horizontal-zero-line'
},
Axis extends layout.Region {
enum '-fx-side' default 'null' {
'top','left','bottom','right' //TODO Not documented
},
'-fx-tick-length' default '8' {
<size>
},
'-fx-tick-label-font' default '8 system' {
<font>
},
'-fx-tick-label-fill' default '8 system' {
<paint>
},
'-fx-tick-label-gap' default '8 system' {
<size>
},
boolean '-fx-tick-mark-visible' default true,
boolean '-fx-tick-labels-visible' default true
substructure text.Text 'axis-label',
substructure shape.Path 'axis-tick-mark',
substructure text.Text 'tick-mark'
},
ValueAxis extends Axis {
'-fx-minor-tick-length' default '5' {
<size>
},
'-fx-minor-tick-count' default '5' {
<size>
},
boolean '-fx-minor-tick-visible' default true
substructure shape.Path 'axis-minor-tick-mark'
},
NumberAxis extends ValueAxis {
number '-fx-tick-unit' default 5d
},
CategoryAxis extends Axis {
number '-fx-start-margin' default 5d,
number '-fx-end-margin' default 5d,
boolean '-fx-gap-start-and-end' default true
},
Legend extends layout.Region {
substructure control.Label 'chart-legend-item',
substructure Node 'chart-legend-item-symbol'
}
}
}
}
-------------- next part --------------
grammar at.bestsolution.efxclipse.tooling.css.Definition with org.eclipse.xtext.xbase.Xbase // hidden(WS, SL_COMMENT)
generate definition "http://www.bestsolution.at/efxclipse/tooling/css/Definition"
CSSDefs:
imports+=Import*
packageDef=PackageDeclaration
;
Import:
'import' importedNamespace=QualifiedNameWithWildCard;
PackageDeclaration:
'package' name=QualifiedName '{'
typDefs+=TypeDef? (',' typDefs+=TypeDef)*
elementDefs+=ElementDef? (',' elementDefs+=ElementDef)*
subpackages+=PackageDeclaration*
'}';
enum PrimTypes:
STRING | INT | DOUBLE | BOOL
;
TypeDef:
GenericTypeDef | EnumTypeDef
;
GenericTypeDef:
doc=DOCU?
'type' name=ValidID '{'
typeDef=TypeValue
'}'
;
EnumTypeDef:
doc=DOCU?
'enumtype' name=ValidID '{'
values+=EnumValue (',' values+=EnumValue)+
'}'
;
TypeValue:
TypeDefValue | PrimValue
;
TypeDefValue:
typeRule=TypeRule
;
PrimValue:
v=PrimTypes
;
ElementDef:
doc=DOCU?
name=ValidID ('extends' superElements+=[ElementDef|QualifiedName] (',' superElements+=[ElementDef|QualifiedName])*)? '{'
properties+=Property? (',' properties+=Property)*
pseudoClasses+=PseudoClass? (',' pseudoClasses+=PseudoClass)*
subelements+=SubElement? (',' subelements+=SubElement)*
'}'
;
SubElement:
doc=DOCU?
'substructure' type=[ElementDef|QualifiedName] name=STRING ('{'
subelements+=SubElement? (',' subelements+=SubElement)*
'}')?
;
Property:
GenericProperty | EnumProperty | NumberProperty | BooleanProperty | StringProperty | IntegerProperty
;
PseudoClass:
doc=DOCU?
'pseudoclass' name=STRING
;
GenericProperty:
doc=DOCU?
name=STRING 'default' defaultValue=STRING '{'
typeRule=TypeRule
'}'
;
TypeRule:
segment=Segment typeSegment+=SubRule*
;
SubRule:
TypeRuleSegment | TypeGroupSegment | TypeKeySegment
;
TypeRuleSegment:
op=('||'|'|') segment=Segment
;
Segment:
TypeSegment | TypeFunctionSegment | TypeGroupSegment
;
TypeSegment:
('<' type+=[TypeDef|ValidID]'>')+
;
TypeKeySegment:
keyword=STRING ('?')?
;
TypeFunctionSegment:
function=ValidID '(' type=[TypeDef|ValidID] ')'
;
TypeGroupSegment:
'[' sep=STRING? rule=TypeRule ']' ('*'|'+'|'?'|('{' min=INT (','max=INT)?'}'))?
;
EnumProperty:
doc=DOCU?
'enum' name=STRING 'default' defaultValue=STRING '{'
values+=EnumValue (',' values+=EnumValue)+
'}'
;
EnumValue:
doc=DOCU?
value=STRING
;
NumberProperty:
doc=DOCU?
unsigned?='unsigned'? 'number' name=STRING 'default' defaultValue=DECIMAL ('range' min=DECIMAL 'to' max=DECIMAL)?
;
IntegerProperty:
doc=DOCU?
unsigned?='unsigned'? 'integer' name=STRING 'default' defaultValue=INT ('range' min=INT 'to' max=INT)?
;
BooleanProperty:
doc=DOCU?
'boolean' name=STRING 'default' defaultValue=('true'|'false')
;
StringProperty:
doc=DOCU?
'string' name=STRING 'default' defaultValue=STRING
;
QualifiedNameWithWildCard :
QualifiedName ('.' '*')?;
terminal DOCU: '/#' -> '#/';
/*Operation:
'op' name=ValidID '(' (params+=FullJvmFormalParameter (',' params+=FullJvmFormalParameter)*)? ')' ':' type=JvmTypeReference
body=XBlockExpression;*/
terminal ID:
'^'? ('a'..'z'|'A'..'Z'|'$'|'_') ('a'..'z'|'A'..'Z'|'$'|'_'|'0'..'9')*;
More information about the openjfx-dev
mailing list