powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как рендерить форму после закрытия rich:modalPanel
13 сообщений из 13, страница 1 из 1
Как рендерить форму после закрытия rich:modalPanel
    #37967407
Dutchman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Мне остался последний шаг для решения очередной задачи в рамках проекта
и я ни как не могу понять как его сделать ... А дело в том, что после закрытия модального окна rich:modalPanel мне необходимо перерисовать некоторые компоненты формы (ну или всю форму), вызвавшей это самое модальное окно. Вот собственно в этом и есть суть вопроса: Как это сделать?
...
Рейтинг: 0 / 0
Как рендерить форму после закрытия rich:modalPanel
    #37967415
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что не получается? Ну сделайте кнопку на модальной панели которая посылает аякс запрос и отрисовывает все что вам нужно,
<a4j:commandButton actionLietener="" oncomplete="modalPanel.hide()"/>
...
Рейтинг: 0 / 0
Как рендерить форму после закрытия rich:modalPanel
    #37967444
Dutchman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
... кнопка такая в модальном окне есть:
<a4j:commandButton value="Перейти" action="#{objectSearch.movedToObject}" reRender="reRenderList" onclick="javascript:Richfaces.hideModalPanel('tplSearchPanel')"/>
... здесь собственно по action я создаю объект и отправляю его в контекст страницы,
reRender="reRenderList" - это список компонентов самой страницы, которые необходимо перерисовать (в модальное окно передается через <ui:param name="reRenderList" value="prmObject,..."/>) и onclick закрывает модальное окно ...
в странице по Getу одного из компонентов я вытаскиваю объект из контекста и присваиваю его свойству в бине страницы ... в итоге после закрытия модального окна страница не перерисовывается
... пробовал следующее ... на странице есть отдельная кнопка рефреш ... после ее нажатие все окэ ... вот такая ситуация
...
Рейтинг: 0 / 0
Как рендерить форму после закрытия rich:modalPanel
    #37967524
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oncomplete=" modalPanel.hide()"
...
Рейтинг: 0 / 0
Как рендерить форму после закрытия rich:modalPanel
    #37967614
Dutchman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
... попробовал = не помогло. Такое чувство что страница раньше ререндится, нежели в свойстве бина устанавливается новый объект. Прям какой то заколдованный круг. После закрытия модального окна по отдельности перерисовываю компоненты страницы и вижу новые данные
...
Рейтинг: 0 / 0
Как рендерить форму после закрытия rich:modalPanel
    #37967647
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
код в студию
...
Рейтинг: 0 / 0
Как рендерить форму после закрытия rich:modalPanel
    #37967669
Dutchman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
модальная форма:
<ui:composition xmlns=" http://www.w3.org/1999/xhtml" xmlns:s=" http://jboss.com/products/seam/taglib"
xmlns:ui=" http://java.sun.com/jsf/facelets" xmlns:f=" http://java.sun.com/jsf/core"
xmlns:h=" http://java.sun.com/jsf/html" xmlns:c=" http://java.sun.com/jstl/core"
xmlns:rich=" http://richfaces.org/rich" xmlns:a4j=" http://richfaces.org/a4j"
xmlns:o=" http://openfaces.org/">

<rich:modalPanel id="tplSearchPanel" minHeight="200" minWidth="400" height="510" width="500">
<!-- <a4j:support event="onhide" reRender="reRenderList" /> -->
<f:facet name="controls">
<h:graphicImage value="/commondata/img/close.png" style="cursor:pointer"
onclick="Richfaces.hideModalPanel('tplSearchPanel')" />
</f:facet>
<f:facet name="header">
<h:outputText id="tplSearchHeader" value="Найти" />
</f:facet>
<h:form>
<table>
<tr><td>
<rich:tabPanel style="height:472px;width:370px;" switchType="ajax">
<rich:tab id="allPanel" label="Область поиска">
<table style="width:100%;border:0px;cellspacing:0px;cellpadding:0px;">
<tr><td>
<h:selectOneMenu id="listTypeObject" value="#{tplObjectSearch.selTypeObject}" style="width:100%;">
<f:selectItem itemValue="none" itemLabel="- Тип объекта -"/>
<c:forEach var="parlist" items="#{tplSearchList}">
<f:selectItem itemValue="#{parlist.objectTypeID}" itemLabel="#{parlist.objectTypeName}"/>
</c:forEach>
<a4j:support event="onchange" actionListener="#{tplObjectSearch.changeTypeObject}"
reRender="listParamObject,resultSearch" focus="valueTarget"/>
</h:selectOneMenu>
</td></tr>
<tr><td>
<h:selectOneMenu id="listParamObject" value="#{tplObjectSearch.selParamObject}" style="width:100%;">
<f:selectItem itemValue="none" itemLabel="- Параметр объекта -"/>
<c:forEach var="parlist" items="#{tplObjectSearch.listParamObject}">
<f:selectItem itemValue="#{parlist[0]}" itemLabel="#{parlist[1]}"/>
</c:forEach>
</h:selectOneMenu>
</td></tr>
<tr><td>
<h:outputText value="Что:" style="width:100%;"/>
<h:inputText id="valueTarget" value="#{tplObjectSearch.contentSearch}" style="width:100%;" />
</td></tr>
<tr><td height="10px"></td></tr>
<tr><td>
<rich:panel header="Результат поиска:" style="width:100%;height:320px;">
<o:dataTable id="resultSearch" value="#{tplObjectSearch.listResultObject}" var="resultObject"
style="margin:0px;padding:0px;" rowKey="#{resultObject[0]}"
verticalGridLines="1px solid #e0e0e0" rolloverRowStyle="background: #b6cfec;"
headerVertSeparator="1px solid #a0a0a0" headerRowClass="rich-panel-header"
styleClass="rich-panel">
<o:singleRowSelection rowData="#{tplObjectSearch.resultObject}"/>
<o:scrolling />
<o:columnResizing/>
<f:facet name="noDataMessage">
<h:outputText value="Нет данных"/>
</f:facet>
<o:column style="width:20px;" header="!">
</o:column>
<o:column>
<h:outputText value="#{resultObject[4]}" />
</o:column>
</o:dataTable>
</rich:panel>
</td></tr>
</table>
</rich:tab>
<rich:tab id="detailPanel" label="Настройки (по умолчанию)">
<table>
<tr><td>
<h:outputText value="В границах зоны ответственности: "/>
<h:selectBooleanCheckbox value="#{tplObjectSearch.insideRZ}"/>
</td></tr>
<tr><td height="6px"></td></tr>
<tr><td>
<h:outputText value="Статус объекта: "/>
<h:selectOneMenu value="#{tplObjectSearch.selStatusObject}">
<f:selectItem itemValue="0" itemLabel="Вновь введённый"/>
<f:selectItem itemValue="1" itemLabel="Действующий"/>
<f:selectItem itemValue="3" itemLabel="Удаленный"/>
</h:selectOneMenu>
</td></tr>
</table>
</rich:tab>
</rich:tabPanel>
</td>
<td>
<table>
<tr height="16px">
<td><a4j:commandButton value="Закрыть" style="width:100px" title="Закрыть диалог поиска"
oncomplete="Richfaces.hideModalPanel('tplSearchPanel')"/></td>
</tr>
<tr height="25px"/>
<tr>
<td><a4j:commandButton value="Найти" style="width:100px" title="Запустить процедуру поиска"
actionListener="#{tplObjectSearch.lookForObject}" reRender="resultSearch"/></td>
</tr>
<tr>
<td><a4j:commandButton value="Перейти" style="width:100px" title="Выбрать объект"
actionListener="#{tplObjectSearch.movedToObject}" reRender="reRenderList"
oncomplete="Richfaces.hideModalPanel('tplSearchPanel')"/></td>
</tr> <tr height="300px"/>
</table>
</td></tr>
</table>
</h:form>
</rich:modalPanel>
</ui:composition>

...красным цветом выделено закрытие модальной формы
...
Рейтинг: 0 / 0
Как рендерить форму после закрытия rich:modalPanel
    #37967675
Dutchman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
бин модальной формы:
package org.krona.topology.bean;

import java.math.BigDecimal;
import java.util.LinkedList;
import java.util.List;

import javax.persistence.EntityManager;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.contexts.Contexts;
import org.kronacommon.app.bean.CommonUserData;
import org.kronacommon.object.CommonObjectData;
import org.kronacommon.object.ObjectData;


@Scope(ScopeType.CONVERSATION)
@Name("tplObjectSearch")
public class TplObjectSearchBeen {

@In
protected EntityManager entityManager;

@In(create = true)
protected CommonUserData kronaUserData;


//----------------------------------------------------------------------------------------------
//Что (контент поиска)
public String contentSearch;

public String getContentSearch() {
return this.contentSearch;
}

public void setContentSearch(String contentSearch) {
this.contentSearch = contentSearch;
}

// ----------------------------------------------------------------------------------------------
//Область поиска:
//- Тип объекта -
private String selTypeObject = "none";

public String getSelTypeObject() {
return this.selTypeObject;
}

public void setSelTypeObject(String selTypeObject) {
this.selTypeObject = selTypeObject;
}

public void changeTypeObject(){
setSelParamObject("none");
setListResultObject(null);
setListParamObject(null);
if (!selTypeObject.equalsIgnoreCase("none")) setSelParamObject("-2");
}

//- Параметр объекта -
private String selParamObject = "none";

public String getSelParamObject() {
return this.selParamObject;
}

public void setSelParamObject(String selParamObject) {
this.selParamObject = selParamObject;
}

//Списоок параметров объекта
public List<Object[]> listParamObject;

public List<Object[]> getListParamObject() {
if(!selTypeObject.equalsIgnoreCase("none")&& (this.listParamObject==null || this.listParamObject.isEmpty())){
System.out.println("========== getListParamObject() WORK ==========");
System.out.println("1.selTypeObject=:"+selTypeObject);
this.listParamObject = new LinkedList<Object[]>();
@SuppressWarnings("unchecked")
List<BigDecimal> objTypeList = entityManager
.createNativeQuery("SELECT OBJECTTYPE_ID FROM MT$_OBJECTTYPE START WITH OBJECTTYPE_ID=:prm "+
"CONNECT BY NOCYCLE PRIOR OBJECTTYPE_PARENT=OBJECTTYPE_ID")
.setParameter("prm", selTypeObject).getResultList();
if(objTypeList!=null && !objTypeList.isEmpty()){
for (BigDecimal objTypeVal : objTypeList) {
//System.out.println("getListParamObject().((BigDecimal)objTypeVal[0]).toString()=:"+ objTypeVal.toString());
@SuppressWarnings("unchecked")
List<Object[]> prmList = entityManager
.createNativeQuery("SELECT PARAM_ID, PARAM_NAME FROM MT$_OBJECTPARAM WHERE PARAMOBJTYPE_ID=:prm")
.setParameter("prm", objTypeVal).getResultList();
if(prmList!=null && !prmList.isEmpty()){
for (Object[] prmVal: prmList) {
//System.out.println("getListParamObject().prmVal.length)=:"+prmVal.length);
this.listParamObject.add(prmVal);
}
}
}
}
}
return this.listParamObject;
}

public void setListParamObject(List<Object[]> listParamObject) {
this.listParamObject = listParamObject;
}

// ----------------------------------------------------------------------------------------------

//Список искомых объектов
private List<Object> listResultObject;

public List<Object> getListResultObject() {
return this.listResultObject;
}

public void setListResultObject(List<Object> listResultObject) {
this.listResultObject = listResultObject;
}

//Текущий объект из списка результатов
private Object[] resultObject;

public Object[] getResultObject() {
return this.resultObject;
}

public void setResultObject(Object[] resultObject) {
this.resultObject = resultObject;
}

public Object changeResultObject() {
return null;
}

// Настройки (по умолчанию)
// В границе зоны ответственности
private boolean insideRZ=true;

public boolean isInsideRZ() {
return this.insideRZ;
}

public void setInsideRZ(boolean insideRZ) {
this.insideRZ = insideRZ;
}

//Статус объекта
private String selStatusObject="1";

public String getSelStatusObject() {
return this.selStatusObject;
}

public void setSelStatusObject(String selStatusObject) {
this.selStatusObject = selStatusObject;
}

//Процедура 'Найти'
public void lookForObject(){
// Провести проверку параметров !!!
System.out.println(" === lookForObject.selTypeObject=:"+selTypeObject);
System.out.println(" === lookForObject.selParamObject=:"+selParamObject);
System.out.println(" === lookForObject.insideRZ=:"+insideRZ);
System.out.println(" === lookForObject.selStatusObject=:"+selStatusObject);
System.out.println(" === lookForObject.contentSearch=:"+contentSearch);
System.out.println(" === lookForObject.kronaUserData.getSubjectID()=:"+kronaUserData.getSubjectID());
String QUERY_text = "SELECT OL.* FROM DT$_OBJECTLIST OL LEFT JOIN DT$_LINKDATA1000 LD ON OL.OBJECT_ID=LD.DEST_OBJECTID "+
"LEFT JOIN DT$_OBJECTSTATUS SO ON OL.OBJECT_ID=SO.OBJECT_ID "+
"WHERE OL.OBJECTTYPE_ID="+selTypeObject+calcContentSearch()+
"AND LD.LINKTYPE_ID=993 AND LD.LINKDATA_STATUS=1 "+
"AND LD.LINKDATA_TIMELAYER = (SELECT MAX (LD.LINKDATA_TIMELAYER) FROM DT$_LINKDATA1000 T WHERE T.DEST_OBJECTID = OL.OBJECT_ID) "+
"AND LD.SRC_OBJECTID"+(insideRZ ? "=" : "!=")+kronaUserData.getSubjectID()+
" AND SO.OBJECT_STATUS="+selStatusObject+
" AND SO.OBJECT_TIMELAYER = (SELECT MAX (SO.OBJECT_TIMELAYER) FROM DT$_OBJECTSTATUS T WHERE T.OBJECT_ID = OL.OBJECT_ID)";
//System.out.println(" === lookForObject.QUERY_text=:"+QUERY_text);
this.listResultObject = entityManager.createNativeQuery(QUERY_text).getResultList();
System.out.println(" === lookForObject.listResultObject.size()=:"+this.listResultObject.size());
}

private String calcContentSearch(){
long id_param = Long.valueOf(selParamObject); //.parseLong(selParamObject);
if(id_param<0){
return " AND LOWER(OL."+(id_param == -2 ? "OBJECT_NAME" : "OBJECT_MRID")+") LIKE LOWER('%"+contentSearch+"%') ";
}else{
//pro tempore
return " AND LOWER(OL.OBJECT_NAME) LIKE LOWER('%"+contentSearch+"%') ";
}
}

//Процедура 'Перейти'
public void movedToObject(){
//System.out.println(" ========== movedToObject.resultObject[0]=:"+resultObject[0]);
//System.out.println(" ========== movedToObject.resultObject[4]=:"+resultObject[4]);
CommonObjectData cod = new ObjectData();
cod.setObjectID(((BigDecimal) resultObject[0]).longValue());
cod.setObjectGroupID(((BigDecimal) resultObject[1]).longValue());
cod.setObjectTypeID(((BigDecimal) resultObject[2]).longValue());
cod.setObjectMrid((resultObject[3]).toString());
cod.setObjectName((resultObject[4]).toString());
//cod.setObjectTypeName(objectTypeName);
//cod.setObjectTypeXmlTag(objectTypeXmlTag);
//cod.setObjectTimeLayer(timeLayer);
cod.setObjectStatus(Integer.valueOf(selStatusObject));
Contexts.getPageContext().set("searchCommObjData",cod);
}

}

... красным выделен акшионлистенер кнопки перехода
...
Рейтинг: 0 / 0
Как рендерить форму после закрытия rich:modalPanel
    #37967677
Dutchman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
фрагмент бина страницы по обработке закрытия модального окна:

// Обработка результатов поиска
// надо поставить try ... catch
public boolean getResultSearchTNode() {
// if (calculateListOverFlow().equals(NODE_TOPOLOGY_PANEL)
// && rootFilterNode.getFoundObject() != null) {
if (calculateListOverFlow().equals(NODE_TOPOLOGY_PANEL))
{
System.out.println(" BEGINING = PROCESSING SEARCH RESULT for NODE_TOPOLOGY_PANEL");
CommonObjectData cod = (CommonObjectData)Contexts.getPageContext().get("searchCommObjData"); if(cod!=null){
Contexts.getPageContext().remove("searchCommObjData");
System.out.println("== getResultSearchTNode.cod.getObjectID=:"+cod.getObjectID());
System.out.println("== getResultSearchTNode.cod.getObjectGroupID=:"+cod.getObjectGroupID());
System.out.println("== getResultSearchTNode.cod.getObjectTypeID=:"+cod.getObjectTypeID());
System.out.println("== getResultSearchTNode.cod.getObjectMrid=:"+cod.getObjectMrid());
System.out.println("== getResultSearchTNode.cod.getObjectName=:"+cod.getObjectName());
System.out.println("== getResultSearchTNode.cod.getObjectTypeName=:"+cod.getObjectTypeName());
System.out.println("== getResultSearchTNode.cod.getObjectTypeXmlTag=:"+cod.getObjectTypeXmlTag());
System.out.println("== getResultSearchTNode.cod.getObjectTimeLayer=:"+cod.getObjectTimeLayer());
System.out.println("== getResultSearchTNode.cod.getObjectStatus=:"+cod.getObjectStatus());
// selectedPowerObject = rootFilterNode.getFoundObject();
selectedPowerObject = cod;
objectDataEdit.setSelectedObject(selectedPowerObject);
initListOverFlow();
settingDataOverFlow();
initPathTopologyNode();
// rootFilterNode.setFoundObject(null);
System.out.println(" ENDING = PROCESSING SEARCH RESULT for NODE_TOPOLOGY_PANEL");
}
}
return true;
}
...
Рейтинг: 0 / 0
Как рендерить форму после закрытия rich:modalPanel
    #37967686
Dutchman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
... ну и собственно сама страница:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns=" http://www.w3.org/1999/xhtml" xmlns:s=" http://jboss.com/products/seam/taglib"
xmlns:ui=" http://java.sun.com/jsf/facelets" xmlns:f=" http://java.sun.com/jsf/core"
xmlns:h=" http://java.sun.com/jsf/html" xmlns:c=" http://java.sun.com/jstl/core"
xmlns:rich=" http://richfaces.org/rich" xmlns:a4j=" http://richfaces.org/a4j"
xmlns:o=" http://openfaces.org/" template="/commondata/layout/template.xhtml">

<ui:define name="body">
<rich:dragIndicator id="pathTopology"/>
<h:form id="objectTPL">
<h1>#{tplObject.contextTitle}
<a4j:status id="statusFormTopology" startText=" ... данные в процессе обработки ..."/>
</h1>
<!-- Командные кнопки Перетоков -->
<a4j:jsFunction name="addOverFlow" ajaxSingle="true" ignoreDupResponses="true"
actionListener="#{tplObject.addOverFlow}" reRender="#{tplObject.calculateListOverFlow()}"/>
<a4j:jsFunction name="delOverFlow" ajaxSingle="true" ignoreDupResponses="true"
actionListener="#{tplObject.delOverFlow}" reRender="#{tplObject.calculateListOverFlow()},pathTopologyNode"/>
<a4j:jsFunction name="saveOverFlowList" ajaxSingle="true" ignoreDupResponses="true"
actionListener="#{tplObject.saveOverFlowList}" reRender="#{tplObject.calculateListOverFlow()},pathTopologyNode"/>
<!-- Командные кнопки Узла топологии -->
<a4j:jsFunction name="addPwrObject" ajaxSingle="true" ignoreDupResponses="true"
actionListener="#{tplObject.addPwrObject}"
reRender="utilsBtnTopologyNode,nodeTopologyPanel,btnTopologyNode,pathTopologyNode,
positivePwrFlow,reversivePwrFlow,negativePwrFlow,btnOverFlowList,btnNegativeFlowList"/>
<a4j:jsFunction name="searchNodeTopology" ajaxSingle="true" ignoreDupResponses="true"
action="#{tplObject.searchNodeTopology}"
reRender="pathTopologyNode"/>
<a4j:jsFunction name="refreshListOverFlow" ajaxSingle="true" ignoreDupResponses="true"
action="#{tplObject.refreshListOverFlow}"
reRender="prmPowerObject,positivePwrFlow,reversivePwrFlow,negativePwrFlow,pathTopologyNode"/>
<a4j:jsFunction name="delPwrObject" ajaxSingle="true" ignoreDupResponses="true"
actionListener="#{tplObject.delPwrObject}"
reRender="prmPowerObject,positivePwrFlow,reversivePwrFlow,negativePwrFlow,pathTopologyNode"/>
<!--
<rich:progressBar id="overFlowLoadProgress" value="#{tplObject.curProgressVal}" enabled="#{tplObject.pollingProgressVal}"
maxValue="#{tplObject.maxProgressVal}"/>
-->
<o:borderLayoutPanel rendered="#{tplObject.resultSearchTNode}" style="height:600px;width:100%;border:1px solid gray;"><!-- Блок перетоков положительной\реверсивной направленности -->
<!-- Note: rich:panelBarItem not supported ajax switchType !!! -->
<o:sidePanel size="350px" resizable="true" collapsible="true">
<table style="height:100%;width:100%;border:0px;cellspacing:0px;cellpadding:0px;">
<tr style="height:20px;width:100%;"><td>
<h:panelGroup id="btnOverFlowList">
<table style="height:100%;width:100%;border:0px;cellspacing:0px;cellpadding:0px;"><tr>
<td><a4j:commandButton disabled="#{tplObject.editable}" ajaxSingle="true" ignoreDupResponses="true"
actionListener="#{tplObject.selPanelCurrentflow}"
action="#{tplObject.conditionalTestAddOverFlow}" data="#{tplObject.flagTestCurrentFlow}"
oncomplete="if(data[0]==null) addOverFlow();"
image="#{tplObject.editable ? '/img/context/32/add_off.png' : '/commondata/img/button/32/add.png'}"
type="image" title="Добавить переток">
</a4j:commandButton></td>
<td><a4j:commandButton disabled="#{tplObject.editable}" ajaxSingle="true" ignoreDupResponses="true"
actionListener="#{tplObject.selPanelCurrentflow}"
action="#{tplObject.conditionalTestDelOverFlow}" data="#{tplObject.flagTestCurrentFlow}"
oncomplete="if(data[0]==null) {if(confirm('Вы действительно хотите удалить ПЕРЕТОК?')!=false) delOverFlow();}"
image="#{tplObject.editable ? '/img/context/32/delete_off.png' : '/commondata/img/button/32/delete.png'}"
type="image" title="Удалить переток">
</a4j:commandButton></td>
<td><a4j:commandButton disabled="#{tplObject.editable}" ajaxSingle="true" ignoreDupResponses="true"
actionListener="#{tplObject.selPanelCurrentflow}"
action="#{tplObject.conditionalTestOverFlow}" data="#{tplObject.flagTestCurrentFlow}"
oncomplete="if(data[0]==null) {saveOverFlowList();} else{if(data[0]==3) {if(confirm(data[1])!=false) saveOverFlowList();}}"
image="#{tplObject.editable ? '/img/context/32/save_off.png' : '/commondata/img/button/32/save.png'}"
type="image" title="Сохранить изменения по массиву перетоков">
</a4j:commandButton></td>
<td style="width:100%;"/>
</tr></table>
</h:panelGroup>
</td></tr>
<tr valign="top"><td>
<!-- Положительный переток -->
<rich:panelBar id="commPanelCurrentflow" selectedPanel="#{tplObject.selectPanelCurrentflow}">
<rich:panelBarItem id="#{tplObject.positivePanelCurrentflow}" label="#{tplObject.descPositivePanelOverflow}"
style="margin:0px;padding:0px;" headerStyle="white-space:nowrap">
<a4j:support actionListener="#{tplObject.selPositivePanelCurrentflow}" reRender="#{tplObject.calculateListOverFlow()}"
event="onenter" ajaxSingle="true" ignoreDupResponses="true"/>
<o:dataTable id="positivePwrFlow" value="#{tplObject.positiveFlowList}" var="positiveFlow"
style="height:510px;width:100%;margin:0px;padding:0px;" rowKey="#{positiveFlow.rowDataKey}"
verticalGridLines="1px solid #e0e0e0" rolloverRowStyle="background: #b6cfec;"
headerVertSeparator="1px solid #a0a0a0" headerRowClass="rich-panel-header"
styleClass="rich-panel">
<o:singleRowSelection rowData="#{tplObject.selectPositiveFlow}" action="#{tplObject.changeOverFlow}"/>
<o:scrolling />
<o:columnResizing/>
<f:facet name="noDataMessage">
<h:outputText value="Присоединения отсутствуют"/>
</f:facet>
<o:column style="width:20px;" header="!">
<h:graphicImage url="#{positiveFlow.availabilityObject ? '/commondata/img/rdf/testok.png' : '/commondata/img/rdf/testerror.png'}"
rendered="#{positiveFlow.change}" title="Индикотор наличия изменений"/>
</o:column>
<o:column style="width:40px;">
<a4j:commandButton disabled="#{tplObject.editable}" ajaxSingle="true" ignoreDupResponses="true"
actionListener="#{tplObject.selPositivePanelCurrentflow}" action="#{tplObject.searchObjectTPL}"
image="/commondata/img/button/32/find.png" type="image" title="Поиск электросетевого объекта-присоединения"
style="margin:2px;padding:0px;"/>
</o:column>
<o:column style="width:100%;" header="Присоединение">
<a4j:outputPanel ajaxRendered="true" style="margin:0px;padding:0px;">
<rich:dragSupport dragIndicator="pathTopology" dragType="commObjPositive" dragValue="#{positiveFlow.flowPowerObject}" disableDefault="true">
<rich:dndParam type="drag" name="label"
value="#{positiveFlow.flowPowerObject != null ? positiveFlow.flowPowerObject.objectName : 'new drag value'}" />
</rich:dragSupport>
<h:outputText value="#{positiveFlow.flowPowerObject.objectName}" />
</a4j:outputPanel>
</o:column>
<o:column style="width:40px;">
<a4j:commandButton disabled="#{tplObject.editable}" ajaxSingle="true" ignoreDupResponses="true"
action="#{tplObject.connectionPointDesc}"
image="/img/context/32/connPoint.png" type="image" title="Точка технологического присоединения"
style="margin:2px;padding:0px;"/>
</o:column>
</o:dataTable>
</rich:panelBarItem>
<!-- Реверсивный переток -->
<rich:panelBarItem id="#{tplObject.reversivePanelCurrentflow}" label="#{tplObject.descReversivePanelOverflow}"
style="margin:0px;padding:0px;" headerStyle="white-space:nowrap">
<a4j:support actionListener="#{tplObject.selReversivePanelCurrentflow}" reRender="#{tplObject.calculateListOverFlow()}"
event="onenter" ajaxSingle="true" ignoreDupResponses="true"/>
<o:dataTable id="reversivePwrFlow" value="#{tplObject.reversiveFlowList}" var="reversiveFlow"
style="height:510px;width:100%;margin:0px;padding:0px;" rowKey="#{reversiveFlow.rowDataKey}"
verticalGridLines="1px solid #e0e0e0" rolloverRowStyle="background: #b6cfec;"
headerVertSeparator="1px solid #a0a0a0" headerRowClass="rich-panel-header"
styleClass="rich-panel">
<o:singleRowSelection rowData="#{tplObject.selectReversiveFlow}" action="#{tplObject.changeOverFlow}"/>
<o:scrolling />
<o:columnResizing />
<f:facet name="noDataMessage">
<h:outputText value="Присоединения отсутствуют"/>
</f:facet>
<o:column style="width:20px;" header="!">
<h:graphicImage url="#{reversiveFlow.availabilityObject ? '/commondata/img/rdf/testok.png' : '/commondata/img/rdf/testerror.png'}"
rendered="#{reversiveFlow.change}" title="Индикотор наличия изменений"/>
</o:column>
<o:column style="width:40px;">
<a4j:commandButton disabled="#{tplObject.editable}" ajaxSingle="true" ignoreDupResponses="true"
actionListener="#{tplObject.selReversivePanelCurrentflow}" action="#{tplObject.searchObjectTPL}"
image="/commondata/img/button/32/find.png" type="image" style="margin:2px;padding:0px;"
title="Поиск электросетевого объекта-присоединения"/>
</o:column>
<o:column style="width:100%;" header="Присоединение">
<a4j:outputPanel ajaxRendered="true" style="margin:0px;padding:0px;">
<rich:dragSupport dragIndicator="pathTopology" dragType="commObjReversive" dragValue="#{reversiveFlow.flowPowerObject}" disableDefault="true">
<rich:dndParam type="drag" name="label"
value="#{reversiveFlow.flowPowerObject != null ? reversiveFlow.flowPowerObject.objectName : 'new drag value'}" />
</rich:dragSupport>
<h:outputText value="#{reversiveFlow.flowPowerObject.objectName}" />
</a4j:outputPanel>
</o:column>
<o:column style="width:40px;">
<a4j:commandButton disabled="#{tplObject.editable}" ajaxSingle="true" ignoreDupResponses="true"
action="#{tplObject.connectionPointDesc}"
image="/commondata/img/button/32/refresh.png" type="image" title="Точка технологического присоединения"
style="margin:2px;padding:0px;"/>
</o:column>
</o:dataTable>
</rich:panelBarItem>
</rich:panelBar>
</td></tr>
</table>
</o:sidePanel>

<!-- Узел топологии -->
<o:sidePanel size="600px" resizable="true" collapsible="false">
<h:panelGroup id="utilsBtnTopologyNode">
<table style="height:20px;width:100%;border:0px;cellspacing:0px;cellpadding:0px;">
<tr>
<td><a4j:commandButton disabled="#{tplObject.editable}" ajaxSingle="true" ignoreDupResponses="true"
actionListener="#{tplObject.selNodeTopologyPanel}"
action="#{tplObject.conditionalTestChangePWR}" data="#{tplObject.flagTestCurrentFlow}"
oncomplete="if(data[0]==null) {searchNodeTopology();} else{if(data[0]==4) {if(confirm(data[1])!=false) searchNodeTopology();}}"
image="/commondata/img/button/32/find.png" type="image" title="Поиск узла топологии"
style="margin:2px;padding:0px;"/></td>
<td><a4j:commandButton disabled="#{tplObject.editable}" ajaxSingle="true" ignoreDupResponses="true"
actionListener="#{tplObject.selNodeTopologyPanel}"
action="#{tplObject.conditionalTestChangePWR()}" data="#{tplObject.flagTestCurrentFlow}"
oncomplete="if(data[0]==null) {refreshListOverFlow();} else{if(data[0]==4) {if(confirm(data[1])!=false) refreshListOverFlow();}}"
image="/commondata/img/button/32/refreshb.png" type="image" title="Перестроить массивы перетоков"
style="margin:2px;padding:0px;"/></td>
<td><a4j:commandButton disabled="#{tplObject.editable}" ajaxSingle="true" ignoreDupResponses="true"
action="#{tplObject.mnemoSchemeDesc}"
image="/commondata/img/button/32/move.png" type="image" title="Мнемосхема топологии"
style="margin:2px;padding:0px;"/></td>
<td><a4j:commandButton disabled="#{tplObject.editable}" ajaxSingle="true" ignoreDupResponses="true"
actionListener="#{tplObject.selNodeTopologyPanel}"
action="#{tplObject.conditionalTestChangePWR}" data="#{tplObject.flagTestCurrentFlow}"
oncomplete="if(data[0]==null) {Richfaces.showModalPanel('tplSearchPanel');} else{if(data[0]==4) {if(confirm(data[1])!=false) Richfaces.showModalPanel('tplSearchPanel');}}"
image="/commondata/img/button/32/find.png" type="image" title="Поиск узла топологии"
style="margin:2px;padding:0px;"/></td>
<!-- oncomplete="javascript:Richfaces.showModalPanel('tplSearchPanel');"-->
<td style="width:100%;"/>
</tr>
</table>
</h:panelGroup>
<table style="width:100%;border:0px;cellspacing:0px;cellpadding:0px;">
<tr valign="top"><td>
<h:panelGroup>
<rich:panel id="nodeTopologyPanel" header="#{tplObject.descHeaderBloc}" align="center">
<rich:dropSupport acceptedTypes="commObjPositive,commObjReversive,commObjNegative,commObjPath" dropListener="#{tplObject.dropSelectPowerObject}"
reRender="nodeTopologyPanel,positivePwrFlow,reversivePwrFlow,negativePwrFlow,pathTopologyNode"/>
<h:panelGroup id="grTypePwrObject">
<h:selectOneMenu id="listTypePwrObject" value="#{tplObject.selTypePwrObject}"
rendered="#{tplObject.editStatus==1}">
<f:selectItem itemValue="none" itemLabel="- Выбор типа электросетевого объекта -"/>
<c:forEach var="parlist" items="#{tplObject.listTypePwrObject}">
<f:selectItem itemValue="#{parlist.objectTypeXmlTag}" itemLabel="#{parlist.objectTypeName}"/>
</c:forEach>
<a4j:support event="onchange" actionListener="#{tplObject.addSelPwrObject}" reRender="prmPowerObject"/>
</h:selectOneMenu>
</h:panelGroup>
<h:panelGroup id="prmPowerObject">
<ui:include src="/commondata/param/objectParamEdit.xhtml"/>
</h:panelGroup>
</rich:panel>
</h:panelGroup>
<h:panelGroup id="btnTopologyNode">
<table style="width:100%;border:0px;cellspacing:0px;cellpadding:0px;">
<tr valign="top">
<td><a4j:commandButton value="Добавить" disabled="#{tplObject.editable}" ajaxSingle="true" ignoreDupResponses="true"
action="#{tplObject.conditionalTestChangePWR}" data="#{tplObject.flagTestCurrentFlow}"
oncomplete="if(data[0]==null) {addPwrObject();} else{if(data[0]==4) {if(confirm(data[1])!=false) addPwrObject();}}"
title="Добавить электросетевой объект"/></td>
<td><a4j:commandButton value="Редактировать" disabled="#{tplObject.editable}" ajaxSingle="true" ignoreDupResponses="true"
actionListener="#{tplObject.editPwrObject}" limitToList="true"
reRender="utilsBtnTopologyNode,prmPowerObject,btnTopologyNode,btnOverFlowList,btnNegativeFlowList"
title="Редактировать значения параметров электросетевого объекта"/></td>
<td><a4j:commandButton value="Удалить" disabled="#{tplObject.editable}" ajaxSingle="true" ignoreDupResponses="true"
action="#{tplObject.conditionalTestDelPWR}" data="#{tplObject.flagTestCurrentFlow}"
oncomplete="if(data[0]==null) {if(confirm('Вы действительно хотите удалить УЗЕЛ ТОПОЛОГИИ?')!=false) delPwrObject();}"
title="Удалить электросетевой объект"/></td>
<td style="width: 100%;"/>
<td><a4j:commandButton value="Сохранить" disabled="#{!tplObject.editable}" ajaxSingle="true" ignoreDupResponses="true"
actionListener="#{tplObject.savePwrObject}"
reRender="utilsBtnTopologyNode,nodeTopologyPanel,btnTopologyNode,btnOverFlowList,btnNegativeFlowList,pathTopologyNode"
title="Сохранить значения параметров электросетевого объекта"/></td>
<td><a4j:commandButton value="Отменить" disabled="#{!tplObject.editable}"
actionListener="#{tplObject.cancelPwrObject}" immediate="true" ajaxSingle="true" ignoreDupResponses="true"
reRender="utilsBtnTopologyNode,nodeTopologyPanel,btnTopologyNode,btnOverFlowList,btnNegativeFlowList,
positivePwrFlow,reversivePwrFlow,negativePwrFlow,pathTopologyNode"
title="Отменить корректрировки значений параметров электросетевого объекта"/></td>
</tr></table>
</h:panelGroup>
<h:panelGroup id="pathTopologyNode">
<o:dataTable value="#{tplObject.pathTopologyNode}" var="node"
style="height:170px;width:100%;margin:0px;padding:0px;">
<o:scrolling />
<o:singleRowSelection rowData="#{tplObject.selectTopologyNode}" action="#{tplObject.changeOverFlow}"/>
<f:facet name="noDataMessage">
<h:outputText value="Навигатор УЗЛА ТОПОЛОГИИ"/>
</f:facet>
<o:column style="width:20px;" header="*">
<h:graphicImage style="height:16px;width:16px;margin:0px;padding:0px;"
url="#{node.objectTypeIcon}" title="#{node.objectTypeName}" />
</o:column>
<o:column style="width:100%;align:center">
<a4j:outputPanel ajaxRendered="true" style="margin:0px;padding:0px;">
<rich:dragSupport dragIndicator="pathTopology" dragType="commObjPath" dragValue="#{node}" disableDefault="true">
<rich:dndParam type="drag" name="label"
value="#{node != null ? node.objectName : 'new drag value'}" />
</rich:dragSupport>
<h:outputText value="#{node.objectName}" />
</a4j:outputPanel>
</o:column>
</o:dataTable>
</h:panelGroup>
</td></tr>
</table>
</o:sidePanel>

<!-- Отрицательный переток -->
<table style="height:100%;width:100%;border:0px;cellspacing:0px;cellpadding:0px;">
<tr style="height:20px;width:100%;"><td>
<h:panelGroup id="btnNegativeFlowList">
<table style="height:100%;width:100%;border:0px;cellspacing:0px;cellpadding:0px;"><tr>
<td style="width:100%;"/>
<td><a4j:commandButton disabled="#{tplObject.editable}" ajaxSingle="true" ignoreDupResponses="true"
actionListener="#{tplObject.selNegativePanelOverflow}"
action="#{tplObject.conditionalTestAddOverFlow}" data="#{tplObject.flagTestCurrentFlow}"
oncomplete="if(data[0]==null) addOverFlow();"
image="#{tplObject.editable ? '/img/context/32/add_off.png' : '/commondata/img/button/32/add.png'}"
type="image" title="Добавить переток">
</a4j:commandButton></td>
<td><a4j:commandButton disabled="#{tplObject.editable}" ajaxSingle="true" ignoreDupResponses="true"
actionListener="#{tplObject.selNegativePanelOverflow}"
action="#{tplObject.conditionalTestDelOverFlow}" data="#{tplObject.flagTestCurrentFlow}"
oncomplete="if(data[0]==null) {if(confirm('Вы действительно хотите удалить ПЕРЕТОК?')!=false) delOverFlow();}"
image="#{tplObject.editable ? '/img/context/32/delete_off.png' : '/commondata/img/button/32/delete.png'}"
type="image" title="Удалить переток">
</a4j:commandButton></td>
<td><a4j:commandButton disabled="#{tplObject.editable}" ajaxSingle="true" ignoreDupResponses="true"
actionListener="#{tplObject.selNegativePanelOverflow}"
action="#{tplObject.conditionalTestOverFlow}" data="#{tplObject.flagTestCurrentFlow}"
oncomplete="if(data[0]==null) {saveOverFlowList();} else{if(data[0]==3) {if(confirm(data[1])!=false) saveOverFlowList();}}"
image="#{tplObject.editable ? '/img/context/32/save_off.png' : '/commondata/img/button/32/save.png'}"
type="image" title="Сохранить изменения по массиву перетоков">
</a4j:commandButton></td>
</tr></table>
</h:panelGroup>
</td></tr>
<tr valign="top" style="height:100%;"><td>
<rich:panel id="negativePanelOverflow" header="#{tplObject.descNegativePanelOverflow}" align="center">
<o:dataTable id="negativePwrFlow" value="#{tplObject.negativeFlowList}" var="negativeFlow"
style="height:530px;width:100%;margin:0px;padding:0px;" rowKey="#{negativeFlow.rowDataKey}"
verticalGridLines="1px solid #e0e0e0" rolloverRowStyle="background: #b6cfec;"
headerVertSeparator="1px solid #a0a0a0" headerRowClass="rich-panel-header"
styleClass="rich-panel">
<o:singleRowSelection rowData="#{tplObject.selectNegativeFlow}" action="#{tplObject.changeOverFlow}"/>
<o:scrolling />
<o:columnResizing />
<f:facet name="noDataMessage">
<h:outputText value="Присоединения отсутствуют"/>
</f:facet>
<o:column style="width:40px;">
<a4j:commandButton disabled="#{tplObject.editable}" ajaxSingle="true" ignoreDupResponses="true"
action="#{tplObject.connectionPointDesc}"
image="/img/context/32/connPoint.png" type="image" title="Точка технологического присоединения"
style="margin:2px;padding:0px;"/>
</o:column>
<o:column style="width:100%;" header="Присоединение">
<a4j:outputPanel ajaxRendered="true" style="margin:0px;padding:0px;">
<rich:dragSupport dragIndicator="pathTopology" dragType="commObjNegative" dragValue="#{negativeFlow.flowPowerObject}" disableDefault="true">
<rich:dndParam type="drag" name="label"
value="#{negativeFlow.flowPowerObject != null ? negativeFlow.flowPowerObject.objectName : 'new drag value'}" />
</rich:dragSupport>
<h:outputText value="#{negativeFlow.flowPowerObject.objectName}" />
</a4j:outputPanel>
</o:column>
<o:column style="width:40px;">
<a4j:commandButton disabled="#{tplObject.editable}" ajaxSingle="true" ignoreDupResponses="true"
actionListener="#{tplObject.selNegativePanelOverflow}" action="#{tplObject.searchObjectTPL}"
image="/commondata/img/button/32/find.png" type="image" title="Поиск электросетевого объекта-присоединения"
style="margin:2px;padding:0px;"/>
</o:column>
<o:column style="width:20px;" header="!">
<h:graphicImage url="#{negativeFlow.availabilityObject ? '/commondata/img/rdf/testok.png' : '/commondata/img/rdf/testerror.png'}"
rendered="#{negativeFlow.change}" title="Индикотор наличия изменений"/>
</o:column>
</o:dataTable>
</rich:panel>
</td></tr>
</table>
</o:borderLayoutPanel>
</h:form>
<ui:include src="/topology/tplSearch.xhtml">
<ui:param name="tplSearchList" value="#{tplObject.listTypePwrObject}"/>
<ui:param name="reRenderList" value="objectTPL"/>
</ui:include> <ui:include src="/commondata/param/paramEditPanel.xhtml" />
</ui:define>
</ui:composition>

... красным веделены обработка закрытия модальной формы, а точнее переход на страницу и формирование объекта из контекста страницы и внизу инклуд модального окна
...
Рейтинг: 0 / 0
Как рендерить форму после закрытия rich:modalPanel
    #37967736
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
reRender="reRenderList"

<ui:param name="reRenderList" value="objectTPL"/>

И что вы тут переисовываете?
...
Рейтинг: 0 / 0
Как рендерить форму после закрытия rich:modalPanel
    #37967820
Dutchman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
... в последнем релизе пытался всю страницу перерисовать. А так был список из компонентов страницы, которые зависят от смены искомого объекта:
prmPowerObject,positivePwrFlow,reversivePwrFlow,negativePwrFlow,pathTopologyNode

... сознаю что всю страницу это уж через чур ... пробовал от безвыходности
...
Рейтинг: 0 / 0
Как рендерить форму после закрытия rich:modalPanel
    #37969464
Dutchman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем Доброго времени суток!
Задача решена и ларчик открылся довольно таки просто. Дело в том, что
вокруг решения я ходил круг за кругом. А загвоздка была в следующем. Из основной
фомры (страницы) в модальное окно, я передал id визуальных компонентов
для последующей перерисовки (при закрытии модального окна) в виде строки:
<ui:param name="reRenderList" value="prmPowerObject,positivePwrFlow,reversivePwrFlow,negativePwrFlow,pathTopologyNode"/>
здесь все верно! А вот рендерить я их пытался именно в том исконном виде, в котором и
передал:
... reRender="reRenderList"
что по сути и было моей ошибкой. Все разрешилось, когда я использовал конструкцию:
... reRender="#{reRenderList}"
По факту отработали все гэты визуальных компонентов основной страницы и она
преобразилась в требуемый вид.
ВСЕМ спасибо кто помог мне решить очередную задачу и получить неоценимый опыт при
общении !!! Ученье свет, а не ученье - тьма ...
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как рендерить форму после закрытия rich:modalPanel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]