use of org.zkoss.zul.Row in project adempiere by adempiere.
the class ADTabPanel method createUI.
/**
* Create UI components if not already created
*/
public void createUI() {
if (uiCreated)
return;
uiCreated = true;
//setup columns
Columns columns = new Columns();
grid.appendChild(columns);
Column col = new Column();
col.setWidth("14%");
columns.appendChild(col);
col = new Column();
col.setWidth("35%");
columns.appendChild(col);
col = new Column();
col.setWidth("14%");
columns.appendChild(col);
col = new Column();
col.setWidth("35%");
columns.appendChild(col);
col = new Column();
col.setWidth("2%");
columns.appendChild(col);
Rows rows = grid.newRows();
GridField[] fields = gridTab.getFields();
org.zkoss.zul.Row row = new Row();
rows.appendChild(row);
String currentFieldGroup = null;
for (int i = 0; i < fields.length; i++) {
GridField field = fields[i];
if (field.isDisplayed()) {
//included tab
if (field.getIncluded_Tab_ID() > 0) {
if (row.getChildren().size() == 2) {
row.appendChild(createSpacer());
row.appendChild(createSpacer());
row.appendChild(createSpacer());
rows.appendChild(row);
if (rowList != null)
rowList.add(row);
} else if (row.getChildren().size() > 0) {
rows.appendChild(row);
if (rowList != null)
rowList.add(row);
}
//end current field group
if (currentGroup != null) {
row = new Groupfoot();
rows.appendChild(row);
currentGroup = null;
currentFieldGroup = null;
}
row = new Row();
row.setSpans("5");
row.appendChild(new Separator());
rows.appendChild(row);
row = new Group();
row.setSpans("2,3");
rows.appendChild(row);
includedTab.put(field.getIncluded_Tab_ID(), (Group) row);
org.zkoss.zul.Div div = new Div();
div.setWidth("100%");
row = new org.adempiere.webui.component.Row();
row.setSpans("5");
row.appendChild(div);
rows.appendChild(row);
horizontalIncludedTab.put(field.getIncluded_Tab_ID(), div);
row = new Groupfoot();
rows.appendChild(row);
includedTabFooter.put(field.getIncluded_Tab_ID(), (Groupfoot) row);
for (EmbeddedPanel ep : includedPanel) {
if (ep.adTabId == field.getIncluded_Tab_ID()) {
ep.group = includedTab.get(ep.adTabId);
createEmbeddedPanelUI(ep);
((ADTabPanel) ep.tabPanel).autoResize();
break;
}
}
//Horizontal
for (HorizontalEmbeddedPanel ep : horizontalIncludedPanel) {
if (ep.adTabId == field.getIncluded_Tab_ID()) {
ep.divComponent = horizontalIncludedTab.get(ep.adTabId);
createHorizontalEmbeddedPanelUI(ep);
((ADTabPanel) ep.tabPanel).autoResize();
break;
}
}
row = new Row();
continue;
}
//normal field
String fieldGroup = field.getFieldGroup();
if (fieldGroup != null && fieldGroup.trim().length() > 0) {
if (!fieldGroup.equals(currentFieldGroup)) {
currentFieldGroup = fieldGroup;
if (row.getChildren().size() == 2) {
row.appendChild(createSpacer());
row.appendChild(createSpacer());
row.appendChild(createSpacer());
rows.appendChild(row);
if (rowList != null)
rowList.add(row);
row = new Row();
} else if (row.getChildren().size() > 0) {
rows.appendChild(row);
if (rowList != null)
rowList.add(row);
row = new Row();
}
List<org.zkoss.zul.Row> headerRows = new ArrayList<org.zkoss.zul.Row>();
fieldGroupHeaders.put(fieldGroup, headerRows);
row.setSpans("5");
row.appendChild(new Separator());
rows.appendChild(row);
headerRows.add(row);
rowList = new ArrayList<org.zkoss.zul.Row>();
fieldGroupContents.put(fieldGroup, rowList);
if (X_AD_FieldGroup.FIELDGROUPTYPE_Label.equals(field.getFieldGroupType())) {
row = new Row();
row.setSpans("4");
Label groupLabel = new Label(fieldGroup);
row.appendChild(groupLabel);
row.appendChild(createSpacer());
rows.appendChild(row);
headerRows.add(row);
row = new Row();
row.setSpans("4");
Separator separator = new Separator();
separator.setBar(true);
row.appendChild(separator);
row.appendChild(createSpacer());
rows.appendChild(row);
headerRows.add(row);
} else {
row = new Group(fieldGroup);
if (X_AD_FieldGroup.FIELDGROUPTYPE_Tab.equals(field.getFieldGroupType()) || field.getIsCollapsedByDefault()) {
((Group) row).setOpen(false);
}
currentGroup = (Group) row;
rows.appendChild(row);
headerRows.add(row);
}
row = new Row();
}
}
if (!field.isSameLine() || field.isLongField()) {
//next line
if (row.getChildren().size() > 0) {
if (row.getChildren().size() == 2) {
row.appendChild(createSpacer());
row.appendChild(createSpacer());
row.appendChild(createSpacer());
}
{
row.appendChild(createSpacer());
}
rows.appendChild(row);
if (rowList != null)
rowList.add(row);
row = new Row();
}
} else if (row.getChildren().size() == 4) {
//next line if reach max column ( 4 )
row.appendChild(createSpacer());
rows.appendChild(row);
if (rowList != null)
rowList.add(row);
row = new Row();
}
WEditor editor = WebEditorFactory.getEditor(gridTab, field, false);
if (// Not heading
editor != null) {
editor.setGridTab(this.getGridTab());
editor.setADTabPanel(this);
field.addPropertyChangeListener(editor);
editors.add(editor);
editorIds.add(editor.getComponent().getUuid());
if (field.isFieldOnly()) {
row.appendChild(createSpacer());
} else {
Div div = new Div();
div.setSclass("field-label");
// Ajust align
div.setAlign("right");
Label label = editor.getLabel();
div.appendChild(label);
if (label.getDecorator() != null)
div.appendChild(label.getDecorator());
row.appendChild(div);
}
row.appendChild(editor.getComponent());
if (field.isLongField()) {
row.setSpans("1,3,1");
row.appendChild(createSpacer());
rows.appendChild(row);
if (rowList != null)
rowList.add(row);
row = new Row();
}
if (editor instanceof WButtonEditor) {
if (windowPanel != null)
((WButtonEditor) editor).addActionListener(windowPanel);
} else {
editor.addValueChangeListener(dataBinder);
}
//streach component to fill grid cell
editor.fillHorizontal();
//setup editor context menu
WEditorPopupMenu popupMenu = editor.getPopupMenu();
if (popupMenu != null) {
popupMenu.addMenuListener((ContextMenuListener) editor);
this.appendChild(popupMenu);
if (!field.isFieldOnly()) {
Label label = editor.getLabel();
if (popupMenu.isZoomEnabled() && editor instanceof IZoomableEditor) {
label.setStyle("cursor: pointer; text-decoration: underline;");
label.addEventListener(Events.ON_CLICK, new ZoomListener((IZoomableEditor) editor));
}
label.setContext(popupMenu.getId());
}
}
} else if (field.isHeading()) {
//display just a label if we are "heading only"
Label label = new Label(field.getHeader());
Div div = new Div();
div.setAlign("center");
row.appendChild(createSpacer());
div.appendChild(label);
row.appendChild(div);
}
}
}
//last row
if (row.getChildren().size() > 0) {
if (row.getChildren().size() == 2) {
row.appendChild(createSpacer());
row.appendChild(createSpacer());
row.appendChild(createSpacer());
}
rows.appendChild(row);
if (rowList != null)
rowList.add(row);
}
//create tree
if (gridTab.isTreeTab() && treePanel != null) {
int AD_Tree_ID = MTree.getDefaultAD_Tree_ID(Env.getAD_Client_ID(Env.getCtx()), gridTab.getKeyColumnName());
treePanel.initTree(AD_Tree_ID, windowNo);
}
if (!gridTab.isSingleRow() && !isGridView())
switchRowPresentation();
}
use of org.zkoss.zul.Row in project adempiere by adempiere.
the class ADTabPanel method includedAutoResize.
public int includedAutoResize(HorizontalEmbeddedPanel embeddedPanel) {
if (embeddedPanel.windowPanel != null) {
if (embeddedPanel.windowPanel.isEmbedded()) {
Borderlayout window = embeddedPanel.windowPanel.getComponent();
try {
int size = 0;
int addSize = 0;
if (!embeddedPanel.tabPanel.getGridTab().isSingleRow()) {
size = MSysConfig.getIntValue("TAB_INCLUDING_HEIGHT", 400);
} else {
for (Object o : embeddedPanel.tabPanel.getGrid().getRows().getChildren()) {
if (o instanceof Row) {
if (((Row) o).isVisible()) {
size += getComponentSize((Row) o);
}
} else if (o instanceof org.zkoss.zul.Div) {
// Group
size += 20;
}
}
// 25 = statusbar
size += 25;
size += addSize;
List<HorizontalEmbeddedPanel> included = embeddedPanel.tabPanel.getHorizontalIncludedPanel();
if (included.size() > 0) {
for (HorizontalEmbeddedPanel panel : included) {
size += includedAutoResize(panel);
}
}
}
window.setHeight(size + "px");
window.resize();
return size;
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
}
return 0;
}
use of org.zkoss.zul.Row in project adempiere by adempiere.
the class ADTabPanel method autoResize.
public void autoResize() {
if (windowPanel != null) {
if (windowPanel.isEmbedded()) {
Borderlayout window = ((ADWindowPanel) windowPanel).getComponent();
if (isGridView()) {
int size = MSysConfig.getIntValue("TAB_INCLUDING_HEIGHT", 400);
window.setHeight(size + "px");
listPanel.resize();
window.resize();
} else {
try {
int addSize = 0;
int size = 0;
if (grid.getRows() != null) {
for (Object o : grid.getRows().getChildren()) {
if (o instanceof Row) {
if (((Row) o).isVisible()) {
size += getComponentSize((Row) o);
}
} else if (o instanceof org.zkoss.zul.Group) {
size += 20;
}
}
}
// 25 = statusbar
size += 25;
size += addSize;
size += doAutoSize();
window.setHeight(size + "px");
window.resize();
} catch (Exception e) {
e.printStackTrace();
//nothing to do, just ignore
window.setHeight("61px");
window.resize();
}
}
}
}
}
use of org.zkoss.zul.Row in project adempiere by adempiere.
the class ADTabPanel method createHorizontalPanelForEmbedded.
private org.zkoss.zul.Row createHorizontalPanelForEmbedded(org.zkoss.zul.Div divComponent, org.zkoss.zul.Row footer, HorizontalEmbeddedPanel ep) {
//Setting Properties to Div Component
divComponent.setHeight("100%");
divComponent.setWidth("100%");
// Create a Panel Object
Panel panel = new Panel();
//Setting Properties to Panel
panel.setFramable(true);
//panel.setStyle("overflow:auto");
panel.setWidth("100%");
panel.setHeight("100%");
panel.setMaximizable(true);
//creating Object to PanelChildren class
ep.panelChildren = new Panelchildren();
// Creating a Object to Grid And Apply Properties
Grid newGrid = new Grid();
newGrid.setVflex(true);
newGrid.setStyle("margin:0; padding:0; position: absolute; border: none;");
newGrid.makeNoStrip();
newGrid.setWidth("100%");
newGrid.setHeight("100%");
// Grid append to Panel Children
ep.panelChildren.appendChild(newGrid);
// Panel Children Append to Panel
panel.appendChild(ep.panelChildren);
// Creating one Tabbox And panel append to TabPanels
Tabbox panels = setTabPanels(ep, panel);
// TabBox Append to divComponent
panels.setParent(divComponent);
ep.embeddedGrid = newGrid;
//Creating Rows based on the Grid
Rows newRows = newGrid.newRows();
newRows.setWidth("100%");
newRows.setHeight("100%");
org.zkoss.zul.Row newRow = new Group();
// Create a Row For ToolBar
org.zkoss.zul.Row toolbarRow = new org.adempiere.webui.component.Row();
toolbarRow.setSpans("5");
ep.toolbarRow = toolbarRow;
//Create a Row For All Widgets
org.zkoss.zul.Row panelRow = new org.adempiere.webui.component.Row();
panelRow.setSpans("5");
panelRow.setWidth("100%");
panelRow.setHeight("100%");
// Added to Group
newRows.appendChild(newRow);
// Added to tool-bar Row
newRows.appendChild(toolbarRow);
// Now added to Panel Row
newRows.appendChild(panelRow);
//Added to footer
newRows.appendChild(footer);
return panelRow;
}
use of org.zkoss.zul.Row in project adempiere by adempiere.
the class ADTabPanel method includedAutoResize.
public int includedAutoResize(EmbeddedPanel embeddedpanel) {
if (embeddedpanel.windowPanel != null) {
if (embeddedpanel.windowPanel.isEmbedded()) {
Borderlayout window = embeddedpanel.windowPanel.getComponent();
try {
int size = 0;
int addSize = 0;
if (!embeddedpanel.tabPanel.getGridTab().isSingleRow()) {
size = MSysConfig.getIntValue("TAB_INCLUDING_HEIGHT", 400);
} else {
for (Object o : embeddedpanel.tabPanel.getGrid().getRows().getChildren()) {
if (o instanceof Row) {
if (((Row) o).isVisible()) {
size += getComponentSize((Row) o);
}
} else if (o instanceof org.zkoss.zul.Group) {
// Group
size += 20;
}
}
// 25 = statusbar
size += 25;
size += addSize;
List<EmbeddedPanel> included = embeddedpanel.tabPanel.getIncludedPanel();
if (included.size() > 0) {
for (EmbeddedPanel panel : included) {
size += includedAutoResize(panel);
}
}
}
window.setHeight(size + "px");
window.resize();
return size;
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
}
return 0;
}
Aggregations