IDEMPIERE-142 Zk6 Port. Fixed layout for find window.
This commit is contained in:
parent
8bf2eb7614
commit
ba7a432b62
|
@ -35,6 +35,8 @@ import java.util.regex.Pattern;
|
||||||
import org.adempiere.webui.LayoutUtils;
|
import org.adempiere.webui.LayoutUtils;
|
||||||
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.Column;
|
||||||
|
import org.adempiere.webui.component.Columns;
|
||||||
import org.adempiere.webui.component.Combobox;
|
import org.adempiere.webui.component.Combobox;
|
||||||
import org.adempiere.webui.component.Grid;
|
import org.adempiere.webui.component.Grid;
|
||||||
import org.adempiere.webui.component.Label;
|
import org.adempiere.webui.component.Label;
|
||||||
|
@ -47,7 +49,6 @@ import org.adempiere.webui.component.Panel;
|
||||||
import org.adempiere.webui.component.Row;
|
import org.adempiere.webui.component.Row;
|
||||||
import org.adempiere.webui.component.Rows;
|
import org.adempiere.webui.component.Rows;
|
||||||
import org.adempiere.webui.component.Tabpanel;
|
import org.adempiere.webui.component.Tabpanel;
|
||||||
import org.adempiere.webui.component.Textbox;
|
|
||||||
import org.adempiere.webui.component.ToolBar;
|
import org.adempiere.webui.component.ToolBar;
|
||||||
import org.adempiere.webui.component.ToolBarButton;
|
import org.adempiere.webui.component.ToolBarButton;
|
||||||
import org.adempiere.webui.component.Window;
|
import org.adempiere.webui.component.Window;
|
||||||
|
@ -96,7 +97,7 @@ import org.zkoss.zul.Hbox;
|
||||||
* @author Sendy Yagambrum
|
* @author Sendy Yagambrum
|
||||||
* @date June 27, 2007
|
* @date June 27, 2007
|
||||||
*/
|
*/
|
||||||
public class FindWindow extends Window implements EventListener,ValueChangeListener
|
public class FindWindow extends Window implements EventListener<Event>,ValueChangeListener
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -109,16 +110,6 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
/** Advanced Window Tab */
|
/** Advanced Window Tab */
|
||||||
private Window winAdvanced;
|
private Window winAdvanced;
|
||||||
//
|
//
|
||||||
private Label lblDocumentNo;
|
|
||||||
private Label lblDescription;
|
|
||||||
private Label lblName;
|
|
||||||
private Label lblValue;
|
|
||||||
//
|
|
||||||
private Textbox fieldDocumentNo;
|
|
||||||
private Textbox fieldDescription;
|
|
||||||
private Textbox fieldName;
|
|
||||||
private Textbox fieldValue;
|
|
||||||
//
|
|
||||||
private Combobox fQueryName;
|
private Combobox fQueryName;
|
||||||
//
|
//
|
||||||
private Listbox advancedPanel;
|
private Listbox advancedPanel;
|
||||||
|
@ -144,10 +135,6 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
private int m_total;
|
private int m_total;
|
||||||
private PreparedStatement m_pstmt;
|
private PreparedStatement m_pstmt;
|
||||||
//
|
//
|
||||||
private boolean hasValue = false;
|
|
||||||
private boolean hasDocNo = false;
|
|
||||||
private boolean hasName = false;
|
|
||||||
private boolean hasDescription = false;
|
|
||||||
/** 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 */
|
||||||
|
@ -162,10 +149,6 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
private int m_AD_Tab_ID = 0;
|
private int m_AD_Tab_ID = 0;
|
||||||
private MUserQuery[] userQueries;
|
private MUserQuery[] userQueries;
|
||||||
private Rows contentSimpleRows;
|
private Rows contentSimpleRows;
|
||||||
private Row pnlDocument;
|
|
||||||
private Row pnlDescription;
|
|
||||||
private Row pnlValue;
|
|
||||||
private Row pnlName;
|
|
||||||
private boolean m_createNew = false;
|
private boolean m_createNew = false;
|
||||||
|
|
||||||
/** Index ColumnName = 0 */
|
/** Index ColumnName = 0 */
|
||||||
|
@ -235,32 +218,6 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
**/
|
**/
|
||||||
private void initSimple()
|
private void initSimple()
|
||||||
{
|
{
|
||||||
lblDocumentNo = new Label();
|
|
||||||
lblDocumentNo.setValue(Msg.translate(Env.getCtx(),"DocumentNo").replaceAll("&", ""));
|
|
||||||
|
|
||||||
lblDescription = new Label();
|
|
||||||
lblDescription.setValue(Msg.translate(Env.getCtx(),"Description").replaceAll("&", ""));
|
|
||||||
|
|
||||||
lblName = new Label();
|
|
||||||
lblName.setValue(Msg.translate(Env.getCtx(),"Name").replaceAll("&", ""));
|
|
||||||
|
|
||||||
lblValue = new Label();
|
|
||||||
lblValue.setValue(Msg.translate(Env.getCtx(),"Value").replaceAll("&", ""));
|
|
||||||
|
|
||||||
fieldDocumentNo = new Textbox();
|
|
||||||
fieldDocumentNo.setId("fieldDocumentNo");
|
|
||||||
fieldDocumentNo.setMaxlength(40);
|
|
||||||
|
|
||||||
fieldDescription = new Textbox();
|
|
||||||
fieldDescription.setId("fieldDescription");
|
|
||||||
fieldDescription.setMaxlength(40);
|
|
||||||
|
|
||||||
fieldName = new Textbox();
|
|
||||||
fieldName.setMaxlength(40);
|
|
||||||
|
|
||||||
fieldValue = new Textbox();
|
|
||||||
fieldValue.setMaxlength(40);
|
|
||||||
|
|
||||||
Button btnNew = new Button();
|
Button btnNew = new Button();
|
||||||
btnNew.setName("btnNew");
|
btnNew.setName("btnNew");
|
||||||
btnNew.setImage("/images/New24.png");
|
btnNew.setImage("/images/New24.png");
|
||||||
|
@ -295,35 +252,28 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
hboxButton.appendChild(pnlButtonRight);
|
hboxButton.appendChild(pnlButtonRight);
|
||||||
hboxButton.setWidth("100%");
|
hboxButton.setWidth("100%");
|
||||||
|
|
||||||
pnlDocument = new Row();
|
|
||||||
pnlDocument.setId("pnlDocument");
|
|
||||||
pnlDocument.appendChild(LayoutUtils.makeRightAlign(lblDocumentNo));
|
|
||||||
pnlDocument.appendChild(fieldDocumentNo);
|
|
||||||
|
|
||||||
pnlDescription = new Row();
|
|
||||||
pnlDescription.appendChild(LayoutUtils.makeRightAlign(lblDescription));
|
|
||||||
pnlDescription.appendChild(fieldDescription);
|
|
||||||
|
|
||||||
pnlValue = new Row();
|
|
||||||
pnlValue.appendChild(LayoutUtils.makeRightAlign(lblValue));
|
|
||||||
pnlValue.appendChild(fieldValue);
|
|
||||||
|
|
||||||
pnlName = new Row();
|
|
||||||
pnlName.appendChild(LayoutUtils.makeRightAlign(lblName));
|
|
||||||
pnlName.appendChild(fieldName);
|
|
||||||
|
|
||||||
contentSimple = new Grid();
|
contentSimple = new Grid();
|
||||||
contentSimple.setId("contentSimple");
|
contentSimple.setId("contentSimple");
|
||||||
contentSimple.setWidth("100%");
|
contentSimple.setStyle("width: 100%; position: relative");
|
||||||
contentSimple.makeNoStrip();
|
contentSimple.makeNoStrip();
|
||||||
|
contentSimple.setHflex("1");
|
||||||
|
contentSimple.setSizedByContent(true);
|
||||||
|
|
||||||
|
Columns columns = new Columns();
|
||||||
|
Column column = new Column();
|
||||||
|
column.setAlign("right");
|
||||||
|
column.setWidth("30%");
|
||||||
|
columns.appendChild(column);
|
||||||
|
|
||||||
|
column = new Column();
|
||||||
|
column.setAlign("left");
|
||||||
|
column.setWidth("70%");
|
||||||
|
columns.appendChild(column);
|
||||||
|
|
||||||
|
contentSimple.appendChild(columns);
|
||||||
|
|
||||||
contentSimpleRows = new Rows();
|
contentSimpleRows = new Rows();
|
||||||
contentSimple.appendChild(contentSimpleRows);
|
contentSimple.appendChild(contentSimpleRows);
|
||||||
|
|
||||||
contentSimpleRows.appendChild(pnlValue);
|
|
||||||
contentSimpleRows.appendChild(pnlName);
|
|
||||||
contentSimpleRows.appendChild(pnlDocument);
|
|
||||||
contentSimpleRows.appendChild(pnlDescription);
|
|
||||||
contentSimple.setVflex(true);
|
contentSimple.setVflex(true);
|
||||||
|
|
||||||
Borderlayout layout = new Borderlayout();
|
Borderlayout layout = new Borderlayout();
|
||||||
|
@ -393,7 +343,7 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
Panel pnlButtonRight = new Panel();
|
Panel pnlButtonRight = new Panel();
|
||||||
pnlButtonRight.appendChild(btnOk);
|
pnlButtonRight.appendChild(btnOk);
|
||||||
pnlButtonRight.appendChild(btnCancel);
|
pnlButtonRight.appendChild(btnCancel);
|
||||||
pnlButtonRight.setAlign("right");
|
pnlButtonRight.setStyle("text-align: right");
|
||||||
|
|
||||||
ToolBar toolBar = new ToolBar();
|
ToolBar toolBar = new ToolBar();
|
||||||
toolBar.appendChild(btnNew);
|
toolBar.appendChild(btnNew);
|
||||||
|
@ -410,23 +360,24 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
confirmPanel.setWidth("100%");
|
confirmPanel.setWidth("100%");
|
||||||
|
|
||||||
advancedPanel = new Listbox();
|
advancedPanel = new Listbox();
|
||||||
|
advancedPanel.setSizedByContent(true);
|
||||||
ListHead listhead = new ListHead();
|
ListHead listhead = new ListHead();
|
||||||
listhead.setSizable(true);
|
listhead.setSizable(true);
|
||||||
|
|
||||||
ListHeader lstHColumn = new ListHeader();
|
ListHeader lstHColumn = new ListHeader();
|
||||||
lstHColumn.setLabel(Msg.translate(Env.getCtx(), "AD_Column_ID"));
|
lstHColumn.setLabel(Msg.translate(Env.getCtx(), "AD_Column_ID"));
|
||||||
lstHColumn.setWidth("100px");
|
lstHColumn.setWidth("250px");
|
||||||
|
|
||||||
ListHeader lstHOperator = new ListHeader();
|
ListHeader lstHOperator = new ListHeader();
|
||||||
lstHOperator.setLabel(Msg.getMsg(Env.getCtx(), "Operator"));
|
lstHOperator.setLabel(Msg.getMsg(Env.getCtx(), "Operator"));
|
||||||
|
|
||||||
ListHeader lstHQueryValue = new ListHeader();
|
ListHeader lstHQueryValue = new ListHeader();
|
||||||
lstHQueryValue.setLabel(Msg.getMsg(Env.getCtx(), "QueryValue"));
|
lstHQueryValue.setLabel(Msg.getMsg(Env.getCtx(), "QueryValue"));
|
||||||
lstHQueryValue.setWidth("210px");
|
lstHQueryValue.setWidth("200px");
|
||||||
|
|
||||||
ListHeader lstHQueryTo = new ListHeader();
|
ListHeader lstHQueryTo = new ListHeader();
|
||||||
lstHQueryTo.setLabel(Msg.getMsg(Env.getCtx(), "QueryValue2"));
|
lstHQueryTo.setLabel(Msg.getMsg(Env.getCtx(), "QueryValue2"));
|
||||||
lstHQueryTo.setWidth("210px");
|
lstHQueryTo.setWidth("200px");
|
||||||
|
|
||||||
listhead.appendChild(lstHColumn);
|
listhead.appendChild(lstHColumn);
|
||||||
listhead.appendChild(lstHOperator);
|
listhead.appendChild(lstHOperator);
|
||||||
|
@ -494,7 +445,6 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
for (int i = 0; i < m_findFields.length; i++)
|
for (int i = 0; i < m_findFields.length; i++)
|
||||||
{
|
{
|
||||||
GridField mField = m_findFields[i];
|
GridField mField = m_findFields[i];
|
||||||
String columnName = mField.getColumnName();
|
|
||||||
|
|
||||||
// Make Yes-No searchable as list
|
// Make Yes-No searchable as list
|
||||||
if (mField.getVO().displayType == DisplayType.YesNo)
|
if (mField.getVO().displayType == DisplayType.YesNo)
|
||||||
|
@ -540,42 +490,13 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** metas: teo_sarca: Specify exactly which are the search fields - http://sourceforge.net/projects/adempiere/forums/forum/610548/topic/3736214
|
|
||||||
if (columnName.equals("Value"))
|
|
||||||
hasValue = true;
|
|
||||||
else if (columnName.equals("Name"))
|
|
||||||
hasName = true;
|
|
||||||
else if (columnName.equals("DocumentNo"))
|
|
||||||
hasDocNo = true;
|
|
||||||
else if (columnName.equals("Description"))
|
|
||||||
hasDescription = true;
|
|
||||||
else
|
|
||||||
/**/
|
|
||||||
if (mField.isSelectionColumn())
|
if (mField.isSelectionColumn())
|
||||||
addSelectionColumn (mField);
|
addSelectionColumn (mField);
|
||||||
/** metas: teo_sarca: Specify exactly which are the search fields - http://sourceforge.net/projects/adempiere/forums/forum/610548/topic/3736214
|
|
||||||
else if (columnName.indexOf("Name") != -1)
|
|
||||||
addSelectionColumn (mField);
|
|
||||||
/**/
|
|
||||||
|
|
||||||
// TargetFields
|
// TargetFields
|
||||||
m_targetFields.put (new Integer(mField.getAD_Column_ID()), mField);
|
m_targetFields.put (new Integer(mField.getAD_Column_ID()), mField);
|
||||||
} // for all target tab fields
|
} // for all target tab fields
|
||||||
|
|
||||||
// Disable simple query fields
|
|
||||||
pnlValue.setVisible(hasValue);
|
|
||||||
if (hasValue)
|
|
||||||
fieldValue.addEventListener(Events.ON_CHANGE,this);
|
|
||||||
pnlDocument.setVisible(hasDocNo);
|
|
||||||
if (hasDocNo)
|
|
||||||
fieldDocumentNo.addEventListener(Events.ON_CHANGE,this);
|
|
||||||
pnlName.setVisible(hasName);
|
|
||||||
if (hasName)
|
|
||||||
fieldName.addEventListener(Events.ON_CHANGE,this);
|
|
||||||
pnlDescription.setVisible(hasDescription);
|
|
||||||
if (hasDescription)
|
|
||||||
fieldDescription.addEventListener(Events.ON_CHANGE,this);
|
|
||||||
|
|
||||||
m_total = getNoOfRecords(null, false);
|
m_total = getNoOfRecords(null, false);
|
||||||
|
|
||||||
} // initFind
|
} // initFind
|
||||||
|
@ -597,7 +518,6 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
private void createFields()
|
private void createFields()
|
||||||
{
|
{
|
||||||
ListItem listItem = new ListItem();
|
ListItem listItem = new ListItem();
|
||||||
listItem.setWidth("100%");
|
|
||||||
|
|
||||||
Listbox listColumn = new Listbox();
|
Listbox listColumn = new Listbox();
|
||||||
listColumn.setId("listColumn"+listItem.getId());
|
listColumn.setId("listColumn"+listItem.getId());
|
||||||
|
@ -738,8 +658,9 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
editor.setMandatory(false);
|
editor.setMandatory(false);
|
||||||
editor.setReadWrite(true);
|
editor.setReadWrite(true);
|
||||||
editor.dynamicDisplay();
|
editor.dynamicDisplay();
|
||||||
|
editor.fillHorizontal();
|
||||||
Label label = editor.getLabel();
|
Label label = editor.getLabel();
|
||||||
Component fieldLabel = editor.getComponent();
|
Component fieldEditor = editor.getComponent();
|
||||||
|
|
||||||
//
|
//
|
||||||
if (displayLength > 0) // set it back
|
if (displayLength > 0) // set it back
|
||||||
|
@ -747,13 +668,13 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
//
|
//
|
||||||
|
|
||||||
Row panel = new Row();
|
Row panel = new Row();
|
||||||
panel.appendChild(LayoutUtils.makeRightAlign(label));
|
panel.appendChild(label);
|
||||||
panel.appendChild(fieldLabel);
|
panel.appendChild(fieldEditor);
|
||||||
|
|
||||||
contentSimpleRows.appendChild(panel);
|
contentSimpleRows.appendChild(panel);
|
||||||
m_sEditors.add(editor);
|
m_sEditors.add(editor);
|
||||||
|
|
||||||
fieldLabel.addEventListener(Events.ON_OK,this);
|
fieldEditor.addEventListener(Events.ON_OK,this);
|
||||||
} // addSelectionColumn
|
} // addSelectionColumn
|
||||||
|
|
||||||
public void onEvent(Event event) throws Exception
|
public void onEvent(Event event) throws Exception
|
||||||
|
@ -881,7 +802,6 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
String[] fields = segments[i].split(Pattern.quote(FIELD_SEPARATOR));
|
String[] fields = segments[i].split(Pattern.quote(FIELD_SEPARATOR));
|
||||||
|
|
||||||
ListItem listItem = new ListItem();
|
ListItem listItem = new ListItem();
|
||||||
listItem.setWidth("100%");
|
|
||||||
advancedPanel.appendChild(listItem);
|
advancedPanel.appendChild(listItem);
|
||||||
|
|
||||||
Listbox listColumn = new Listbox();
|
Listbox listColumn = new Listbox();
|
||||||
|
@ -1308,40 +1228,6 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
// Create Query String
|
// Create Query String
|
||||||
m_query = new MQuery(m_tableName);
|
m_query = new MQuery(m_tableName);
|
||||||
m_query.addRestriction(Env.parseContext(Env.getCtx(), m_targetWindowNo, m_whereExtended, false));
|
m_query.addRestriction(Env.parseContext(Env.getCtx(), m_targetWindowNo, m_whereExtended, false));
|
||||||
if (hasValue && !fieldValue.getText().equals("%") && fieldValue.getText().length() != 0)
|
|
||||||
{
|
|
||||||
String value = fieldValue.getText().toUpperCase();
|
|
||||||
|
|
||||||
if (!value.endsWith("%"))
|
|
||||||
value += "%";
|
|
||||||
m_query.addRestriction("UPPER(Value)", MQuery.LIKE, value, lblValue.getValue(), value);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
if (hasDocNo && !fieldDocumentNo.getText().equals("%") && fieldDocumentNo.getText().length() != 0)
|
|
||||||
{
|
|
||||||
String value = fieldDocumentNo.getText().toUpperCase();
|
|
||||||
|
|
||||||
if (!value.endsWith("%"))
|
|
||||||
value += "%";
|
|
||||||
m_query.addRestriction("UPPER(DocumentNo)", MQuery.LIKE, value, lblDocumentNo.getValue(),value);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
if ((hasName) && !fieldName.getText().equals("%") && fieldName.getText().length() != 0)
|
|
||||||
{
|
|
||||||
String value = fieldName.getText().toUpperCase();
|
|
||||||
|
|
||||||
if (!value.endsWith("%"))
|
|
||||||
value += "%";
|
|
||||||
m_query.addRestriction("UPPER(Name)", MQuery.LIKE, value, lblName.getValue(), value);
|
|
||||||
}
|
|
||||||
//
|
|
||||||
if (hasDescription && !fieldDescription.getText().equals("%") && fieldDescription.getText().length() != 0)
|
|
||||||
{
|
|
||||||
String value = fieldDescription.getText().toUpperCase();
|
|
||||||
if (!value.endsWith("%"))
|
|
||||||
value += "%";
|
|
||||||
m_query.addRestriction("UPPER(Description)", MQuery.LIKE, value, lblDescription.getValue(), value);
|
|
||||||
}
|
|
||||||
// Special Editors
|
// Special Editors
|
||||||
for (int i = 0; i < m_sEditors.size(); i++)
|
for (int i = 0; i < m_sEditors.size(); i++)
|
||||||
{
|
{
|
||||||
|
@ -1781,14 +1667,7 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnPostVisible() {
|
public void OnPostVisible() {
|
||||||
if (hasDocNo)
|
Clients.response(new AuFocus(m_sEditors.get(0).getComponent()));
|
||||||
Clients.response(new AuFocus(fieldDocumentNo));
|
|
||||||
else if (hasValue)
|
|
||||||
Clients.response(new AuFocus(fieldValue));
|
|
||||||
else if (hasName)
|
|
||||||
Clients.response(new AuFocus(fieldName));
|
|
||||||
else if (m_sEditors.size() > 0 && m_sEditors.get(0) != null)
|
|
||||||
Clients.response(new AuFocus(m_sEditors.get(0).getComponent()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue