[ 2348226 ] Implement auto complete for combobox.
ProcessParameterPanel - Updated SQL for 3.5 changes. Improve Grid view layout, sizing and field alignment. Advance find - fixed saving and loading of user define query, improve usability.
This commit is contained in:
parent
5226a75872
commit
a6032c60c4
|
@ -27,6 +27,13 @@ public interface IDesktop {
|
||||||
* @return windowNo
|
* @return windowNo
|
||||||
*/
|
*/
|
||||||
public int registerWindow(Object window);
|
public int registerWindow(Object window);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param WindowNo
|
||||||
|
* @return Object
|
||||||
|
*/
|
||||||
|
public Object findWindow(int WindowNo);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* close active window
|
* close active window
|
||||||
|
|
|
@ -154,7 +154,8 @@ implements ValueChangeListener, IProcessParameter
|
||||||
+ "p.AD_Reference_ID, p.AD_Process_Para_ID, "
|
+ "p.AD_Reference_ID, p.AD_Process_Para_ID, "
|
||||||
+ "p.FieldLength, p.IsMandatory, p.IsRange, p.ColumnName, "
|
+ "p.FieldLength, p.IsMandatory, p.IsRange, p.ColumnName, "
|
||||||
+ "p.DefaultValue, p.DefaultValue2, p.VFormat, p.ValueMin, p.ValueMax, "
|
+ "p.DefaultValue, p.DefaultValue2, p.VFormat, p.ValueMin, p.ValueMax, "
|
||||||
+ "p.SeqNo, p.AD_Reference_Value_ID, vr.Code AS ValidationCode "
|
+ "p.SeqNo, p.AD_Reference_Value_ID, vr.Code AS ValidationCode, "
|
||||||
|
+ "p.ReadOnlyLogic, p.DisplayLogic "
|
||||||
+ "FROM AD_Process_Para p"
|
+ "FROM AD_Process_Para p"
|
||||||
+ " LEFT OUTER JOIN AD_Val_Rule vr ON (p.AD_Val_Rule_ID=vr.AD_Val_Rule_ID) "
|
+ " LEFT OUTER JOIN AD_Val_Rule vr ON (p.AD_Val_Rule_ID=vr.AD_Val_Rule_ID) "
|
||||||
+ "WHERE p.AD_Process_ID=?" // 1
|
+ "WHERE p.AD_Process_ID=?" // 1
|
||||||
|
@ -165,7 +166,8 @@ implements ValueChangeListener, IProcessParameter
|
||||||
+ "p.AD_Reference_ID, p.AD_Process_Para_ID, "
|
+ "p.AD_Reference_ID, p.AD_Process_Para_ID, "
|
||||||
+ "p.FieldLength, p.IsMandatory, p.IsRange, p.ColumnName, "
|
+ "p.FieldLength, p.IsMandatory, p.IsRange, p.ColumnName, "
|
||||||
+ "p.DefaultValue, p.DefaultValue2, p.VFormat, p.ValueMin, p.ValueMax, "
|
+ "p.DefaultValue, p.DefaultValue2, p.VFormat, p.ValueMin, p.ValueMax, "
|
||||||
+ "p.SeqNo, p.AD_Reference_Value_ID, vr.Code AS ValidationCode "
|
+ "p.SeqNo, p.AD_Reference_Value_ID, vr.Code AS ValidationCode, "
|
||||||
|
+ "p.ReadOnlyLogic, p.DisplayLogic "
|
||||||
+ "FROM AD_Process_Para p"
|
+ "FROM AD_Process_Para p"
|
||||||
+ " INNER JOIN AD_Process_Para_Trl t ON (p.AD_Process_Para_ID=t.AD_Process_Para_ID)"
|
+ " INNER JOIN AD_Process_Para_Trl t ON (p.AD_Process_Para_ID=t.AD_Process_Para_ID)"
|
||||||
+ " LEFT OUTER JOIN AD_Val_Rule vr ON (p.AD_Val_Rule_ID=vr.AD_Val_Rule_ID) "
|
+ " LEFT OUTER JOIN AD_Val_Rule vr ON (p.AD_Val_Rule_ID=vr.AD_Val_Rule_ID) "
|
||||||
|
|
|
@ -24,6 +24,7 @@ import java.math.*;
|
||||||
import org.adempiere.webui.apps.AEnv;
|
import org.adempiere.webui.apps.AEnv;
|
||||||
import org.adempiere.webui.component.Button;
|
import org.adempiere.webui.component.Button;
|
||||||
import org.adempiere.webui.component.Checkbox;
|
import org.adempiere.webui.component.Checkbox;
|
||||||
|
import org.adempiere.webui.component.Combobox;
|
||||||
import org.adempiere.webui.component.ConfirmPanel;
|
import org.adempiere.webui.component.ConfirmPanel;
|
||||||
import org.adempiere.webui.component.Grid;
|
import org.adempiere.webui.component.Grid;
|
||||||
import org.adempiere.webui.component.GridFactory;
|
import org.adempiere.webui.component.GridFactory;
|
||||||
|
@ -158,7 +159,7 @@ public abstract class WCreateFrom extends Window
|
||||||
protected Label bankAccountLabel = new Label();
|
protected Label bankAccountLabel = new Label();
|
||||||
protected Panel parameterStdPanel = new Panel();
|
protected Panel parameterStdPanel = new Panel();
|
||||||
protected Label bPartnerLabel = new Label();
|
protected Label bPartnerLabel = new Label();
|
||||||
protected Listbox bankAccountField;
|
protected Combobox bankAccountField;
|
||||||
//RF [1811114]
|
//RF [1811114]
|
||||||
protected Label authorizationLabel = new Label();
|
protected Label authorizationLabel = new Label();
|
||||||
protected WStringEditor authorizationField = new WStringEditor();
|
protected WStringEditor authorizationField = new WStringEditor();
|
||||||
|
|
|
@ -27,21 +27,14 @@ public class ComboItem extends org.zkoss.zul.Comboitem
|
||||||
{
|
{
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
private Object obj;
|
|
||||||
|
|
||||||
public ComboItem(String label)
|
public ComboItem(String label)
|
||||||
{
|
{
|
||||||
super(label);
|
super(label);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ComboItem(String label, String object)
|
public ComboItem(String label, Object value)
|
||||||
{
|
{
|
||||||
super(label);
|
super(label);
|
||||||
this.obj = object;
|
this.setValue(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Object getObject()
|
|
||||||
{
|
|
||||||
return obj;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,8 @@
|
||||||
|
|
||||||
package org.adempiere.webui.component;
|
package org.adempiere.webui.component;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.zkoss.zul.Comboitem;
|
import org.zkoss.zul.Comboitem;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -28,7 +30,7 @@ import org.zkoss.zul.Comboitem;
|
||||||
public class Combobox extends org.zkoss.zul.Combobox
|
public class Combobox extends org.zkoss.zul.Combobox
|
||||||
{
|
{
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
public void setEnabled(boolean enabled)
|
public void setEnabled(boolean enabled)
|
||||||
{
|
{
|
||||||
this.setDisabled(!enabled);
|
this.setDisabled(!enabled);
|
||||||
|
@ -40,4 +42,66 @@ public class Combobox extends org.zkoss.zul.Combobox
|
||||||
item.setParent(this);
|
item.setParent(this);
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isEnabled() {
|
||||||
|
return !isDisabled();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* remove all items, to ease porting of swing form
|
||||||
|
*/
|
||||||
|
public void removeAllItems() {
|
||||||
|
int cnt = getItemCount();
|
||||||
|
for (int i = cnt - 1; i >=0; i--) {
|
||||||
|
removeItemAt(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void appendItem(String name, Object value) {
|
||||||
|
ComboItem item = new ComboItem(name, value);
|
||||||
|
this.appendChild(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set selected item for the list box based on the value of list item
|
||||||
|
* set selected to none if no item found matching the value given or
|
||||||
|
* value is null
|
||||||
|
* @param value Value of ListItem to set as selected
|
||||||
|
*/
|
||||||
|
public void setValue(Object value)
|
||||||
|
{
|
||||||
|
setSelectedItem(null);
|
||||||
|
|
||||||
|
if (value == null)
|
||||||
|
{
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Comboitem> items = getItems();
|
||||||
|
for (Comboitem item : items)
|
||||||
|
{
|
||||||
|
if (value.getClass() != item.getValue().getClass()) {
|
||||||
|
// if the classes of value and item are different convert both to String
|
||||||
|
String stringValue = value.toString();
|
||||||
|
String stringItem = item.getValue().toString();
|
||||||
|
if (stringValue.equals(stringItem))
|
||||||
|
{
|
||||||
|
setSelectedItem(item);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (value.equals(item.getValue()))
|
||||||
|
{
|
||||||
|
setSelectedItem(item);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns RS_NO_WIDTH|RS_NO_HEIGHT.
|
||||||
|
*/
|
||||||
|
protected int getRealStyleFlags() {
|
||||||
|
return super.getRealStyleFlags() & 0x0006;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -24,6 +24,7 @@ import org.adempiere.webui.editor.WEditor;
|
||||||
import org.compiere.model.GridField;
|
import org.compiere.model.GridField;
|
||||||
import org.compiere.model.GridTab;
|
import org.compiere.model.GridTab;
|
||||||
import org.compiere.model.GridTable;
|
import org.compiere.model.GridTable;
|
||||||
|
import org.compiere.util.DisplayType;
|
||||||
import org.zkoss.zk.ui.event.Event;
|
import org.zkoss.zk.ui.event.Event;
|
||||||
import org.zkoss.zk.ui.event.EventListener;
|
import org.zkoss.zk.ui.event.EventListener;
|
||||||
import org.zkoss.zk.ui.event.Events;
|
import org.zkoss.zk.ui.event.Events;
|
||||||
|
@ -190,7 +191,10 @@ public class GridPanel extends Borderlayout implements EventListener
|
||||||
ListHeader colHeader = new ListHeader();
|
ListHeader colHeader = new ListHeader();
|
||||||
colHeader.setSort("auto");
|
colHeader.setSort("auto");
|
||||||
colHeader.setLabel(gridField[i].getHeader());
|
colHeader.setLabel(gridField[i].getHeader());
|
||||||
int l = gridField[i].getDisplayLength() * 10;
|
int l = DisplayType.isNumeric(gridField[i].getDisplayType())
|
||||||
|
? 100 : gridField[i].getDisplayLength() * 9;
|
||||||
|
if (gridField[i].getHeader().length() * 9 > l)
|
||||||
|
l = gridField[i].getHeader().length() * 9;
|
||||||
if (l > MAX_COLUMN_WIDTH)
|
if (l > MAX_COLUMN_WIDTH)
|
||||||
l = MAX_COLUMN_WIDTH;
|
l = MAX_COLUMN_WIDTH;
|
||||||
else if ( l < MIN_COLUMN_WIDTH)
|
else if ( l < MIN_COLUMN_WIDTH)
|
||||||
|
@ -331,4 +335,12 @@ public class GridPanel extends Borderlayout implements EventListener
|
||||||
}
|
}
|
||||||
} // all components
|
} // all components
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param windowNo
|
||||||
|
*/
|
||||||
|
public void setWindowNo(int windowNo) {
|
||||||
|
this.windowNo = windowNo;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,11 +20,15 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
|
import org.adempiere.webui.editor.WButtonEditor;
|
||||||
import org.adempiere.webui.editor.WEditor;
|
import org.adempiere.webui.editor.WEditor;
|
||||||
import org.adempiere.webui.editor.WEditorPopupMenu;
|
import org.adempiere.webui.editor.WEditorPopupMenu;
|
||||||
import org.adempiere.webui.editor.WebEditorFactory;
|
import org.adempiere.webui.editor.WebEditorFactory;
|
||||||
import org.adempiere.webui.event.ContextMenuListener;
|
import org.adempiere.webui.event.ContextMenuListener;
|
||||||
|
import org.adempiere.webui.panel.AbstractADWindowPanel;
|
||||||
|
import org.adempiere.webui.session.SessionManager;
|
||||||
import org.adempiere.webui.util.GridTabDataBinder;
|
import org.adempiere.webui.util.GridTabDataBinder;
|
||||||
|
import org.adempiere.webui.window.ADWindow;
|
||||||
import org.compiere.model.GridField;
|
import org.compiere.model.GridField;
|
||||||
import org.compiere.model.GridTab;
|
import org.compiere.model.GridTab;
|
||||||
import org.compiere.model.MAccountLookup;
|
import org.compiere.model.MAccountLookup;
|
||||||
|
@ -33,6 +37,7 @@ import org.compiere.model.MLookupFactory;
|
||||||
import org.compiere.util.DisplayType;
|
import org.compiere.util.DisplayType;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
import org.compiere.util.NamePair;
|
import org.compiere.util.NamePair;
|
||||||
|
import org.zkoss.zk.ui.HtmlBasedComponent;
|
||||||
import org.zkoss.zk.ui.event.Event;
|
import org.zkoss.zk.ui.event.Event;
|
||||||
import org.zkoss.zk.ui.event.EventListener;
|
import org.zkoss.zk.ui.event.EventListener;
|
||||||
import org.zkoss.zk.ui.event.Events;
|
import org.zkoss.zk.ui.event.Events;
|
||||||
|
@ -95,6 +100,9 @@ public class GridTabListItemRenderer implements ListitemRenderer, ListitemRender
|
||||||
} else {
|
} else {
|
||||||
cell = new Listcell(getDisplayText(values[i], i), null);
|
cell = new Listcell(getDisplayText(values[i], i), null);
|
||||||
cell.setParent(listitem);
|
cell.setParent(listitem);
|
||||||
|
if (DisplayType.isNumeric(gridField[i].getDisplayType())) {
|
||||||
|
cell.setStyle("text-align:right");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CellListener listener = new CellListener((Listbox) listitem.getParent());
|
CellListener listener = new CellListener((Listbox) listitem.getParent());
|
||||||
|
@ -116,11 +124,26 @@ public class GridTabListItemRenderer implements ListitemRenderer, ListitemRender
|
||||||
Listcell cell = new Listcell("", null);
|
Listcell cell = new Listcell("", null);
|
||||||
WEditor editor = editors.get(gridField);
|
WEditor editor = editors.get(gridField);
|
||||||
if (editor != null) {
|
if (editor != null) {
|
||||||
editor.addValueChangeListener(dataBinder);
|
if (editor instanceof WButtonEditor)
|
||||||
|
{
|
||||||
|
Object window = SessionManager.getAppDesktop().findWindow(windowNo);
|
||||||
|
if (window != null && window instanceof ADWindow)
|
||||||
|
{
|
||||||
|
AbstractADWindowPanel windowPanel = ((ADWindow)window).getADWindowPanel();
|
||||||
|
((WButtonEditor)editor).addActionListener(windowPanel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
editor.addValueChangeListener(dataBinder);
|
||||||
|
}
|
||||||
cell.appendChild(editor.getComponent());
|
cell.appendChild(editor.getComponent());
|
||||||
if (editor.getComponent() instanceof Checkbox) {
|
if (editor.getComponent() instanceof Checkbox) {
|
||||||
cell.setStyle("text-align:center");
|
cell.setStyle("text-align:center");
|
||||||
}
|
}
|
||||||
|
else if (DisplayType.isNumeric(gridField.getDisplayType())) {
|
||||||
|
cell.setStyle("text-align:right");
|
||||||
|
}
|
||||||
gridField.addPropertyChangeListener(editor);
|
gridField.addPropertyChangeListener(editor);
|
||||||
editor.setValue(gridField.getValue());
|
editor.setValue(gridField.getValue());
|
||||||
WEditorPopupMenu popupMenu = editor.getPopupMenu();
|
WEditorPopupMenu popupMenu = editor.getPopupMenu();
|
||||||
|
@ -130,6 +153,24 @@ public class GridTabListItemRenderer implements ListitemRenderer, ListitemRender
|
||||||
popupMenu.addMenuListener((ContextMenuListener)editor);
|
popupMenu.addMenuListener((ContextMenuListener)editor);
|
||||||
cell.appendChild(popupMenu);
|
cell.appendChild(popupMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//streach component to fill grid cell
|
||||||
|
if (editor.getComponent() instanceof HtmlBasedComponent) {
|
||||||
|
//can't stretch bandbox & datebox
|
||||||
|
if (!(editor.getComponent() instanceof Bandbox) &&
|
||||||
|
!(editor.getComponent() instanceof Datebox)) {
|
||||||
|
String width = "100%";
|
||||||
|
if (editor.getComponent() instanceof Button) {
|
||||||
|
Button btn = (Button) editor.getComponent();
|
||||||
|
String zclass = btn.getZclass();
|
||||||
|
if (!zclass.contains("form-button ")) {
|
||||||
|
btn.setZclass("form-button " + zclass);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
((HtmlBasedComponent)editor.getComponent()).setWidth(width);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return cell;
|
return cell;
|
||||||
|
@ -201,37 +242,36 @@ public class GridTabListItemRenderer implements ListitemRenderer, ListitemRender
|
||||||
return "";
|
return "";
|
||||||
|
|
||||||
GridField[] gridField = gridTab.getFields();
|
GridField[] gridField = gridTab.getFields();
|
||||||
if (gridTab.getTableModel().getColumnClass(columnIndex).equals(Integer.class))
|
if (gridField[columnIndex].isLookup())
|
||||||
{
|
{
|
||||||
if (gridField[columnIndex].isLookup())
|
NamePair namepair = null;
|
||||||
{
|
if (gridField[columnIndex].getDisplayType() == DisplayType.Account)
|
||||||
NamePair namepair = null;
|
{
|
||||||
if (gridField[columnIndex].getDisplayType() == DisplayType.Account)
|
MAccountLookup lookup = new MAccountLookup(Env.getCtx(), windowNo);
|
||||||
{
|
namepair = lookup.get(value);
|
||||||
MAccountLookup lookup = new MAccountLookup(Env.getCtx(), windowNo);
|
}
|
||||||
namepair = lookup.get(value);
|
else
|
||||||
}
|
{
|
||||||
else
|
MLookup lookup = MLookupFactory.get(
|
||||||
{
|
Env.getCtx(), windowNo, 0, gridField[columnIndex].getAD_Column_ID(),
|
||||||
MLookup lookup = MLookupFactory.get(
|
gridField[columnIndex].getDisplayType());
|
||||||
Env.getCtx(), windowNo, 0, gridField[columnIndex].getAD_Column_ID(),
|
|
||||||
gridField[columnIndex].getDisplayType());
|
namepair = lookup.get(value);
|
||||||
|
}
|
||||||
namepair = lookup.get(value);
|
if (namepair != null)
|
||||||
}
|
return namepair.getName();
|
||||||
if (namepair != null)
|
else
|
||||||
return namepair.getName();
|
return "";
|
||||||
else
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return value.toString();
|
|
||||||
}
|
}
|
||||||
else if (gridTab.getTableModel().getColumnClass(columnIndex).equals(Timestamp.class))
|
else if (gridTab.getTableModel().getColumnClass(columnIndex).equals(Timestamp.class))
|
||||||
{
|
{
|
||||||
SimpleDateFormat dateFormat = DisplayType.getDateFormat(DisplayType.Date);
|
SimpleDateFormat dateFormat = DisplayType.getDateFormat(DisplayType.Date);
|
||||||
return dateFormat.format((Timestamp)value);
|
return dateFormat.format((Timestamp)value);
|
||||||
}
|
}
|
||||||
|
else if (DisplayType.isNumeric(gridField[columnIndex].getDisplayType()))
|
||||||
|
{
|
||||||
|
return DisplayType.getNumberFormat(gridField[columnIndex].getDisplayType()).format(value);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
return value.toString();
|
return value.toString();
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,8 +17,6 @@
|
||||||
|
|
||||||
package org.adempiere.webui.component;
|
package org.adempiere.webui.component;
|
||||||
|
|
||||||
import java.beans.PropertyChangeListener;
|
|
||||||
import java.beans.PropertyChangeSupport;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
@ -40,7 +38,6 @@ import org.zkoss.zul.Listitem;
|
||||||
public class Listbox extends org.zkoss.zul.Listbox implements EventListener
|
public class Listbox extends org.zkoss.zul.Listbox implements EventListener
|
||||||
{
|
{
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
private PropertyChangeSupport m_propertyChangeListeners = new PropertyChangeSupport(this);
|
|
||||||
|
|
||||||
private List<EventListener> doubleClickListeners = new ArrayList<EventListener>();
|
private List<EventListener> doubleClickListeners = new ArrayList<EventListener>();
|
||||||
private List<EventListener> onDropListeners = new ArrayList<EventListener>();
|
private List<EventListener> onDropListeners = new ArrayList<EventListener>();
|
||||||
|
@ -99,11 +96,6 @@ public class Listbox extends org.zkoss.zul.Listbox implements EventListener
|
||||||
return (List<ListItem>)super.getItems();
|
return (List<ListItem>)super.getItems();
|
||||||
}
|
}
|
||||||
|
|
||||||
public synchronized void addPropertyChangeListener(PropertyChangeListener l)
|
|
||||||
{
|
|
||||||
m_propertyChangeListeners.addPropertyChangeListener(l);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set selected item for the list box based on the value of list item
|
* Set selected item for the list box based on the value of list item
|
||||||
* set selected to none if no item found matching the value given or
|
* set selected to none if no item found matching the value given or
|
||||||
|
|
|
@ -24,8 +24,7 @@ import javax.swing.event.ListDataListener;
|
||||||
|
|
||||||
import org.adempiere.webui.ValuePreference;
|
import org.adempiere.webui.ValuePreference;
|
||||||
import org.adempiere.webui.apps.AEnv;
|
import org.adempiere.webui.apps.AEnv;
|
||||||
import org.adempiere.webui.component.ListItem;
|
import org.adempiere.webui.component.Combobox;
|
||||||
import org.adempiere.webui.component.Listbox;
|
|
||||||
import org.adempiere.webui.event.ContextMenuEvent;
|
import org.adempiere.webui.event.ContextMenuEvent;
|
||||||
import org.adempiere.webui.event.ContextMenuListener;
|
import org.adempiere.webui.event.ContextMenuListener;
|
||||||
import org.adempiere.webui.event.ValueChangeEvent;
|
import org.adempiere.webui.event.ValueChangeEvent;
|
||||||
|
@ -40,6 +39,7 @@ import org.compiere.util.NamePair;
|
||||||
import org.compiere.util.ValueNamePair;
|
import org.compiere.util.ValueNamePair;
|
||||||
import org.zkoss.zk.ui.event.Event;
|
import org.zkoss.zk.ui.event.Event;
|
||||||
import org.zkoss.zk.ui.event.Events;
|
import org.zkoss.zk.ui.event.Events;
|
||||||
|
import org.zkoss.zul.Comboitem;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -52,7 +52,8 @@ ContextMenuListener, IZoomableEditor
|
||||||
{
|
{
|
||||||
public final static String[] LISTENER_EVENTS = {Events.ON_SELECT};
|
public final static String[] LISTENER_EVENTS = {Events.ON_SELECT};
|
||||||
|
|
||||||
private static final CLogger logger;
|
@SuppressWarnings("unused")
|
||||||
|
private static final CLogger logger;
|
||||||
|
|
||||||
static
|
static
|
||||||
{
|
{
|
||||||
|
@ -65,7 +66,7 @@ ContextMenuListener, IZoomableEditor
|
||||||
|
|
||||||
public WTableDirEditor(GridField gridField)
|
public WTableDirEditor(GridField gridField)
|
||||||
{
|
{
|
||||||
super(new Listbox(), gridField);
|
super(new Combobox(), gridField);
|
||||||
lookup = gridField.getLookup();
|
lookup = gridField.getLookup();
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
@ -82,7 +83,7 @@ ContextMenuListener, IZoomableEditor
|
||||||
*/
|
*/
|
||||||
public WTableDirEditor(Lookup lookup, String label, String description, boolean mandatory, boolean readonly, boolean updateable)
|
public WTableDirEditor(Lookup lookup, String label, String description, boolean mandatory, boolean readonly, boolean updateable)
|
||||||
{
|
{
|
||||||
super(new Listbox(), label, description, mandatory, readonly, updateable);
|
super(new Combobox(), label, description, mandatory, readonly, updateable);
|
||||||
|
|
||||||
if (lookup == null)
|
if (lookup == null)
|
||||||
{
|
{
|
||||||
|
@ -105,7 +106,7 @@ ContextMenuListener, IZoomableEditor
|
||||||
public WTableDirEditor(String columnName, boolean mandatory, boolean isReadOnly, boolean isUpdateable,
|
public WTableDirEditor(String columnName, boolean mandatory, boolean isReadOnly, boolean isUpdateable,
|
||||||
Lookup lookup)
|
Lookup lookup)
|
||||||
{
|
{
|
||||||
super(new Listbox(), columnName, null, null, mandatory, isReadOnly, isUpdateable);
|
super(new Combobox(), columnName, null, null, mandatory, isReadOnly, isUpdateable);
|
||||||
if (lookup == null)
|
if (lookup == null)
|
||||||
{
|
{
|
||||||
throw new IllegalArgumentException("Lookup cannot be null");
|
throw new IllegalArgumentException("Lookup cannot be null");
|
||||||
|
@ -116,11 +117,10 @@ ContextMenuListener, IZoomableEditor
|
||||||
|
|
||||||
private void init()
|
private void init()
|
||||||
{
|
{
|
||||||
getComponent().setRows(0);
|
|
||||||
getComponent().setMultiple(false);
|
|
||||||
getComponent().setMold("select");
|
|
||||||
getComponent().setWidth("200px");
|
getComponent().setWidth("200px");
|
||||||
getComponent().addPropertyChangeListener(this);
|
getComponent().setAutocomplete(true);
|
||||||
|
getComponent().setAutodrop(true);
|
||||||
|
getComponent().addEventListener(Events.ON_BLUR, this);
|
||||||
|
|
||||||
boolean zoom= false;
|
boolean zoom= false;
|
||||||
if (lookup != null)
|
if (lookup != null)
|
||||||
|
@ -153,7 +153,7 @@ ContextMenuListener, IZoomableEditor
|
||||||
{
|
{
|
||||||
|
|
||||||
String display = null;
|
String display = null;
|
||||||
ListItem selItem = getComponent().getSelectedItem();
|
Comboitem selItem = getComponent().getSelectedItem();
|
||||||
if (selItem != null)
|
if (selItem != null)
|
||||||
{
|
{
|
||||||
display = selItem.getLabel();
|
display = selItem.getLabel();
|
||||||
|
@ -165,7 +165,7 @@ ContextMenuListener, IZoomableEditor
|
||||||
public Object getValue()
|
public Object getValue()
|
||||||
{
|
{
|
||||||
Object retVal = null;
|
Object retVal = null;
|
||||||
ListItem selItem = getComponent().getSelectedItem();
|
Comboitem selItem = getComponent().getSelectedItem();
|
||||||
if (selItem != null)
|
if (selItem != null)
|
||||||
{
|
{
|
||||||
retVal = selItem.getValue();
|
retVal = selItem.getValue();
|
||||||
|
@ -198,8 +198,8 @@ ContextMenuListener, IZoomableEditor
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Listbox getComponent() {
|
public Combobox getComponent() {
|
||||||
return (Listbox) component;
|
return (Combobox) component;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -266,6 +266,13 @@ ContextMenuListener, IZoomableEditor
|
||||||
super.fireValueChange(changeEvent);
|
super.fireValueChange(changeEvent);
|
||||||
oldValue = newValue;
|
oldValue = newValue;
|
||||||
}
|
}
|
||||||
|
else if (Events.ON_BLUR.equalsIgnoreCase(event.getName()))
|
||||||
|
{
|
||||||
|
if (getComponent().getSelectedItem() == null)
|
||||||
|
{
|
||||||
|
setValue(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public String[] getEvents()
|
public String[] getEvents()
|
||||||
|
|
|
@ -72,8 +72,6 @@ import org.zkoss.zkex.zul.Center;
|
||||||
import org.zkoss.zkex.zul.West;
|
import org.zkoss.zkex.zul.West;
|
||||||
import org.zkoss.zul.Div;
|
import org.zkoss.zul.Div;
|
||||||
import org.zkoss.zul.Group;
|
import org.zkoss.zul.Group;
|
||||||
import org.zkoss.zul.Groupfoot;
|
|
||||||
import org.zkoss.zul.Hbox;
|
|
||||||
import org.zkoss.zul.Separator;
|
import org.zkoss.zul.Separator;
|
||||||
import org.zkoss.zul.SimpleTreeNode;
|
import org.zkoss.zul.SimpleTreeNode;
|
||||||
import org.zkoss.zul.Space;
|
import org.zkoss.zul.Space;
|
||||||
|
@ -97,7 +95,9 @@ public class ADTabpanel extends Div implements Evaluatee, EventListener,
|
||||||
DataStatusListener, IADTabpanel
|
DataStatusListener, IADTabpanel
|
||||||
{
|
{
|
||||||
|
|
||||||
private static final CLogger logger;
|
private static final long serialVersionUID = 212250368715189455L;
|
||||||
|
|
||||||
|
private static final CLogger logger;
|
||||||
|
|
||||||
static
|
static
|
||||||
{
|
{
|
||||||
|
@ -215,6 +215,7 @@ DataStatusListener, IADTabpanel
|
||||||
}
|
}
|
||||||
this.appendChild(listPanel);
|
this.appendChild(listPanel);
|
||||||
listPanel.setVisible(false);
|
listPanel.setVisible(false);
|
||||||
|
listPanel.setWindowNo(windowNo);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void createUI()
|
public void createUI()
|
||||||
|
|
|
@ -415,7 +415,7 @@ public abstract class AbstractADWindowPanel extends AbstractUIPart implements To
|
||||||
GridField[] findFields = mTab.getFields();
|
GridField[] findFields = mTab.getFields();
|
||||||
FindWindow find = new FindWindow(curWindowNo,
|
FindWindow find = new FindWindow(curWindowNo,
|
||||||
mTab.getName(), mTab.getAD_Table_ID(), mTab.getTableName(),
|
mTab.getName(), mTab.getAD_Table_ID(), mTab.getTableName(),
|
||||||
where.toString(), findFields, 10); // no query below 10
|
where.toString(), findFields, 10, mTab.getAD_Tab_ID()); // no query below 10
|
||||||
if (find.getTitle() != null && find.getTitle().length() > 0) {
|
if (find.getTitle() != null && find.getTitle().length() > 0) {
|
||||||
// Title is not set when the number of rows is below the minRecords parameter (10)
|
// Title is not set when the number of rows is below the minRecords parameter (10)
|
||||||
find.setVisible(true);
|
find.setVisible(true);
|
||||||
|
@ -952,7 +952,7 @@ public abstract class AbstractADWindowPanel extends AbstractUIPart implements To
|
||||||
GridField[] findFields = GridField.createFields(ctx, curTab.getWindowNo(), 0,curTab.getAD_Tab_ID());
|
GridField[] findFields = GridField.createFields(ctx, curTab.getWindowNo(), 0,curTab.getAD_Tab_ID());
|
||||||
FindWindow find = new FindWindow (curTab.getWindowNo(), curTab.getName(),
|
FindWindow find = new FindWindow (curTab.getWindowNo(), curTab.getName(),
|
||||||
curTab.getAD_Table_ID(), curTab.getTableName(),
|
curTab.getAD_Table_ID(), curTab.getTableName(),
|
||||||
curTab.getWhereExtended(), findFields, 1);
|
curTab.getWhereExtended(), findFields, 1, curTab.getAD_Tab_ID());
|
||||||
AEnv.showWindow(find);
|
AEnv.showWindow(find);
|
||||||
MQuery query = find.getQuery();
|
MQuery query = find.getQuery();
|
||||||
|
|
||||||
|
|
|
@ -23,27 +23,70 @@ import org.zkoss.zk.ui.Component;
|
||||||
*/
|
*/
|
||||||
public interface IADTabpanel extends Component, Evaluatee {
|
public interface IADTabpanel extends Component, Evaluatee {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return display logic
|
||||||
|
*/
|
||||||
public String getDisplayLogic();
|
public String getDisplayLogic();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return tab level
|
||||||
|
*/
|
||||||
public int getTabLevel();
|
public int getTabLevel();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return true if refresh is not needed
|
||||||
|
*/
|
||||||
public boolean isCurrent();
|
public boolean isCurrent();
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return title
|
||||||
|
*/
|
||||||
public String getTitle();
|
public String getTitle();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Render the panel
|
||||||
|
*/
|
||||||
public void createUI();
|
public void createUI();
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return GridTab
|
||||||
|
*/
|
||||||
public GridTab getGridTab();
|
public GridTab getGridTab();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* activate/deactivate the panel
|
||||||
|
* @param b
|
||||||
|
*/
|
||||||
public void activate(boolean b);
|
public void activate(boolean b);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* retrieve data from db
|
||||||
|
*/
|
||||||
public void query();
|
public void query();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Refresh from db
|
||||||
|
*/
|
||||||
public void refresh();
|
public void refresh();
|
||||||
|
|
||||||
public void query(boolean currentRows, int currentDays, int i);
|
/**
|
||||||
|
* retrieve data from db
|
||||||
|
* @param currentRows
|
||||||
|
* @param currentDays
|
||||||
|
* @param maxRows
|
||||||
|
*/
|
||||||
|
public void query(boolean currentRows, int currentDays, int maxRows);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Toggle between grid and form view
|
||||||
|
*/
|
||||||
public void switchRowPresentation();
|
public void switchRowPresentation();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dynamic update of field properties ( visibility, filter and mandatory )
|
||||||
|
* @param i
|
||||||
|
*/
|
||||||
public void dynamicDisplay(int i);
|
public void dynamicDisplay(int i);
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,7 +51,6 @@ import org.adempiere.webui.component.ToolBarButton;
|
||||||
import org.adempiere.webui.component.Window;
|
import org.adempiere.webui.component.Window;
|
||||||
import org.adempiere.webui.editor.WEditor;
|
import org.adempiere.webui.editor.WEditor;
|
||||||
import org.adempiere.webui.editor.WNumberEditor;
|
import org.adempiere.webui.editor.WNumberEditor;
|
||||||
import org.adempiere.webui.editor.WSearchEditor;
|
|
||||||
import org.adempiere.webui.editor.WStringEditor;
|
import org.adempiere.webui.editor.WStringEditor;
|
||||||
import org.adempiere.webui.editor.WebEditorFactory;
|
import org.adempiere.webui.editor.WebEditorFactory;
|
||||||
import org.adempiere.webui.event.ValueChangeEvent;
|
import org.adempiere.webui.event.ValueChangeEvent;
|
||||||
|
@ -138,14 +137,6 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
private boolean hasDocNo = false;
|
private boolean hasDocNo = false;
|
||||||
private boolean hasName = false;
|
private boolean hasName = false;
|
||||||
private boolean hasDescription = false;
|
private boolean hasDescription = false;
|
||||||
/** Line in Simple Content */
|
|
||||||
// private int sLine = 6;
|
|
||||||
/** Value 2(to) */
|
|
||||||
private boolean m_valueToColumn;
|
|
||||||
/** Between selected */
|
|
||||||
private boolean m_between = false;
|
|
||||||
/** Editor */
|
|
||||||
private WEditor m_editor = null;
|
|
||||||
/** List of WEditors */
|
/** List of WEditors */
|
||||||
private ArrayList<WEditor> m_sEditors = new ArrayList<WEditor>();
|
private ArrayList<WEditor> m_sEditors = new ArrayList<WEditor>();
|
||||||
/** Target Fields with AD_Column_ID as key */
|
/** Target Fields with AD_Column_ID as key */
|
||||||
|
@ -155,7 +146,7 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
/** Length of Fields on first tab */
|
/** Length of Fields on first tab */
|
||||||
public static final int FIELDLENGTH = 20;
|
public static final int FIELDLENGTH = 20;
|
||||||
|
|
||||||
private int m_AD_Tab_ID = 1;
|
private int m_AD_Tab_ID = 0;
|
||||||
private MUserQuery[] userQueries;
|
private MUserQuery[] userQueries;
|
||||||
private Rows contentSimpleRows;
|
private Rows contentSimpleRows;
|
||||||
private Row pnlDocument;
|
private Row pnlDocument;
|
||||||
|
@ -184,16 +175,18 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
* @param whereExtended whereExtended
|
* @param whereExtended whereExtended
|
||||||
* @param findFields findFields
|
* @param findFields findFields
|
||||||
* @param minRecords minRecords
|
* @param minRecords minRecords
|
||||||
|
* @param adTabId
|
||||||
**/
|
**/
|
||||||
public FindWindow (int targetWindowNo, String title,
|
public FindWindow (int targetWindowNo, String title,
|
||||||
int AD_Table_ID, String tableName, String whereExtended,
|
int AD_Table_ID, String tableName, String whereExtended,
|
||||||
GridField[] findFields, int minRecords)
|
GridField[] findFields, int minRecords, int adTabId)
|
||||||
{
|
{
|
||||||
m_targetWindowNo = targetWindowNo;
|
m_targetWindowNo = targetWindowNo;
|
||||||
m_AD_Table_ID = AD_Table_ID;
|
m_AD_Table_ID = AD_Table_ID;
|
||||||
m_tableName = tableName;
|
m_tableName = tableName;
|
||||||
m_whereExtended = whereExtended;
|
m_whereExtended = whereExtended;
|
||||||
m_findFields = findFields;
|
m_findFields = findFields;
|
||||||
|
m_AD_Tab_ID = adTabId;
|
||||||
//
|
//
|
||||||
m_query = new MQuery (m_tableName);
|
m_query = new MQuery (m_tableName);
|
||||||
m_query.addRestriction(m_whereExtended);
|
m_query.addRestriction(m_whereExtended);
|
||||||
|
@ -213,8 +206,7 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
this.setBorder("normal");
|
this.setBorder("normal");
|
||||||
this.setWidth("700px");
|
this.setWidth("700px");
|
||||||
this.setTitle(Msg.getMsg(Env.getCtx(), "Find").replaceAll("&", "") + ": " + title);
|
this.setTitle(Msg.getMsg(Env.getCtx(), "Find").replaceAll("&", "") + ": " + title);
|
||||||
this.setAttribute("modal", Boolean.TRUE);
|
this.setAttribute(Window.MODE_KEY, Window.MODE_MODAL);
|
||||||
// this.setAttribute("mode", "modal");
|
|
||||||
this.setClosable(true);
|
this.setClosable(true);
|
||||||
this.setSizable(true);
|
this.setSizable(true);
|
||||||
}
|
}
|
||||||
|
@ -252,19 +244,19 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
|
|
||||||
Button btnNew = new Button();
|
Button btnNew = new Button();
|
||||||
btnNew.setName("btnNew");
|
btnNew.setName("btnNew");
|
||||||
btnNew.setSrc("/images/New24.png");
|
btnNew.setImage("/images/New24.png");
|
||||||
btnNew.addEventListener(Events.ON_CLICK,this);
|
btnNew.addEventListener(Events.ON_CLICK,this);
|
||||||
LayoutUtils.addSclass("action-button", btnNew);
|
LayoutUtils.addSclass("action-button", btnNew);
|
||||||
|
|
||||||
Button btnOk = new Button();
|
Button btnOk = new Button();
|
||||||
btnOk.setName("btnOkSimple");
|
btnOk.setName("btnOkSimple");
|
||||||
btnOk.setSrc("/images/Ok24.png");
|
btnOk.setImage("/images/Ok24.png");
|
||||||
btnOk.addEventListener(Events.ON_CLICK,this);
|
btnOk.addEventListener(Events.ON_CLICK,this);
|
||||||
LayoutUtils.addSclass("action-button", btnOk);
|
LayoutUtils.addSclass("action-button", btnOk);
|
||||||
|
|
||||||
Button btnCancel = new Button();
|
Button btnCancel = new Button();
|
||||||
btnCancel.setName("btnCancel");
|
btnCancel.setName("btnCancel");
|
||||||
btnCancel.setSrc("/images/Cancel24.png");
|
btnCancel.setImage("/images/Cancel24.png");
|
||||||
btnCancel.addEventListener(Events.ON_CLICK,this);
|
btnCancel.addEventListener(Events.ON_CLICK,this);
|
||||||
LayoutUtils.addSclass("action-button", btnCancel);
|
LayoutUtils.addSclass("action-button", btnCancel);
|
||||||
|
|
||||||
|
@ -327,18 +319,18 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
private void initAdvanced()
|
private void initAdvanced()
|
||||||
{
|
{
|
||||||
ToolBarButton btnNew = new ToolBarButton();
|
ToolBarButton btnNew = new ToolBarButton();
|
||||||
btnNew.setSrc("/images/New24.png");
|
btnNew.setImage("/images/New24.png");
|
||||||
btnNew.setAttribute("name", "btnNewAdv");
|
btnNew.setAttribute("name", "btnNewAdv");
|
||||||
btnNew.addEventListener(Events.ON_CLICK, this);
|
btnNew.addEventListener(Events.ON_CLICK, this);
|
||||||
|
|
||||||
ToolBarButton btnDelete = new ToolBarButton();
|
ToolBarButton btnDelete = new ToolBarButton();
|
||||||
btnDelete.setAttribute("name","btnDeleteAdv");
|
btnDelete.setAttribute("name","btnDeleteAdv");
|
||||||
btnDelete.setSrc("/images/Delete24.png");
|
btnDelete.setImage("/images/Delete24.png");
|
||||||
btnDelete.addEventListener(Events.ON_CLICK, this);
|
btnDelete.addEventListener(Events.ON_CLICK, this);
|
||||||
|
|
||||||
ToolBarButton btnSave = new ToolBarButton();
|
ToolBarButton btnSave = new ToolBarButton();
|
||||||
btnSave.setAttribute("name","btnSaveAdv");
|
btnSave.setAttribute("name","btnSaveAdv");
|
||||||
btnSave.setSrc("/images/Save24.png");
|
btnSave.setImage("/images/Save24.png");
|
||||||
btnSave.addEventListener(Events.ON_CLICK, this);
|
btnSave.addEventListener(Events.ON_CLICK, this);
|
||||||
|
|
||||||
fQueryName = new Combobox();
|
fQueryName = new Combobox();
|
||||||
|
@ -355,13 +347,15 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
|
|
||||||
Button btnOk = new Button();
|
Button btnOk = new Button();
|
||||||
btnOk.setName("btnOkAdv");
|
btnOk.setName("btnOkAdv");
|
||||||
btnOk.setSrc("/images/Ok24.png");
|
btnOk.setImage("/images/Ok24.png");
|
||||||
btnOk.addEventListener(Events.ON_CLICK, this);
|
btnOk.addEventListener(Events.ON_CLICK, this);
|
||||||
|
LayoutUtils.addSclass("action-button", btnOk);
|
||||||
|
|
||||||
Button btnCancel = new Button();
|
Button btnCancel = new Button();
|
||||||
btnCancel.setName("btnCancel");
|
btnCancel.setName("btnCancel");
|
||||||
btnCancel.setSrc("/images/Cancel24.png");
|
btnCancel.setImage("/images/Cancel24.png");
|
||||||
btnCancel.addEventListener(Events.ON_CLICK, this);
|
btnCancel.addEventListener(Events.ON_CLICK, this);
|
||||||
|
LayoutUtils.addSclass("action-button", btnCancel);
|
||||||
|
|
||||||
Panel pnlButtonRight = new Panel();
|
Panel pnlButtonRight = new Panel();
|
||||||
pnlButtonRight.appendChild(btnOk);
|
pnlButtonRight.appendChild(btnOk);
|
||||||
|
@ -370,10 +364,13 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
|
|
||||||
ToolBar toolBar = new ToolBar();
|
ToolBar toolBar = new ToolBar();
|
||||||
toolBar.appendChild(btnNew);
|
toolBar.appendChild(btnNew);
|
||||||
toolBar.appendChild(btnDelete);
|
toolBar.appendChild(btnDelete);
|
||||||
toolBar.appendChild(fQueryName);
|
toolBar.appendChild(fQueryName);
|
||||||
toolBar.appendChild(btnSave);
|
toolBar.appendChild(btnSave);
|
||||||
toolBar.setWidth("100%");
|
toolBar.setWidth("100%");
|
||||||
|
fQueryName.setStyle("margin-left: 3px; margin-right: 3px; position: relative; top: 5px;");
|
||||||
|
|
||||||
|
btnSave.setDisabled(m_AD_Tab_ID <= 0);
|
||||||
|
|
||||||
Hbox confirmPanel = new Hbox();
|
Hbox confirmPanel = new Hbox();
|
||||||
confirmPanel.appendChild(pnlButtonRight);
|
confirmPanel.appendChild(pnlButtonRight);
|
||||||
|
@ -739,27 +736,6 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
dispose();
|
dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (event.getTarget() instanceof Label)
|
|
||||||
{
|
|
||||||
Label label = (Label)event.getTarget();
|
|
||||||
String value = label.getValue();
|
|
||||||
ListCell listcell = (ListCell)label.getParent();
|
|
||||||
ListItem row = (ListItem)listcell.getParent();
|
|
||||||
advancedPanel.setSelectedItem(row);
|
|
||||||
|
|
||||||
if (listcell.getId().equals("cellQueryFrom"+row.getId()))
|
|
||||||
{
|
|
||||||
Component component = getEditorCompQueryFrom(row);
|
|
||||||
addRowEditor(component, listcell);
|
|
||||||
m_editor.setValue(value);
|
|
||||||
}
|
|
||||||
else if (listcell.getId().equals("cellQueryTo"+row.getId()))
|
|
||||||
{
|
|
||||||
Component component = getEditorCompQueryTo(row);
|
|
||||||
addRowEditor(component,listcell);
|
|
||||||
m_editor.setValue(value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (Events.ON_OK.equals(event.getName()))
|
else if (Events.ON_OK.equals(event.getName()))
|
||||||
{
|
{
|
||||||
|
@ -782,7 +758,7 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
String code = userQuery.getCode();
|
String code = userQuery.getCode();
|
||||||
String[] segments = code.split(Pattern.quote(SEGMENT_SEPARATOR));
|
String[] segments = code.split(Pattern.quote(SEGMENT_SEPARATOR));
|
||||||
|
|
||||||
List rowList = advancedPanel.getChildren();
|
List<?> rowList = advancedPanel.getChildren();
|
||||||
for (int rowIndex = rowList.size() - 1; rowIndex >= 1; rowIndex--)
|
for (int rowIndex = rowList.size() - 1; rowIndex >= 1; rowIndex--)
|
||||||
rowList.remove(rowIndex);
|
rowList.remove(rowIndex);
|
||||||
|
|
||||||
|
@ -792,6 +768,7 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
|
|
||||||
ListItem listItem = new ListItem();
|
ListItem listItem = new ListItem();
|
||||||
listItem.setWidth("100%");
|
listItem.setWidth("100%");
|
||||||
|
advancedPanel.appendChild(listItem);
|
||||||
|
|
||||||
Listbox listColumn = new Listbox();
|
Listbox listColumn = new Listbox();
|
||||||
listColumn.setId("listColumn"+listItem.getId());
|
listColumn.setId("listColumn"+listItem.getId());
|
||||||
|
@ -832,17 +809,14 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
String value = fields.length > INDEX_VALUE ? fields[INDEX_VALUE] : "";
|
String value = fields.length > INDEX_VALUE ? fields[INDEX_VALUE] : "";
|
||||||
if(value.length() > 0)
|
if(value.length() > 0)
|
||||||
{
|
{
|
||||||
cellQueryFrom.appendChild(parseString(getTargetMField(columnName), value));
|
cellQueryFrom.appendChild(parseString(getTargetMField(columnName), value, listItem, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
String value2 = fields.length > INDEX_VALUE2 ? fields[INDEX_VALUE2] : "";
|
String value2 = fields.length > INDEX_VALUE2 ? fields[INDEX_VALUE2] : "";
|
||||||
if(value2.length() > 0)
|
if(value2.length() > 0)
|
||||||
{
|
{
|
||||||
cellQueryTo.appendChild(parseString(getTargetMField(columnName), value2));
|
cellQueryTo.appendChild(parseString(getTargetMField(columnName), value2, listItem, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
advancedPanel.appendChild(listItem);
|
|
||||||
// advancedPanel.setSelectedItem(listItem);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
advancedPanel.invalidate();
|
advancedPanel.invalidate();
|
||||||
|
@ -852,33 +826,36 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
* Parse String
|
* Parse String
|
||||||
* @param field column
|
* @param field column
|
||||||
* @param in value
|
* @param in value
|
||||||
|
* @param to
|
||||||
|
* @param listItem
|
||||||
* @return data type corected value
|
* @return data type corected value
|
||||||
*/
|
*/
|
||||||
private Label parseString(GridField field, String in)
|
private Component parseString(GridField field, String in, ListItem listItem, boolean to)
|
||||||
{
|
{
|
||||||
if (in == null)
|
if (in == null)
|
||||||
return null;
|
return null;
|
||||||
int dt = field.getDisplayType();
|
int dt = field.getDisplayType();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
WEditor editor = null;
|
||||||
if (field.isKey())
|
if (field.isKey())
|
||||||
m_editor = new WNumberEditor(field);
|
editor = new WNumberEditor(field);
|
||||||
else
|
else
|
||||||
m_editor = WebEditorFactory.getEditor(field, true);
|
editor = WebEditorFactory.getEditor(field, true);
|
||||||
if (m_editor == null)
|
if (editor == null)
|
||||||
m_editor = new WStringEditor(field);
|
editor = new WStringEditor(field);
|
||||||
|
|
||||||
// Return Integer
|
// Return Integer
|
||||||
if (dt == DisplayType.Integer
|
if (dt == DisplayType.Integer
|
||||||
|| (DisplayType.isID(dt) && field.getColumnName().endsWith("_ID")))
|
|| (DisplayType.isID(dt) && field.getColumnName().endsWith("_ID")))
|
||||||
{
|
{
|
||||||
int i = Integer.parseInt(in);
|
int i = Integer.parseInt(in);
|
||||||
m_editor.setValue(new Integer(i));
|
editor.setValue(new Integer(i));
|
||||||
}
|
}
|
||||||
// Return BigDecimal
|
// Return BigDecimal
|
||||||
else if (DisplayType.isNumeric(dt))
|
else if (DisplayType.isNumeric(dt))
|
||||||
{
|
{
|
||||||
m_editor.setValue(DisplayType.getNumberFormat(dt).parse(in));
|
editor.setValue(DisplayType.getNumberFormat(dt).parse(in));
|
||||||
}
|
}
|
||||||
// Return Timestamp
|
// Return Timestamp
|
||||||
else if (DisplayType.isDate(dt))
|
else if (DisplayType.isDate(dt))
|
||||||
|
@ -887,7 +864,7 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
time = DisplayType.getDateFormat_JDBC().parse(in).getTime();
|
time = DisplayType.getDateFormat_JDBC().parse(in).getTime();
|
||||||
m_editor.setValue(new Timestamp(time));
|
editor.setValue(new Timestamp(time));
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
@ -895,26 +872,30 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
time = DisplayType.getDateFormat(dt).parse(in).getTime();
|
time = DisplayType.getDateFormat(dt).parse(in).getTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
m_editor.setValue(new Timestamp(time));
|
editor.setValue(new Timestamp(time));
|
||||||
}
|
}
|
||||||
else if (dt == DisplayType.YesNo)
|
else if (dt == DisplayType.YesNo)
|
||||||
m_editor.setValue(Boolean.valueOf(in));
|
editor.setValue(Boolean.valueOf(in));
|
||||||
else
|
else
|
||||||
m_editor.setValue(in);
|
editor.setValue(in);
|
||||||
|
|
||||||
Label label = new Label();
|
editor.addValueChangeListener(this);
|
||||||
if(m_editor instanceof WSearchEditor)
|
|
||||||
{
|
boolean between = false;
|
||||||
WSearchEditor se = (WSearchEditor) m_editor;
|
Listbox listOp = (Listbox) listItem.getFellow("listOperator"+listItem.getId());
|
||||||
String display = se.getGridField().getLookup().getDisplay(m_editor.getValue().toString());
|
String betweenValue = listOp.getSelectedItem().getValue().toString();
|
||||||
label.setValue(display);
|
String opValue = MQuery.OPERATORS[MQuery.BETWEEN_INDEX].getValue();
|
||||||
}
|
if (to && betweenValue != null
|
||||||
else
|
&& betweenValue.equals(opValue))
|
||||||
{
|
between = true;
|
||||||
label.setValue(m_editor.getDisplay());
|
|
||||||
}
|
boolean enabled = !to || (to && between);
|
||||||
label.setAttribute("value", m_editor.getValue());
|
|
||||||
return label;
|
editor.setReadWrite(enabled);
|
||||||
|
editor.setVisible(enabled);
|
||||||
|
editor.dynamicDisplay();
|
||||||
|
|
||||||
|
return editor.getComponent();
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
@ -926,12 +907,11 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
|
|
||||||
private void cmd_save(boolean saveQuery)
|
private void cmd_save(boolean saveQuery)
|
||||||
{
|
{
|
||||||
// advancedTable.stopEditor(true);
|
|
||||||
//
|
//
|
||||||
m_query = new MQuery(m_tableName);
|
m_query = new MQuery(m_tableName);
|
||||||
StringBuffer code = new StringBuffer();
|
StringBuffer code = new StringBuffer();
|
||||||
|
|
||||||
List rowList = advancedPanel.getChildren();
|
List<?> rowList = advancedPanel.getChildren();
|
||||||
|
|
||||||
for (int rowIndex = 1; rowIndex < rowList.size() ; rowIndex++)
|
for (int rowIndex = 1; rowIndex < rowList.size() ; rowIndex++)
|
||||||
{
|
{
|
||||||
|
@ -955,12 +935,7 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
|
|
||||||
// Value ******
|
// Value ******
|
||||||
ListCell cellQueryFrom = (ListCell)row.getFellow("cellQueryFrom"+row.getId());
|
ListCell cellQueryFrom = (ListCell)row.getFellow("cellQueryFrom"+row.getId());
|
||||||
// Elaine 2008/07/29
|
Object value = cellQueryFrom.getAttribute("value");
|
||||||
if(!(cellQueryFrom.getChildren().get(0) instanceof Label))
|
|
||||||
continue;
|
|
||||||
//
|
|
||||||
Label labelFrom = (Label)(cellQueryFrom.getChildren().get(0));
|
|
||||||
Object value = labelFrom.getAttribute("value");
|
|
||||||
if (value == null)
|
if (value == null)
|
||||||
continue;
|
continue;
|
||||||
Object parsedValue = parseValue(field, value);
|
Object parsedValue = parseValue(field, value);
|
||||||
|
@ -976,12 +951,7 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
if (MQuery.OPERATORS[MQuery.BETWEEN_INDEX].equals(op))
|
if (MQuery.OPERATORS[MQuery.BETWEEN_INDEX].equals(op))
|
||||||
{
|
{
|
||||||
ListCell cellQueryTo = (ListCell)row.getFellow("cellQueryTo"+row.getId());
|
ListCell cellQueryTo = (ListCell)row.getFellow("cellQueryTo"+row.getId());
|
||||||
// Elaine 2008/07/29
|
value2 = cellQueryTo.getAttribute("value");
|
||||||
if(!(cellQueryTo.getChildren().get(0) instanceof Label))
|
|
||||||
continue;
|
|
||||||
//
|
|
||||||
Label labelTo = (Label)(cellQueryTo.getChildren().get(0));
|
|
||||||
value2 = labelTo.getAttribute("value");
|
|
||||||
if (value2 == null)
|
if (value2 == null)
|
||||||
continue;
|
continue;
|
||||||
Object parsedValue2 = parseValue(field, value2);
|
Object parsedValue2 = parseValue(field, value2);
|
||||||
|
@ -1075,9 +1045,6 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
**/
|
**/
|
||||||
private String getColumnName(ListItem row)
|
private String getColumnName(ListItem row)
|
||||||
{
|
{
|
||||||
/*List list = row.getChildren();
|
|
||||||
Panel pnlColumn = (Panel)list.get(0);
|
|
||||||
List lstColumn = pnlColumn.getChildren();*/
|
|
||||||
Listbox listColumn = (Listbox)row.getFellow("listColumn"+row.getId());
|
Listbox listColumn = (Listbox)row.getFellow("listColumn"+row.getId());
|
||||||
String columnName = listColumn.getSelectedItem().getValue().toString();
|
String columnName = listColumn.getSelectedItem().getValue().toString();
|
||||||
|
|
||||||
|
@ -1092,8 +1059,7 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
**/
|
**/
|
||||||
private Component getEditorCompQueryFrom(ListItem row)
|
private Component getEditorCompQueryFrom(ListItem row)
|
||||||
{
|
{
|
||||||
m_valueToColumn = false;
|
return getEditorComponent(row, false);
|
||||||
return getEditorComponent(row);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1103,8 +1069,7 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
**/
|
**/
|
||||||
private Component getEditorCompQueryTo(ListItem row)
|
private Component getEditorCompQueryTo(ListItem row)
|
||||||
{
|
{
|
||||||
m_valueToColumn = true;
|
return getEditorComponent(row, true);
|
||||||
return getEditorComponent(row);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1149,7 +1114,7 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
**/
|
**/
|
||||||
private void addOperators(ValueNamePair[] op, Listbox listOperator)
|
private void addOperators(ValueNamePair[] op, Listbox listOperator)
|
||||||
{
|
{
|
||||||
List itemList = listOperator.getChildren();
|
List<?> itemList = listOperator.getChildren();
|
||||||
itemList.clear();
|
itemList.clear();
|
||||||
for (ValueNamePair item: op)
|
for (ValueNamePair item: op)
|
||||||
{
|
{
|
||||||
|
@ -1163,39 +1128,39 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
* @param row row
|
* @param row row
|
||||||
* @return Editor component
|
* @return Editor component
|
||||||
**/
|
**/
|
||||||
public Component getEditorComponent(ListItem row)
|
public Component getEditorComponent(ListItem row, boolean to)
|
||||||
{
|
{
|
||||||
String columnName = getColumnName(row);
|
String columnName = getColumnName(row);
|
||||||
m_between = false;
|
boolean between = false;
|
||||||
Listbox listOp = (Listbox) row.getFellow("listOperator"+row.getId());
|
Listbox listOp = (Listbox) row.getFellow("listOperator"+row.getId());
|
||||||
String betweenValue = listOp.getSelectedItem().getValue().toString();
|
String betweenValue = listOp.getSelectedItem().getValue().toString();
|
||||||
String opValue = MQuery.OPERATORS[MQuery.BETWEEN_INDEX].getValue();
|
String opValue = MQuery.OPERATORS[MQuery.BETWEEN_INDEX].getValue();
|
||||||
if (m_valueToColumn && betweenValue != null
|
if (to && betweenValue != null
|
||||||
&& betweenValue.equals(opValue))
|
&& betweenValue.equals(opValue))
|
||||||
m_between = true;
|
between = true;
|
||||||
|
|
||||||
boolean enabled = !m_valueToColumn || (m_valueToColumn && m_between);
|
boolean enabled = !to || (to && between);
|
||||||
|
|
||||||
// Create Editor
|
// Create Editor
|
||||||
GridField field = getTargetMField(columnName);
|
GridField field = getTargetMField(columnName);
|
||||||
// log.fine( "Field=" + field.toStringX());
|
|
||||||
if(field == null) return new Label("");
|
if(field == null) return new Label("");
|
||||||
|
|
||||||
|
WEditor editor = null;
|
||||||
if (field.isKey())
|
if (field.isKey())
|
||||||
m_editor = new WNumberEditor(field);
|
editor = new WNumberEditor(field);
|
||||||
else
|
else
|
||||||
m_editor = WebEditorFactory.getEditor(field, true);
|
editor = WebEditorFactory.getEditor(field, true);
|
||||||
if (m_editor == null)
|
if (editor == null)
|
||||||
m_editor = new WStringEditor(field);
|
editor = new WStringEditor(field);
|
||||||
|
|
||||||
field.addPropertyChangeListener(m_editor);
|
field.addPropertyChangeListener(editor);
|
||||||
m_editor.addValueChangeListener(this);
|
editor.addValueChangeListener(this);
|
||||||
m_editor.setValue(null);
|
editor.setValue(null);
|
||||||
m_editor.setReadWrite(enabled);
|
editor.setReadWrite(enabled);
|
||||||
m_editor.setVisible(enabled);
|
editor.setVisible(enabled);
|
||||||
m_editor.dynamicDisplay();
|
editor.dynamicDisplay();
|
||||||
//
|
//
|
||||||
return m_editor.getComponent();
|
return editor.getComponent();
|
||||||
|
|
||||||
} // getTableCellEditorComponent
|
} // getTableCellEditorComponent
|
||||||
|
|
||||||
|
@ -1339,7 +1304,7 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
log.info("");
|
log.info("");
|
||||||
//
|
//
|
||||||
m_query = new MQuery(m_tableName);
|
m_query = new MQuery(m_tableName);
|
||||||
List rowList = advancedPanel.getChildren();
|
List<?> rowList = advancedPanel.getChildren();
|
||||||
|
|
||||||
for (int rowIndex = 1; rowIndex < rowList.size() ; rowIndex++)
|
for (int rowIndex = 1; rowIndex < rowList.size() ; rowIndex++)
|
||||||
{
|
{
|
||||||
|
@ -1363,12 +1328,7 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
|
|
||||||
// Value ******
|
// Value ******
|
||||||
ListCell cellQueryFrom = (ListCell)row.getFellow("cellQueryFrom"+row.getId());
|
ListCell cellQueryFrom = (ListCell)row.getFellow("cellQueryFrom"+row.getId());
|
||||||
// Elaine 2008/07/29
|
Object value = cellQueryFrom.getAttribute("value");
|
||||||
if(!(cellQueryFrom.getChildren().get(0) instanceof Label))
|
|
||||||
continue;
|
|
||||||
//
|
|
||||||
Label labelFrom = (Label)(cellQueryFrom.getChildren().get(0));
|
|
||||||
Object value = labelFrom.getAttribute("value");
|
|
||||||
if (value == null)
|
if (value == null)
|
||||||
continue;
|
continue;
|
||||||
Object parsedValue = parseValue(field, value);
|
Object parsedValue = parseValue(field, value);
|
||||||
|
@ -1383,12 +1343,7 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
if (MQuery.OPERATORS[MQuery.BETWEEN_INDEX].equals(op))
|
if (MQuery.OPERATORS[MQuery.BETWEEN_INDEX].equals(op))
|
||||||
{
|
{
|
||||||
ListCell cellQueryTo = (ListCell)row.getFellow("cellQueryTo"+row.getId());
|
ListCell cellQueryTo = (ListCell)row.getFellow("cellQueryTo"+row.getId());
|
||||||
// Elaine 2008/07/29
|
Object value2 = cellQueryTo.getAttribute("value");
|
||||||
if(!(cellQueryTo.getChildren().get(0) instanceof Label))
|
|
||||||
continue;
|
|
||||||
//
|
|
||||||
Label labelTo = (Label)(cellQueryTo.getChildren().get(0));
|
|
||||||
Object value2 = labelTo.getAttribute("value");
|
|
||||||
if (value2 == null)
|
if (value2 == null)
|
||||||
continue;
|
continue;
|
||||||
Object parsedValue2 = parseValue(field, value2);
|
Object parsedValue2 = parseValue(field, value2);
|
||||||
|
@ -1539,7 +1494,7 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
**/
|
**/
|
||||||
private String getSubCategoriesString(int productCategoryId, Vector<SimpleTreeNode> categories, int loopIndicatorId) throws AdempiereSystemError {
|
private String getSubCategoriesString(int productCategoryId, Vector<SimpleTreeNode> categories, int loopIndicatorId) throws AdempiereSystemError {
|
||||||
String ret = "";
|
String ret = "";
|
||||||
final Iterator iter = categories.iterator();
|
final Iterator<SimpleTreeNode> iter = categories.iterator();
|
||||||
while (iter.hasNext()) {
|
while (iter.hasNext()) {
|
||||||
SimpleTreeNode node = (SimpleTreeNode) iter.next();
|
SimpleTreeNode node = (SimpleTreeNode) iter.next();
|
||||||
if (node.getParentId() == productCategoryId) {
|
if (node.getParentId() == productCategoryId) {
|
||||||
|
@ -1682,25 +1637,7 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
// Editor component
|
// Editor component
|
||||||
Component component = editor.getComponent();
|
Component component = editor.getComponent();
|
||||||
ListCell listcell = (ListCell)component.getParent();
|
ListCell listcell = (ListCell)component.getParent();
|
||||||
|
listcell.setAttribute("value", evt.getNewValue());
|
||||||
// Elaine 2008/07/29
|
|
||||||
Label label = new Label();
|
|
||||||
if(evt.getSource() instanceof WSearchEditor)
|
|
||||||
{
|
|
||||||
WSearchEditor se = (WSearchEditor) evt.getSource();
|
|
||||||
se.setValue(evt.getNewValue());
|
|
||||||
label.setValue(se.getDisplay());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
label.setValue(editor.getDisplay());
|
|
||||||
}
|
|
||||||
label.setAttribute("value", evt.getNewValue());
|
|
||||||
//
|
|
||||||
|
|
||||||
listcell.appendChild(label);
|
|
||||||
listcell.removeChild(component);
|
|
||||||
label.addEventListener(Events.ON_CLICK,this);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -858,7 +858,7 @@ public class ZkReportViewer extends Window implements EventListener {
|
||||||
bFind.setVisible(false);
|
bFind.setVisible(false);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
FindWindow find = new FindWindow(m_WindowNo, title, AD_Table_ID, tableName,"", findFields, 1);
|
FindWindow find = new FindWindow(m_WindowNo, title, AD_Table_ID, tableName,"", findFields, 1, AD_Tab_ID);
|
||||||
find.setVisible(true);
|
find.setVisible(true);
|
||||||
AEnv.showWindow(find);
|
AEnv.showWindow(find);
|
||||||
m_reportEngine.setQuery(find.getQuery());
|
m_reportEngine.setQuery(find.getQuery());
|
||||||
|
|
|
@ -0,0 +1,83 @@
|
||||||
|
/* Combobox2Default.java
|
||||||
|
|
||||||
|
{{IS_NOTE
|
||||||
|
Purpose:
|
||||||
|
|
||||||
|
Description:
|
||||||
|
|
||||||
|
History:
|
||||||
|
Jun 6, 2008 8:57:53 AM , Created by jumperchen
|
||||||
|
}}IS_NOTE
|
||||||
|
|
||||||
|
Copyright (C) 2008 Potix Corporation. All Rights Reserved.
|
||||||
|
|
||||||
|
{{IS_RIGHT
|
||||||
|
This program is distributed under GPL Version 2.0 in the hope that
|
||||||
|
it will be useful, but WITHOUT ANY WARRANTY.
|
||||||
|
}}IS_RIGHT
|
||||||
|
*/
|
||||||
|
package org.zkoss.zkmax.zul.render;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.Writer;
|
||||||
|
|
||||||
|
import javax.servlet.ServletRequest;
|
||||||
|
|
||||||
|
import org.zkoss.util.Utils;
|
||||||
|
import org.zkoss.web.servlet.Servlets;
|
||||||
|
import org.zkoss.zk.ui.Component;
|
||||||
|
import org.zkoss.zk.ui.Execution;
|
||||||
|
import org.zkoss.zk.ui.Executions;
|
||||||
|
import org.zkoss.zk.ui.render.ComponentRenderer;
|
||||||
|
import org.zkoss.zk.ui.render.SmartWriter;
|
||||||
|
import org.zkoss.zul.Combobox;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@link Combobox}'s default mold.
|
||||||
|
*
|
||||||
|
* @author jumperchen
|
||||||
|
*
|
||||||
|
* @since 3.5.0
|
||||||
|
*
|
||||||
|
* @author hengsin
|
||||||
|
* modify default zk layout for combobox
|
||||||
|
*/
|
||||||
|
public class Combobox2Default implements ComponentRenderer {
|
||||||
|
public void render(Component comp, Writer out) throws IOException {
|
||||||
|
final SmartWriter wh = new SmartWriter(out);
|
||||||
|
final Combobox self = (Combobox) comp;
|
||||||
|
final String uuid = self.getUuid();
|
||||||
|
final String zcls = self.getZclass();
|
||||||
|
final Execution exec = Executions.getCurrent();
|
||||||
|
|
||||||
|
String tableStyle = "display:inline-block";
|
||||||
|
String inputAttrs = self.getInnerAttrs();
|
||||||
|
if (inputAttrs.indexOf("style") >= 0) {
|
||||||
|
inputAttrs = inputAttrs.substring(0, inputAttrs.indexOf("style"));
|
||||||
|
}
|
||||||
|
inputAttrs = inputAttrs.trim() + " style='width: 100%'";
|
||||||
|
wh.write("<span id=\"").write(uuid).write("\"")
|
||||||
|
.write(self.getOuterAttrs())
|
||||||
|
.write(" z.type=\"zul.cb.Cmbox\" z.combo=\"true\">")
|
||||||
|
.write("<table border='0' cellspacing='0' cellpadding='0'")
|
||||||
|
.write(" width='").write(self.getWidth()).write("'")
|
||||||
|
.write(" style='"). write(tableStyle).write("'>")
|
||||||
|
.write("<tr style='width:100%; white-space:nowrap;'><td style='width: 100%'><input id=\"")
|
||||||
|
.write(uuid).write("!real\" autocomplete=\"off\"")
|
||||||
|
.write(" class=\"").write(zcls).write("-inp\" ")
|
||||||
|
.write(inputAttrs).write("/></td><td style='width: 17px'><span id=\"")
|
||||||
|
.write(uuid).write("!btn\" class=\"").write(zcls).write("-btn\"");
|
||||||
|
|
||||||
|
if (!self.isButtonVisible())
|
||||||
|
wh.write(" style=\"display:none\"");
|
||||||
|
|
||||||
|
wh.write("><img class=\"").write(zcls).write("-img\" onmousedown=\"return false;\"");
|
||||||
|
wh.write(" src=\"").write(exec.encodeURL("~./img/spacer.gif")).write("\"")
|
||||||
|
.write("\"/></span></td></tr></table><div id=\"").write(uuid).write("!pp\" class=\"")
|
||||||
|
.write(zcls).write("-pp\" style=\"display:none\" tabindex=\"-1\">")
|
||||||
|
.write("<table id=\"").write(uuid)
|
||||||
|
.write("!cave\" cellpadding=\"0\" cellspacing=\"0\">")
|
||||||
|
.writeChildren(self)
|
||||||
|
.write("</table></div></span>");
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue