hg merge release-2.1 (merge release2.1 into development)
This commit is contained in:
commit
e0a05471f9
|
@ -765,7 +765,7 @@ public class GridTabCSVImporter implements IGridTabImporter
|
||||||
return new StringBuilder(Msg.getMsg(Env.getCtx(), "FieldNotDisplayed",new Object[] {header.get(i)}));
|
return new StringBuilder(Msg.getMsg(Env.getCtx(), "FieldNotDisplayed",new Object[] {header.get(i)}));
|
||||||
|
|
||||||
MColumn column = MColumn.get(Env.getCtx(), field.getAD_Column_ID());
|
MColumn column = MColumn.get(Env.getCtx(), field.getAD_Column_ID());
|
||||||
if((field.isMandatory(true) || column.isMandatory()) && value == null && field.getDefault()==null){
|
if((field.isMandatory(false) || column.isMandatory()) && value == null && field.getDefault()==null){
|
||||||
mandatoryColumns.append(" / ");
|
mandatoryColumns.append(" / ");
|
||||||
mandatoryColumns.append(header.get(i));
|
mandatoryColumns.append(header.get(i));
|
||||||
}
|
}
|
||||||
|
|
|
@ -180,13 +180,6 @@ public class GridField
|
||||||
log.log(Level.SEVERE, "(" + m_vo.ColumnName + ") - No LookupInfo");
|
log.log(Level.SEVERE, "(" + m_vo.ColumnName + ") - No LookupInfo");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Prevent loading of CreatedBy/UpdatedBy
|
|
||||||
if (m_vo.displayType == DisplayType.Table
|
|
||||||
&& (m_vo.ColumnName.equals("CreatedBy") || m_vo.ColumnName.equals("UpdatedBy")) )
|
|
||||||
{
|
|
||||||
m_vo.lookupInfo.IsCreadedUpdatedBy = true;
|
|
||||||
m_vo.lookupInfo.DisplayType = DisplayType.Search;
|
|
||||||
}
|
|
||||||
//
|
//
|
||||||
loadLookupNoValidate();
|
loadLookupNoValidate();
|
||||||
}
|
}
|
||||||
|
@ -220,6 +213,14 @@ public class GridField
|
||||||
if (m_vo.lookupInfo == null) {
|
if (m_vo.lookupInfo == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// Prevent loading of CreatedBy/UpdatedBy
|
||||||
|
if (m_vo.displayType == DisplayType.Table
|
||||||
|
&& (m_vo.ColumnName.equals("CreatedBy") || m_vo.ColumnName.equals("UpdatedBy")) )
|
||||||
|
{
|
||||||
|
m_vo.lookupInfo.IsCreadedUpdatedBy = true;
|
||||||
|
m_vo.lookupInfo.DisplayType = DisplayType.Search;
|
||||||
|
m_vo.displayType = DisplayType.Search;
|
||||||
|
}
|
||||||
m_vo.lookupInfo.IsKey = isKey();
|
m_vo.lookupInfo.IsKey = isKey();
|
||||||
loadLookupFromFactory();
|
loadLookupFromFactory();
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,7 +113,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 1377113168185797983L;
|
private static final long serialVersionUID = 1151723870943569774L;
|
||||||
|
|
||||||
public static final String DEFAULT_STATUS_MESSAGE = "NavigateOrUpdate";
|
public static final String DEFAULT_STATUS_MESSAGE = "NavigateOrUpdate";
|
||||||
|
|
||||||
|
@ -157,6 +157,10 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
|
||||||
// The window of this tab
|
// The window of this tab
|
||||||
private GridWindow m_window;
|
private GridWindow m_window;
|
||||||
|
|
||||||
|
public GridWindow getGridWindow() {
|
||||||
|
return m_window;
|
||||||
|
}
|
||||||
|
|
||||||
/** The Table Model for Query */
|
/** The Table Model for Query */
|
||||||
private GridTable m_mTable = null;
|
private GridTable m_mTable = null;
|
||||||
|
|
||||||
|
|
|
@ -211,11 +211,11 @@ public class MMovementLine extends X_M_MovementLine
|
||||||
// Mandatory Instance
|
// Mandatory Instance
|
||||||
MProduct product = getProduct();
|
MProduct product = getProduct();
|
||||||
if (getM_AttributeSetInstance_ID() == 0) {
|
if (getM_AttributeSetInstance_ID() == 0) {
|
||||||
if (product != null && product.getAttributeSet()==null) {
|
|
||||||
log.saveError("NoAttributeSet", product.getValue());
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (product != null && product.isASIMandatory(true)) {
|
if (product != null && product.isASIMandatory(true)) {
|
||||||
|
if (product.getAttributeSet()==null) {
|
||||||
|
log.saveError("NoAttributeSet", product.getValue());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (! product.getAttributeSet().excludeTableEntry(MMovementLine.Table_ID, true /*outgoing*/)) {
|
if (! product.getAttributeSet().excludeTableEntry(MMovementLine.Table_ID, true /*outgoing*/)) {
|
||||||
log.saveError("FillMandatory", Msg.getElement(getCtx(), COLUMNNAME_M_AttributeSetInstance_ID));
|
log.saveError("FillMandatory", Msg.getElement(getCtx(), COLUMNNAME_M_AttributeSetInstance_ID));
|
||||||
return false;
|
return false;
|
||||||
|
@ -231,12 +231,12 @@ public class MMovementLine extends X_M_MovementLine
|
||||||
setM_AttributeSetInstanceTo_ID(getM_AttributeSetInstance_ID());
|
setM_AttributeSetInstanceTo_ID(getM_AttributeSetInstance_ID());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (product != null && product.getAttributeSet()==null) {
|
|
||||||
log.saveError("NoAttributeSet", product.getValue());
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (product != null && product.isASIMandatory(false) && getM_AttributeSetInstanceTo_ID() == 0)
|
if (product != null && product.isASIMandatory(false) && getM_AttributeSetInstanceTo_ID() == 0)
|
||||||
{
|
{
|
||||||
|
if (product.getAttributeSet()==null) {
|
||||||
|
log.saveError("NoAttributeSet", product.getValue());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (! product.getAttributeSet().excludeTableEntry(MMovementLine.Table_ID, false /*incoming*/)) {
|
if (! product.getAttributeSet().excludeTableEntry(MMovementLine.Table_ID, false /*incoming*/)) {
|
||||||
log.saveError("FillMandatory", Msg.getElement(getCtx(), COLUMNNAME_M_AttributeSetInstanceTo_ID));
|
log.saveError("FillMandatory", Msg.getElement(getCtx(), COLUMNNAME_M_AttributeSetInstanceTo_ID));
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -660,8 +660,6 @@ public class MPayment extends X_C_Payment
|
||||||
|| is_ValueChanged(COLUMNNAME_C_Charge_ID)
|
|| is_ValueChanged(COLUMNNAME_C_Charge_ID)
|
||||||
|| is_ValueChanged(COLUMNNAME_C_Currency_ID)
|
|| is_ValueChanged(COLUMNNAME_C_Currency_ID)
|
||||||
|| is_ValueChanged(COLUMNNAME_C_DocType_ID)
|
|| is_ValueChanged(COLUMNNAME_C_DocType_ID)
|
||||||
|| is_ValueChanged(COLUMNNAME_C_Invoice_ID)
|
|
||||||
|| is_ValueChanged(COLUMNNAME_C_Order_ID)
|
|
||||||
|| is_ValueChanged(COLUMNNAME_DateAcct)
|
|| is_ValueChanged(COLUMNNAME_DateAcct)
|
||||||
|| is_ValueChanged(COLUMNNAME_DateTrx)
|
|| is_ValueChanged(COLUMNNAME_DateTrx)
|
||||||
|| is_ValueChanged(COLUMNNAME_DiscountAmt)
|
|| is_ValueChanged(COLUMNNAME_DiscountAmt)
|
||||||
|
|
|
@ -476,7 +476,7 @@ public final class DisplayType
|
||||||
//
|
//
|
||||||
if ( pattern != null && pattern.length() > 0)
|
if ( pattern != null && pattern.length() > 0)
|
||||||
{
|
{
|
||||||
SimpleDateFormat format = (SimpleDateFormat)DateFormat.getInstance();
|
SimpleDateFormat format = (SimpleDateFormat)DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, language.getLocale());
|
||||||
try {
|
try {
|
||||||
format.applyPattern(pattern);
|
format.applyPattern(pattern);
|
||||||
return format;
|
return format;
|
||||||
|
|
|
@ -48,7 +48,6 @@ import javax.mail.internet.MimeMultipart;
|
||||||
|
|
||||||
import org.compiere.model.MClient;
|
import org.compiere.model.MClient;
|
||||||
import org.compiere.model.MSysConfig;
|
import org.compiere.model.MSysConfig;
|
||||||
|
|
||||||
import com.sun.mail.smtp.SMTPMessage;
|
import com.sun.mail.smtp.SMTPMessage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -338,7 +337,7 @@ public final class EMail implements Serializable
|
||||||
m_msg.setHeader("Comments", "iDempiereMail");
|
m_msg.setHeader("Comments", "iDempiereMail");
|
||||||
// m_msg.setDescription("Description");
|
// m_msg.setDescription("Description");
|
||||||
// SMTP specifics
|
// SMTP specifics
|
||||||
m_msg.setAllow8bitMIME(true);
|
//m_msg.setAllow8bitMIME(true);
|
||||||
// Send notification on Failure & Success - no way to set envid in Java yet
|
// Send notification on Failure & Success - no way to set envid in Java yet
|
||||||
// m_msg.setNotifyOptions (SMTPMessage.NOTIFY_FAILURE | SMTPMessage.NOTIFY_SUCCESS);
|
// m_msg.setNotifyOptions (SMTPMessage.NOTIFY_FAILURE | SMTPMessage.NOTIFY_SUCCESS);
|
||||||
// Bounce only header
|
// Bounce only header
|
||||||
|
@ -974,18 +973,34 @@ public final class EMail implements Serializable
|
||||||
else // Multi part message ***************************************
|
else // Multi part message ***************************************
|
||||||
{
|
{
|
||||||
// First Part - Message
|
// First Part - Message
|
||||||
MimeBodyPart mbp_1 = new MimeBodyPart();
|
MimeBodyPart htmlPart= null;
|
||||||
mbp_1.setText("");
|
MimeBodyPart planPart = new MimeBodyPart();
|
||||||
if (m_messageHTML == null || m_messageHTML.length () == 0)
|
//TODO: get plan text form html, i see getMessageCRLF just return empty string
|
||||||
mbp_1.setText (getMessageCRLF(), charSetName);
|
planPart.setText (getMessageCRLF(), charSetName);
|
||||||
else
|
htmlPart = new MimeBodyPart();
|
||||||
mbp_1.setDataHandler (new DataHandler
|
if (m_messageHTML == null){
|
||||||
(new ByteArrayDataSource (m_messageHTML, charSetName, "text/html")));
|
m_messageHTML = "<html><body>" + getMessageCRLF() + "</body></html>";
|
||||||
|
}
|
||||||
|
|
||||||
|
htmlPart.setDataHandler (new DataHandler
|
||||||
|
(new ByteArrayDataSource (m_messageHTML, charSetName, "text/html")));
|
||||||
|
|
||||||
// Create Multipart and its parts to it
|
// Create Multipart and its parts to it
|
||||||
Multipart mp = new MimeMultipart("related");
|
Multipart mainPart = new MimeMultipart("mixed");
|
||||||
mp.addBodyPart(mbp_1);
|
|
||||||
if (log.isLoggable(Level.FINE)) log.fine("(multi) " + getSubject() + " - " + mbp_1);
|
Multipart viewContentPart = new MimeMultipart("related");
|
||||||
|
MimeBodyPart viewBodyPart = new MimeBodyPart();
|
||||||
|
viewBodyPart.setContent(viewContentPart);
|
||||||
|
mainPart.addBodyPart(viewBodyPart);
|
||||||
|
|
||||||
|
Multipart textAlternativePart = new MimeMultipart("alternative");
|
||||||
|
//textAlternativePart.addBodyPart(planPart);
|
||||||
|
textAlternativePart.addBodyPart(htmlPart);
|
||||||
|
MimeBodyPart alternativeBodyPart = new MimeBodyPart();
|
||||||
|
alternativeBodyPart.setContent(textAlternativePart);
|
||||||
|
viewContentPart.addBodyPart(alternativeBodyPart);
|
||||||
|
|
||||||
|
if (log.isLoggable(Level.FINE)) log.fine("(multi) " + getSubject() + " - " + htmlPart);
|
||||||
|
|
||||||
// for all attachments
|
// for all attachments
|
||||||
for (int i = 0; i < m_attachments.size(); i++)
|
for (int i = 0; i < m_attachments.size(); i++)
|
||||||
|
@ -1024,12 +1039,14 @@ public final class EMail implements Serializable
|
||||||
if (m_messageHTML != null && m_messageHTML.contains("cid:"+ds.getName())) {
|
if (m_messageHTML != null && m_messageHTML.contains("cid:"+ds.getName())) {
|
||||||
mbp_2.setContentID("<" + ds.getName() + ">");
|
mbp_2.setContentID("<" + ds.getName() + ">");
|
||||||
mbp_2.setDisposition(MimeBodyPart.INLINE);
|
mbp_2.setDisposition(MimeBodyPart.INLINE);
|
||||||
|
viewContentPart.addBodyPart(mbp_2);
|
||||||
|
}else{
|
||||||
|
mainPart.addBodyPart(mbp_2);
|
||||||
}
|
}
|
||||||
mp.addBodyPart(mbp_2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add to Message
|
// Add to Message
|
||||||
m_msg.setContent(mp);
|
m_msg.setContent(mainPart);
|
||||||
} // multi=part
|
} // multi=part
|
||||||
} // setContent
|
} // setContent
|
||||||
|
|
||||||
|
|
|
@ -1509,8 +1509,9 @@ public final class Env
|
||||||
if (column.isSecure()) {
|
if (column.isSecure()) {
|
||||||
outStr.append("********");
|
outStr.append("********");
|
||||||
} else {
|
} else {
|
||||||
outStr.append(DB.getSQLValueString(trxName,
|
String value = DB.getSQLValueString(trxName,"SELECT " + columnName + " FROM " + tableName + " WHERE " + tableName + "_ID = ?", (Integer)v);
|
||||||
"SELECT " + columnName + " FROM " + tableName + " WHERE " + tableName + "_ID = ?", (Integer)v));
|
if (value != null)
|
||||||
|
outStr.append(value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1011,6 +1011,7 @@ public class MWFActivity extends X_AD_WF_Activity implements Runnable
|
||||||
if (!m_po.save())
|
if (!m_po.save())
|
||||||
{
|
{
|
||||||
success = false;
|
success = false;
|
||||||
|
m_docStatus = null;
|
||||||
processMsg = "SaveError";
|
processMsg = "SaveError";
|
||||||
}
|
}
|
||||||
if (!success)
|
if (!success)
|
||||||
|
|
|
@ -60,6 +60,7 @@ import net.sf.jasperreports.engine.JasperReport;
|
||||||
import net.sf.jasperreports.engine.design.JRDesignQuery;
|
import net.sf.jasperreports.engine.design.JRDesignQuery;
|
||||||
import net.sf.jasperreports.engine.design.JasperDesign;
|
import net.sf.jasperreports.engine.design.JasperDesign;
|
||||||
import net.sf.jasperreports.engine.export.JRCsvExporter;
|
import net.sf.jasperreports.engine.export.JRCsvExporter;
|
||||||
|
import net.sf.jasperreports.engine.export.JRCsvExporterParameter;
|
||||||
import net.sf.jasperreports.engine.export.JRHtmlExporter;
|
import net.sf.jasperreports.engine.export.JRHtmlExporter;
|
||||||
import net.sf.jasperreports.engine.export.JRPdfExporter;
|
import net.sf.jasperreports.engine.export.JRPdfExporter;
|
||||||
import net.sf.jasperreports.engine.export.JRPrintServiceExporter;
|
import net.sf.jasperreports.engine.export.JRPrintServiceExporter;
|
||||||
|
@ -714,8 +715,12 @@ public class ReportStarter implements ProcessCall, ClientProcess
|
||||||
exporter = new JRPrintServiceExporter(ljrContext);
|
exporter = new JRPrintServiceExporter(ljrContext);
|
||||||
else if (ext.equals("xml"))
|
else if (ext.equals("xml"))
|
||||||
exporter = new JRXmlExporter(ljrContext);
|
exporter = new JRXmlExporter(ljrContext);
|
||||||
else if (ext.equals("csv") || ext.equals("ssv"))
|
else if (ext.equals("csv"))
|
||||||
exporter = new JRCsvExporter(ljrContext);
|
exporter = new JRCsvExporter(ljrContext);
|
||||||
|
else if (ext.equals("ssv")) {
|
||||||
|
exporter = new JRCsvExporter(ljrContext);
|
||||||
|
exporter.setParameter(JRCsvExporterParameter.FIELD_DELIMITER, ";");
|
||||||
|
}
|
||||||
else if (ext.equals("txt"))
|
else if (ext.equals("txt"))
|
||||||
exporter = new JRTextExporter(ljrContext);
|
exporter = new JRTextExporter(ljrContext);
|
||||||
else if (ext.equals("html") || ext.equals("htm"))
|
else if (ext.equals("html") || ext.equals("htm"))
|
||||||
|
|
|
@ -22,6 +22,8 @@ import java.util.HashMap;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
import java.util.concurrent.ConcurrentMap;
|
||||||
|
|
||||||
import javax.servlet.ServletRequest;
|
import javax.servlet.ServletRequest;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
@ -43,11 +45,13 @@ import org.compiere.model.MRole;
|
||||||
import org.compiere.model.MSession;
|
import org.compiere.model.MSession;
|
||||||
import org.compiere.model.MSysConfig;
|
import org.compiere.model.MSysConfig;
|
||||||
import org.compiere.model.MSystem;
|
import org.compiere.model.MSystem;
|
||||||
|
import org.compiere.model.MTable;
|
||||||
import org.compiere.model.MUser;
|
import org.compiere.model.MUser;
|
||||||
import org.compiere.util.CLogger;
|
import org.compiere.util.CLogger;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
import org.compiere.util.Language;
|
import org.compiere.util.Language;
|
||||||
import org.compiere.util.Msg;
|
import org.compiere.util.Msg;
|
||||||
|
import org.compiere.util.Util;
|
||||||
import org.zkforge.keylistener.Keylistener;
|
import org.zkforge.keylistener.Keylistener;
|
||||||
import org.zkoss.web.Attributes;
|
import org.zkoss.web.Attributes;
|
||||||
import org.zkoss.web.servlet.Servlets;
|
import org.zkoss.web.servlet.Servlets;
|
||||||
|
@ -77,7 +81,7 @@ public class AdempiereWebUI extends Window implements EventListener<Event>, IWeb
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 5875869799688466929L;
|
private static final long serialVersionUID = 2030098494203345181L;
|
||||||
|
|
||||||
private static final String SAVED_CONTEXT = "saved.context";
|
private static final String SAVED_CONTEXT = "saved.context";
|
||||||
|
|
||||||
|
@ -107,12 +111,16 @@ public class AdempiereWebUI extends Window implements EventListener<Event>, IWeb
|
||||||
|
|
||||||
private static boolean eventThreadEnabled = false;
|
private static boolean eventThreadEnabled = false;
|
||||||
|
|
||||||
|
private ConcurrentMap<String, String[]> m_URLParameters;
|
||||||
|
|
||||||
public AdempiereWebUI()
|
public AdempiereWebUI()
|
||||||
{
|
{
|
||||||
this.addEventListener(Events.ON_CLIENT_INFO, this);
|
this.addEventListener(Events.ON_CLIENT_INFO, this);
|
||||||
this.setVisible(false);
|
this.setVisible(false);
|
||||||
|
|
||||||
userPreference = new UserPreference();
|
userPreference = new UserPreference();
|
||||||
|
// preserve the original URL parameters as is destroyed later on loging
|
||||||
|
m_URLParameters = new ConcurrentHashMap<String, String[]>(Executions.getCurrent().getParameterMap());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onCreate()
|
public void onCreate()
|
||||||
|
@ -275,9 +283,54 @@ public class AdempiereWebUI extends Window implements EventListener<Event>, IWeb
|
||||||
}
|
}
|
||||||
Env.setContext(ctx, "#LocalHttpAddr", localHttpAddr.toString());
|
Env.setContext(ctx, "#LocalHttpAddr", localHttpAddr.toString());
|
||||||
Clients.response(new AuScript("zAu.cmd0.clearBusy()"));
|
Clients.response(new AuScript("zAu.cmd0.clearBusy()"));
|
||||||
|
|
||||||
|
processParameters();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
private void processParameters() {
|
||||||
|
String action = getPrmString("Action");
|
||||||
|
if ("Zoom".equalsIgnoreCase(action)) {
|
||||||
|
int tableID = getPrmInt("AD_Table_ID");
|
||||||
|
if (tableID == 0) {
|
||||||
|
String tableName = getPrmString("TableName");
|
||||||
|
if (!Util.isEmpty(tableName)) {
|
||||||
|
MTable table = MTable.get(Env.getCtx(), tableName);
|
||||||
|
if (table != null) {
|
||||||
|
tableID = table.getAD_Table_ID();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int recordID = getPrmInt("Record_ID");
|
||||||
|
if (tableID > 0) {
|
||||||
|
AEnv.zoom(tableID, recordID);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m_URLParameters = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getPrmString(String prm) {
|
||||||
|
String retValue = "";
|
||||||
|
if (m_URLParameters != null) {
|
||||||
|
String[] strs = m_URLParameters.get(prm);
|
||||||
|
if (strs != null && strs.length == 1 && strs[0] != null)
|
||||||
|
retValue = strs[0];
|
||||||
|
}
|
||||||
|
return retValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int getPrmInt(String prm) {
|
||||||
|
int retValue = 0;
|
||||||
|
String str = getPrmString(prm);
|
||||||
|
try {
|
||||||
|
if (!Util.isEmpty(str))
|
||||||
|
retValue = Integer.parseInt(str);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
return retValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
* @return key listener
|
* @return key listener
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1622,8 +1622,8 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements
|
||||||
|
|
||||||
toolbar.enablePrint(adTabbox.getSelectedGridTab().isPrinted() && !isNewRow);
|
toolbar.enablePrint(adTabbox.getSelectedGridTab().isPrinted() && !isNewRow);
|
||||||
toolbar.enableReport(!isNewRow);
|
toolbar.enableReport(!isNewRow);
|
||||||
toolbar.enableExport(!adTabbox.getSelectedGridTab().isSortTab());
|
toolbar.enableExport(!isNewRow && !adTabbox.getSelectedGridTab().isSortTab());
|
||||||
toolbar.enableFileImport(!changed && !adTabbox.getSelectedGridTab().isSortTab() && adTabbox.getSelectedGridTab().isInsertRecord());
|
toolbar.enableFileImport(!isNewRow && !changed && !adTabbox.getSelectedGridTab().isSortTab() && adTabbox.getSelectedGridTab().isInsertRecord());
|
||||||
|
|
||||||
toolbar.enableTabNavigation(breadCrumb.hasParentLink(), adTabbox.getSelectedDetailADTabpanel() != null);
|
toolbar.enableTabNavigation(breadCrumb.hasParentLink(), adTabbox.getSelectedDetailADTabpanel() != null);
|
||||||
|
|
||||||
|
|
|
@ -468,12 +468,18 @@ public class WReportCustomization implements IFormController,EventListener<Even
|
||||||
m_reportEngine.createXML(sw);
|
m_reportEngine.createXML(sw);
|
||||||
data = sw.getBuffer().toString().getBytes();
|
data = sw.getBuffer().toString().getBytes();
|
||||||
}
|
}
|
||||||
else if (ext.equals("csv") || ext.equals("ssv"))
|
else if (ext.equals("csv"))
|
||||||
{
|
{
|
||||||
StringWriter sw = new StringWriter();
|
StringWriter sw = new StringWriter();
|
||||||
m_reportEngine.createCSV(sw, ',', m_reportEngine.getPrintFormat().getLanguage());
|
m_reportEngine.createCSV(sw, ',', m_reportEngine.getPrintFormat().getLanguage());
|
||||||
data = sw.getBuffer().toString().getBytes();
|
data = sw.getBuffer().toString().getBytes();
|
||||||
}
|
}
|
||||||
|
else if (ext.equals("ssv"))
|
||||||
|
{
|
||||||
|
StringWriter sw = new StringWriter();
|
||||||
|
m_reportEngine.createCSV(sw, ';', m_reportEngine.getPrintFormat().getLanguage());
|
||||||
|
data = sw.getBuffer().toString().getBytes();
|
||||||
|
}
|
||||||
else if (ext.equals("txt"))
|
else if (ext.equals("txt"))
|
||||||
{
|
{
|
||||||
StringWriter sw = new StringWriter();
|
StringWriter sw = new StringWriter();
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
|
|
||||||
package org.adempiere.webui.component;
|
package org.adempiere.webui.component;
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
|
@ -60,11 +59,6 @@ public class AutoComplete extends Combobox
|
||||||
public void setDict(String[] vals)
|
public void setDict(String[] vals)
|
||||||
{
|
{
|
||||||
comboItems = vals;
|
comboItems = vals;
|
||||||
|
|
||||||
if (comboItems != null)
|
|
||||||
{
|
|
||||||
Arrays.sort(comboItems);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -51,34 +51,34 @@ public class InfoProductWindow extends InfoWindow {
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = -1343685368452976048L;
|
private static final long serialVersionUID = -7892916038089331016L;
|
||||||
|
|
||||||
private Tabbox tabbedPane;
|
protected Tabbox tabbedPane;
|
||||||
private WListbox warehouseTbl;
|
protected WListbox warehouseTbl;
|
||||||
private String m_sqlWarehouse;
|
protected String m_sqlWarehouse;
|
||||||
private WListbox substituteTbl;
|
protected WListbox substituteTbl;
|
||||||
private String m_sqlSubstitute;
|
protected String m_sqlSubstitute;
|
||||||
private WListbox relatedTbl;
|
protected WListbox relatedTbl;
|
||||||
private String m_sqlRelated;
|
protected String m_sqlRelated;
|
||||||
//Available to Promise Tab
|
//Available to Promise Tab
|
||||||
private WListbox m_tableAtp;
|
protected WListbox m_tableAtp;
|
||||||
|
|
||||||
// Group atp by warehouse or non
|
// Group atp by warehouse or non
|
||||||
private Checkbox chbShowDetailAtp;
|
protected Checkbox chbShowDetailAtp;
|
||||||
|
|
||||||
//IDEMPIERE-337
|
//IDEMPIERE-337
|
||||||
private WListbox productpriceTbl;
|
protected WListbox productpriceTbl;
|
||||||
private String m_sqlProductprice;
|
protected String m_sqlProductprice;
|
||||||
|
|
||||||
private Textbox fieldDescription;
|
protected Textbox fieldDescription;
|
||||||
|
|
||||||
/** ASI */
|
/** ASI */
|
||||||
protected int m_M_AttributeSetInstance_ID;
|
protected int m_M_AttributeSetInstance_ID;
|
||||||
|
|
||||||
private Borderlayout contentBorderLayout;
|
protected Borderlayout contentBorderLayout;
|
||||||
|
|
||||||
/** Instance Button */
|
/** Instance Button */
|
||||||
private Button m_PAttributeButton;
|
protected Button m_PAttributeButton;
|
||||||
|
|
||||||
protected int m_M_Locator_ID;
|
protected int m_M_Locator_ID;
|
||||||
|
|
||||||
|
@ -369,7 +369,7 @@ public class InfoProductWindow extends InfoWindow {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onPAttributeClick() {
|
protected void onPAttributeClick() {
|
||||||
Integer productInteger = getSelectedRowKey();
|
Integer productInteger = getSelectedRowKey();
|
||||||
if (productInteger == null) {
|
if (productInteger == null) {
|
||||||
m_PAttributeButton.setEnabled(false);
|
m_PAttributeButton.setEnabled(false);
|
||||||
|
@ -397,7 +397,7 @@ public class InfoProductWindow extends InfoWindow {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getSelectedWarehouseLabel() {
|
protected String getSelectedWarehouseLabel() {
|
||||||
for(WEditor editor : editors) {
|
for(WEditor editor : editors) {
|
||||||
if (editor.getGridField() != null && editor.getGridField().getColumnName().equals("M_Warehouse_ID")) {
|
if (editor.getGridField() != null && editor.getGridField().getColumnName().equals("M_Warehouse_ID")) {
|
||||||
Number value = (Number) editor.getValue();
|
Number value = (Number) editor.getValue();
|
||||||
|
@ -461,7 +461,7 @@ public class InfoProductWindow extends InfoWindow {
|
||||||
* @param M_PriceList_ID price list
|
* @param M_PriceList_ID price list
|
||||||
* @return M_PriceList_Version_ID price list version
|
* @return M_PriceList_Version_ID price list version
|
||||||
*/
|
*/
|
||||||
private int findPLV (int M_PriceList_ID)
|
protected int findPLV (int M_PriceList_ID)
|
||||||
{
|
{
|
||||||
Timestamp priceDate = null;
|
Timestamp priceDate = null;
|
||||||
// Sales Order Date
|
// Sales Order Date
|
||||||
|
@ -518,7 +518,7 @@ public class InfoProductWindow extends InfoWindow {
|
||||||
*
|
*
|
||||||
* @param M_Warehouse_ID warehouse
|
* @param M_Warehouse_ID warehouse
|
||||||
*/
|
*/
|
||||||
private void setWarehouse(int M_Warehouse_ID)
|
protected void setWarehouse(int M_Warehouse_ID)
|
||||||
{
|
{
|
||||||
for(WEditor editor : editors) {
|
for(WEditor editor : editors) {
|
||||||
if (editor.getGridField() != null && editor.getGridField().getColumnName().equals("M_Warehouse_ID")) {
|
if (editor.getGridField() != null && editor.getGridField().getColumnName().equals("M_Warehouse_ID")) {
|
||||||
|
@ -535,7 +535,7 @@ public class InfoProductWindow extends InfoWindow {
|
||||||
*
|
*
|
||||||
* @param M_PriceList_Version_ID price list
|
* @param M_PriceList_Version_ID price list
|
||||||
*/
|
*/
|
||||||
private void setPriceListVersion(int M_PriceList_Version_ID)
|
protected void setPriceListVersion(int M_PriceList_Version_ID)
|
||||||
{
|
{
|
||||||
if (log.isLoggable(Level.CONFIG)) log.config("M_PriceList_Version_ID=" + M_PriceList_Version_ID);
|
if (log.isLoggable(Level.CONFIG)) log.config("M_PriceList_Version_ID=" + M_PriceList_Version_ID);
|
||||||
|
|
||||||
|
@ -555,7 +555,7 @@ public class InfoProductWindow extends InfoWindow {
|
||||||
/**
|
/**
|
||||||
* Refresh Query
|
* Refresh Query
|
||||||
*/
|
*/
|
||||||
private void refresh(int M_Warehouse_ID, int M_PriceList_Version_ID)
|
protected void refresh(int M_Warehouse_ID, int M_PriceList_Version_ID)
|
||||||
{
|
{
|
||||||
int m_M_Product_ID = getSelectedRowKey();
|
int m_M_Product_ID = getSelectedRowKey();
|
||||||
String sql = m_sqlWarehouse;
|
String sql = m_sqlWarehouse;
|
||||||
|
@ -641,7 +641,7 @@ public class InfoProductWindow extends InfoWindow {
|
||||||
* @param m_M_Warehouse_ID
|
* @param m_M_Warehouse_ID
|
||||||
* @param m_M_Product_ID
|
* @param m_M_Product_ID
|
||||||
*/
|
*/
|
||||||
private void initAtpTab (int m_M_Warehouse_ID, int m_M_Product_ID)
|
protected void initAtpTab (int m_M_Warehouse_ID, int m_M_Product_ID)
|
||||||
{
|
{
|
||||||
// Header
|
// Header
|
||||||
Vector<String> columnNames = new Vector<String>();
|
Vector<String> columnNames = new Vector<String>();
|
||||||
|
|
|
@ -96,7 +96,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 6606023722122538154L;
|
private static final long serialVersionUID = -2192106603768665006L;
|
||||||
|
|
||||||
protected Grid parameterGrid;
|
protected Grid parameterGrid;
|
||||||
private Borderlayout layout;
|
private Borderlayout layout;
|
||||||
|
@ -399,7 +399,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
btMenuProcess.setVisible(ipMenu.getChildren().size() > 0);
|
btMenuProcess.setVisible(ipMenu.getChildren().size() > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processQueryValue() {
|
protected void processQueryValue() {
|
||||||
isQueryByUser = true;
|
isQueryByUser = true;
|
||||||
for (int i = 0; i < identifiers.size(); i++) {
|
for (int i = 0; i < identifiers.size(); i++) {
|
||||||
WEditor editor = identifiers.get(i);
|
WEditor editor = identifiers.get(i);
|
||||||
|
@ -434,7 +434,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
isQueryByUser = false;
|
isQueryByUser = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean loadInfoDefinition() {
|
protected boolean loadInfoDefinition() {
|
||||||
String tableName = null;
|
String tableName = null;
|
||||||
if (AD_InfoWindow_ID > 0) {
|
if (AD_InfoWindow_ID > 0) {
|
||||||
infoWindow = new MInfoWindow(Env.getCtx(), AD_InfoWindow_ID, null);
|
infoWindow = new MInfoWindow(Env.getCtx(), AD_InfoWindow_ID, null);
|
||||||
|
@ -514,7 +514,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
}
|
}
|
||||||
|
|
||||||
//private MInfoColumn[] topinfoColumns;//infoWindow.getInfoColumns(tableInfos);
|
//private MInfoColumn[] topinfoColumns;//infoWindow.getInfoColumns(tableInfos);
|
||||||
private boolean loadInfoRelatedTabs() {
|
protected boolean loadInfoRelatedTabs() {
|
||||||
if (infoWindow == null)
|
if (infoWindow == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -654,7 +654,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
prepareTable(columnInfos, infoWindow.getFromClause(), p_whereClause, infoWindow.getOrderByClause());
|
prepareTable(columnInfos, infoWindow.getFromClause(), p_whereClause, infoWindow.getOrderByClause());
|
||||||
}
|
}
|
||||||
|
|
||||||
private ColumnInfo createLookupColumnInfo(TableInfo[] tableInfos,
|
protected ColumnInfo createLookupColumnInfo(TableInfo[] tableInfos,
|
||||||
GridField gridField, MInfoColumn infoColumn) {
|
GridField gridField, MInfoColumn infoColumn) {
|
||||||
String columnName = gridField.getColumnName();
|
String columnName = gridField.getColumnName();
|
||||||
String validationCode = "";
|
String validationCode = "";
|
||||||
|
@ -801,7 +801,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
return sql;
|
return sql;
|
||||||
}
|
}
|
||||||
|
|
||||||
private MInfoColumn findInfoColumn(GridField gridField) {
|
protected MInfoColumn findInfoColumn(GridField gridField) {
|
||||||
for(int i = 0; i < gridFields.size(); i++) {
|
for(int i = 0; i < gridFields.size(); i++) {
|
||||||
if (gridFields.get(i) == gridField) {
|
if (gridFields.get(i) == gridField) {
|
||||||
return infoColumns[i];
|
return infoColumns[i];
|
||||||
|
@ -1138,7 +1138,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
dynamicDisplay(null);
|
dynamicDisplay(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void evalDisplayLogic() {
|
protected void evalDisplayLogic() {
|
||||||
for(WEditor editor : editors) {
|
for(WEditor editor : editors) {
|
||||||
if (editor.getGridField() != null && !editor.getGridField().isDisplayed(true)) {
|
if (editor.getGridField() != null && !editor.getGridField().isDisplayed(true)) {
|
||||||
editor.getComponent().setVisible(false);
|
editor.getComponent().setVisible(false);
|
||||||
|
@ -1256,7 +1256,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
panel.appendChild(fieldEditor);
|
panel.appendChild(fieldEditor);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createAndCheckbox() {
|
protected void createAndCheckbox() {
|
||||||
checkAND = new Checkbox();
|
checkAND = new Checkbox();
|
||||||
checkAND.setLabel(Msg.getMsg(Env.getCtx(), "SearchAND", true));
|
checkAND.setLabel(Msg.getMsg(Env.getCtx(), "SearchAND", true));
|
||||||
String tips = Msg.getMsg(Env.getCtx(), "SearchAND", false);
|
String tips = Msg.getMsg(Env.getCtx(), "SearchAND", false);
|
||||||
|
@ -1502,7 +1502,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
* Test Row Count
|
* Test Row Count
|
||||||
* @return true if display
|
* @return true if display
|
||||||
*/
|
*/
|
||||||
private boolean testCount(boolean promptError)
|
protected boolean testCount(boolean promptError)
|
||||||
{
|
{
|
||||||
long start = System.currentTimeMillis();
|
long start = System.currentTimeMillis();
|
||||||
String dynWhere = getSQLWhere();
|
String dynWhere = getSQLWhere();
|
||||||
|
@ -1640,7 +1640,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
* @author xolali IDEMPIERE-1045
|
* @author xolali IDEMPIERE-1045
|
||||||
* refresh(Object obj, EmbedWinInfo relatedInfo)
|
* refresh(Object obj, EmbedWinInfo relatedInfo)
|
||||||
*/
|
*/
|
||||||
private void refresh(Object obj, EmbedWinInfo relatedInfo)
|
protected void refresh(Object obj, EmbedWinInfo relatedInfo)
|
||||||
{
|
{
|
||||||
StringBuilder sql = new StringBuilder();
|
StringBuilder sql = new StringBuilder();
|
||||||
sql.append(relatedInfo.getInfoSql()); // delete get sql method from MInfoWindow
|
sql.append(relatedInfo.getInfoSql()); // delete get sql method from MInfoWindow
|
||||||
|
@ -1703,7 +1703,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
* @author xolali IDEMPIERE-1045
|
* @author xolali IDEMPIERE-1045
|
||||||
* GridField getGridField(MInfoColumn infoColumn)
|
* GridField getGridField(MInfoColumn infoColumn)
|
||||||
*/
|
*/
|
||||||
private GridField getGridField(MInfoColumn infoColumn){
|
protected GridField getGridField(MInfoColumn infoColumn){
|
||||||
String columnName = infoColumn.getColumnName();
|
String columnName = infoColumn.getColumnName();
|
||||||
GridFieldVO vo = GridFieldVO.createParameter(infoContext, p_WindowNo, 0,
|
GridFieldVO vo = GridFieldVO.createParameter(infoContext, p_WindowNo, 0,
|
||||||
columnName, infoColumn.get_Translation("Name"), infoColumn.getAD_Reference_ID(),
|
columnName, infoColumn.get_Translation("Name"), infoColumn.getAD_Reference_ID(),
|
||||||
|
@ -1725,7 +1725,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
return gridField;
|
return gridField;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ArrayList<Object> readData(ResultSet rs, ColumnInfo[] p_layout) throws SQLException {
|
protected ArrayList<Object> readData(ResultSet rs, ColumnInfo[] p_layout) throws SQLException {
|
||||||
|
|
||||||
int colOffset = 1; // columns start with 1
|
int colOffset = 1; // columns start with 1
|
||||||
ArrayList<Object> data = new ArrayList<Object>();
|
ArrayList<Object> data = new ArrayList<Object>();
|
||||||
|
|
|
@ -123,7 +123,7 @@ public class WInfoPAttributeEditor extends WEditor implements IWhereClauseEditor
|
||||||
* M_AttributeSet pa
|
* M_AttributeSet pa
|
||||||
* </code>
|
* </code>
|
||||||
*/
|
*/
|
||||||
private void cmd_InfoPAttribute()
|
protected void cmd_InfoPAttribute()
|
||||||
{
|
{
|
||||||
int attributeSetId = Env.getContextAsInt(ctx, windowNo, Env.TAB_INFO, "M_AttributeSet_ID");
|
int attributeSetId = Env.getContextAsInt(ctx, windowNo, Env.TAB_INFO, "M_AttributeSet_ID");
|
||||||
final InfoPAttributePanel ia = new InfoPAttributePanel(attributeSetId);
|
final InfoPAttributePanel ia = new InfoPAttributePanel(attributeSetId);
|
||||||
|
|
|
@ -664,6 +664,9 @@ public class LoginPanel extends Window implements EventListener<Event>
|
||||||
/** get default languages from the browser */
|
/** get default languages from the browser */
|
||||||
private List<String> browserLanguages(String header) {
|
private List<String> browserLanguages(String header) {
|
||||||
List<String> arrstr = new ArrayList<String>();
|
List<String> arrstr = new ArrayList<String>();
|
||||||
|
if (header == null)
|
||||||
|
return arrstr;
|
||||||
|
|
||||||
for (String str : header.split(",")){
|
for (String str : header.split(",")){
|
||||||
String[] arr = str.trim().replace("-", "_").split(";");
|
String[] arr = str.trim().replace("-", "_").split(";");
|
||||||
|
|
||||||
|
|
|
@ -400,12 +400,18 @@ public class ReportAction implements EventListener<Event>
|
||||||
re.createXML(sw);
|
re.createXML(sw);
|
||||||
data = sw.getBuffer().toString().getBytes();
|
data = sw.getBuffer().toString().getBytes();
|
||||||
}
|
}
|
||||||
else if (ext.equals("csv") || ext.equals("ssv"))
|
else if (ext.equals("csv"))
|
||||||
{
|
{
|
||||||
StringWriter sw = new StringWriter();
|
StringWriter sw = new StringWriter();
|
||||||
re.createCSV(sw, ',', re.getPrintFormat().getLanguage());
|
re.createCSV(sw, ',', re.getPrintFormat().getLanguage());
|
||||||
data = sw.getBuffer().toString().getBytes();
|
data = sw.getBuffer().toString().getBytes();
|
||||||
}
|
}
|
||||||
|
else if (ext.equals("ssv"))
|
||||||
|
{
|
||||||
|
StringWriter sw = new StringWriter();
|
||||||
|
re.createCSV(sw, ';', re.getPrintFormat().getLanguage());
|
||||||
|
data = sw.getBuffer().toString().getBytes();
|
||||||
|
}
|
||||||
else if (ext.equals("txt"))
|
else if (ext.equals("txt"))
|
||||||
{
|
{
|
||||||
StringWriter sw = new StringWriter();
|
StringWriter sw = new StringWriter();
|
||||||
|
|
|
@ -13,6 +13,9 @@
|
||||||
|
|
||||||
package org.adempiere.webui.part;
|
package org.adempiere.webui.part;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.adempiere.webui.component.Menupopup;
|
||||||
import org.adempiere.webui.component.Tab;
|
import org.adempiere.webui.component.Tab;
|
||||||
import org.adempiere.webui.component.Tabbox;
|
import org.adempiere.webui.component.Tabbox;
|
||||||
import org.adempiere.webui.component.Tabpanel;
|
import org.adempiere.webui.component.Tabpanel;
|
||||||
|
@ -21,11 +24,14 @@ import org.adempiere.webui.component.Tabs;
|
||||||
import org.adempiere.webui.panel.IHelpContext;
|
import org.adempiere.webui.panel.IHelpContext;
|
||||||
import org.adempiere.webui.session.SessionManager;
|
import org.adempiere.webui.session.SessionManager;
|
||||||
import org.compiere.model.X_AD_CtxHelp;
|
import org.compiere.model.X_AD_CtxHelp;
|
||||||
|
import org.compiere.util.Env;
|
||||||
|
import org.compiere.util.Msg;
|
||||||
import org.zkoss.zk.ui.Component;
|
import org.zkoss.zk.ui.Component;
|
||||||
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;
|
||||||
import org.zkoss.zk.ui.event.SwipeEvent;
|
import org.zkoss.zk.ui.event.SwipeEvent;
|
||||||
|
import org.zkoss.zul.Menuitem;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -128,7 +134,7 @@ public class WindowContainer extends AbstractUIPart
|
||||||
*/
|
*/
|
||||||
public Tab insertBefore(Tab refTab, Component comp, String title, boolean closeable, boolean enable)
|
public Tab insertBefore(Tab refTab, Component comp, String title, boolean closeable, boolean enable)
|
||||||
{
|
{
|
||||||
Tab tab = new Tab();
|
final Tab tab = new Tab();
|
||||||
if (title != null)
|
if (title != null)
|
||||||
{
|
{
|
||||||
setTabTitle(title, tab);
|
setTabTitle(title, tab);
|
||||||
|
@ -199,6 +205,63 @@ public class WindowContainer extends AbstractUIPart
|
||||||
setSelectedTab(tab);
|
setSelectedTab(tab);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Menupopup popupClose = new Menupopup();
|
||||||
|
Menuitem mi;
|
||||||
|
if(tab.getIndex()!=0){
|
||||||
|
mi = new Menuitem(Msg.getMsg(Env.getCtx(), "Close"));
|
||||||
|
popupClose.appendChild(mi);
|
||||||
|
mi.addEventListener(Events.ON_CLICK, new EventListener<Event>() {
|
||||||
|
public void onEvent(Event event) throws Exception {
|
||||||
|
int currentTabIndex = tab.getIndex();
|
||||||
|
int tabsSizeBeforeClose = tabbox.getTabs().getChildren().size();
|
||||||
|
|
||||||
|
if ( tabsSizeBeforeClose == currentTabIndex + 1 ) {
|
||||||
|
currentTabIndex--;
|
||||||
|
}
|
||||||
|
if ( tab.getPreviousSibling() != null ) {
|
||||||
|
tab.onClose();
|
||||||
|
// Update the current tab index.
|
||||||
|
if ( tabsSizeBeforeClose != tabbox.getTabs().getChildren().size() )
|
||||||
|
tabbox.setSelectedIndex( currentTabIndex );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
mi = new Menuitem(Msg.getMsg(Env.getCtx(), "CloseOtherWindows"));
|
||||||
|
popupClose.appendChild(mi);
|
||||||
|
mi.addEventListener(Events.ON_CLICK, new EventListener<Event>() {
|
||||||
|
public void onEvent(Event event) throws Exception {
|
||||||
|
int focusTabIndex = 1;
|
||||||
|
List<Component> tabs = tabbox.getTabs().getChildren();
|
||||||
|
for ( int i = tabs.size() - 1; i > 0; i-- ) {
|
||||||
|
if(!((Tab)tabs.get( i )).equals(tab)){
|
||||||
|
((Tab)tabs.get( i )).setSelected(false);
|
||||||
|
|
||||||
|
((Tab)tabs.get( i )).onClose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tabbox.setSelectedIndex(focusTabIndex);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
mi = new Menuitem(Msg.getMsg(Env.getCtx(), "CloseAllWindows"));
|
||||||
|
mi.addEventListener(Events.ON_CLICK, new EventListener<Event>() {
|
||||||
|
public void onEvent(Event event) throws Exception {
|
||||||
|
int focusTabIndex = 0;
|
||||||
|
List<Component> tabs = tabbox.getTabs().getChildren();
|
||||||
|
for ( int i = tabs.size() - 1; i > 0; i-- ) {
|
||||||
|
((Tab)tabs.get( i )).setSelected(false);
|
||||||
|
((Tab)tabs.get( i )).onClose();
|
||||||
|
}
|
||||||
|
tabbox.setSelectedIndex( focusTabIndex );
|
||||||
|
}
|
||||||
|
});
|
||||||
|
popupClose.appendChild(mi);
|
||||||
|
popupClose.setWidth("auto");
|
||||||
|
popupClose.setPage(tab.getPage());
|
||||||
|
tab.setContext(popupClose);
|
||||||
|
|
||||||
return tab;
|
return tab;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@ import net.sf.jasperreports.engine.JRExporterParameter;
|
||||||
import net.sf.jasperreports.engine.JasperPrint;
|
import net.sf.jasperreports.engine.JasperPrint;
|
||||||
import net.sf.jasperreports.engine.JasperReport;
|
import net.sf.jasperreports.engine.JasperReport;
|
||||||
import net.sf.jasperreports.engine.export.JRCsvExporter;
|
import net.sf.jasperreports.engine.export.JRCsvExporter;
|
||||||
|
import net.sf.jasperreports.engine.export.JRCsvExporterParameter;
|
||||||
import net.sf.jasperreports.engine.export.JRHtmlExporter;
|
import net.sf.jasperreports.engine.export.JRHtmlExporter;
|
||||||
import net.sf.jasperreports.engine.export.JRHtmlExporterParameter;
|
import net.sf.jasperreports.engine.export.JRHtmlExporterParameter;
|
||||||
import net.sf.jasperreports.engine.export.JRPdfExporter;
|
import net.sf.jasperreports.engine.export.JRPdfExporter;
|
||||||
|
@ -57,7 +58,7 @@ public class ZkJRViewer extends Window implements EventListener<Event>, ITabOnCl
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = -8378226782387071338L;
|
private static final long serialVersionUID = -1250003381099609830L;
|
||||||
|
|
||||||
private JasperPrint jasperPrint;
|
private JasperPrint jasperPrint;
|
||||||
private Listbox previewType = new Listbox();
|
private Listbox previewType = new Listbox();
|
||||||
|
@ -103,6 +104,7 @@ public class ZkJRViewer extends Window implements EventListener<Event>, ITabOnCl
|
||||||
previewType.appendItem("HTML", "HTML");
|
previewType.appendItem("HTML", "HTML");
|
||||||
previewType.appendItem("Excel", "XLS");
|
previewType.appendItem("Excel", "XLS");
|
||||||
previewType.appendItem("CSV", "CSV");
|
previewType.appendItem("CSV", "CSV");
|
||||||
|
previewType.appendItem("SSV", "SSV");
|
||||||
if ("PDF".equals(defaultType)) {
|
if ("PDF".equals(defaultType)) {
|
||||||
previewType.setSelectedIndex(0);
|
previewType.setSelectedIndex(0);
|
||||||
} else if ("HTML".equals(defaultType)) {
|
} else if ("HTML".equals(defaultType)) {
|
||||||
|
@ -111,6 +113,8 @@ public class ZkJRViewer extends Window implements EventListener<Event>, ITabOnCl
|
||||||
previewType.setSelectedIndex(2);
|
previewType.setSelectedIndex(2);
|
||||||
} else if ("CSV".equals(defaultType)) {
|
} else if ("CSV".equals(defaultType)) {
|
||||||
previewType.setSelectedIndex(3);
|
previewType.setSelectedIndex(3);
|
||||||
|
} else if ("SSV".equals(defaultType)) {
|
||||||
|
previewType.setSelectedIndex(4);
|
||||||
} else {
|
} else {
|
||||||
previewType.setSelectedIndex(0);
|
previewType.setSelectedIndex(0);
|
||||||
log.info("Format not Valid: "+defaultType);
|
log.info("Format not Valid: "+defaultType);
|
||||||
|
@ -126,6 +130,8 @@ public class ZkJRViewer extends Window implements EventListener<Event>, ITabOnCl
|
||||||
previewType.setSelectedIndex(0); // default to PDF if cannot export
|
previewType.setSelectedIndex(0); // default to PDF if cannot export
|
||||||
} else if ("CSV".equals(defaultType)) {
|
} else if ("CSV".equals(defaultType)) {
|
||||||
previewType.setSelectedIndex(0); // default to PDF if cannot export
|
previewType.setSelectedIndex(0); // default to PDF if cannot export
|
||||||
|
} else if ("SSV".equals(defaultType)) {
|
||||||
|
previewType.setSelectedIndex(0); // default to PDF if cannot export
|
||||||
} else {
|
} else {
|
||||||
previewType.setSelectedIndex(0);
|
previewType.setSelectedIndex(0);
|
||||||
log.info("Format not Valid: "+defaultType);
|
log.info("Format not Valid: "+defaultType);
|
||||||
|
@ -292,6 +298,23 @@ public class ZkJRViewer extends Window implements EventListener<Event>, ITabOnCl
|
||||||
exporter.exportReport();
|
exporter.exportReport();
|
||||||
|
|
||||||
media = new AMedia(m_title, "csv", "application/csv", file, true);
|
media = new AMedia(m_title, "csv", "application/csv", file, true);
|
||||||
|
|
||||||
|
}else if ("SSV".equals(reportType)) {
|
||||||
|
String path = System.getProperty("java.io.tmpdir");
|
||||||
|
String prefix = makePrefix(jasperPrint.getName());
|
||||||
|
if (log.isLoggable(Level.FINE))
|
||||||
|
{
|
||||||
|
log.log(Level.FINE, "Path="+path + " Prefix="+prefix);
|
||||||
|
}
|
||||||
|
File file = File.createTempFile(prefix, ".ssv", new File(path));
|
||||||
|
FileOutputStream fos = new FileOutputStream(file);
|
||||||
|
JRCsvExporter exporter= new JRCsvExporter();
|
||||||
|
exporter.setParameter(JRCsvExporterParameter.FIELD_DELIMITER, ";");
|
||||||
|
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
|
||||||
|
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, fos);
|
||||||
|
exporter.exportReport();
|
||||||
|
|
||||||
|
media = new AMedia(m_title, "ssv", "application/ssv", file, true);
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
Thread.currentThread().setContextClassLoader(cl);
|
Thread.currentThread().setContextClassLoader(cl);
|
||||||
|
|
|
@ -948,12 +948,18 @@ public class ZkReportViewer extends Window implements EventListener<Event>, ITab
|
||||||
m_reportEngine.createXML(sw);
|
m_reportEngine.createXML(sw);
|
||||||
data = sw.getBuffer().toString().getBytes();
|
data = sw.getBuffer().toString().getBytes();
|
||||||
}
|
}
|
||||||
else if (ext.equals("csv") || ext.equals("ssv"))
|
else if (ext.equals("csv"))
|
||||||
{
|
{
|
||||||
StringWriter sw = new StringWriter();
|
StringWriter sw = new StringWriter();
|
||||||
m_reportEngine.createCSV(sw, ',', m_reportEngine.getPrintFormat().getLanguage());
|
m_reportEngine.createCSV(sw, ',', m_reportEngine.getPrintFormat().getLanguage());
|
||||||
data = sw.getBuffer().toString().getBytes();
|
data = sw.getBuffer().toString().getBytes();
|
||||||
}
|
}
|
||||||
|
else if (ext.equals("ssv"))
|
||||||
|
{
|
||||||
|
StringWriter sw = new StringWriter();
|
||||||
|
m_reportEngine.createCSV(sw, ';', m_reportEngine.getPrintFormat().getLanguage());
|
||||||
|
data = sw.getBuffer().toString().getBytes();
|
||||||
|
}
|
||||||
else if (ext.equals("txt"))
|
else if (ext.equals("txt"))
|
||||||
{
|
{
|
||||||
StringWriter sw = new StringWriter();
|
StringWriter sw = new StringWriter();
|
||||||
|
|
Loading…
Reference in New Issue