IDEMPIERE-2138:when requery info window, sub tab detail is not refresh

This commit is contained in:
hieplq 2015-08-03 00:06:12 +08:00
parent 22a9ffef6f
commit 1c0bf34bd7
3 changed files with 64 additions and 11 deletions

View File

@ -873,5 +873,29 @@ public class InfoProductWindow extends InfoWindow {
m_PAttributeButton.setEnabled(false); m_PAttributeButton.setEnabled(false);
} }
@Override
protected void updateSubcontent() {
super.updateSubcontent();
int row = contentPanel.getSelectedRow();
if (row < 0){
if (warehouseTbl != null && warehouseTbl.getModel() != null)
warehouseTbl.getModel().clear();
if (substituteTbl != null && substituteTbl.getModel() != null)
substituteTbl.getModel().clear();
if (relatedTbl != null && relatedTbl.getModel() != null)
relatedTbl.getModel().clear();
if (m_tableAtp != null && m_tableAtp.getModel() != null)
m_tableAtp.getModel().clear();
if (productpriceTbl != null && productpriceTbl.getModel() != null)
productpriceTbl.getModel().clear();
if (fieldDescription != null)
fieldDescription.setText("");
}
}
} }

View File

@ -175,16 +175,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
//Xolali IDEMPIERE-1045 //Xolali IDEMPIERE-1045
contentPanel.addActionListener(new EventListener<Event>() { contentPanel.addActionListener(new EventListener<Event>() {
public void onEvent(Event event) throws Exception { public void onEvent(Event event) throws Exception {
int row = contentPanel.getSelectedRow(); updateSubcontent();
if (row >= 0) {
for (EmbedWinInfo embed : embeddedWinList) {
int indexData = 0;
if (columnDataIndex.containsKey(embed.getParentLinkColumnID())){
indexData = p_layout.length + columnDataIndex.get(embed.getParentLinkColumnID());
}
refresh(contentPanel.getValueAt(row,indexData),embed);
}// refresh for all
}
} }
}); //xolali --end- }); //xolali --end-
@ -215,6 +206,29 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
} }
} }
} }
/**
* {@inheritDoc}
*/
@Override
protected void updateSubcontent (){
int row = contentPanel.getSelectedRow();
if (row >= 0) {
for (EmbedWinInfo embed : embeddedWinList) {
// default link column is key column
int indexData = 0;
if (columnDataIndex.containsKey(embed.getParentLinkColumnID())){
// get index of link column
indexData = p_layout.length + columnDataIndex.get(embed.getParentLinkColumnID());
}
refresh(contentPanel.getValueAt(row,indexData),embed);
}// refresh for all
}else{
for (EmbedWinInfo embed : embeddedWinList) {
refresh(embed);
}
}
}
/** /**
* IDEMPIERE-1334 * IDEMPIERE-1334
@ -1803,6 +1817,15 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
} }
} // refresh } // refresh
protected void refresh(EmbedWinInfo relatedInfo){
if (relatedInfo.getInfoTbl() != null){
if (((WListbox)relatedInfo.getInfoTbl()).getModel() != null)
((WListbox)relatedInfo.getInfoTbl()).getModel().clear();
else
((WListbox)relatedInfo.getInfoTbl()).clear();
}
}
/** /**
* @author xolali IDEMPIERE-1045 * @author xolali IDEMPIERE-1045
* loadEmbedded(ResultSet rs, EmbedWinInfo info) * loadEmbedded(ResultSet rs, EmbedWinInfo info)

View File

@ -1496,6 +1496,11 @@ public abstract class InfoPanel extends Window implements EventListener<Event>,
protected void initParameters() { protected void initParameters() {
} }
/**
* Update relate info when selection in main info change
*/
protected void updateSubcontent (){};
/** /**
* Reset parameter to default value or to empty value? implement at * Reset parameter to default value or to empty value? implement at
@ -1621,6 +1626,7 @@ public abstract class InfoPanel extends Window implements EventListener<Event>,
bindInfoProcess(); bindInfoProcess();
} }
// IDEMPIERE-1334 after refresh, restore prev selected item end // IDEMPIERE-1334 after refresh, restore prev selected item end
updateSubcontent ();
} }
finally finally
{ {