[ 3001520 ] GridPanel DisplayLogic issue
Credits go to Low Heng Sin and Metas Link to SF Tracker: http://sourceforge.net/support/tracker.php?aid=3001520
This commit is contained in:
parent
6eea0a82fe
commit
3927090247
|
@ -12,6 +12,7 @@
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
package org.adempiere.webui.component;
|
package org.adempiere.webui.component;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -562,7 +563,16 @@ public class GridPanel extends Borderlayout implements EventListener
|
||||||
|
|
||||||
// Selective
|
// Selective
|
||||||
if (col > 0)
|
if (col > 0)
|
||||||
|
{
|
||||||
|
GridField changedField = gridTab.getField(col);
|
||||||
|
String columnName = changedField.getColumnName();
|
||||||
|
ArrayList<?> dependants = gridTab.getDependantFields(columnName);
|
||||||
|
if (dependants.size() == 0 && changedField.getCallout().length() > 0)
|
||||||
|
{
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
boolean noData = gridTab.getRowCount() == 0;
|
boolean noData = gridTab.getRowCount() == 0;
|
||||||
List<WEditor> list = renderer.getEditors();
|
List<WEditor> list = renderer.getEditors();
|
||||||
|
@ -581,6 +591,8 @@ public class GridPanel extends Borderlayout implements EventListener
|
||||||
boolean rw = mField.isEditable(true); // r/w - check Context
|
boolean rw = mField.isEditable(true); // r/w - check Context
|
||||||
comp.setReadWrite(rw);
|
comp.setReadWrite(rw);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
comp.setVisible(mField.isDisplayed(true));
|
||||||
}
|
}
|
||||||
} // all components
|
} // all components
|
||||||
}
|
}
|
||||||
|
|
|
@ -455,14 +455,10 @@ public class GridTabRowRenderer implements RowRenderer, RowRendererExt, Renderer
|
||||||
}
|
}
|
||||||
colIndex ++;
|
colIndex ++;
|
||||||
|
|
||||||
//check context
|
|
||||||
if (!gridField[i].isDisplayed(true)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (editors.get(gridField[i]) == null)
|
if (editors.get(gridField[i]) == null)
|
||||||
editors.put(gridField[i], WebEditorFactory.getEditor(gridField[i], true));
|
editors.put(gridField[i], WebEditorFactory.getEditor(gridField[i], true));
|
||||||
org.zkoss.zul.Column column = (org.zkoss.zul.Column) columns.getChildren().get(colIndex);
|
org.zkoss.zul.Column column = (org.zkoss.zul.Column) columns.getChildren().get(colIndex);
|
||||||
if (column.isVisible() && gridField[i].isEditable(true)) {
|
if (column.isVisible()) {
|
||||||
Div div = (Div) currentRow.getChildren().get(colIndex);
|
Div div = (Div) currentRow.getChildren().get(colIndex);
|
||||||
WEditor editor = getEditorCell(gridField[i], currentValues[i], i);
|
WEditor editor = getEditorCell(gridField[i], currentValues[i], i);
|
||||||
div.appendChild(editor.getComponent());
|
div.appendChild(editor.getComponent());
|
||||||
|
@ -474,6 +470,12 @@ public class GridTabRowRenderer implements RowRenderer, RowRendererExt, Renderer
|
||||||
div.appendChild(popupMenu);
|
div.appendChild(popupMenu);
|
||||||
}
|
}
|
||||||
div.getFirstChild().setVisible(false);
|
div.getFirstChild().setVisible(false);
|
||||||
|
//check context
|
||||||
|
if (!gridField[i].isDisplayed(true))
|
||||||
|
{
|
||||||
|
editor.setVisible(false);
|
||||||
|
}
|
||||||
|
editor.setReadWrite(gridField[i].isEditable(true));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
editing = true;
|
editing = true;
|
||||||
|
|
Loading…
Reference in New Issue