CSS2 との相違

Java™ オブジェクトは、HTML ドキュメントではありません。 CSS2 構文が維持されるので、CSS エディターを使用してスタイル・シートを作成することができます。ただし、その違いによって CSS メカニズムが適応され、 その威力を特定の動作について完全に利用できるようになっています。

結合

結合が明示的: API はスタイル・シートを結合する手段を提供します。 ただし、!important タグと inherit タグは、単純化するためにサポートされていません。

疑似クラスと疑似エレメント

疑似クラス構造は、完全に実装され、レンダラー固有の状態や GUI 項目を表すのに使用されます。定義済みの疑似クラスのリストおよびそれらが使用される場所は以下のとおりです。
  • init (作成時にのみ自動的に使用可能になります。 :init ルールは、Bean がカスタマイズのみされる場合には使用されません)
  • selected (任意のレンダラー)
  • collapsed または expanded (expandCollapseRenderer)
  • <renderer_name>、例えば、legendRenderer (ルールがレンダリング・プロパティーにのみ適用され、グラフィック・オブジェクト・プロパティーには適用されないことを指定)
  • renderer (同じ名前でもグラフィック・オブジェクトに属しているプロパティーではなく、レンダラーに属しているプロパティーを指定)
  • tree (ワークフロー・モデラー)
  • table (ワークフロー・モデラー)
メソッド IlvSDMEngine:setPseudoClassesを使用して、カスタム疑似クラスを追加できます。
CSS2 定義済み疑似エレメントおよび疑似クラス (:link:hover など) は実装されていません。これは Java では有効性がないためです。

属性マッチング

CSS2 における属性パターンは、ストリングの存在 [att]、同等性 [att=val]、および包含 [att~=val] をチェックします。|= 演算子は無効にされています。
Java オブジェクトでは、通常の意味論における >>=<><=< の数字コンパレーターがあります。
また、ストリング比較と数字比較を区別する、等号、不等号のコンパレーターもあります。
  • 等価: 「A==B」は、A と B が数字的に等しい場合にのみ真となります (例えば、10 == 10.0)。2 つのストリングの等価性をテストする場合は、「=」を使用します。
  • 非等価: 「A~B」は、A と B が 2 つの異なるストリングである場合にのみ真となります (例えば、"10" ~ "10.0")。2 つの数字の非等価性をテストする場合は、「<>」を使用します。
属性セレクターで使用可能な演算子
演算子
意味
適用可能
A
存在する
ストリング
A=val
ストリング
A~val
同等でない
ストリング
A~=val
語を含む
ストリング
A==val
数値
A<>val
同等でない
数値
A<val
数値
A<=val
以下
数値
A>val
数値
A>=val
以上
数値

構文の拡張

Java 用の CSS では、トークンにドット (.)、コロン (:)、アットマーク (@)、番号記号 (ハッシュ記号とも呼ばれる、#)、スペース ( ) などの特殊文字が含まれている場合に、引用符を使用する必要があります。
引用符は、特に、宣言値を区切る場合、要素のタイプ、CSS クラスに予約文字が含まれている場合など、どこででも使用することができます。
終わりの「;」はオプションです。

ヌル値

宣言でヌル値を指定したほうがいい場合があります。通常、ヌルは長さゼロのストリング '' または "" です。 次に例を示します。
node.not-handled {
  class : '' ;
}
ヌル・クラス名が指定された場合は、オブジェクトは一切作成されず、誤った形式のクラス名の場合に出されるエラーは報告されません。
値の配列が必要なプロパティーでヌル配列を示すために表記 '' も使用されます。

空ストリング

ヌル構文では、スタイル・シートで空ストリングを指定することはできません。代わりに、以下のコード例に示すように、空ストリングを作成できます。
node {
  label : @#emptyString ;
}

Subobject#emptyString {
  class : 'java.lang.String';
}
ただし、共有機構を使用して、複数ストリングの作成を避けたほうがよいでしょう。@= 構造は、 初回にのみ空ストリングを作成し、それ以降のすべての @#emptyString に対して同じインスタンスを再利用します (空ストリングの共有を参照)。
空ストリングの共有
node {
  label : @=emptyString ;
}

Subobject#emptyString {
  class : 'java.lang.String';
}