यह बहुत सीधा है गतिशील एक AttributeAppender का उपयोग कर जावा कोड में एक घटक के लिए एक CSS वर्ग को जोड़ने के लिए:एक विकेट घटक से सीएसएस कक्षा को कैसे हटाएं?
component.add(new AttributeAppender("class", true, new Model<String>("foo"), " "));
या, यदि आप एक उचित उपयोगिता विधि या वर्ग के लिए, बस की तरह कुछ में इसके बाद के संस्करण निकाला है :
component.add(WicketUtils.cssClassAppender("foo"));
लेकिन मैं एक सीएसएस कक्षा को कैसे हटा सकता हूं?
आप आसानी से वर्ग पूरी तरह विशेषता को साफ़ करके सभी सीएसएस वर्गों को दूर कर सकते हैं:
component.add(new SimpleAttributeModifier("class", ""));
... लेकिन यह है कि स्वीकार्य है, तो घटक अन्य सीएसएस वर्गों है कि आप इच्छा नहीं है नहीं है हटाना।
विकेट 1.4 (लेकिन बाद के संस्करणों के लिए विशिष्ट सलाह पोस्ट करने के लिए स्वतंत्र महसूस करें)।
public class CssClassRemover extends AttributeModifier {
public CssClassRemover(String cssClass) {
super("class", false, new Model<String>(cssClass));
}
@Override
protected String newValue(String currentValue, String valueToRemove) {
// NB: naive approach; breaks with e.g. "foo foo-bar" & "foo"
return currentValue.replaceAll(valueToRemove, "");
}
}
कोड ऊपर सहायक का उपयोग करता है तो हो सकता है:
component.add(new CssClassRemover("foo"))
(बेशक आप भी सिर्फ गुमनाम AttributeModifier उपवर्गों बना सकते हैं के रूप में की जरूरत
उपयोगी, हाँ नहीं - देखभाल विस्तृत करने, downvoter? आईएमएचओ एसओ पर यहां विकेट के गैर-तत्काल-स्पष्ट पहलुओं को दस्तावेज करने के लिए उपयोगी है (स्वयं और दूसरों के लिए)। – Jonik