どのように私はタペストリー4に挿入クラスを拡張お勧めですか?

StackOverflow https://stackoverflow.com/questions/942388

  •  09-09-2019
  •  | 
  •  

質問

私は本当にどこから始めれば分からないので、私は多くのタペストリーの経験を持っていません。

私が挿入されているものに与えられたCSSクラスを適用する新しいコンポーネント、NewInsertを言う、とInsertコンポーネントを拡張する必要があります。私はこれをどのようにしたらよいでしょうか?

私は基本的に<span class="myClass">The value</span>のようなものを生成し、何かで終わるしたい。

なぜ挿入を拡張することによってそれを行いますか?アプリケーションはほとんど行われますが、我々はどこでも我々は、このCSSクラスを必要とするインサートを使用することを実現しているので。私達はちょうど世界のすべてのファイルに持つ「タイプ= 『挿入』>」「タイプ= 『NewInsert』>」に置き換えやるます。

役に立ちましたか?

解決

私は挿入のrenderComponentメソッドをオーバーライドしなければならなかったかったものを達成するために。これは、タペストリー4.0.2がsetStyleClassメソッドを持っていないだけであるためです。これは、基本的には、

のように見えました
    if (!cycle.isRewinding()) {
      Object value = getValue();

      if (value != null) {
        String styleClass;
        String insert = null;
        Format format = getFormat();

        if (format == null) {
          insert = value.toString();
        }
        else {
          insert = format.format(value);
        }

        styleClass = getStyleClass();

        if (styleClass == null) {
          /* No classes specified */
          styleClass = MY_CLASS;
        }
        else {
          /* Append the preserveWhiteSpace class to the string listing the style classes. */
          styleClass += " " + MY_CLASS;
        }

        if (styleClass != null) {
          writer.begin("span");
          writer.attribute("class", styleClass);

          renderInformalParameters(writer, cycle);
        }

        writer.print(insert, getRaw());

        if (styleClass != null) {
          /* </span> */
          writer.end();
        }
      }
    }
  }

私たちはsetStyleClass方法は、我々だけで行っている可能性がある場合は、

setStyleClass(MY_CLASS);
super.renderComponent;

他のヒント

なぜオーバーライド挿入しますか?なぜあなた自身のInsertSpanコンポーネントを作成しませんか?ただ、カットアンドペーストして自由に感じる...挿入のためのソースを見て、あなたはそれがどのように単純な参照してくださいよ、それはオープンソースです。

いっそのこと、5をタペストリーにアップグレードに見えます。タペストリー4のものは積極的に約4年間に開発されていない。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top