キース・ストリックランドの例に基づいて、XPages用のJSFライブラリコントロールを構築しようとしています。
DatePickerコントロールがアタッチされたInputBoxコントロールを作成する関数を作成しようとしています。
これが私が試したコードです:
XspInputText inputText = new XspInputText();
inputText.setId("inputText1");
DateTimeConverter converter = new DateTimeConverter();
converter.setType("date");
inputText.setConverter(converter);
XspDateTimeHelper dateTimeHelper = new XspDateTimeHelper();
dateTimeHelper.setId("dateTimeHelper1");
inputText.getChildren().add(dateTimeHelper);
inputText.setRendered(true);
this.getChildren().add(inputText);
InputTextコントロールはレンダリングされますが、Converter、Validator、およびDatePickerボタンはレンダリングされません。
こんにちはキースからの答えは問題を解決しました、しかし今私は別のものを持っていました。exlibからfromtableにinputtextを追加しようとしました。「DateTimePicker」の周りにフォームテーブルがないと正しくレンダリングされますが、フォームテーブルを使用するとテキストフィールドとしてのみレンダリングされます。
完全なコードは次のとおりです。
public class Libcontrol extends UIComponentBase implements FacesComponent {
private static final String RENDERER_TYPE = "de.chris.Libcontrol ";
private static final String COMPONENT_FAMILY = "de.chris";
public void CommonContactInfo() {
setRendererType(RENDERER_TYPE);
}
@Override
public String getFamily() {
return COMPONENT_FAMILY;
}
@SuppressWarnings("unchecked")
public void initBeforeContents(FacesContext arg0) throws FacesException {
UIFormTable table = new UIFormTable();
table.setId("mytable");
table.setDisableRowError(false);
table.setDisableErrorSummary(true);
table.setLabelPosition("left");
UIFormLayoutRow row = new UIFormLayoutRow();
row.setId("myrow");
row.setLabel("DATEROW");
XspInputText inputText = new XspInputText();
inputText.setId("inputText1");
DateTimeConverter converter = new DateTimeConverter();
converter.setType("date");
inputText.setConverter(converter);
XspDateTimeHelper dateTimeHelper = new XspDateTimeHelper();
dateTimeHelper.setId("dateTimeHelper1");
inputText.getChildren().add(dateTimeHelper);
inputText.setRendered(true);
this.getChildren().add(inputText);
row.getChildren().add(inputText);
table.getChildren().add(row);
this.getChildren().add(table);
}
public void buildContents(FacesContext arg0, FacesComponentBuilder arg1) throws FacesException {
// Do Nothing
}
/**
* This method must be present because we're implementing FacesComponent
*/
public void initAfterContents(FacesContext arg0) throws FacesException {
// Do nothing
}
}
問題がどこにあるのかわかりません、何かアイデアはありますか?