Добавление DeclarativeComponent в UIComponent во время выполнения. Oracle JDeveloper 12c - PullRequest
0 голосов
/ 06 марта 2020

Я проработал в этом проекте около недели и не нашел решения своей проблемы. Для целей тестирования я создаю простой новый DeclarativeComponent, который представляет собой PanelGroupLayout, который содержит 2 OutputText. После этого я развертываю файл jar и добавляю его в другие библиотеки веб-приложений Fusion. Я хочу добавить этот DeclarativeComponent в другой UIComponent во время выполнения, нажав кнопку, которая содержит следующий код в javabean:

`public void addComponent(ActionEvent actionEvent) 
{
    // Add event code here...
    createOutputComponent();
}

private void createOutputComponent()
{
    CuadroDeTextoComponent ui = new CuadroDeTextoComponent(); //This is my Declarative Component
    UIComponent parentUIComponent = getPglComponente(); This is the panelGrouopLayout in which i want to add my declarativeComponent
    addComponent(parentUIComponent, ui);
}

public void addComponent(UIComponent parentUIComponent, UIXDeclarativeComponent  childUIComponent)
{   
    parentUIComponent.getChildren().add(childUIComponent);
    AdfFacesContext.getCurrentInstance().addPartialTarget(parentUIComponent);

}`

Я попытался перетащить декларативный компонент, и он работает, но когда я делаю это динамически компонент не отображает

1 Ответ

0 голосов
/ 06 марта 2020

Для отображения компонента вам может потребоваться добавить PPR refre sh к его родительскому элементу:

В вашем случае:

public void addComponent(ActionEvent actionEvent) 
{
    // Add event code here...
    createOutputComponent();
}

private void createOutputComponent()
{
    CuadroDeTextoComponent ui = new CuadroDeTextoComponent(); //This is my Declarative Component
    UIComponent parentUIComponent = getPglComponente(); This is the panelGrouopLayout in which i want to add my declarativeComponent
    addComponent(parentUIComponent, ui);    
    addPPR(parentUIComponent); //Refresh the parent component
}

public void addComponent(UIComponent parentUIComponent, UIXDeclarativeComponent  childUIComponent)
{   
    parentUIComponent.getChildren().add(childUIComponent);
    AdfFacesContext.getCurrentInstance().addPartialTarget(parentUIComponent);

}

public static void addPPR(UIComponent component) {
    if (component != null) {
        AdfFacesContext.getCurrentInstance().addPartialTarget(component.getParent());
    }
}
...