मैं कुछ Richfaces घटकों (ज्यादातर विस्तारितडेटाटेबल) की कार्यक्षमता को ओवरराइड करना चाहता हूं।विस्तारित Richfaces घटक
क्या कोई कोड उदाहरणों के साथ विस्तारित किसी भी घटक का एक संपूर्ण उदाहरण प्रदान कर सकता है?
मुझे पता है कि नीचे दिया गया धागा वर्णन करता है कि यह कैसे करें, लेकिन एक कोड उदाहरण बेहद फायदेमंद होगा।
Extend Richfaces components - for example customize Datatable component for specific implementation
ठीक है ..... मैं इंटरनेट trawling किया गया है और इस बात का कदम सरल उदाहरण से स्पष्ट कदम की एक पूरी बहुत कुछ होने के लिए प्रतीत नहीं होता।
मैं एक कस्टम ExtendedDataTableRenderer रेंडरर बना लिया है इस प्रकार है::
package com.test;
import java.io.IOException;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import org.richfaces.renderkit.html.ExtendedDataTableRenderer;
public class HtmlExtendedDataTableRendered extends ExtendedDataTableRenderer
{
@Override
public void encodeBegin(FacesContext context, UIComponent component) throws IOException
{
System.out.println("------- in HtmlExtendedDataTableRendered init() -----");
// TODO Auto-generated method stub
super.encodeBegin(context, component);
}
}
और जोड़ा निम्नलिखित यहाँ मामला है भी :(
मैं एक साथ निम्नलिखित अब तक डाल करने में कामयाब रहे लगते हैं मेरे चेहरे-config.xml को इस प्रकार है:
<render-kit>
<renderer>
<component-family>org.richfaces.ExtendedDataTable</component-family>
<renderer-type>org.richfaces.ExtendedDataTableRenderer</renderer-type>
<renderer-class>com.test.HtmlExtendedDataTableRendered</renderer-class>
</renderer>
</render-kit>
जब मैं एक पृष्ठ एक entendedDataTable घटक इस काम कर रहा है है कि मारा (यह परीक्षण कोड prining है कंसोल के लिए)।
package com.test;
import java.io.IOException;
import javax.faces.context.FacesContext;
import org.richfaces.component.html.HtmlExtendedDataTable;
public class customExtendedDataTable extends HtmlExtendedDataTable {
/*
* The renderer type for this component.
*/
public static final String RENDERER_TYPE = "com.test.HtmlExtendedDataTableRendered";
public customExtendedDataTable() {
System.out.println("------- in customExtendedDataTable init() -----");
setRendererType(RENDERER_TYPE);
}
@Override
public String getFamily() {
return customExtendedDataTable.RENDERER_TYPE;
}
@Override
public boolean groupIsExpanded(int index)
{
System.out.println("------- in groupIsExpanded -----");
// TODO Auto-generated method stub
return super.groupIsExpanded(1);
}
@Override
public void encodeBegin(FacesContext context) throws IOException
{
System.out.println("------- in encodeBegin -----");
// TODO Auto-generated method stub
super.encodeBegin(context);
}
}
कुछ भी नहीं है इस वर्ग के भीतर से कंसोल के लिए मुद्रित किया गया है जब मैं एक पेज extendedDataTable घटक है कि दर्ज करें:
अब मैं भी HtmlExtendedDataTable वर्ग के रूप में निम्नानुसार बढ़ाया।
क्या कोई मुझे कुछ मदद प्रदान कर सकता है कि यह क्यों काम नहीं कर रहा है?
धन्यवाद
धन्यवाद बाल्सससी। मेरे पास काम करने के लिए शायद पर्याप्त है। मैं उन परिवर्तनों को कर दूंगा और टैगलिब लिंक में देखूंगा। मैं कुछ दिनों में अधिक प्रश्नों के साथ वापस आ सकता हूं जब मैं इसके चारों ओर घूमता हूं;) –